[ { "inputs": [ { "internalType": "string", "name": "_baseUri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "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": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "counter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "forceBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLootboxesOpened", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "holders", "type": "address[]" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "initializeHolders", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lootboxesOpened", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bool", "name": "lootboxOpened", "type": "bool" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "lootboxOpened", "type": "bool" } ], "name": "mintBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseUri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260016008555f600955348015610018575f80fd5b50604051613434380380613434833981810160405281019061003a919061036e565b336040518060400160405280601481526020017f426f6e65732043686172616374657220536b696e0000000000000000000000008152506040518060400160405280600381526020017f4243530000000000000000000000000000000000000000000000000000000000815250815f90816100b591906105c2565b5080600190816100c591906105c2565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610138575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161012f91906106d0565b60405180910390fd5b6101478161015e60201b60201c565b5080600a908161015791906105c2565b50506106e9565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102808261023a565b810181811067ffffffffffffffff8211171561029f5761029e61024a565b5b80604052505050565b5f6102b1610221565b90506102bd8282610277565b919050565b5f67ffffffffffffffff8211156102dc576102db61024a565b5b6102e58261023a565b9050602081019050919050565b8281835e5f83830152505050565b5f61031261030d846102c2565b6102a8565b90508281526020810184848401111561032e5761032d610236565b5b6103398482856102f2565b509392505050565b5f82601f83011261035557610354610232565b5b8151610365848260208601610300565b91505092915050565b5f602082840312156103835761038261022a565b5b5f82015167ffffffffffffffff8111156103a05761039f61022e565b5b6103ac84828501610341565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061040357607f821691505b602082108103610416576104156103bf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261043d565b610482868361043d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104c66104c16104bc8461049a565b6104a3565b61049a565b9050919050565b5f819050919050565b6104df836104ac565b6104f36104eb826104cd565b848454610449565b825550505050565b5f90565b6105076104fb565b6105128184846104d6565b505050565b5b818110156105355761052a5f826104ff565b600181019050610518565b5050565b601f82111561057a5761054b8161041c565b6105548461042e565b81016020851015610563578190505b61057761056f8561042e565b830182610517565b50505b505050565b5f82821c905092915050565b5f61059a5f198460080261057f565b1980831691505092915050565b5f6105b2838361058b565b9150826002028217905092915050565b6105cb826103b5565b67ffffffffffffffff8111156105e4576105e361024a565b5b6105ee82546103ec565b6105f9828285610539565b5f60209050601f83116001811461062a575f8415610618578287015190505b61062285826105a7565b865550610689565b601f1984166106388661041c565b5f5b8281101561065f5784890151825560018201915060208501945060208101905061063a565b8683101561067c5784890151610678601f89168261058b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ba82610691565b9050919050565b6106ca816106b0565b82525050565b5f6020820190506106e35f8301846106c1565b92915050565b612d3e806106f65f395ff3fe608060405234801561000f575f80fd5b50600436106101c2575f3560e01c806361bc221a116100f7578063a22cb46511610095578063bd917b9b1161006f578063bd917b9b146104ca578063c87b56dd146104fa578063e985e9c51461052a578063f2fde38b1461055a576101c2565b8063a22cb46514610474578063b3877cf314610490578063b88d4fde146104ae576101c2565b806370a08231116100d157806370a08231146103fe578063715018a61461042e5780638da5cb5b1461043857806395d89b4114610456576101c2565b806361bc221a146103925780636352211e146103b05780636c0360eb146103e0576101c2565b80632097d3fb1161016457806331c10da31161013e57806331c10da31461032257806342842e0e1461033e57806342966c681461035a57806355f804b314610376576101c2565b80632097d3fb146102b857806323b872dd146102e85780632568688614610304576101c2565b8063081812fc116101a0578063081812fc14610232578063095ea7b314610262578063124d70c41461027e57806318160ddd1461029a576101c2565b806301ffc9a7146101c6578063047fc9aa146101f657806306fdde0314610214575b5f80fd5b6101e060048036038101906101db9190611ede565b610576565b6040516101ed9190611f23565b60405180910390f35b6101fe610657565b60405161020b9190611f54565b60405180910390f35b61021c61065d565b6040516102299190611fdd565b60405180910390f35b61024c60048036038101906102479190612027565b6106ec565b6040516102599190612091565b60405180910390f35b61027c600480360381019061027791906120d4565b610707565b005b610298600480360381019061029391906121c8565b61071d565b005b6102a261081b565b6040516102af9190611f54565b60405180910390f35b6102d260048036038101906102cd9190612270565b610824565b6040516102df9190611f54565b60405180910390f35b61030260048036038101906102fd91906122ae565b610897565b005b61030c610996565b6040516103199190611f54565b60405180910390f35b61033c60048036038101906103379190612027565b61099c565b005b610358600480360381019061035391906122ae565b6109c7565b005b610374600480360381019061036f9190612027565b6109e6565b005b610390600480360381019061038b9190612426565b610a48565b005b61039a610a63565b6040516103a79190611f54565b60405180910390f35b6103ca60048036038101906103c59190612027565b610a69565b6040516103d79190612091565b60405180910390f35b6103e8610a7a565b6040516103f59190611fdd565b60405180910390f35b6104186004803603810190610413919061246d565b610b06565b6040516104259190611f54565b60405180910390f35b610436610bbc565b005b610440610bcf565b60405161044d9190612091565b60405180910390f35b61045e610bf7565b60405161046b9190611fdd565b60405180910390f35b61048e60048036038101906104899190612270565b610c87565b005b610498610c9d565b6040516104a59190611f54565b60405180910390f35b6104c860048036038101906104c39190612536565b610ca6565b005b6104e460048036038101906104df91906125b6565b610cc3565b6040516104f191906126bd565b60405180910390f35b610514600480360381019061050f9190612027565b610d6a565b6040516105219190611fdd565b60405180910390f35b610544600480360381019061053f91906126dd565b610d7c565b6040516105519190611f23565b60405180910390f35b610574600480360381019061056f919061246d565b610e0a565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610650575061064f82610e8e565b5b9050919050565b60075481565b60605f805461066b90612748565b80601f016020809104026020016040519081016040528092919081815260200182805461069790612748565b80156106e25780601f106106b9576101008083540402835291602001916106e2565b820191905f5260205f20905b8154815290600101906020018083116106c557829003601f168201915b5050505050905090565b5f6106f682610ef7565b5061070082610f7d565b9050919050565b6107198282610714610fb6565b610fbd565b5050565b610725610fcf565b81819050848490501461076d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610764906127c2565b60405180910390fd5b5f5b84849050811015610814576107c48585838181106107905761078f6127e0565b5b90506020020160208101906107a5919061246d565b8484848181106107b8576107b76127e0565b5b90506020020135611056565b60018383838181106107d9576107d86127e0565b5b905060200201356107ea919061283a565b60088190555060075f8154809291906108029061286d565b9190505550808060010191505061076f565b5050505050565b5f600754905090565b5f61082d610fcf565b5f6008549050600160085f828254610845919061283a565b925050819055506108568482611056565b60075f8154809291906108689061286d565b9190505550821561088d57600160095f828254610885919061283a565b925050819055505b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610907575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016108fe9190612091565b60405180910390fd5b5f61091a8383610915610fb6565b611073565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610990578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610987939291906128b4565b60405180910390fd5b50505050565b60095481565b6109a4610fcf565b6109ad8161127e565b60075f8154809291906109bf906128e9565b919050555050565b6109e183838360405180602001604052805f815250610ca6565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16610a0682610a69565b73ffffffffffffffffffffffffffffffffffffffff1614610a25575f80fd5b610a2e8161127e565b60075f815480929190610a40906128e9565b919050555050565b610a50610fcf565b80600a9081610a5f9190612aad565b5050565b60085481565b5f610a7382610ef7565b9050919050565b600a8054610a8790612748565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab390612748565b8015610afe5780601f10610ad557610100808354040283529160200191610afe565b820191905f5260205f20905b815481529060010190602001808311610ae157829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b77575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b6e9190612091565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bc4610fcf565b610bcd5f611300565b565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c0690612748565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3290612748565b8015610c7d5780601f10610c5457610100808354040283529160200191610c7d565b820191905f5260205f20905b815481529060010190602001808311610c6057829003601f168201915b5050505050905090565b610c99610c92610fb6565b83836113c3565b5050565b5f600954905090565b610cb1848484610897565b610cbd8484848461152c565b50505050565b6060610ccd610fcf565b5f8367ffffffffffffffff811115610ce857610ce7612302565b5b604051908082528060200260200182016040528015610d165781602001602082028036833780820191505090505b5090505f5b84811015610d5e575f610d2e8786610824565b905080838381518110610d4457610d436127e0565b5b602002602001018181525050508080600101915050610d1b565b50809150509392505050565b6060610d75826116de565b9050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610e12610fcf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e82575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e799190612091565b60405180910390fd5b610e8b81611300565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80610f0283611744565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f7457826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610f6b9190611f54565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610fca838383600161177d565b505050565b610fd7610fb6565b73ffffffffffffffffffffffffffffffffffffffff16610ff5610bcf565b73ffffffffffffffffffffffffffffffffffffffff161461105457611018610fb6565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161104b9190612091565b60405180910390fd5b565b61106f828260405180602001604052805f81525061193c565b5050565b5f8061107e84611744565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110bf576110be818486611957565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461114a576110fe5f855f8061177d565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146111c957600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f61128a5f835f611073565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112fc57816040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016112f39190611f54565b60405180910390fd5b5050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143357816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161142a9190612091565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161151f9190611f23565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156116d8578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261156f610fb6565b8685856040518563ffffffff1660e01b81526004016115919493929190612bce565b6020604051808303815f875af19250505080156115cc57506040513d601f19601f820116820180604052508101906115c99190612c2c565b60015b61164d573d805f81146115fa576040519150601f19603f3d011682016040523d82523d5f602084013e6115ff565b606091505b505f81510361164557836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161163c9190612091565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116d657836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116cd9190612091565b60405180910390fd5b505b50505050565b60606116e982610ef7565b505f6116f3611a1a565b90505f8151116117115760405180602001604052805f81525061173c565b8061171b84611aaa565b60405160200161172c929190612c91565b6040516020818303038152906040525b915050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806117b557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118e7575f6117c484610ef7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561182e57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611841575061183f8184610d7c565b155b1561188357826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161187a9190612091565b60405180910390fd5b81156118e557838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6119468383611b74565b6119525f84848461152c565b505050565b611962838383611c67565b611a15575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d657806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016119cd9190611f54565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611a0c929190612cb4565b60405180910390fd5b505050565b6060600a8054611a2990612748565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5590612748565b8015611aa05780601f10611a7757610100808354040283529160200191611aa0565b820191905f5260205f20905b815481529060010190602001808311611a8357829003601f168201915b5050505050905090565b60605f6001611ab884611d27565b0190505f8167ffffffffffffffff811115611ad657611ad5612302565b5b6040519080825280601f01601f191660200182016040528015611b085781602001600182028036833780820191505090505b5090505f82602001820190505b600115611b69578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611b5e57611b5d612cdb565b5b0494505f8503611b15575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611be4575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611bdb9190612091565b60405180910390fd5b5f611bf083835f611073565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611c62575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611c599190612091565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d1e57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611cdf5750611cde8484610d7c565b5b80611d1d57508273ffffffffffffffffffffffffffffffffffffffff16611d0583610f7d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611d83577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611d7957611d78612cdb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611dc0576d04ee2d6d415b85acef81000000008381611db657611db5612cdb565b5b0492506020810190505b662386f26fc100008310611def57662386f26fc100008381611de557611de4612cdb565b5b0492506010810190505b6305f5e1008310611e18576305f5e1008381611e0e57611e0d612cdb565b5b0492506008810190505b6127108310611e3d576127108381611e3357611e32612cdb565b5b0492506004810190505b60648310611e605760648381611e5657611e55612cdb565b5b0492506002810190505b600a8310611e6f576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ebd81611e89565b8114611ec7575f80fd5b50565b5f81359050611ed881611eb4565b92915050565b5f60208284031215611ef357611ef2611e81565b5b5f611f0084828501611eca565b91505092915050565b5f8115159050919050565b611f1d81611f09565b82525050565b5f602082019050611f365f830184611f14565b92915050565b5f819050919050565b611f4e81611f3c565b82525050565b5f602082019050611f675f830184611f45565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611faf82611f6d565b611fb98185611f77565b9350611fc9818560208601611f87565b611fd281611f95565b840191505092915050565b5f6020820190508181035f830152611ff58184611fa5565b905092915050565b61200681611f3c565b8114612010575f80fd5b50565b5f8135905061202181611ffd565b92915050565b5f6020828403121561203c5761203b611e81565b5b5f61204984828501612013565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61207b82612052565b9050919050565b61208b81612071565b82525050565b5f6020820190506120a45f830184612082565b92915050565b6120b381612071565b81146120bd575f80fd5b50565b5f813590506120ce816120aa565b92915050565b5f80604083850312156120ea576120e9611e81565b5b5f6120f7858286016120c0565b925050602061210885828601612013565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261213357612132612112565b5b8235905067ffffffffffffffff8111156121505761214f612116565b5b60208301915083602082028301111561216c5761216b61211a565b5b9250929050565b5f8083601f84011261218857612187612112565b5b8235905067ffffffffffffffff8111156121a5576121a4612116565b5b6020830191508360208202830111156121c1576121c061211a565b5b9250929050565b5f805f80604085870312156121e0576121df611e81565b5b5f85013567ffffffffffffffff8111156121fd576121fc611e85565b5b6122098782880161211e565b9450945050602085013567ffffffffffffffff81111561222c5761222b611e85565b5b61223887828801612173565b925092505092959194509250565b61224f81611f09565b8114612259575f80fd5b50565b5f8135905061226a81612246565b92915050565b5f806040838503121561228657612285611e81565b5b5f612293858286016120c0565b92505060206122a48582860161225c565b9150509250929050565b5f805f606084860312156122c5576122c4611e81565b5b5f6122d2868287016120c0565b93505060206122e3868287016120c0565b92505060406122f486828701612013565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61233882611f95565b810181811067ffffffffffffffff8211171561235757612356612302565b5b80604052505050565b5f612369611e78565b9050612375828261232f565b919050565b5f67ffffffffffffffff82111561239457612393612302565b5b61239d82611f95565b9050602081019050919050565b828183375f83830152505050565b5f6123ca6123c58461237a565b612360565b9050828152602081018484840111156123e6576123e56122fe565b5b6123f18482856123aa565b509392505050565b5f82601f83011261240d5761240c612112565b5b813561241d8482602086016123b8565b91505092915050565b5f6020828403121561243b5761243a611e81565b5b5f82013567ffffffffffffffff81111561245857612457611e85565b5b612464848285016123f9565b91505092915050565b5f6020828403121561248257612481611e81565b5b5f61248f848285016120c0565b91505092915050565b5f67ffffffffffffffff8211156124b2576124b1612302565b5b6124bb82611f95565b9050602081019050919050565b5f6124da6124d584612498565b612360565b9050828152602081018484840111156124f6576124f56122fe565b5b6125018482856123aa565b509392505050565b5f82601f83011261251d5761251c612112565b5b813561252d8482602086016124c8565b91505092915050565b5f805f806080858703121561254e5761254d611e81565b5b5f61255b878288016120c0565b945050602061256c878288016120c0565b935050604061257d87828801612013565b925050606085013567ffffffffffffffff81111561259e5761259d611e85565b5b6125aa87828801612509565b91505092959194509250565b5f805f606084860312156125cd576125cc611e81565b5b5f6125da868287016120c0565b93505060206125eb86828701612013565b92505060406125fc8682870161225c565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61263881611f3c565b82525050565b5f612649838361262f565b60208301905092915050565b5f602082019050919050565b5f61266b82612606565b6126758185612610565b935061268083612620565b805f5b838110156126b0578151612697888261263e565b97506126a283612655565b925050600181019050612683565b5085935050505092915050565b5f6020820190508181035f8301526126d58184612661565b905092915050565b5f80604083850312156126f3576126f2611e81565b5b5f612700858286016120c0565b9250506020612711858286016120c0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061275f57607f821691505b6020821081036127725761277161271b565b5b50919050565b7f4d69736d61746368656420617272617973206c656e67746800000000000000005f82015250565b5f6127ac601883611f77565b91506127b782612778565b602082019050919050565b5f6020820190508181035f8301526127d9816127a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61284482611f3c565b915061284f83611f3c565b92508282019050808211156128675761286661280d565b5b92915050565b5f61287782611f3c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128a9576128a861280d565b5b600182019050919050565b5f6060820190506128c75f830186612082565b6128d46020830185611f45565b6128e16040830184612082565b949350505050565b5f6128f382611f3c565b91505f82036129055761290461280d565b5b600182039050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261296c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612931565b6129768683612931565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6129b16129ac6129a784611f3c565b61298e565b611f3c565b9050919050565b5f819050919050565b6129ca83612997565b6129de6129d6826129b8565b84845461293d565b825550505050565b5f90565b6129f26129e6565b6129fd8184846129c1565b505050565b5b81811015612a2057612a155f826129ea565b600181019050612a03565b5050565b601f821115612a6557612a3681612910565b612a3f84612922565b81016020851015612a4e578190505b612a62612a5a85612922565b830182612a02565b50505b505050565b5f82821c905092915050565b5f612a855f1984600802612a6a565b1980831691505092915050565b5f612a9d8383612a76565b9150826002028217905092915050565b612ab682611f6d565b67ffffffffffffffff811115612acf57612ace612302565b5b612ad98254612748565b612ae4828285612a24565b5f60209050601f831160018114612b15575f8415612b03578287015190505b612b0d8582612a92565b865550612b74565b601f198416612b2386612910565b5f5b82811015612b4a57848901518255600182019150602085019450602081019050612b25565b86831015612b675784890151612b63601f891682612a76565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f612ba082612b7c565b612baa8185612b86565b9350612bba818560208601611f87565b612bc381611f95565b840191505092915050565b5f608082019050612be15f830187612082565b612bee6020830186612082565b612bfb6040830185611f45565b8181036060830152612c0d8184612b96565b905095945050505050565b5f81519050612c2681611eb4565b92915050565b5f60208284031215612c4157612c40611e81565b5b5f612c4e84828501612c18565b91505092915050565b5f81905092915050565b5f612c6b82611f6d565b612c758185612c57565b9350612c85818560208601611f87565b80840191505092915050565b5f612c9c8285612c61565b9150612ca88284612c61565b91508190509392505050565b5f604082019050612cc75f830185612082565b612cd46020830184611f45565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea2646970667358221220185c2d93fa45e2627edfc85685bbadf94bf80bb78410698b869dbabbaa7c60fa64736f6c634300081900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f706c6179626f6e65732e78797a2f6170692f736b696e732f636861726163746572732f6d65746164617461732f0000000000000000000000
0xa2646970667358221220185c2d93fa45e2627edfc85685bbadf94bf80bb78410698b869dbabbaa7c60fa64736f6c634300081900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f706c6179626f6e65732e78797a2f6170692f736b696e732f636861726163746572732f6d65746164617461732f0000000000000000000000