Loading
[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "deleteDefaultRoyalty", "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": [ { "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": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "tokenURI_", "type": "string" } ], "name": "mint", "outputs": [], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "postSetTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "basisPoints", "type": "uint96" } ], "name": "setTokenRoyalty", "outputs": [], "stateMutability": "nonpayable", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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" } ]
60806040523480156200001157600080fd5b5060405162004958380380620049588339818101604052810190620000379190620003b0565b818181600290805190602001906200005192919062000163565b5080600390805190602001906200006a92919062000163565b5050506200008d620000816200009560201b60201c565b6200009d60201b60201c565b505062000499565b600033905090565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001719062000464565b90600052602060002090601f016020900481019282620001955760008555620001e1565b82601f10620001b057805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e0578251825591602001919060010190620001c3565b5b509050620001f09190620001f4565b5090565b5b808211156200020f576000816000905550600101620001f5565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200027c8262000231565b810181811067ffffffffffffffff821117156200029e576200029d62000242565b5b80604052505050565b6000620002b362000213565b9050620002c1828262000271565b919050565b600067ffffffffffffffff821115620002e457620002e362000242565b5b620002ef8262000231565b9050602081019050919050565b60005b838110156200031c578082015181840152602081019050620002ff565b838111156200032c576000848401525b50505050565b6000620003496200034384620002c6565b620002a7565b9050828152602081018484840111156200036857620003676200022c565b5b62000375848285620002fc565b509392505050565b600082601f83011262000395576200039462000227565b5b8151620003a784826020860162000332565b91505092915050565b60008060408385031215620003ca57620003c96200021d565b5b600083015167ffffffffffffffff811115620003eb57620003ea62000222565b5b620003f9858286016200037d565b925050602083015167ffffffffffffffff8111156200041d576200041c62000222565b5b6200042b858286016200037d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200047d57607f821691505b60208210810362000493576200049262000435565b5b50919050565b6144af80620004a96000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635944c753116100de578063a22cb46511610097578063c87b56dd11610071578063c87b56dd1461046c578063d3fc98641461049c578063e985e9c5146104b8578063f2fde38b146104e85761018e565b8063a22cb4651461042a578063aa1b103f14610446578063b88d4fde146104505761018e565b80635944c753146103685780636352211e1461038457806370a08231146103b4578063715018a6146103e45780638da5cb5b146103ee57806395d89b411461040c5761018e565b806323b872dd1161014b57806342842e0e1161012557806342842e0e146102e45780634f6ccce71461030057806355f804b314610330578063579970811461034c5761018e565b806323b872dd146102675780632a55205a146102835780632f745c59146102b45761018e565b806301ffc9a71461019357806304634d8d146101c357806306fdde03146101df578063081812fc146101fd578063095ea7b31461022d57806318160ddd14610249575b600080fd5b6101ad60048036038101906101a89190612c98565b610504565b6040516101ba9190612ce0565b60405180910390f35b6101dd60048036038101906101d89190612d9d565b610526565b005b6101e76105b0565b6040516101f49190612e76565b60405180910390f35b61021760048036038101906102129190612ece565b610642565b6040516102249190612f0a565b60405180910390f35b61024760048036038101906102429190612f25565b6106c7565b005b6102516107de565b60405161025e9190612f74565b60405180910390f35b610281600480360381019061027c9190612f8f565b6107eb565b005b61029d60048036038101906102989190612fe2565b61084b565b6040516102ab929190613022565b60405180910390f35b6102ce60048036038101906102c99190612f25565b610a35565b6040516102db9190612f74565b60405180910390f35b6102fe60048036038101906102f99190612f8f565b610ada565b005b61031a60048036038101906103159190612ece565b610afa565b6040516103279190612f74565b60405180910390f35b61034a60048036038101906103459190613180565b610b6b565b005b610366600480360381019061036191906131c9565b610c01565b005b610382600480360381019061037d9190613225565b610cf1565b005b61039e60048036038101906103999190612ece565b610d7d565b6040516103ab9190612f0a565b60405180910390f35b6103ce60048036038101906103c99190613278565b610e2e565b6040516103db9190612f74565b60405180910390f35b6103ec610ee5565b005b6103f6610f6d565b6040516104039190612f0a565b60405180910390f35b610414610f97565b6040516104219190612e76565b60405180910390f35b610444600480360381019061043f91906132d1565b611029565b005b61044e6111a9565b005b61046a600480360381019061046591906133b2565b61122f565b005b61048660048036038101906104819190612ece565b611291565b6040516104939190612e76565b60405180910390f35b6104b660048036038101906104b19190613435565b611403565b005b6104d260048036038101906104cd91906134a4565b611498565b6040516104df9190612ce0565b60405180910390f35b61050260048036038101906104fd9190613278565b61152c565b005b600061050f82611623565b8061051f575061051e8261169d565b5b9050919050565b61052e6116af565b73ffffffffffffffffffffffffffffffffffffffff1661054c610f6d565b73ffffffffffffffffffffffffffffffffffffffff16146105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059990613530565b60405180910390fd5b6105ac82826116b7565b5050565b6060600280546105bf9061357f565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb9061357f565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b5050505050905090565b600061064d8261184b565b61068c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068390613622565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106d282610d7d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610742576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610739906136b4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107616116af565b73ffffffffffffffffffffffffffffffffffffffff161480610790575061078f8161078a6116af565b611498565b5b6107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690613746565b60405180910390fd5b6107d983836118b7565b505050565b6000600a80549050905090565b6107fc6107f66116af565b82611970565b61083b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610832906137d8565b60405180910390fd5b610846838383611a4e565b505050565b6000806000600160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036109e05760006040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006109ea611ca9565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610a169190613827565b610a2091906138b0565b90508160000151819350935050509250929050565b6000610a4083610e2e565b8210610a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7890613953565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610af58383836040518060200160405280600081525061122f565b505050565b6000610b046107de565b8210610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c906139e5565b60405180910390fd5b600a8281548110610b5957610b58613a05565b5b90600052602060002001549050919050565b610b736116af565b73ffffffffffffffffffffffffffffffffffffffff16610b91610f6d565b73ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90613530565b60405180910390fd5b80600e9080519060200190610bfd929190612b89565b5050565b610c096116af565b73ffffffffffffffffffffffffffffffffffffffff16610c27610f6d565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490613530565b60405180910390fd5b610c868261184b565b610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90613aa6565b60405180910390fd5b80600d60008481526020019081526020016000209080519060200190610cec929190612b89565b505050565b610cf96116af565b73ffffffffffffffffffffffffffffffffffffffff16610d17610f6d565b73ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490613530565b60405180910390fd5b610d78838383611cb3565b505050565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90613b38565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590613bca565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610eed6116af565b73ffffffffffffffffffffffffffffffffffffffff16610f0b610f6d565b73ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613530565b60405180910390fd5b610f6b6000611e5a565b565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610fa69061357f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd29061357f565b801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b5050505050905090565b6110316116af565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590613c36565b60405180910390fd5b80600760006110ab6116af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166111586116af565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161119d9190612ce0565b60405180910390a35050565b6111b16116af565b73ffffffffffffffffffffffffffffffffffffffff166111cf610f6d565b73ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613530565b60405180910390fd5b61122d611f20565b565b61124061123a6116af565b83611970565b61127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906137d8565b60405180910390fd5b61128b84848484611f6d565b50505050565b606061129c8261184b565b6112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290613cc8565b60405180910390fd5b6000600d600084815260200190815260200160002080546112fb9061357f565b80601f01602080910402602001604051908101604052809291908181526020018280546113279061357f565b80156113745780601f1061134957610100808354040283529160200191611374565b820191906000526020600020905b81548152906001019060200180831161135757829003601f168201915b505050505090506000611385611fc9565b9050600081510361139a5781925050506113fe565b6000825111156113cf5780826040516020016113b7929190613d24565b604051602081830303815290604052925050506113fe565b806113d98561205b565b6040516020016113ea929190613d24565b604051602081830303815290604052925050505b919050565b61140b6116af565b73ffffffffffffffffffffffffffffffffffffffff16611429610f6d565b73ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613530565b60405180910390fd5b61148983836121bb565b6114938282612388565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115346116af565b73ffffffffffffffffffffffffffffffffffffffff16611552610f6d565b73ffffffffffffffffffffffffffffffffffffffff16146115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90613530565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90613dba565b60405180910390fd5b61162081611e5a565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116965750611695826123fc565b5b9050919050565b60006116a882611623565b9050919050565b600033905090565b6116bf611ca9565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111561171d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171490613e4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390613eb8565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff168152506000808201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b60008073ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661192a83610d7d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061197b8261184b565b6119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613f4a565b60405180910390fd5b60006119c583610d7d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a3457508373ffffffffffffffffffffffffffffffffffffffff16611a1c84610642565b73ffffffffffffffffffffffffffffffffffffffff16145b80611a455750611a448185611498565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611a6e82610d7d565b73ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb90613fdc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061406e565b60405180910390fd5b611b3e8383836124de565b611b496000826118b7565b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b99919061408e565b925050819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf091906140c2565b92505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612710905090565b611cbb611ca9565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1090613e4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90614164565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff168152506001600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050565b611f78848484611a4e565b611f84848484846124ee565b611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba906141f6565b60405180910390fd5b50505050565b6060600e8054611fd89061357f565b80601f01602080910402602001604051908101604052809291908181526020018280546120049061357f565b80156120515780601f1061202657610100808354040283529160200191612051565b820191906000526020600020905b81548152906001019060200180831161203457829003601f168201915b5050505050905090565b6060600082036120a2576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506121b6565b600082905060005b600082146120d45780806120bd90614216565b915050600a826120cd91906138b0565b91506120aa565b60008167ffffffffffffffff8111156120f0576120ef613055565b5b6040519080825280601f01601f1916602001820160405280156121225781602001600182028036833780820191505090505b5090505b600085146121af5760018261213b919061408e565b9150600a8561214a919061425e565b603061215691906140c2565b60f81b81838151811061216c5761216b613a05565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121a891906138b0565b9450612126565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612221906142db565b60405180910390fd5b6122338161184b565b15612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a90614347565b60405180910390fd5b61227f600083836124de565b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122cf91906140c2565b92505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6123918261184b565b6123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c790613aa6565b60405180910390fd5b80600d600084815260200190815260200160002090805190602001906123f7929190612b89565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806124c757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806124d757506124d682612675565b5b9050919050565b6124e98383836126ef565b505050565b600061250f8473ffffffffffffffffffffffffffffffffffffffff16612801565b15612668578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026125386116af565b8786866040518563ffffffff1660e01b815260040161255a94939291906143bc565b6020604051808303816000875af192505050801561259657506040513d601f19601f82011682018060405250810190612593919061441d565b60015b612618573d80600081146125c6576040519150601f19603f3d011682016040523d82523d6000602084013e6125cb565b606091505b506000815103612610576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612607906141f6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061266d565b600190505b949350505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806126e857506126e782612814565b5b9050919050565b6126fa83838361287e565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361273c5761273781612883565b61277b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461277a5761277983826128cc565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127bd576127b881612a39565b6127fc565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146127fb576127fa8282612b0a565b5b5b505050565b600080823b905060008111915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b600a80549050600b600083815260200190815260200160002081905550600a81908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016128d984610e2e565b6128e3919061408e565b90506000600960008481526020019081526020016000205490508181146129c8576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816009600083815260200190815260200160002081905550505b6009600084815260200190815260200160002060009055600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600a80549050612a4d919061408e565b90506000600b60008481526020019081526020016000205490506000600a8381548110612a7d57612a7c613a05565b5b9060005260206000200154905080600a8381548110612a9f57612a9e613a05565b5b906000526020600020018190555081600b600083815260200190815260200160002081905550600b600085815260200190815260200160002060009055600a805480612aee57612aed61444a565b5b6001900381819060005260206000200160009055905550505050565b6000612b1583610e2e565b905081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806009600084815260200190815260200160002081905550505050565b828054612b959061357f565b90600052602060002090601f016020900481019282612bb75760008555612bfe565b82601f10612bd057805160ff1916838001178555612bfe565b82800160010185558215612bfe579182015b82811115612bfd578251825591602001919060010190612be2565b5b509050612c0b9190612c0f565b5090565b5b80821115612c28576000816000905550600101612c10565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c7581612c40565b8114612c8057600080fd5b50565b600081359050612c9281612c6c565b92915050565b600060208284031215612cae57612cad612c36565b5b6000612cbc84828501612c83565b91505092915050565b60008115159050919050565b612cda81612cc5565b82525050565b6000602082019050612cf56000830184612cd1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d2682612cfb565b9050919050565b612d3681612d1b565b8114612d4157600080fd5b50565b600081359050612d5381612d2d565b92915050565b60006bffffffffffffffffffffffff82169050919050565b612d7a81612d59565b8114612d8557600080fd5b50565b600081359050612d9781612d71565b92915050565b60008060408385031215612db457612db3612c36565b5b6000612dc285828601612d44565b9250506020612dd385828601612d88565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e17578082015181840152602081019050612dfc565b83811115612e26576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e4882612ddd565b612e528185612de8565b9350612e62818560208601612df9565b612e6b81612e2c565b840191505092915050565b60006020820190508181036000830152612e908184612e3d565b905092915050565b6000819050919050565b612eab81612e98565b8114612eb657600080fd5b50565b600081359050612ec881612ea2565b92915050565b600060208284031215612ee457612ee3612c36565b5b6000612ef284828501612eb9565b91505092915050565b612f0481612d1b565b82525050565b6000602082019050612f1f6000830184612efb565b92915050565b60008060408385031215612f3c57612f3b612c36565b5b6000612f4a85828601612d44565b9250506020612f5b85828601612eb9565b9150509250929050565b612f6e81612e98565b82525050565b6000602082019050612f896000830184612f65565b92915050565b600080600060608486031215612fa857612fa7612c36565b5b6000612fb686828701612d44565b9350506020612fc786828701612d44565b9250506040612fd886828701612eb9565b9150509250925092565b60008060408385031215612ff957612ff8612c36565b5b600061300785828601612eb9565b925050602061301885828601612eb9565b9150509250929050565b60006040820190506130376000830185612efb565b6130446020830184612f65565b9392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61308d82612e2c565b810181811067ffffffffffffffff821117156130ac576130ab613055565b5b80604052505050565b60006130bf612c2c565b90506130cb8282613084565b919050565b600067ffffffffffffffff8211156130eb576130ea613055565b5b6130f482612e2c565b9050602081019050919050565b82818337600083830152505050565b600061312361311e846130d0565b6130b5565b90508281526020810184848401111561313f5761313e613050565b5b61314a848285613101565b509392505050565b600082601f8301126131675761316661304b565b5b8135613177848260208601613110565b91505092915050565b60006020828403121561319657613195612c36565b5b600082013567ffffffffffffffff8111156131b4576131b3612c3b565b5b6131c084828501613152565b91505092915050565b600080604083850312156131e0576131df612c36565b5b60006131ee85828601612eb9565b925050602083013567ffffffffffffffff81111561320f5761320e612c3b565b5b61321b85828601613152565b9150509250929050565b60008060006060848603121561323e5761323d612c36565b5b600061324c86828701612eb9565b935050602061325d86828701612d44565b925050604061326e86828701612d88565b9150509250925092565b60006020828403121561328e5761328d612c36565b5b600061329c84828501612d44565b91505092915050565b6132ae81612cc5565b81146132b957600080fd5b50565b6000813590506132cb816132a5565b92915050565b600080604083850312156132e8576132e7612c36565b5b60006132f685828601612d44565b9250506020613307858286016132bc565b9150509250929050565b600067ffffffffffffffff82111561332c5761332b613055565b5b61333582612e2c565b9050602081019050919050565b600061335561335084613311565b6130b5565b90508281526020810184848401111561337157613370613050565b5b61337c848285613101565b509392505050565b600082601f8301126133995761339861304b565b5b81356133a9848260208601613342565b91505092915050565b600080600080608085870312156133cc576133cb612c36565b5b60006133da87828801612d44565b94505060206133eb87828801612d44565b93505060406133fc87828801612eb9565b925050606085013567ffffffffffffffff81111561341d5761341c612c3b565b5b61342987828801613384565b91505092959194509250565b60008060006060848603121561344e5761344d612c36565b5b600061345c86828701612d44565b935050602061346d86828701612eb9565b925050604084013567ffffffffffffffff81111561348e5761348d612c3b565b5b61349a86828701613152565b9150509250925092565b600080604083850312156134bb576134ba612c36565b5b60006134c985828601612d44565b92505060206134da85828601612d44565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061351a602083612de8565b9150613525826134e4565b602082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061359757607f821691505b6020821081036135aa576135a9613550565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061360c602c83612de8565b9150613617826135b0565b604082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061369e602183612de8565b91506136a982613642565b604082019050919050565b600060208201905081810360008301526136cd81613691565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613730603883612de8565b915061373b826136d4565b604082019050919050565b6000602082019050818103600083015261375f81613723565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006137c2603183612de8565b91506137cd82613766565b604082019050919050565b600060208201905081810360008301526137f1816137b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061383282612e98565b915061383d83612e98565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613876576138756137f8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138bb82612e98565b91506138c683612e98565b9250826138d6576138d5613881565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b600061393d602b83612de8565b9150613948826138e1565b604082019050919050565b6000602082019050818103600083015261396c81613930565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006139cf602c83612de8565b91506139da82613973565b604082019050919050565b600060208201905081810360008301526139fe816139c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613a90602c83612de8565b9150613a9b82613a34565b604082019050919050565b60006020820190508181036000830152613abf81613a83565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613b22602983612de8565b9150613b2d82613ac6565b604082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613bb4602a83612de8565b9150613bbf82613b58565b604082019050919050565b60006020820190508181036000830152613be381613ba7565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613c20601983612de8565b9150613c2b82613bea565b602082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613cb2602f83612de8565b9150613cbd82613c56565b604082019050919050565b60006020820190508181036000830152613ce181613ca5565b9050919050565b600081905092915050565b6000613cfe82612ddd565b613d088185613ce8565b9350613d18818560208601612df9565b80840191505092915050565b6000613d308285613cf3565b9150613d3c8284613cf3565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613da4602683612de8565b9150613daf82613d48565b604082019050919050565b60006020820190508181036000830152613dd381613d97565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000613e36602a83612de8565b9150613e4182613dda565b604082019050919050565b60006020820190508181036000830152613e6581613e29565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000613ea2601983612de8565b9150613ead82613e6c565b602082019050919050565b60006020820190508181036000830152613ed181613e95565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613f34602c83612de8565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b6000613fc6602983612de8565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614058602483612de8565b915061406382613ffc565b604082019050919050565b600060208201905081810360008301526140878161404b565b9050919050565b600061409982612e98565b91506140a483612e98565b9250828210156140b7576140b66137f8565b5b828203905092915050565b60006140cd82612e98565b91506140d883612e98565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561410d5761410c6137f8565b5b828201905092915050565b7f455243323938313a20496e76616c696420706172616d65746572730000000000600082015250565b600061414e601b83612de8565b915061415982614118565b602082019050919050565b6000602082019050818103600083015261417d81614141565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006141e0603283612de8565b91506141eb82614184565b604082019050919050565b6000602082019050818103600083015261420f816141d3565b9050919050565b600061422182612e98565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614253576142526137f8565b5b600182019050919050565b600061426982612e98565b915061427483612e98565b92508261428457614283613881565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006142c5602083612de8565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614331601c83612de8565b915061433c826142fb565b602082019050919050565b6000602082019050818103600083015261436081614324565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061438e82614367565b6143988185614372565b93506143a8818560208601612df9565b6143b181612e2c565b840191505092915050565b60006080820190506143d16000830187612efb565b6143de6020830186612efb565b6143eb6040830185612f65565b81810360608301526143fd8184614383565b905095945050505050565b60008151905061441781612c6c565b92915050565b60006020828403121561443357614432612c36565b5b600061444184828501614408565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220509d573d86f00526dc33fff7a46b9c93816da799b33a369b0469e437204efbcf64736f6c634300080e00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000045249534500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f456c64726974636820526973696e670000000000000000000000000000000000