UNPKG

elephantdexcontracts

Version:

Token, Liquidity Mining and Governance contracts for The Elephant Dex & Casino. https://elephant.ac

992 lines 275 kB
{ "abi": [ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "cap_", "type": "uint256" }, { "internalType": "uint256", "name": "_manualMintLimit", "type": "uint256" }, { "internalType": "uint256", "name": "_lockFromBlock", "type": "uint256" }, { "internalType": "uint256", "name": "_lockToBlock", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Lock", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DELEGATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toAdd", "type": "address" } ], "name": "addAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "authorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "canUnlockAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCap", "type": "uint256" } ], "name": "capUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint256", "name": "votes", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "lastUnlockBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "lock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lockFromBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newLockFrom", "type": "uint256" } ], "name": "lockFromUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "lockOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lockToBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newLockTo", "type": "uint256" } ], "name": "lockToUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lockedSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "manualMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manualMintLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toRemove", "type": "address" } ], "name": "removeAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "totalBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalLock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "transferAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unlock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unlockedSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "linkReferences": {}, "object": "60806040526000600c553480156200001657600080fd5b506040516200372138038062003721833981810160405260c08110156200003c57600080fd5b81019080805160405193929190846401000000008211156200005d57600080fd5b9083019060208201858111156200007357600080fd5b82516401000000008111828201881017156200008e57600080fd5b82525081516020918201929091019080838360005b83811015620000bd578181015183820152602001620000a3565b50505050905090810190601f168015620000eb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010f57600080fd5b9083019060208201858111156200012557600080fd5b82516401000000008111828201881017156200014057600080fd5b82525081516020918201929091019080838360005b838110156200016f57818101518382015260200162000155565b50505050905090810190601f1680156200019d5780820380516001836020036101000a031916815260200191505b50604090815260208281015191830151606084015160809094015188519396509094509187918791620001d791600391908501906200027e565b508051620001ed9060049060208401906200027e565b50506005805460ff19166012179055506000620002096200027a565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600793909355600b91909155600955600a55506200031a9050565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002c157805160ff1916838001178555620002f1565b82800160010185558215620002f1579182015b82811115620002f1578251825591602001919060010190620002d4565b50620002ff92915062000303565b5090565b5b80821115620002ff576000815560010162000304565b6133f7806200032a6000396000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c80637ecebe00116101a7578063c38533c6116100ee578063e6b2fb4a11610097578063f2fde38b11610071578063f2fde38b14610ab4578063f85b84a414610ae7578063fd3d27b814610aef57610320565b8063e6b2fb4a14610a45578063e7a324dc14610a4d578063f1127ed814610a5557610320565b8063cf1c316a116100c8578063cf1c316a1461099e578063dd62ed3e146109d1578063e4c5ff4614610a0c57610320565b8063c38533c614610925578063c3cda52014610942578063ca5c7b911461099657610320565b8063a3a7e7f311610150578063a9059cbb1161012a578063a9059cbb14610886578063b4b5ea57146108bf578063b9181611146108f257610320565b8063a3a7e7f314610812578063a457c2d714610845578063a69df4b51461087e57610320565b80638e875e1a116101815780638e875e1a146107fa5780639358928b1461080257806395d89b411461080a57610320565b80637ecebe001461078c57806389a2867c146107bf5780638da5cb5b146107f257610320565b806340346c491161026b5780635c19a95c1161021457806370a08231116101ee57806370a0823114610718578063715018a61461074b578063782d6fe11461075357610320565b80635c19a95c1461069157806366fc237b146106c45780636fcfff45146106cc57610320565b80634b0ee02a116102455780634b0ee02a146105cf578063587cde1e146106025780635a46d3b51461065e57610320565b806340346c491461054657806340c10f1914610563578063485d7d941461059c57610320565b806323b872dd116102cd578063355274ea116102a7578063355274ea146104fd57806339509351146105055780633a1aae351461053e57610320565b806323b872dd14610463578063282d3fdf146104a6578063313ce567146104df57610320565b806318160ddd116102fe57806318160ddd1461040e578063202b17601461042857806320606b701461045b57610320565b806306fdde0314610325578063095ea7b3146103a25780630cb285e2146103ef575b600080fd5b61032d610af7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103db600480360360408110156103b857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bab565b604080519115158252519081900360200190f35b61040c6004803603602081101561040557600080fd5b5035610bc9565b005b610416610c11565b60408051918252519081900360200190f35b6104166004803603602081101561043e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c17565b610416610d11565b6103db6004803603606081101561047957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610d35565b61040c600480360360408110156104bc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dd6565b6104e7611091565b6040805160ff9092168252519081900360200190f35b61041661109a565b6103db6004803603604081101561051b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356110a0565b6104166110fb565b61040c6004803603602081101561055c57600080fd5b5035611101565b61040c6004803603604081101561057957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611149565b61040c600480360360208110156105b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611231565b610416600480360360208110156105e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611348565b6106356004803603602081101561061857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611382565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6104166004803603602081101561067457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113ad565b61040c600480360360208110156106a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113d5565b6104166113e2565b6106ff600480360360208110156106e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e8565b6040805163ffffffff9092168252519081900360200190f35b6104166004803603602081101561072e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611400565b61040c611428565b6104166004803603604081101561076957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611544565b610416600480360360208110156107a257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661180e565b610416600480360360208110156107d557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611820565b610635611848565b610416611869565b61041661186f565b61032d61187e565b61040c6004803603602081101561082857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118fd565b6103db6004803603604081101561085b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a2c565b61040c611aa1565b6103db6004803603604081101561089c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611b9b565b610416600480360360208110156108d557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611baf565b6103db6004803603602081101561090857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c4b565b61040c6004803603602081101561093b57600080fd5b5035611c60565b61040c600480360360c081101561095857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060408101359060ff6060820135169060808101359060a00135611ca8565b610416611fe7565b61040c600480360360208110156109b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611ff1565b610416600480360360408110156109e757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166120e8565b61040c60048036036040811015610a2257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612120565b61041661221a565b610416612220565b610a9460048036036040811015610a6b57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16612244565b6040805163ffffffff909316835260208301919091528051918290030190f35b61040c60048036036020811015610aca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612271565b61041661241d565b610416612423565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba15780601f10610b7657610100808354040283529160200191610ba1565b820191906000526020600020905b815481529060010190602001808311610b8457829003601f168201915b5050505050905090565b6000610bbf610bb8612439565b848461243d565b5060015b92915050565b3360009081526006602052604090205460ff1680610c03575033610beb611848565b73ffffffffffffffffffffffffffffffffffffffff16145b610c0c57600080fd5b600a55565b60025490565b6000600954431015610c2b57506000610d0c565b600a544310610c60575073ffffffffffffffffffffffffffffffffffffffff81166000908152600d6020526040902054610d0c565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e6020526040812054610c91904390612584565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600e6020526040812054600a549293509091610cc891612584565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054909150610d07908290610d0190856125fb565b9061266e565b925050505b919050565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000610d428484846126ef565b610dcc84610d4e612439565b610dc7856040518060600160405280602881526020016132fb6028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020526040812090610d99612439565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919061273e565b61243d565b5060019392505050565b610dde612439565b73ffffffffffffffffffffffffffffffffffffffff16610dfc611848565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216610f0057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206c6f636b20746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610f0982611400565b811115610f7757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206c6f636b20616d6f756e74206f7665722062616c616e636500604482015290519081900360640190fd5b610f828230836126ef565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600d6020526040902054610fb290826127ef565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600d6020526040902055600854610fe590826127ef565b60085560095473ffffffffffffffffffffffffffffffffffffffff83166000908152600e602052604090205410156110415760095473ffffffffffffffffffffffffffffffffffffffff83166000908152600e60205260409020555b60408051828152905173ffffffffffffffffffffffffffffffffffffffff8416917f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427919081900360200190a25050565b60055460ff1690565b60075490565b6000610bbf6110ad612439565b84610dc785600160006110be612439565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c1681529252902054906127ef565b60085490565b3360009081526006602052604090205460ff168061113b575033611123611848565b73ffffffffffffffffffffffffffffffffffffffff16145b61114457600080fd5b600755565b611151612439565b73ffffffffffffffffffffffffffffffffffffffff1661116f611848565b73ffffffffffffffffffffffffffffffffffffffff16146111f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6111fb8282612863565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600f602052604081205461122d921683612994565b5050565b611239612439565b73ffffffffffffffffffffffffffffffffffffffff16611257611848565b73ffffffffffffffffffffffffffffffffffffffff16146112d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81163314156112fc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610bc361135683611400565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600d6020526040902054906127ef565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600f60205260409020541690565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b6113df3382612b75565b50565b60095481565b60116020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b611430612439565b73ffffffffffffffffffffffffffffffffffffffff1661144e611848565b73ffffffffffffffffffffffffffffffffffffffff16146114d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600554604051600091610100900473ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169055565b600043821061159e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131386032913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526011602052604090205463ffffffff16806115d9576000915050610bc3565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86018116855292529091205416831061169e5773ffffffffffffffffffffffffffffffffffffffff841660009081526010602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff16835292905220600101549050610bc3565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260106020908152604080832083805290915290205463ffffffff168310156116e6576000915050610bc3565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff1611156117ca57600282820363ffffffff16048103611736613120565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260106020908152604080832063ffffffff8086168552908352928190208151808301909252805490931680825260019093015491810191909152908714156117a557602001519450610bc39350505050565b805163ffffffff168711156117bc578193506117c3565b6001820392505b505061170c565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260106020908152604080832063ffffffff9094168352929052206001015491505092915050565b60126020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1690565b600a5481565b6000611879610c11565b905090565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba15780601f10610b7657610100808354040283529160200191610ba1565b336000908152600d60205260408082205473ffffffffffffffffffffffffffffffffffffffff84168352912054611933916127ef565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600d6020908152604080832093909355600954600e90915291902054101561199b5760095473ffffffffffffffffffffffffffffffffffffffff82166000908152600e60205260409020555b336000908152600e60205260408082205473ffffffffffffffffffffffffffffffffffffffff8416835291205410156119fc57336000908152600e60205260408082205473ffffffffffffffffffffffffffffffffffffffff841683529120555b336000818152600d60209081526040808320839055600e9091528120556113df9082611a2782611400565b6126ef565b6000610bbf611a39612439565b84610dc78560405180606001604052806025815260200161339d6025913960016000611a63612439565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919061273e565b336000908152600d6020526040902054611b1c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f45524332303a2063616e6e6f7420756e6c6f636b000000000000000000000000604482015290519081900360640190fd5b6000611b2733610c17565b9050611b3230611400565b811115611b4557611b4230611400565b90505b611b503033836126ef565b336000908152600d6020526040902054611b6a9082612584565b336000908152600d6020908152604080832093909355600e905220439055600854611b959082612584565b60085550565b6000610bbf611ba8612439565b84846126ef565b73ffffffffffffffffffffffffffffffffffffffff811660009081526011602052604081205463ffffffff1680611be7576000611c44565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86011684529091529020600101545b9392505050565b60066020526000908152604090205460ff1681565b3360009081526006602052604090205460ff1680611c9a575033611c82611848565b73ffffffffffffffffffffffffffffffffffffffff16145b611ca357600080fd5b600955565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866611cd3610af7565b80519060200120611ce2612c3c565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c084015273ffffffffffffffffffffffffffffffffffffffff8b1660e084015261010083018a90526101208084018a905282518085039091018152610140840183528051908501207f19010000000000000000000000000000000000000000000000000000000000006101608501526101628401829052610182808501829052835180860390910181526101a285018085528151918701919091206000918290526101c2860180865281905260ff8b166101e287015261020286018a905261022286018990529351929650909492939092600192610242808401937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301929081900390910190855afa158015611e5b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ef2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806133236031913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526012602052604090208054600181019091558914611f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061316a602d913960400191505060405180910390fd5b87421115611fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806132a96031913960400191505060405180910390fd5b611fda818b612b75565b505050505b505050505050565b60006118796110fb565b611ff9612439565b73ffffffffffffffffffffffffffffffffffffffff16612017611848565b73ffffffffffffffffffffffffffffffffffffffff161461209957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3360009081526006602052604090205460ff168061215a575033612142611848565b73ffffffffffffffffffffffffffffffffffffffff16145b61216357600080fd5b600b54600c5461217390836127ef565b11156121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806132676042913960600191505060405180910390fd5b6121d48282612863565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600f6020526040812054612206921683612994565b600c5461221390826127ef565b600c555050565b600c5481565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60106020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b612279612439565b73ffffffffffffffffffffffffffffffffffffffff16612297611848565b73ffffffffffffffffffffffffffffffffffffffff161461231957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612385576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806131f96026913960400191505060405180910390fd5b60055460405173ffffffffffffffffffffffffffffffffffffffff80841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b600b5481565b6000611879600854612433610c11565b90612584565b3390565b73ffffffffffffffffffffffffffffffffffffffff83166124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133796024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061321f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156125f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261260a57506000610bc3565b8282028284828161261757fe5b0414611c44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132da6021913960400191505060405180910390fd5b60008082116126de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816126e757fe5b049392505050565b6126fa838383612c40565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600f602052604080822054858416835291205461273992918216911683612994565b505050565b600081848411156127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127ac578181015183820152602001612794565b50505050905090810190601f1680156127d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611c4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166128e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6128f160008383612e10565b6002546128fe90826127ef565b60025573ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461293190826127ef565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129d05750600081115b156127395773ffffffffffffffffffffffffffffffffffffffff831615612aa75773ffffffffffffffffffffffffffffffffffffffff831660009081526011602052604081205463ffffffff169081612a2a576000612a87565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87011684529091529020600101545b90506000612a958285612584565b9050612aa386848484612eb8565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156127395773ffffffffffffffffffffffffffffffffffffffff821660009081526011602052604081205463ffffffff169081612afc576000612b59565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87011684529091529020600101545b90506000612b6782856127ef565b9050611fdf85848484612eb8565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600f602052604081205490911690612ba984611400565b73ffffffffffffffffffffffffffffffffffffffff8581166000818152600f602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4612c36828483612994565b50505050565b4690565b73ffffffffffffffffffffffffffffffffffffffff8316612cac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133546025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806131976023913960400191505060405180910390fd5b612d23838383612e10565b612d6d816040518060600160405280602681526020016132416026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919061273e565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054612da990826127ef565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b612e1b838383612739565b73ffffffffffffffffffffffffffffffffffffffff831661273957600754612e4b82612e45610c11565b906127ef565b111561273957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6000612edc436040518060600160405280603f81526020016131ba603f91396130a8565b905060008463ffffffff16118015612f50575073ffffffffffffffffffffffffffffffffffffffff8516600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15612fb85773ffffffffffffffffffffffffffffffffffffffff8516600090815260106020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff89011684529091529020600101829055613051565b60408051808201825263ffffffff8084168252602080830186815273ffffffffffffffffffffffffffffffffffffffff8a166000818152601084528681208b861682528452868120955186549086167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000918216178755925160019687015590815260119092529390208054928801909116919092161790555b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff8816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b6000816401000000008410613118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156127ac578181015183820152602001612794565b509192915050565b60408051808201909152600080825260208201529056fe476f7665726e616e6365546f6b656e3a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564476f7665726e616e6365546f6b656e3a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332303a207472616e7366657220746f20746865207a65726f2061646472657373476f7665726e616e6365546f6b656e3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a2073756d206f66206d616e75616c4d696e74656420616e6420616d6f756e742067726561746572207468616e206d616e75616c4d696e744c696d6974476f7665726e616e6365546f6b656e3a3a64656c656761746542795369673a207369676e61747572652065787069726564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365476f7665726e616e6365546f6b656e3a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220311fa7e9e1cc35e3a52d98df2d5c9358c4efc201a616efa312417acff438c96764736f6c634300060c0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3721 CODESIZE SUB DUP1 PUSH3 0x3721 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0xC0 DUP2 LT ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH5 0x100000000 DUP2 GT DUP3 DUP3 ADD DUP9 LT OR ISZERO PUSH3 0x8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xBD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xEB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x10F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x125 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH5 0x100000000 DUP2 GT DUP3 DUP3 ADD