{
  "_format": "hh-sol-artifact-1",
  "contractName": "MAHASplitKeeper",
  "sourceName": "contracts/splitters/MAHASplitKeeper.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint32[]",
          "name": "_percentAllocations",
          "type": "uint32[]"
        },
        {
          "internalType": "contract IERC20",
          "name": "_maha",
          "type": "address"
        },
        {
          "internalType": "contract ICommunityFund",
          "name": "_fund",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ETHReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "PERCENTAGE_SCALE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "accounts",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "callable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32[]",
          "name": "_percentAllocations",
          "type": "uint32[]"
        }
      ],
      "name": "checkPercentages",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "checkUpkeep",
      "outputs": [
        {
          "internalType": "bool",
          "name": "upkeepNeeded",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "performData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "communityFund",
      "outputs": [
        {
          "internalType": "contract ICommunityFund",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "distributeERC20",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "distributeETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "distributeMAHA",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getStartTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maha",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nextEpochPoint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "percentAllocations",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "performUpkeep",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "releasable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "releaseAndDistributeMAHA",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_period",
          "type": "uint256"
        }
      ],
      "name": "setPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint32[]",
          "name": "_percentAllocations",
          "type": "uint32[]"
        }
      ],
      "name": "updateSplit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdrawETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162001aa838038062001aa883398101604081905262000034916200045a565b838362278d004260006200004833620000f9565b60018390556002829055620000856200006e828562000149602090811b62000d4b17901c565b6002546200015e60201b62000d5e1790919060201c565b60035550508251620000a09150600490602085019062000292565b508051620000b6906005906020840190620002fc565b50620000c2816200016c565b5050600680546001600160a01b039384166001600160a01b0319918216179091556007805492909316911617905550620006769050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001578284620005f1565b9392505050565b6000620001578284620005ab565b6200017662000234565b6000805b8251811015620001d157828181518110620001a557634e487b7160e01b600052603260045260246000fd5b602002602001015182620001ba9190620005c6565b915080620001c88162000613565b9150506200017a565b50620f42408163ffffffff1614620002305760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642070657263656e74616765730000000000000000000000000060448201526064015b60405180910390fd5b5050565b6000546001600160a01b03163314620002905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000227565b565b828054828255906000526020600020908101928215620002ea579160200282015b82811115620002ea57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002b3565b50620002f8929150620003a8565b5090565b82805482825590600052602060002090600701600890048101928215620002ea5791602002820160005b838211156200036c57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262000326565b80156200039e5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026200036c565b5050620002f89291505b5b80821115620002f85760008155600101620003a9565b600082601f830112620003d0578081fd5b81516020620003e9620003e38362000585565b62000552565b80838252828201915082860187848660051b890101111562000409578586fd5b855b858110156200043b57815163ffffffff8116811462000428578788fd5b845292840192908401906001016200040b565b5090979650505050505050565b805162000455816200065d565b919050565b6000806000806080858703121562000470578384fd5b84516001600160401b038082111562000487578586fd5b818701915087601f8301126200049b578586fd5b81516020620004ae620003e38362000585565b8083825282820191508286018c848660051b8901011115620004ce578a8bfd5b8a96505b84871015620004fd578051620004e8816200065d565b835260019690960195918301918301620004d2565b50918a015191985090935050508082111562000517578485fd5b506200052687828801620003bf565b935050620005376040860162000448565b9150620005476060860162000448565b905092959194509250565b604051601f8201601f191681016001600160401b03811182821017156200057d576200057d62000647565b604052919050565b60006001600160401b03821115620005a157620005a162000647565b5060051b60200190565b60008219821115620005c157620005c162000631565b500190565b600063ffffffff808316818516808303821115620005e857620005e862000631565b01949350505050565b60008160001904831182151516156200060e576200060e62000631565b500290565b60006000198214156200062a576200062a62000631565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200067357600080fd5b50565b61142280620006866000396000f3fe60806040526004361061016e5760003560e01c80638da5cb5b116100cc578063e086e5ec1161007a578063e086e5ec14610416578063efe97d051461042b578063f2a40db814610440578063f2fde38b14610460578063f46b65ac14610480578063f4f3b20014610495578063fbccedae146104b557600080fd5b80638da5cb5b14610364578063b8b9b54914610382578063b97dd9e214610397578063bce58269146103ac578063c45ff544146103cc578063c5967c26146103ec578063c828371e1461040157600080fd5b80633f26479e116101295780633f26479e1461029057806344def48f146102a75780634585e33b146102c75780635c45f349146102e75780636a2ab602146102fc5780636e04ff0d14610321578063715018a61461034f57600080fd5b80623f619d146101b3578062f380f4146101ed5780630f3a9f651461021a5780631ed241951461023c578063398bac631461025b5780633de00c361461027057600080fd5b366101ae577fbfe611b001dfcd411432f7bf0d79b82b4b2ee81511edac123a3403c357fb972a33346040516101a492919061122f565b60405180910390a1005b600080fd5b3480156101bf57600080fd5b506101d36101ce3660046111eb565b6104ca565b60405163ffffffff90911681526020015b60405180910390f35b3480156101f957600080fd5b5060075461020d906001600160a01b031681565b6040516101e4919061121b565b34801561022657600080fd5b5061023a6102353660046111eb565b610504565b005b34801561024857600080fd5b506001545b6040519081526020016101e4565b34801561026757600080fd5b5061024d610511565b34801561027c57600080fd5b5060065461020d906001600160a01b031681565b34801561029c57600080fd5b5061024d620f424081565b3480156102b357600080fd5b5061023a6102c2366004611060565b610520565b3480156102d357600080fd5b5061023a6102e236600461117e565b61055d565b3480156102f357600080fd5b5061023a610605565b34801561030857600080fd5b5061031161061c565b60405190151581526020016101e4565b34801561032d57600080fd5b5061034161033c36600461117e565b610626565b6040516101e4929190611248565b34801561035b57600080fd5b5061023a61064d565b34801561037057600080fd5b506000546001600160a01b031661020d565b34801561038e57600080fd5b5061023a61065f565b3480156103a357600080fd5b5061024d6107c5565b3480156103b857600080fd5b5061023a6103c7366004611044565b6107eb565b3480156103d857600080fd5b5061023a6103e7366004611123565b610977565b3480156103f857600080fd5b5061024d610a22565b34801561040d57600080fd5b5060025461024d565b34801561042257600080fd5b5061023a610a44565b34801561043757600080fd5b5061024d610a89565b34801561044c57600080fd5b5061020d61045b3660046111eb565b610a93565b34801561046c57600080fd5b5061023a61047b366004611044565b610abd565b34801561048c57600080fd5b5061023a610b33565b3480156104a157600080fd5b5061023a6104b0366004611044565b610baf565b3480156104c157600080fd5b5061024d610cc3565b600581815481106104da57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b61050c610d6a565b600155565b600061051b610dc4565b905090565b610528610d6a565b815161053b906004906020850190610ea4565b50805161054f906005906020840190610f09565b5061055981610977565b5050565b60025442116105ac5760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b6105b4610de3565b6105f55760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b60448201526064016105a3565b6105fd610b33565b505042600355565b60065461061a906001600160a01b03166107eb565b565b600061051b610de3565b60006060610632610de3565b60405180602001604052806000815250915091509250929050565b610655610d6a565b61061a6000610dfc565b600454479060005b818110156107c05760006106c6846005848154811061069657634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b90506000600483815481106106eb57634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169184919081818185875af1925050503d806000811461073f576040519150601f19603f3d011682016040523d82523d6000602084013e610744565b606091505b50509050806107ad5760405162461bcd60e51b815260206004820152602f60248201527f756e61626c6520746f2073656e64206574682c20726563697069656e74206d6160448201526e1e481a185d99481c995d995c9d1959608a1b60648201526084016105a3565b5050806107b990611390565b9050610667565b505050565b600061051b6001546107e56002546107df60025442610e4c565b90610e63565b90610e6f565b6040516370a0823160e01b81526000906001600160a01b038316906370a082319061081a90309060040161121b565b60206040518083038186803b15801561083257600080fd5b505afa158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611203565b60045490915060005b818110156109715760006108a2846005848154811061069657634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb600484815481106108d457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b16815261090c916001600160a01b031690859060040161122f565b602060405180830381600087803b15801561092657600080fd5b505af115801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e919061115e565b50508061096a90611390565b9050610873565b50505050565b61097f610d6a565b6000805b82518110156109d3578281815181106109ac57634e487b7160e01b600052603260045260246000fd5b6020026020010151826109bf9190611312565b9150806109cb81611390565b915050610983565b50620f42408163ffffffff16146105595760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b60448201526064016105a3565b600061051b610a3b600154610a35610e7b565b90610d4b565b60025490610d5e565b610a4c610d6a565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610a86573d6000803e3d6000fd5b50565b600061051b610e7b565b60048181548110610aa357600080fd5b6000918252602090912001546001600160a01b0316905081565b610ac5610d6a565b6001600160a01b038116610b2a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b610a8681610dfc565b600754600654604051631916558760e01b81526001600160a01b0392831692631916558792610b679291169060040161121b565b600060405180830381600087803b158015610b8157600080fd5b505af1158015610b95573d6000803e3d6000fd5b505060065461061a92506001600160a01b031690506107eb565b610bb7610d6a565b806001600160a01b031663a9059cbb610bd86000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610c0490309060040161121b565b60206040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190611203565b6040518363ffffffff1660e01b8152600401610c7192919061122f565b602060405180830381600087803b158015610c8b57600080fd5b505af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610559919061115e565b6007546006546040516302e4d97960e31b81526000926001600160a01b0390811692631726cbc892610cfb929091169060040161121b565b60206040518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611203565b6000610d57828461135a565b9392505050565b6000610d5782846112fa565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a3565b600061051b6001546107e5600254600354610e6390919063ffffffff16565b6000610ded610e7b565b610df56107c5565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831015610e5c5781610d57565b5090919050565b6000610d578284611379565b6000610d57828461133a565b60006003546002541415610e915761051b610dc4565b61051b6001610e9e610dc4565b90610d5e565b828054828255906000526020600020908101928215610ef9579160200282015b82811115610ef957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ec4565b50610f05929150610faf565b5090565b82805482825590600052602060002090600701600890048101928215610ef95791602002820160005b83821115610f7657835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610f32565b8015610fa65782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610f76565b5050610f059291505b5b80821115610f055760008155600101610fb0565b600082601f830112610fd4578081fd5b81356020610fe9610fe4836112d6565b6112a5565b80838252828201915082860187848660051b8901011115611008578586fd5b855b8581101561103757813563ffffffff81168114611025578788fd5b8452928401929084019060010161100a565b5090979650505050505050565b600060208284031215611055578081fd5b8135610d57816113d7565b60008060408385031215611072578081fd5b823567ffffffffffffffff80821115611089578283fd5b818501915085601f83011261109c578283fd5b813560206110ac610fe4836112d6565b8083825282820191508286018a848660051b89010111156110cb578788fd5b8796505b848710156110f65780356110e2816113d7565b8352600196909601959183019183016110cf565b509650508601359250508082111561110c578283fd5b5061111985828601610fc4565b9150509250929050565b600060208284031215611134578081fd5b813567ffffffffffffffff81111561114a578182fd5b61115684828501610fc4565b949350505050565b60006020828403121561116f578081fd5b81518015158114610d57578182fd5b60008060208385031215611190578182fd5b823567ffffffffffffffff808211156111a7578384fd5b818501915085601f8301126111ba578384fd5b8135818111156111c8578485fd5b8660208285010111156111d9578485fd5b60209290920196919550909350505050565b6000602082840312156111fc578081fd5b5035919050565b600060208284031215611214578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b8215158152600060206040818401528351806040850152825b8181101561127d57858101830151858201606001528201611261565b8181111561128e5783606083870101525b50601f01601f191692909201606001949350505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156112ce576112ce6113c1565b604052919050565b600067ffffffffffffffff8211156112f0576112f06113c1565b5060051b60200190565b6000821982111561130d5761130d6113ab565b500190565b600063ffffffff808316818516808303821115611331576113316113ab565b01949350505050565b60008261135557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611374576113746113ab565b500290565b60008282101561138b5761138b6113ab565b500390565b60006000198214156113a4576113a46113ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a8657600080fdfea2646970667358221220b5a84348ef9b5c2821d46b60cb0640081c87dfe96ac0b713fe82fc1253293e7464736f6c63430008040033",
  "deployedBytecode": "0x60806040526004361061016e5760003560e01c80638da5cb5b116100cc578063e086e5ec1161007a578063e086e5ec14610416578063efe97d051461042b578063f2a40db814610440578063f2fde38b14610460578063f46b65ac14610480578063f4f3b20014610495578063fbccedae146104b557600080fd5b80638da5cb5b14610364578063b8b9b54914610382578063b97dd9e214610397578063bce58269146103ac578063c45ff544146103cc578063c5967c26146103ec578063c828371e1461040157600080fd5b80633f26479e116101295780633f26479e1461029057806344def48f146102a75780634585e33b146102c75780635c45f349146102e75780636a2ab602146102fc5780636e04ff0d14610321578063715018a61461034f57600080fd5b80623f619d146101b3578062f380f4146101ed5780630f3a9f651461021a5780631ed241951461023c578063398bac631461025b5780633de00c361461027057600080fd5b366101ae577fbfe611b001dfcd411432f7bf0d79b82b4b2ee81511edac123a3403c357fb972a33346040516101a492919061122f565b60405180910390a1005b600080fd5b3480156101bf57600080fd5b506101d36101ce3660046111eb565b6104ca565b60405163ffffffff90911681526020015b60405180910390f35b3480156101f957600080fd5b5060075461020d906001600160a01b031681565b6040516101e4919061121b565b34801561022657600080fd5b5061023a6102353660046111eb565b610504565b005b34801561024857600080fd5b506001545b6040519081526020016101e4565b34801561026757600080fd5b5061024d610511565b34801561027c57600080fd5b5060065461020d906001600160a01b031681565b34801561029c57600080fd5b5061024d620f424081565b3480156102b357600080fd5b5061023a6102c2366004611060565b610520565b3480156102d357600080fd5b5061023a6102e236600461117e565b61055d565b3480156102f357600080fd5b5061023a610605565b34801561030857600080fd5b5061031161061c565b60405190151581526020016101e4565b34801561032d57600080fd5b5061034161033c36600461117e565b610626565b6040516101e4929190611248565b34801561035b57600080fd5b5061023a61064d565b34801561037057600080fd5b506000546001600160a01b031661020d565b34801561038e57600080fd5b5061023a61065f565b3480156103a357600080fd5b5061024d6107c5565b3480156103b857600080fd5b5061023a6103c7366004611044565b6107eb565b3480156103d857600080fd5b5061023a6103e7366004611123565b610977565b3480156103f857600080fd5b5061024d610a22565b34801561040d57600080fd5b5060025461024d565b34801561042257600080fd5b5061023a610a44565b34801561043757600080fd5b5061024d610a89565b34801561044c57600080fd5b5061020d61045b3660046111eb565b610a93565b34801561046c57600080fd5b5061023a61047b366004611044565b610abd565b34801561048c57600080fd5b5061023a610b33565b3480156104a157600080fd5b5061023a6104b0366004611044565b610baf565b3480156104c157600080fd5b5061024d610cc3565b600581815481106104da57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b61050c610d6a565b600155565b600061051b610dc4565b905090565b610528610d6a565b815161053b906004906020850190610ea4565b50805161054f906005906020840190610f09565b5061055981610977565b5050565b60025442116105ac5760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b6105b4610de3565b6105f55760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b60448201526064016105a3565b6105fd610b33565b505042600355565b60065461061a906001600160a01b03166107eb565b565b600061051b610de3565b60006060610632610de3565b60405180602001604052806000815250915091509250929050565b610655610d6a565b61061a6000610dfc565b600454479060005b818110156107c05760006106c6846005848154811061069657634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b90506000600483815481106106eb57634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169184919081818185875af1925050503d806000811461073f576040519150601f19603f3d011682016040523d82523d6000602084013e610744565b606091505b50509050806107ad5760405162461bcd60e51b815260206004820152602f60248201527f756e61626c6520746f2073656e64206574682c20726563697069656e74206d6160448201526e1e481a185d99481c995d995c9d1959608a1b60648201526084016105a3565b5050806107b990611390565b9050610667565b505050565b600061051b6001546107e56002546107df60025442610e4c565b90610e63565b90610e6f565b6040516370a0823160e01b81526000906001600160a01b038316906370a082319061081a90309060040161121b565b60206040518083038186803b15801561083257600080fd5b505afa158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611203565b60045490915060005b818110156109715760006108a2846005848154811061069657634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb600484815481106108d457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b16815261090c916001600160a01b031690859060040161122f565b602060405180830381600087803b15801561092657600080fd5b505af115801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e919061115e565b50508061096a90611390565b9050610873565b50505050565b61097f610d6a565b6000805b82518110156109d3578281815181106109ac57634e487b7160e01b600052603260045260246000fd5b6020026020010151826109bf9190611312565b9150806109cb81611390565b915050610983565b50620f42408163ffffffff16146105595760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b60448201526064016105a3565b600061051b610a3b600154610a35610e7b565b90610d4b565b60025490610d5e565b610a4c610d6a565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610a86573d6000803e3d6000fd5b50565b600061051b610e7b565b60048181548110610aa357600080fd5b6000918252602090912001546001600160a01b0316905081565b610ac5610d6a565b6001600160a01b038116610b2a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b610a8681610dfc565b600754600654604051631916558760e01b81526001600160a01b0392831692631916558792610b679291169060040161121b565b600060405180830381600087803b158015610b8157600080fd5b505af1158015610b95573d6000803e3d6000fd5b505060065461061a92506001600160a01b031690506107eb565b610bb7610d6a565b806001600160a01b031663a9059cbb610bd86000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610c0490309060040161121b565b60206040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190611203565b6040518363ffffffff1660e01b8152600401610c7192919061122f565b602060405180830381600087803b158015610c8b57600080fd5b505af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610559919061115e565b6007546006546040516302e4d97960e31b81526000926001600160a01b0390811692631726cbc892610cfb929091169060040161121b565b60206040518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611203565b6000610d57828461135a565b9392505050565b6000610d5782846112fa565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a3565b600061051b6001546107e5600254600354610e6390919063ffffffff16565b6000610ded610e7b565b610df56107c5565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831015610e5c5781610d57565b5090919050565b6000610d578284611379565b6000610d57828461133a565b60006003546002541415610e915761051b610dc4565b61051b6001610e9e610dc4565b90610d5e565b828054828255906000526020600020908101928215610ef9579160200282015b82811115610ef957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ec4565b50610f05929150610faf565b5090565b82805482825590600052602060002090600701600890048101928215610ef95791602002820160005b83821115610f7657835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610f32565b8015610fa65782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610f76565b5050610f059291505b5b80821115610f055760008155600101610fb0565b600082601f830112610fd4578081fd5b81356020610fe9610fe4836112d6565b6112a5565b80838252828201915082860187848660051b8901011115611008578586fd5b855b8581101561103757813563ffffffff81168114611025578788fd5b8452928401929084019060010161100a565b5090979650505050505050565b600060208284031215611055578081fd5b8135610d57816113d7565b60008060408385031215611072578081fd5b823567ffffffffffffffff80821115611089578283fd5b818501915085601f83011261109c578283fd5b813560206110ac610fe4836112d6565b8083825282820191508286018a848660051b89010111156110cb578788fd5b8796505b848710156110f65780356110e2816113d7565b8352600196909601959183019183016110cf565b509650508601359250508082111561110c578283fd5b5061111985828601610fc4565b9150509250929050565b600060208284031215611134578081fd5b813567ffffffffffffffff81111561114a578182fd5b61115684828501610fc4565b949350505050565b60006020828403121561116f578081fd5b81518015158114610d57578182fd5b60008060208385031215611190578182fd5b823567ffffffffffffffff808211156111a7578384fd5b818501915085601f8301126111ba578384fd5b8135818111156111c8578485fd5b8660208285010111156111d9578485fd5b60209290920196919550909350505050565b6000602082840312156111fc578081fd5b5035919050565b600060208284031215611214578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b8215158152600060206040818401528351806040850152825b8181101561127d57858101830151858201606001528201611261565b8181111561128e5783606083870101525b50601f01601f191692909201606001949350505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156112ce576112ce6113c1565b604052919050565b600067ffffffffffffffff8211156112f0576112f06113c1565b5060051b60200190565b6000821982111561130d5761130d6113ab565b500190565b600063ffffffff808316818516808303821115611331576113316113ab565b01949350505050565b60008261135557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611374576113746113ab565b500290565b60008282101561138b5761138b6113ab565b500390565b60006000198214156113a4576113a46113ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a8657600080fdfea2646970667358221220b5a84348ef9b5c2821d46b60cb0640081c87dfe96ac0b713fe82fc1253293e7464736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
