UNPKG

kleros-interaction-2

Version:
833 lines 356 kB
{ "contractName": "KittyAuction", "abi": [ { "constant": false, "inputs": [ { "name": "_kittyId", "type": "uint256" }, { "name": "_recipient", "type": "address" } ], "name": "rescueLostKitty", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "cfoAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "ceoAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "implementsERC721", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "siringAuction", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address" }, { "name": "_tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_address", "type": "address" } ], "name": "setGeneScienceAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newCEO", "type": "address" } ], "name": "setCEO", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newCOO", "type": "address" } ], "name": "setCOO", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "unpause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "sireAllowedToAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_matronId", "type": "uint256" }, { "name": "_sireId", "type": "uint256" } ], "name": "canBreedWith", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_index", "type": "uint256" } ], "name": "tokensOfOwnerByIndex", "outputs": [ { "name": "tokenId", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "kittyIndexToApproved", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "val", "type": "uint256" } ], "name": "setAutoBirthFee", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_addr", "type": "address" }, { "name": "_sireId", "type": "uint256" } ], "name": "approveSiring", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newCFO", "type": "address" } ], "name": "setCFO", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "paused", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "withdrawBalance", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "name": "owner", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_matronId", "type": "uint256" }, { "name": "_sireId", "type": "uint256" } ], "name": "breedWith", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "count", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "pause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_matronId", "type": "uint256" } ], "name": "giveBirth", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "cooldowns", "outputs": [ { "name": "", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "kittyIndexToOwner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_tokenId", "type": "uint256" } ], "name": "transfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "cooAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "autoBirthFee", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_kittyId", "type": "uint256" } ], "name": "isReadyToBreed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "saleAuction", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "geneScience", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_matronId", "type": "uint256" }, { "name": "_sireId", "type": "uint256" } ], "name": "breedWithAuto", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "matronId", "type": "uint256" }, { "indexed": false, "name": "sireId", "type": "uint256" } ], "name": "Pregnant", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "matronId", "type": "uint256" }, { "indexed": false, "name": "cooldownEndTime", "type": "uint256" } ], "name": "AutoBirth", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": true, "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "approved", "type": "address" }, { "indexed": true, "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": false, "name": "kittyId", "type": "uint256" }, { "indexed": false, "name": "matronId", "type": "uint256" }, { "indexed": false, "name": "sireId", "type": "uint256" }, { "indexed": false, "name": "genes", "type": "uint256" } ], "name": "Birth", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "newContract", "type": "address" } ], "name": "ContractUpgrade", "type": "event" }, { "constant": false, "inputs": [ { "name": "_address", "type": "address" } ], "name": "setSaleAuctionAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_address", "type": "address" } ], "name": "setSiringAuctionAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_kittyId", "type": "uint256" }, { "name": "_startingPrice", "type": "uint256" }, { "name": "_endingPrice", "type": "uint256" }, { "name": "_duration", "type": "uint256" } ], "name": "createSaleAuction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_kittyId", "type": "uint256" }, { "name": "_startingPrice", "type": "uint256" }, { "name": "_endingPrice", "type": "uint256" }, { "name": "_duration", "type": "uint256" } ], "name": "createSiringAuction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_sireId", "type": "uint256" }, { "name": "_matronId", "type": "uint256" } ], "name": "bidOnSiringAuction", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [], "name": "withdrawAuctionBalances", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6002805460a060020a60ff0219169055610240604052603c6080908152607860a05261012c60c05261025860e05261070861010052610e1061012052611c2061014052613840610160526170806101805261e1006101a052620151806101c0526202a3006101e052620546006102005262093a80610220526200008790600390600e62000135565b5060408051808201909152600d8082527f43727970746f4b697474696573000000000000000000000000000000000000006020909201918252620000ce91600a91620001d8565b506040805180820190915260028082527f434b00000000000000000000000000000000000000000000000000000000000060209092019182526200011591600b91620001d8565b5066038d7ea4c68000600c553480156200012e57600080fd5b506200029d565b600283019183908215620001c65791602002820160005b838211156200019257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026200014c565b8015620001c45782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000192565b505b50620001d492915062000259565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021b57805160ff19168380011785556200024b565b828001600101855582156200024b579182015b828111156200024b5782518255916020019190600101906200022e565b50620001d492915062000280565b6200027d91905b80821115620001d457805463ffffffff1916815560010162000260565b90565b6200027d91905b80821115620001d4576000815560010162000287565b6123e380620002ad6000396000f3006080604052600436106101f55763ffffffff60e060020a600035041663030c474181146101fa5780630519ce791461022057806306fdde0314610251578063095ea7b3146102db5780630a0f8168146102ff5780631051db341461031457806314001f4c1461033d57806318160ddd1461035e57806321717ebf1461038557806323b872dd1461039a57806324e7a38a146103c457806327d7874c146103e55780632ba73c15146104065780633d7d3f5a146104275780633f4ba83a1461044857806346116e6f1461045d57806346d22c70146104755780634707f44f14610490578063481af3d3146104b45780634ad8c938146104cc5780634b85fd55146104ed5780634dfff04f146105055780634e0a3379146105295780635c975abb1461054a5780635fd8c7101461055f5780636352211e146105745780636fbde40d1461058c5780637004fb84146105ad57806370a08231146105c85780638456cb59146105e957806388c2a0bf146105fe57806391876e571461061657806395d89b411461062b5780639d6fac6f14610640578063a45f4bfc14610671578063a9059cbb14610689578063b047fb50146106ad578063b0c35c05146106c2578063d3e6f49f146106d7578063e6cbe351146106ef578063ed60ade614610704578063f2b47d5214610712578063f7d8c88314610727575b600080fd5b34801561020657600080fd5b5061021e600435600160a060020a0360243516610735565b005b34801561022c57600080fd5b50610235610787565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610796565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a0578181015183820152602001610288565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e757600080fd5b5061021e600160a060020a0360043516602435610824565b34801561030b57600080fd5b50610235610896565b34801561032057600080fd5b506103296108a5565b604080519115158252519081900360200190f35b34801561034957600080fd5b5061021e600160a060020a03600435166108aa565b34801561036a57600080fd5b5061037361095d565b60408051918252519081900360200190f35b34801561039157600080fd5b50610235610967565b3480156103a657600080fd5b5061021e600160a060020a0360043581169060243516604435610976565b3480156103d057600080fd5b5061021e600160a060020a03600435166109c7565b3480156103f157600080fd5b5061021e600160a060020a0360043516610a7a565b34801561041257600080fd5b5061021e600160a060020a0360043516610ac8565b34801561043357600080fd5b5061021e600435602435604435606435610b16565b34801561045457600080fd5b5061021e610bf8565b34801561046957600080fd5b50610235600435610c47565b34801561048157600080fd5b50610329600435602435610c62565b34801561049c57600080fd5b50610373600160a060020a0360043516602435610ce4565b3480156104c057600080fd5b50610235600435610d39565b3480156104d857600080fd5b5061021e600435602435604435606435610d54565b3480156104f957600080fd5b5061021e600435610e2c565b34801561051157600080fd5b5061021e600160a060020a0360043516602435610e48565b34801561053557600080fd5b5061021e600160a060020a0360043516610ea2565b34801561055657600080fd5b50610329610ef0565b34801561056b57600080fd5b5061021e610f00565b34801561058057600080fd5b50610235600435610f54565b34801561059857600080fd5b5061021e600160a060020a0360043516610f7d565b3480156105b957600080fd5b5061021e600435602435611030565b3480156105d457600080fd5b50610373600160a060020a0360043516611225565b3480156105f557600080fd5b5061021e611240565b34801561060a57600080fd5b506103736004356112c0565b34801561062257600080fd5b5061021e61154c565b34801561063757600080fd5b50610266611635565b34801561064c57600080fd5b50610658600435611690565b6040805163ffffffff9092168252519081900360200190f35b34801561067d57600080fd5b506102356004356116bd565b34801561069557600080fd5b5061021e600160a060020a03600435166024356116d8565b3480156106b957600080fd5b50610235611724565b3480156106ce57600080fd5b50610373611733565b3480156106e357600080fd5b50610329600435611739565b3480156106fb57600080fd5b50610235611808565b61021e600435602435611817565b34801561071e57600080fd5b50610235611a4d565b61021e600435602435611a5c565b600254600160a060020a0316331461074c57600080fd5b60025460a060020a900460ff161561076357600080fd5b61076d3083611b13565b151561077857600080fd5b610783308284611b33565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b505050505081565b60025460a060020a900460ff161561083b57600080fd5b6108453382611b13565b151561085057600080fd5b61085a8183611c0c565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146108c257600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090357600080fd5b505af1158015610917573d6000803e3d6000fd5b505050506040513d602081101561092d57600080fd5b5051151561093a57600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff161561098d57600080fd5b6109973382611c3a565b15156109a257600080fd5b6109ac8382611b13565b15156109b757600080fd5b6109c2838383611b33565b505050565b60008054600160a060020a031633146109df57600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610a9157600080fd5b600160a060020a0381161515610aa657600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610adf57600080fd5b600160a060020a0381161515610af457600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610b2d57600080fd5b610b373385611b13565b1515610b4257600080fd5b600e54610b59908590600160a060020a0316611c0c565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610c0f57600080fd5b60025460a060020a900460ff161515610c2757600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008080808511610c7257600080fd5b60008411610c7f57600080fd5b6005805486908110610c8d57fe5b90600052602060002090600202019150600584815481101515610cac57fe5b90600052602060002090600202019050610cc882868387611c5a565b8015610cd95750610cd98486611dda565b92505b505092915050565b60008060015b610cf261095d565b81116101f557600081815260066020526040902054600160a060020a0386811691161415610d315783821415610d2a57809250610cdc565b6001909101905b600101610cea565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610d6b57600080fd5b610d753385611b13565b1515610d8057600080fd5b610d8984611739565b1515610d9457600080fd5b600f54610dab908590600160a060020a0316611c0c565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b600254600160a060020a03163314610e4357600080fd5b600c55565b60025460a060020a900460ff1615610e5f57600080fd5b610e693382611b13565b1515610e7457600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610eb957600080fd5b600160a060020a0381161515610ece57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a03163314610f1757600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f51573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a0316801515610f7857600080fd5b919050565b60008054600160a060020a03163314610f9557600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050506040513d602081101561100057600080fd5b5051151561100d57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff161561104c57600080fd5b6110563385611b13565b151561106157600080fd5b61106b8385611dda565b151561107657600080fd5b600580548590811061108457fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290925061112f90611e2f565b151561113a57600080fd5b600580548490811061114857fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529091506111f390611e2f565b15156111fe57600080fd5b61120a82858386611c5a565b151561121557600080fd5b61121f8484611e5f565b50505050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a03163314806112635750600054600160a060020a031633145b806112785750600154600160a060020a031633145b151561128357600080fd5b60025460a060020a900460ff161561129a57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600080600080600080600080600260149054906101000a900460ff161515156112e857600080fd5b600580548a9081106112f657fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561132357600080fd5b604080516101008101825288548152600189015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526113b490611f72565b15156113bf57600080fd5b60018701546005805460c060020a90920463ffffffff16975090879081106113e357fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a92839004811696509190041684101561143057600185015460f060020a900461ffff1693505b600d5487548654604080517f8d8b1b880000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915251600160a060020a0390921691638d8b1b88916044808201926020929091908290030181600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050506040513d60208110156114cd57600080fd5b505160008a815260066020526040902054600189810154929550600160a060020a039091169350611516918b9160c060020a90910463ffffffff1690870161ffff168686611fa1565b60019790970180547bffffffff000000000000000000000000000000000000000000000000191690555094979650505050505050565b600254600160a060020a0316331461156357600080fd5b600e60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b50505050600f60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561162157600080fd5b505af115801561121f573d6000803e3d6000fd5b600b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b600381600e811061169d57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156116ef57600080fd5b600160a060020a038216151561170457600080fd5b61170e3382611b13565b151561171957600080fd5b610783338383611b33565b600254600160a060020a031681565b600c5481565b60008080831161174857600080fd5b600580548490811061175657fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290915061180190611e2f565b9392505050565b600e54600160a060020a031681565b60025460009081908190819060a060020a900460ff161561183757600080fd5b6118413386611b13565b151561184c57600080fd5b61185585611739565b151561186057600080fd5b61186a8587612252565b151561187557600080fd5b600f54604080517fc55d0f56000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163c55d0f56916024808201926020929091908290030181600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b5051600c54909450349350600092508401831061192957600c5483039250600191505b600f54604080517f454a2ab3000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163454a2ab3918691602480830192600092919082900301818588803b15801561199057600080fd5b505af11580156119a4573d6000803e3d6000fd5b50505050506119bf8563ffffffff168763ffffffff16611e5f565b8115611a455760058054869081106119d357fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c858260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a15b505050505050565b600d54600160a060020a031681565b60025460009060a060020a900460ff1615611a7657600080fd5b600c54341015611a8557600080fd5b611a8f8383611030565b6005805484908110611a9d57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c838260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a1505050565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260076020908152604080832080546001019055858352600690915290208054600160a060020a0319169091179055831615611bc657600160a060020a03831660009081526007602090815260408083208054600019019055838352600982528083208054600160a060020a03199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000918252600860205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a0391821691161490565b600081841415611c6c57506000611dd2565b6001850154608060020a900463ffffffff16821480611c9b5750600185015460a060020a900463ffffffff1682145b15611ca857506000611dd2565b6001830154608060020a900463ffffffff16841480611cd75750600183015460a060020a900463ffffffff1684145b15611ce457506000611dd2565b6001830154608060020a900463ffffffff161580611d1157506001850154608060020a900463ffffffff16155b15611d1e57506001611dd2565b60018581015490840154608060020a9182900463ffffffff90811692909104161480611d69575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b15611d7657506000611dd2565b6001808601549084015460a060020a900463ffffffff908116608060020a909204161480611dc157506001858101549084015460a060020a9182900463ffffffff9081169290910416145b15611dce57506000611dd2565b5060015b949350505050565b6000818152600660205260408082205484835290822054600160a060020a03918216911680821480610cd95750600085815260096020526040902054600160a060020a03908116908316149250505092915050565b60008160a0015163ffffffff166000148015611e59575042826040015167ffffffffffffffff1611155b92915050565b600080600583815481101515611e7157fe5b90600052602060002090600202019150600584815481101515611e9057fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050611ee0826122a1565b611ee9816122a1565b60008481526009602090815260408083208054600160a060020a0319908116909155868452818420805490911690558683526006825291829020548251600160a060020a0391909116815290810186905280820185905290517f6b4808987a5cecdf67d54ca5dc20664fafca80ef7195097800c12549245ab20d9181900360600190a150505050565b60008160a0015163ffffffff16600014158015611e59575050604001514267ffffffffffffffff909116111590565b6000611fab612373565b600063ffffffff881115611fbe57600080fd5b63ffffffff871115611fcf57600080fd5b61ffff861115611fde57600080fd5b505060408051610100810182528481524267ffffffffffffffff90811660208301908152600093830184815263ffffffff8b8116606086019081528b82166080870190815260a0870188815260c0880189815261ffff8e811660e08b01908152600580546001810182559c528a517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060028e029081019190915598517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1909901805498519651955194519351915167ffffffffffffffff19909916998b16999099176fffffffffffffffff000000000000000019166801000000000000000096909a16959095029890981773ffffffff000000000000000000000000000000001916608060020a938616939093029290921777ffffffff0000000000000000000000000000000000000000191660a060020a91851691909102177bffffffff000000000000000000000000000000000000000000000000191660c060020a91841691909102177fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e060020a91861691909102177dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f060020a92909416919091029290921790559091908111156121d557600080fd5b60608281015160808085015185516040805187815263ffffffff95861660208201529490921684830152938301939093529151600160a060020a038716927f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5928290030190a261224760008583611b33565b979650505050505050565b600080600060058581548110151561226657fe5b9060005260206000209060020201915060058481548110151561228557fe5b90600052602060002090600202019050610cd982868387611c5a565b600181015460039060e060020a900461ffff16600e81106122be57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1642018160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d81600101601c9054906101000a900461ffff1661ffff161015610f51576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff90921691909117905550565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152905600a165627a7a72305820ac49117d816ea70975855e982d734e5af0c4486800279018e819d0649808e0d80029", "deployedBytecode": "0x6080604052600436106101f55763ffffffff60e060020a600035041663030c474181146101fa5780630519ce791461022057806306fdde0314610251578063095ea7b3146102db5780630a0f8168146102ff5780631051db341461031457806314001f4c1461033d57806318160ddd1461035e57806321717ebf1461038557806323b872dd1461039a57806324e7a38a146103c457806327d7874c146103e55780632ba73c15146104065780633d7d3f5a146104275780633f4ba83a1461044857806346116e6f1461045d57806346d22c70146104755780634707f44f14610490578063481af3d3146104b45780634ad8c938146104cc5780634b85fd55146104ed5780634dfff04f146105055780634e0a3379146105295780635c975abb1461054a5780635fd8c7101461055f5780636352211e146105745780636fbde40d1461058c5780637004fb84146105ad57806370a08231146105c85780638456cb59146105e957806388c2a0bf146105fe57806391876e571461061657806395d89b411461062b5780639d6fac6f14610640578063a45f4bfc14610671578063a9059cbb14610689578063b047fb50146106ad578063b0c35c05146106c2578063d3e6f49f146106d7578063e6cbe351146106ef578063ed60ade614610704578063f2b47d5214610712578063f7d8c88314610727575b600080fd5b34801561020657600080fd5b5061021e600435600160a060020a0360243516610735565b005b34801561022c57600080fd5b50610235610787565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610796565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a0578181015183820152602001610288565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e757600080fd5b5061021e600160a060020a0360043516602435610824565b34801561030b57600080fd5b50610235610896565b34801561032057600080fd5b506103296108a5565b604080519115158252519081900360200190f35b34801561034957600080fd5b5061021e600160a060020a03600435166108aa565b34801561036a57600080fd5b5061037361095d565b60408051918252519081900360200190f35b34801561039157600080fd5b50610235610967565b3480156103a657600080fd5b5061021e600160a060020a0360043581169060243516604435610976565b3480156103d057600080fd5b5061021e600160a060020a03600435166109c7565b3480156103f157600080fd5b5061021e600160a060020a0360043516610a7a565b34801561041257600080fd5b5061021e600160a060020a0360043516610ac8565b34801561043357600080fd5b5061021e600435602435604435606435610b16565b34801561045457600080fd5b5061021e610bf8565b34801561046957600080fd5b50610235600435610c47565b34801561048157600080fd5b50610329600435602435610c62565b34801561049c57600080fd5b50610373600160a060020a0360043516602435610ce4565b3480156104c057600080fd5b50610235600435610d39565b3480156104d857600080fd5b5061021e600435602435604435606435610d54565b3480156104f957600080fd5b5061021e600435610e2c565b34801561051157600080fd5b5061021e600160a060020a0360043516602435610e48565b34801561053557600080fd5b5061021e600160a060020a0360043516610ea2565b34801561055657600080fd5b50610329610ef0565b34801561056b57600080fd5b5061021e610f00565b34801561058057600080fd5b50610235600435610f54565b34801561059857600080fd5b5061021e600160a060020a0360043516610f7d565b3480156105b957600080fd5b5061021e600435602435611030565b3480156105d457600080fd5b50610373600160a060020a0360043516611225565b3480156105f557600080fd5b5061021e611240565b34801561060a57600080fd5b506103736004356112c0565b34801561062257600080fd5b5061021e61154c565b34801561063757600080fd5b50610266611635565b34801561064c57600080fd5b50610658600435611690565b6040805163ffffffff9092168252519081900360200190f35b34801561067d57600080fd5b506102356004356116bd565b34801561069557600080fd5b5061021e600160a060020a03600435166024356116d8565b3480156106b957600080fd5b50610235611724565b3480156106ce57600080fd5b50610373611733565b3480156106e357600080fd5b50610329600435611739565b3480156106fb57600080fd5b50610235611808565b61021e600435602435611817565b34801561071e57600080fd5b50610235611a4d565b61021e600435602435611a5c565b600254600160a060020a0316331461074c57600080fd5b60025460a060020a900460ff161561076357600080fd5b61076d3083611b13565b151561077857600080fd5b610783308284611b33565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b505050505081565b60025460a060020a900460ff161561083b57600080fd5b6108453382611b13565b151561085057600080fd5b61085a8183611c0c565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146108c257600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090357600080fd5b505af1158015610917573d6000803e3d6000fd5b505050506040513d602081101561092d57600080fd5b5051151561093a57600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff161561098d57600080fd5b6109973382611c3a565b15156109a257600080fd5b6109ac8382611b13565b15156109b757600080fd5b6109c2838383611b33565b505050565b60008054600160a060020a031633146109df57600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610a9157600080fd5b600160a060020a0381161515610aa657600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610adf57600080fd5b600160a060020a0381161515610af457600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610b2d57600080fd5b610b373385611b13565b1515610b4257600080fd5b600e54610b59908590600160a060020a0316611c0c565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610c0f57600080fd5b60025460a060020a900460ff161515610c2757600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008080808511610c7257600080fd5b60008411610c7f57600080fd5b6005805486908110610c8d57fe5b90600052602060002090600202019150600584815481101515610cac57fe5b90600052602060002090600202019050610cc882868387611c5a565b8015610cd95750610cd98486611dda565b92505b505092915050565b60008060015b610cf261095d565b81116101f557600081815260066020526040902054600160a060020a0386811691161415610d315783821415610d2a57809250610cdc565b6001909101905b600101610cea565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610d6b57600080fd5b610d753385611b13565b1515610d8057600080fd5b610d8984611739565b1515610d9457600080fd5b600f54610dab908590600160a060020a0316611c0c565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b600254600160a060020a03163314610e4357600080fd5b600c55565b60025460a060020a900460ff1615610e5f57600080fd5b610e693382611b13565b1515610e7457600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610eb957600080fd5b600160a060020a0381161515610ece57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a03163314610f1757600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f51573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a0316801515610f7857600080fd5b919050565b60008054600160a060020a03163314610f9557600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050506040513d602081101561100057600080fd5b5051151561100d57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff161561104c57600080fd5b6110563385611b13565b151561106157600080fd5b61106b8385611dda565b151561107657600080fd5b600580548590811061108457fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290925061112f90611e2f565b151561113a57600080fd5b600580548490811061114857fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529091506111f390611e2f565b15156111fe57600080fd5b61120a82858386611c5a565b151561121557600080fd5b61121f8484611e5f565b50505050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a03163314806112635750600054600160a060020a031633145b806112785750600154600160a060020a031633145b151561128357600080fd5b60025460a060020a900460ff161561129a57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600080600080600080600080600260149054906101000a900460ff161515156112e857600080fd5b600580548a9081106112f657fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561132357600080fd5b604080516101008101825288548152600189015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526113b490611f72565b15156113bf57600080fd5b60018701546005805460c060020a90920463ffffffff16975090879081106113e357fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a92839004811696509190041684101561143057600185015460f060020a900461ffff1693505b600d5487548654604080517f8d8b1b880000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915251600160a060020a0390921691638d8b1b88916044808201926020929091908290030181600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050506040513d60208110156114cd57600080fd5b505160008a815260066020526040902054600189810154929550600160a060020a039091169350611516918b9160c060020a90910463ffffffff1690870161ffff168686611fa1565b60019790970180547bffffffff000000000000000000000000000000000000000000000000191690555094979650505050505050565b600254600160a060020a0316331461156357600080fd5b600e60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b50505050600f60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561162157600080fd5b505af115801561121f573d6000803e3d6000fd5b600b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b600381600e811061169d57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156116ef57600080fd5b600160a060020a038216151561170457600080fd5b61170e3382611b13565b151561171957600080fd5b610783338383611b33565b600254600160a060020a031681565b600c5481565b60008080831161174857600080fd5b600580548490811061175657fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290915061180190611e2f565b9392505050565b600e54600160a060020a031681565b60025460009081908190819060a060020a900460ff161561183757600080fd5b6118413386611b13565b151561184c57600080fd5b61185585611739565b151561186057600080fd5b61186a8587612252565b151561187557600080fd5b600f54604080517fc55d0f56000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163c55d0f56916024808201926020929091908290030181600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b5051600c54909450349350600092508401831061192957600c5483039250600191505b600f54604080517f454a2ab3000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163454a2ab3918691602480830192600092919082900301818588803b15801561199057600080fd5b505af11580156119a4573d6000803e3d6000fd5b50505050506119bf8563ffffffff168763ffffffff16611e5f565b8115611a455760058054869081106119d357fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c858260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a15b505050505050565b600d54600160a060020a031681565b60025460009060a060020a900460ff1615611a7657600080fd5b600c54341015611a8557600080fd5b611a8f8383611030565b6005805484908110611a9d57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c838260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a1505050565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260076020908152604080832080546001019055858352600690915290208054600160a060020a031916909117905583161