Loading
[ { "inputs": [ { "internalType": "string", "name": "uri", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "batchMintToAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "batchMintToAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "id", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "resetTokenRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "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": "newBaseUri", "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": "feeNumerator", "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": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620030dc380380620030dc833981016040819052620000349162000276565b6040805180820182526005808252644e46444e4160d81b6020808401828152855180870190965292855284015281519192916200007491600191620001ba565b5080516200008a906002906020840190620001ba565b5050600b805460ff1916905550620000a460003362000119565b620000d07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000119565b620000fc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000119565b80516200011190600e906020840190620001ba565b50506200038f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001753390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b828054620001c89062000352565b90600052602060002090601f016020900481019282620001ec576000855562000237565b82601f106200020757805160ff191683800117855562000237565b8280016001018555821562000237579182015b82811115620002375782518255916020019190600101906200021a565b506200024592915062000249565b5090565b5b808211156200024557600081556001016200024a565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156200028a57600080fd5b82516001600160401b0380821115620002a257600080fd5b818501915085601f830112620002b757600080fd5b815181811115620002cc57620002cc62000260565b604051601f8201601f19908116603f01168101908382118183101715620002f757620002f762000260565b8160405282815288868487010111156200031057600080fd5b600093505b8284101562000334578484018601518185018701529285019262000315565b82841115620003465760008684830101525b98975050505050505050565b600181811c908216806200036757607f821691505b602082108114156200038957634e487b7160e01b600052602260045260246000fd5b50919050565b612d3d806200039f6000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c806342966c681161012a57806391d14854116100bd578063a22cb4651161008c578063c87b56dd11610071578063c87b56dd146104c7578063d547741f146104da578063e985e9c5146104ed57600080fd5b8063a22cb465146104a1578063b88d4fde146104b457600080fd5b806391d148541461044757806395d89b411461047e578063a0bcfc7f14610486578063a217fddf1461049957600080fd5b80636352211e116100f95780636352211e1461040657806370a08231146104195780638456cb591461042c5780638a616bc01461043457600080fd5b806342966c68146103c25780634f6ccce7146103d55780635944c753146103e85780635c975abb146103fb57600080fd5b8063248a9ca3116101bd57806336568abe1161018c5780633f4ba83a116101715780633f4ba83a1461039457806340c10f191461039c57806342842e0e146103af57600080fd5b806336568abe1461036e5780633eeaa26c1461038157600080fd5b8063248a9ca3146102f35780632a55205a146103165780632f2ff15d146103485780632f745c591461035b57600080fd5b8063095ea7b3116101f9578063095ea7b3146102a85780630af0d652146102bb57806318160ddd146102ce57806323b872dd146102e057600080fd5b806301ffc9a71461022b57806304634d8d1461025357806306fdde0314610268578063081812fc1461027d575b600080fd5b61023e6102393660046125fa565b610529565b60405190151581526020015b60405180910390f35b61026661026136600461264f565b6105c0565b005b6102706105db565b60405161024a91906126da565b61029061028b3660046126ed565b61066d565b6040516001600160a01b03909116815260200161024a565b6102666102b6366004612706565b610707565b6102666102c9366004612775565b610834565b6009545b60405190815260200161024a565b6102666102ee3660046127c8565b6108a5565b6102d26103013660046126ed565b60009081526020819052604090206001015490565b610329610324366004612804565b61092d565b604080516001600160a01b03909316835260208301919091520161024a565b610266610356366004612826565b6109ea565b6102d2610369366004612706565b610a10565b61026661037c366004612826565b610ab8565b61026661038f366004612849565b610b44565b610266610c47565b6102666103aa366004612706565b610c7d565b6102666103bd3660046127c8565b610cb2565b6102666103d03660046126ed565b610ccd565b6102d26103e33660046126ed565b610d51565b6102666103f63660046128b5565b610df5565b600b5460ff1661023e565b6102906104143660046126ed565b610e12565b6102d26104273660046128f1565b610e9d565b610266610f37565b6102666104423660046126ed565b610f6a565b61023e610455366004612826565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610270610f88565b610266610494366004612998565b610f97565b6102d2600081565b6102666104af3660046129e1565b610fb6565b6102666104c2366004612a1d565b610fc1565b6102706104d53660046126ed565b611049565b6102666104e8366004612826565b611132565b61023e6104fb366004612a99565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061055a57506001600160e01b03198216635b5e139f60e01b145b8061057557506001600160e01b0319821663152a902d60e11b145b8061059057506001600160e01b0319821663780e9d6360e01b145b806105ab57506001600160e01b031982166301ffc9a760e01b145b806105ba57506105ba82611158565b92915050565b60006105cc813361117d565b6105d683836111fb565b505050565b6060600180546105ea90612ac3565b80601f016020809104026020016040519081016040528092919081815260200182805461061690612ac3565b80156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b03166106eb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b600061071282610e12565b9050806001600160a01b0316836001600160a01b0316141561079c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016106e2565b336001600160a01b03821614806107b857506107b881336104fb565b61082a5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016106e2565b6105d68383611302565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661085f813361117d565b60005b8281101561089e5761088c8585858481811061088057610880612afe565b9050602002013561137d565b8061089681612b2a565b915050610862565b5050505050565b6108b0335b82611397565b6109225760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016106e2565b6105d683838361148e565b6000828152600d602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff169282019290925282916109ac575060408051808201909152600c546001600160a01b0381168252600160a01b90046bffffffffffffffffffffffff1660208201525b6020810151600090612710906109d0906bffffffffffffffffffffffff1687612b45565b6109da9190612b7a565b91519350909150505b9250929050565b600082815260208190526040902060010154610a06813361117d565b6105d68383611673565b6000610a1b83610e9d565b8210610a8f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016106e2565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b6001600160a01b0381163314610b365760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016106e2565b610b408282611711565b5050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b6f813361117d565b838214610be45760405162461bcd60e51b815260206004820152602360248201527f50726f766964656420617272617973206d7573742062652073616d65206c656e60448201527f677468000000000000000000000000000000000000000000000000000000000060648201526084016106e2565b8360005b81811015610c3e57610c2c878783818110610c0557610c05612afe565b9050602002016020810190610c1a91906128f1565b86868481811061088057610880612afe565b80610c3681612b2a565b915050610be8565b50505050505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c72813361117d565b610c7a611790565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610ca8813361117d565b6105d6838361137d565b6105d683838360405180602001604052806000815250610fc1565b610cd6336108aa565b610d485760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f7665640000000000000000000000000000000060648201526084016106e2565b610c7a8161182c565b6000610d5c60095490565b8210610dd05760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016106e2565b60098281548110610de357610de3612afe565b90600052602060002001549050919050565b6000610e01813361117d565b610e0c8484846118e0565b50505050565b6000818152600360205260408120546001600160a01b0316806105ba5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016106e2565b60006001600160a01b038216610f1b5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016106e2565b506001600160a01b031660009081526004602052604090205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610f62813361117d565b610c7a6119f8565b6000610f76813361117d565b506000908152600d6020526040812055565b6060600280546105ea90612ac3565b6000610fa3813361117d565b81516105d690600e90602085019061254b565b610b40338383611a80565b610fcb3383611397565b61103d5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016106e2565b610e0c84848484611b4f565b6000818152600360205260409020546060906001600160a01b03166110d65760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016106e2565b60006110e0611bcd565b90506000815111611100576040518060200160405280600081525061112b565b8061110a84611bdc565b60405160200161111b929190612b8e565b6040516020818303038152906040525b9392505050565b60008281526020819052604090206001015461114e813361117d565b6105d68383611711565b60006001600160e01b0319821663152a902d60e11b14806105ba57506105ba82611cda565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b40576111b9816001600160a01b03166014611cff565b6111c4836020611cff565b6040516020016111d5929190612bbd565b60408051601f198184030181529082905262461bcd60e51b82526106e2916004016126da565b6127106bffffffffffffffffffffffff8216111561126e5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016106e2565b6001600160a01b0382166112c45760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016106e2565b604080518082019091526001600160a01b039092168083526bffffffffffffffffffffffff9091166020909201829052600160a01b90910217600c55565b6000818152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155819061134482610e12565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610b40828260405180602001604052806000815250611ec4565b6000818152600360205260408120546001600160a01b03166114105760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106e2565b600061141b83610e12565b9050806001600160a01b0316846001600160a01b031614806114565750836001600160a01b031661144b8461066d565b6001600160a01b0316145b8061148657506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166114a182610e12565b6001600160a01b03161461151d5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016106e2565b6001600160a01b0382166115985760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106e2565b6115a3838383611f42565b6115ae600082611302565b6001600160a01b03831660009081526004602052604081208054600192906115d7908490612c3e565b90915550506001600160a01b0382166000908152600460205260408120805460019290611605908490612c55565b9091555050600081815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b40576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556116cd3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610b40576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600b5460ff166117e25760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016106e2565b600b805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061183782610e12565b905061184581600084611f42565b611850600083611302565b6001600160a01b0381166000908152600460205260408120805460019290611879908490612c3e565b9091555050600082815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6127106bffffffffffffffffffffffff821611156119535760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016106e2565b6001600160a01b0382166119a95760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016106e2565b6040805180820182526001600160a01b0393841681526bffffffffffffffffffffffff92831660208083019182526000968752600d90529190942093519051909116600160a01b029116179055565b600b5460ff1615611a4b5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016106e2565b600b805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861180f3390565b816001600160a01b0316836001600160a01b03161415611ae25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106e2565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611b5a84848461148e565b611b6684848484611f4d565b610e0c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016106e2565b6060600e80546105ea90612ac3565b606081611c005750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c2a5780611c1481612b2a565b9150611c239050600a83612b7a565b9150611c04565b60008167ffffffffffffffff811115611c4557611c4561290c565b6040519080825280601f01601f191660200182016040528015611c6f576020820181803683370190505b5090505b841561148657611c84600183612c3e565b9150611c91600a86612c6d565b611c9c906030612c55565b60f81b818381518110611cb157611cb1612afe565b60200101906001600160f81b031916908160001a905350611cd3600a86612b7a565b9450611c73565b60006001600160e01b0319821663780e9d6360e01b14806105ba57506105ba82612096565b60606000611d0e836002612b45565b611d19906002612c55565b67ffffffffffffffff811115611d3157611d3161290c565b6040519080825280601f01601f191660200182016040528015611d5b576020820181803683370190505b509050600360fc1b81600081518110611d7657611d76612afe565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611dc157611dc1612afe565b60200101906001600160f81b031916908160001a9053506000611de5846002612b45565b611df0906001612c55565b90505b6001811115611e75577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611e3157611e31612afe565b1a60f81b828281518110611e4757611e47612afe565b60200101906001600160f81b031916908160001a90535060049490941c93611e6e81612c81565b9050611df3565b50831561112b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106e2565b611ece83836120d6565b611edb6000848484611f4d565b6105d65760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016106e2565b6105d6838383612231565b60006001600160a01b0384163b1561208b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611f91903390899088908890600401612c98565b6020604051808303816000875af1925050508015611fcc575060408051601f3d908101601f19168201909252611fc991810190612cd4565b60015b612071573d808015611ffa576040519150601f19603f3d011682016040523d82523d6000602084013e611fff565b606091505b5080516120695760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016106e2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611486565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b14806120c757506001600160e01b03198216635b5e139f60e01b145b806105ba57506105ba826122b5565b6001600160a01b03821661212c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106e2565b6000818152600360205260409020546001600160a01b0316156121915760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106e2565b61219d60008383611f42565b6001600160a01b03821660009081526004602052604081208054600192906121c6908490612c55565b9091555050600081815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61223c838383612303565b600b5460ff16156105d65760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c652070617573656400000000000000000000000000000000000000000060648201526084016106e2565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806105ba57506301ffc9a760e01b6001600160e01b03198316146105ba565b6001600160a01b03831661235e5761235981600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b612381565b816001600160a01b0316836001600160a01b0316146123815761238183826123bb565b6001600160a01b038216612398576105d681612458565b826001600160a01b0316826001600160a01b0316146105d6576105d68282612507565b600060016123c884610e9d565b6123d29190612c3e565b600083815260086020526040902054909150808214612425576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b60095460009061246a90600190612c3e565b6000838152600a60205260408120546009805493945090928490811061249257612492612afe565b9060005260206000200154905080600983815481106124b3576124b3612afe565b6000918252602080832090910192909255828152600a909152604080822084905585825281205560098054806124eb576124eb612cf1565b6001900381819060005260206000200160009055905550505050565b600061251283610e9d565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b82805461255790612ac3565b90600052602060002090601f01602090048101928261257957600085556125bf565b82601f1061259257805160ff19168380011785556125bf565b828001600101855582156125bf579182015b828111156125bf5782518255916020019190600101906125a4565b506125cb9291506125cf565b5090565b5b808211156125cb57600081556001016125d0565b6001600160e01b031981168114610c7a57600080fd5b60006020828403121561260c57600080fd5b813561112b816125e4565b80356001600160a01b038116811461262e57600080fd5b919050565b80356bffffffffffffffffffffffff8116811461262e57600080fd5b6000806040838503121561266257600080fd5b61266b83612617565b915061267960208401612633565b90509250929050565b60005b8381101561269d578181015183820152602001612685565b83811115610e0c5750506000910152565b600081518084526126c6816020860160208601612682565b601f01601f19169290920160200192915050565b60208152600061112b60208301846126ae565b6000602082840312156126ff57600080fd5b5035919050565b6000806040838503121561271957600080fd5b61272283612617565b946020939093013593505050565b60008083601f84011261274257600080fd5b50813567ffffffffffffffff81111561275a57600080fd5b6020830191508360208260051b85010111156109e357600080fd5b60008060006040848603121561278a57600080fd5b61279384612617565b9250602084013567ffffffffffffffff8111156127af57600080fd5b6127bb86828701612730565b9497909650939450505050565b6000806000606084860312156127dd57600080fd5b6127e684612617565b92506127f460208501612617565b9150604084013590509250925092565b6000806040838503121561281757600080fd5b50508035926020909101359150565b6000806040838503121561283957600080fd5b8235915061267960208401612617565b6000806000806040858703121561285f57600080fd5b843567ffffffffffffffff8082111561287757600080fd5b61288388838901612730565b9096509450602087013591508082111561289c57600080fd5b506128a987828801612730565b95989497509550505050565b6000806000606084860312156128ca57600080fd5b833592506128da60208501612617565b91506128e860408501612633565b90509250925092565b60006020828403121561290357600080fd5b61112b82612617565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561293d5761293d61290c565b604051601f8501601f19908116603f011681019082821181831017156129655761296561290c565b8160405280935085815286868601111561297e57600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156129aa57600080fd5b813567ffffffffffffffff8111156129c157600080fd5b8201601f810184136129d257600080fd5b61148684823560208401612922565b600080604083850312156129f457600080fd5b6129fd83612617565b915060208301358015158114612a1257600080fd5b809150509250929050565b60008060008060808587031215612a3357600080fd5b612a3c85612617565b9350612a4a60208601612617565b925060408501359150606085013567ffffffffffffffff811115612a6d57600080fd5b8501601f81018713612a7e57600080fd5b612a8d87823560208401612922565b91505092959194509250565b60008060408385031215612aac57600080fd5b612ab583612617565b915061267960208401612617565b600181811c90821680612ad757607f821691505b60208210811415612af857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612b3e57612b3e612b14565b5060010190565b6000816000190483118215151615612b5f57612b5f612b14565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612b8957612b89612b64565b500490565b60008351612ba0818460208801612682565b835190830190612bb4818360208801612682565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612bf5816017850160208801612682565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612c32816028840160208801612682565b01602801949350505050565b600082821015612c5057612c50612b14565b500390565b60008219821115612c6857612c68612b14565b500190565b600082612c7c57612c7c612b64565b500690565b600081612c9057612c90612b14565b506000190190565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612cca60808301846126ae565b9695505050505050565b600060208284031215612ce657600080fd5b815161112b816125e4565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fb4b8d6f63739751aa51a1d05aec6326c8211a73ca31814e3a91eefbf03772af64736f6c634300080c00330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004168747470733a2f2f6e66646e612d35613864662e68712e7370696361656e67696e652e636f6d2f6170692f666e2d657865637574652f6765744e66744a736f6e2f00000000000000000000000000000000000000000000000000000000000000