[ { "inputs": [], "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": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Bought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "CancelSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_minter", "type": "address" } ], "name": "Claimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "ForSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "Minted", "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": "uint256", "name": "", "type": "uint256" } ], "name": "Bazaar", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "enum ERC721.TokenState", "name": "state", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "ClaimedFreeViking", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_CLAIMABLE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_MINT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_GB_BALANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROVENANCE_HASH", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "RewardsClaimedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RunningMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "_minter", "type": "address" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "cancelTokenSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256" } ], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimViking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimingStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256" } ], "name": "getRewardBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "getRewardBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "getTokensByOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "goodBridging", "outputs": [ { "internalType": "contract GoodBridging", "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": "uint256", "name": "minting", "type": "uint256" } ], "name": "mintViking", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "name": "saleStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "string", "name": "_hash", "type": "string" } ], "name": "setProvenanceHash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setTokenPrice", "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": [], "name": "toggleClaiming", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleSale", "outputs": [], "stateMutability": "nonpayable", "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" } ]
600f80546001600160a01b0319167390842eb834cfd2a1db0b1512b254a18e4d396215179055600060108190556011805461ffff1916905560a06040819052608082905262000052916012919062000911565b5060006017553480156200006557600080fd5b50604080518082018252600d81526c43727970746f56696b696e677360981b60208083019182528351808501909452600684526556494b494e4760d01b908401528151919291620000b99160099162000911565b508051620000cf90600a90602084019062000911565b50620000e26380ac58cd60e01b62000187565b620000f4635b5e139f60e01b62000187565b6200010663780e9d6360e01b62000187565b50506001600d5562000118336200020c565b600f54601380546001600160a01b0319166001600160a01b03909216919091179055604080516060810190915260258082526200015f91906200403360208301396200025e565b600280546001600160a01b031916339081179091556200018190600062000277565b62000aea565b6001600160e01b03198082161415620001e75760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516200027390600c90602084019062000911565b5050565b620002738282604051806020016040528060008152506200029960201b60201c565b620002a5838362000311565b620002b460008484846200045d565b6200030c5760405162461bcd60e51b815260206004820152603260248201526000805160206200401383398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401620001de565b505050565b6001600160a01b038216620003695760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401620001de565b6200037481620005c6565b15620003c35760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401620001de565b620003d160008383620005e9565b6001600160a01b038216600090815260036020908152604090912062000402918390620022906200061e821b17901c565b5062000420818360046200063360201b6200229c179092919060201c565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006200047e846001600160a01b03166200064b60201b620022ba1760201c565b15620005ba57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290620004b890339089908890889060040162000a07565b602060405180830381600087803b158015620004d357600080fd5b505af192505050801562000506575060408051601f3d908101601f19168201909252620005039181019062000a46565b60015b6200059f573d80801562000537576040519150601f19603f3d011682016040523d82523d6000602084013e6200053c565b606091505b508051620005975760405162461bcd60e51b815260206004820152603260248201526000805160206200401383398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401620001de565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050620005be565b5060015b949350505050565b6000620005e38260046200065160201b620022c01790919060201c565b92915050565b80620005f46200065f565b1115620006065762000606816200067d565b6200030c8383836200030c60201b62000b9e1760201c565b60006200062c8383620006e9565b9392505050565b6000620005be84846001600160a01b0385166200073b565b3b151590565b60006200062c838362000768565b60006200067860046200078760201b620022cc1760201c565b905090565b60006200068a8262000794565b601754600084815260166020526040902055905080156200027357620006b0826200081f565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156200030c573d6000803e3d6000fd5b60008181526001830160205260408120546200073257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005e3565b506000620005e3565b600082815260028401602090815260408220839055620005be9085908590620022906200061e821b17901c565b60006200062c82846000016200085760201b620022d71790919060201c565b6000620005e38262000870565b6000620007a06200088b565b821115620008015760405162461bcd60e51b815260206004820152602760248201527f43727970746f56696b696e67733a20546f6b656e206973206e6f74206d696e7460448201526632b2103cb2ba1760c91b6064820152608401620001de565b600082815260166020526040902054601754620005e3919062000a72565b6000620005e38260405180606001604052806029815260200162004058602991396004620008a560201b620022ef179092919060201c565b600081815260018301602052604081205415156200062c565b6000620005e382600001620008b460201b620022fc1760201c565b60006001620008996200065f565b62000678919062000a72565b6000620005be848484620008bf565b6000620005e3825490565b600082815260028401602052604081205480151580620008e65750620008e6858562000768565b8390620009085760405162461bcd60e51b8152600401620001de919062000a98565b50949350505050565b8280546200091f9062000aad565b90600052602060002090601f0160209004810192826200094357600085556200098e565b82601f106200095e57805160ff19168380011785556200098e565b828001600101855582156200098e579182015b828111156200098e57825182559160200191906001019062000971565b506200099c929150620009a0565b5090565b5b808211156200099c5760008155600101620009a1565b6000815180845260005b81811015620009df57602081850181015186830182015201620009c1565b81811115620009f2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009062000a3c90830184620009b7565b9695505050505050565b60006020828403121562000a5957600080fd5b81516001600160e01b0319811681146200062c57600080fd5b60008282101562000a9357634e487b7160e01b600052601160045260246000fd5b500390565b6020815260006200062c6020830184620009b7565b600181811c9082168062000ac257607f821691505b6020821081141562000ae457634e487b7160e01b600052602260045260246000fd5b50919050565b6135198062000afa6000396000f3fe6080604052600436106102e45760003560e01c806370a0823111610190578063c87b56dd116100dc578063e834a83411610095578063f0292a031161006f578063f0292a0314610910578063f1454ee714610926578063f2fde38b14610939578063ff1b65561461095957600080fd5b8063e834a83414610891578063e985e9c5146108a7578063eb685c47146108f057600080fd5b8063c87b56dd146107dc578063cd519e9a146107fc578063d11aea7714610811578063d5a849e914610831578063d96a094a14610851578063e778628f1461086457600080fd5b806395d89b4111610149578063ac8d856c11610123578063ac8d856c14610746578063ae169a501461077c578063b88d4fde1461079c578063bc5940df146107bc57600080fd5b806395d89b41146106fc578063a22cb46514610711578063a2b049241461073157600080fd5b806370a0823114610632578063715018a6146106525780637bd7525d146106675780637d8966e4146106b45780638010fc45146106c95780638da5cb5b146106de57600080fd5b80632bda5ac31161024f5780634f6ccce7116102085780635c474f9e116101e25780635c474f9e146105c45780636352211e146105de57806365f22342146105fe5780636c0360eb1461061d57600080fd5b80634f6ccce71461056457806355f804b3146105845780635934607f146105a457600080fd5b80632bda5ac3146104925780632f745c59146104b2578063372500ab146104d257806340398d67146104e757806342842e0e1461051457806349f188b31461053457600080fd5b806310969523116102a157806310969523146103ee57806317d5797b1461040e57806318160ddd1461042457806323b872dd1461043957806329524ba8146104595780632b96e5721461047957600080fd5b806301ffc9a7146102e957806306fdde031461032f578063081812fc14610351578063095ea7b3146103895780630ca1c5c9146103ab5780630f82f7d5146103ce575b600080fd5b3480156102f557600080fd5b5061031a610304366004612dba565b6001600160e01b0319166301ffc9a760e01b1490565b60405190151581526020015b60405180910390f35b34801561033b57600080fd5b5061034461096e565b6040516103269190612e2f565b34801561035d57600080fd5b5061037161036c366004612e42565b610a00565b6040516001600160a01b039091168152602001610326565b34801561039557600080fd5b506103a96103a4366004612e72565b610a8d565b005b3480156103b757600080fd5b506103c0610ba3565b604051908152602001610326565b3480156103da57600080fd5b506103c06103e9366004612e42565b610bbe565b3480156103fa57600080fd5b506103a9610409366004612f3b565b610c49565b34801561041a57600080fd5b506103c060175481565b34801561043057600080fd5b506103c0610c8a565b34801561044557600080fd5b506103a9610454366004612f84565b610c96565b34801561046557600080fd5b506103c0610474366004612e42565b610cc7565b34801561048557600080fd5b506103c064d18c2e280081565b34801561049e57600080fd5b506103a96104ad366004612e42565b610d6d565b3480156104be57600080fd5b506103c06104cd366004612e72565b610df6565b3480156104de57600080fd5b506103a9610e1f565b3480156104f357600080fd5b50610507610502366004612fc0565b610f4c565b6040516103269190612fdb565b34801561052057600080fd5b506103a961052f366004612f84565b61100b565b34801561054057600080fd5b5061031a61054f366004612fc0565b60146020526000908152604090205460ff1681565b34801561057057600080fd5b506103c061057f366004612e42565b611026565b34801561059057600080fd5b506103a961059f366004612f3b565b611034565b3480156105b057600080fd5b506103a96105bf36600461301f565b61106a565b3480156105d057600080fd5b5060115461031a9060ff1681565b3480156105ea57600080fd5b506103716105f9366004612e42565b611195565b34801561060a57600080fd5b5060115461031a90610100900460ff1681565b34801561062957600080fd5b506103446111bd565b34801561063e57600080fd5b506103c061064d366004612fc0565b6111cc565b34801561065e57600080fd5b506103a9611258565b34801561067357600080fd5b506106a5610682366004612e42565b600160208190526000918252604090912080549181015460029091015460ff1683565b60405161032693929190613068565b3480156106c057600080fd5b506103a961128e565b3480156106d557600080fd5b506103a96112cc565b3480156106ea57600080fd5b50600e546001600160a01b0316610371565b34801561070857600080fd5b50610344611313565b34801561071d57600080fd5b506103a961072c3660046130a2565b611322565b34801561073d57600080fd5b506103a96113e7565b34801561075257600080fd5b50610371610761366004612e42565b6015602052600090815260409020546001600160a01b031681565b34801561078857600080fd5b506103a9610797366004612e42565b6117e5565b3480156107a857600080fd5b506103a96107b73660046130de565b61184b565b3480156107c857600080fd5b50600f54610371906001600160a01b031681565b3480156107e857600080fd5b506103446107f7366004612e42565b611883565b34801561080857600080fd5b506103c060fa81565b34801561081d57600080fd5b50601354610371906001600160a01b031681565b34801561083d57600080fd5b506103c061084c366004612fc0565b6119f5565b6103a961085f366004612e42565b611ac1565b34801561087057600080fd5b506103c061087f366004612e42565b60166020526000908152604090205481565b34801561089d57600080fd5b506103c060105481565b3480156108b357600080fd5b5061031a6108c236600461301f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b3480156108fc57600080fd5b506103a961090b36600461315a565b611d10565b34801561091c57600080fd5b506103c061271081565b6103a9610934366004612e42565b611dd3565b34801561094557600080fd5b506103a9610954366004612fc0565b61216a565b34801561096557600080fd5b50610344612202565b60606009805461097d9061317c565b80601f01602080910402602001604051908101604052809291908181526020018280546109a99061317c565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a0b82612306565b610a715760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600760205260409020546001600160a01b031690565b6000610a9882611195565b9050806001600160a01b0316836001600160a01b03161415610b065760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a68565b336001600160a01b0382161480610b225750610b2281336108c2565b610b945760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a68565b610b9e8383612313565b505050565b60006001610baf610c8a565b610bb991906131c7565b905090565b6000610bc8610ba3565b821115610c275760405162461bcd60e51b815260206004820152602760248201527f43727970746f56696b696e67733a20546f6b656e206973206e6f74206d696e7460448201526632b2103cb2ba1760c91b6064820152608401610a68565b600082815260166020526040902054601754610c4391906131c7565b92915050565b600e546001600160a01b03163314610c735760405162461bcd60e51b8152600401610a68906131de565b8051610c86906012906020840190612d0b565b5050565b6000610bb960046122cc565b610ca03382612381565b610cbc5760405162461bcd60e51b8152600401610a6890613213565b610b9e838383612467565b60006126fc8210610ce15750674563918244f40000919050565b6123288210610cf957506730927f74c9de0000919050565b611b588210610d1157506729a2241af62c0000919050565b610fa08210610d2957506722b1c8c1227a0000919050565b610bb88210610d415750671bc16d674ec80000919050565b6107d08210610d5957506714d1120d7b160000919050565b50670de0b6b3a7640000919050565b919050565b610d7681611195565b6001600160a01b0316336001600160a01b031614610dcf5760405162461bcd60e51b81526020600482015260166024820152751251081393d50813d5d391510810964815d05313115560521b6044820152606401610a68565b6000908152600160208190526040822090810191909155600201805460ff19166004179055565b6001600160a01b0382166000908152600360205260408120610e1890836125fc565b9392505050565b6040516340398d6760e01b8152336004820152600090819030906340398d679060240160006040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e969190810190613264565b905060005b8151811015610f1857610ec6828281518110610eb957610eb961330a565b6020026020010151610bbe565b610ed09084613320565b925060175460166000848481518110610eeb57610eeb61330a565b60200260200101518152602001908152602001600020819055508080610f1090613338565b915050610e9b565b508115610c8657604051339083156108fc029084906000818181858888f19350505050158015610b9e573d6000803e3d6000fd5b60606000610f59836111cc565b905080610f7a5760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff811115610f9557610f95612e9c565b604051908082528060200260200182016040528015610fbe578160200160208202803683370190505b50905060005b82811015610f7257610fd68582610df6565b828281518110610fe857610fe861330a565b602090810291909101015280610ffd81613338565b915050610fc4565b50919050565b610b9e8383836040518060200160405280600081525061184b565b600080610f72600484612608565b600e546001600160a01b0316331461105e5760405162461bcd60e51b8152600401610a68906131de565b61106781612624565b50565b600e546001600160a01b031633146110945760405162461bcd60e51b8152600401610a68906131de565b600061109e610ba3565b90506102ee8111156111265760405162461bcd60e51b815260206004820152604560248201527f43727970746f56696b696e67733a20436f756c64206e6f742041697264726f7060448201527f206265636175736520746f6f206d616e7920746f6b656e732077657265206d69606482015264373a32b21760d91b608482015260a401610a68565b61113a83611135836001613320565b612637565b816015600061114a846001613320565b81526020808201929092526040908101600090812080546001600160a01b0319166001600160a01b0395861617905594909216845260149052909120805460ff191660011790555050565b6000610c43826040518060600160405280602981526020016134bb60299139600491906122ef565b6060600c805461097d9061317c565b60006001600160a01b0382166112375760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a68565b6001600160a01b0382166000908152600360205260409020610c43906122fc565b600e546001600160a01b031633146112825760405162461bcd60e51b8152600401610a68906131de565b61128c6000612651565b565b600e546001600160a01b031633146112b85760405162461bcd60e51b8152600401610a68906131de565b6011805460ff19811660ff90911615179055565b600e546001600160a01b031633146112f65760405162461bcd60e51b8152600401610a68906131de565b6011805461ff001981166101009182900460ff1615909102179055565b6060600a805461097d9061317c565b6001600160a01b03821633141561137b5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a68565b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002600d54141561143a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a68565b6002600d5560135464d18c2e2800906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381600087803b15801561149957600080fd5b505af11580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190613353565b10156115115760405162461bcd60e51b815260206004820152600f60248201526e26aaa9aa102420ab22901c981823a160891b6044820152606401610a68565b601154610100900460ff1661155f5760405162461bcd60e51b815260206004820152601460248201527310d3105253525391c81393d50814d5105495115160621b6044820152606401610a68565b61271061156a610ba3565b106115a95760405162461bcd60e51b815260206004820152600f60248201526e4e4f204d4f52452056494b494e475360881b6044820152606401610a68565b60fa601054106116105760405162461bcd60e51b815260206004820152602c60248201527f4e6f206d6f72652076696b696e677320617661696c61626c6520746f20636c6160448201526b34b6903337b910333932b29760a11b6064820152608401610a68565b61271061161b610ba3565b611626906001613320565b11156116805760405162461bcd60e51b8152602060048201526024808201527f436c61696d20776f756c6420657863656564206d61782056696b696e6720636f6044820152633ab73a1760e11b6064820152608401610a68565b60fa60105460016116919190613320565b11156116eb5760405162461bcd60e51b815260206004820152602360248201527f436c61696d20776f756c6420657863656564206d617820636c61696d20636f75604482015262373a1760e91b6064820152608401610a68565b3360009081526014602052604090205460ff161561173e5760405162461bcd60e51b815260206004820152601060248201526f20a62922a0a22c9021a620a4a6a2a21760811b6044820152606401610a68565b6001601060008282546117519190613320565b9091555050336000908152601460205260408120805460ff19166001179055611778610c8a565b90506117843382612637565b60008181526015602090815260409182902080546001600160a01b031916339081179091558251848152918201527f6aa3eac93d079e5e100b1029be716caa33586c96aa4baac390669fb5c2a21212910160405180910390a1506001600d55565b60006117f082610bbe565b60175460008481526016602052604090205590508015610c865761181382611195565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610b9e573d6000803e3d6000fd5b6118553383612381565b6118715760405162461bcd60e51b8152600401610a6890613213565b61187d848484846126a3565b50505050565b606061188e82612306565b6118f25760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a68565b6000828152600b60205260408120805461190b9061317c565b80601f01602080910402602001604051908101604052809291908181526020018280546119379061317c565b80156119845780601f1061195957610100808354040283529160200191611984565b820191906000526020600020905b81548152906001019060200180831161196757829003601f168201915b5050505050905060006119956111bd565b90508051600014156119a8575092915050565b8151156119da5780826040516020016119c292919061336c565b60405160208183030381529060405292505050919050565b806119e4856126d6565b6040516020016119c292919061336c565b6040516340398d6760e01b81526001600160a01b03821660048201526000908190819030906340398d679060240160006040518083038186803b158015611a3b57600080fd5b505afa158015611a4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a779190810190613264565b905060005b8151811015611ab857611a9a828281518110610eb957610eb961330a565b611aa49084613320565b925080611ab081613338565b915050611a7c565b50909392505050565b6000611acc82611195565b600083815260016020819052604090912001549091508190341015611b255760405162461bcd60e51b815260206004820152600f60248201526e09c9ea8408a9c9eaa8e904082ac82b608b1b6044820152606401610a68565b600160008481526001602052604090206002015460ff166004811115611b4d57611b4d613052565b14611b895760405162461bcd60e51b815260206004820152600c60248201526b4e4f5420464f522053414c4560a01b6044820152606401610a68565b60008381526001602052611b9c346127d4565b905060006005611bad83600361339b565b611bb791906133d0565b905060006005611bc884600261339b565b611bd291906133d0565b90506000611be084346131c7565b6040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050158015611c19573d6000803e3d6000fd5b506002546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c54573d6000803e3d6000fd5b506000878152601560205260408082205490516001600160a01b039091169185156108fc02918691818181858888f19350505050158015611c99573d6000803e3d6000fd5b5050505050611cb1611caa84611195565b3385612467565b6000838152600160209081526040918290206002908101805460ff19169091179055815185815234918101919091527f3ccb2ab6980b218b1dd4974b07365cd90a191e170c611da46262fecc208bd661910160405180910390a1505050565b611d1982611195565b6001600160a01b0316336001600160a01b031614611d725760405162461bcd60e51b81526020600482015260166024820152751251081393d50813d5d391510810964815d05313115560521b6044820152606401610a68565b600082815260016020818152604092839020808301859055600201805460ff191690921790915581518481529081018390527f454a59b1e51b1685e697faeca2a404382f4dcb9970aece78299147857e150393910160405180910390a15050565b60115460ff16611e185760405162461bcd60e51b815260206004820152601060248201526f14d05311481393d50814d5105495115160821b6044820152606401610a68565b612710611e23610ba3565b10611e615760405162461bcd60e51b815260206004820152600e60248201526d14d0531148121054c8115391115160921b6044820152606401610a68565b600081118015611e725750600a8111155b611eb45760405162461bcd60e51b815260206004820152601360248201527212539590531251081352539508105353d55395606a1b6044820152606401610a68565b612710611ec982611ec3610ba3565b906127ef565b1115611f175760405162461bcd60e51b815260206004820152601d60248201527f4d494e5420574f554c442045584345454420544f4b454e204c494d49540000006044820152606401610a68565b60408051600a808252610160820190925260009160208201610140803683370190505090506000611f46610ba3565b90506000805b84811015611fb857611f616104748285613320565b848281518110611f7357611f7361330a565b602002602001018181525050838181518110611f9157611f9161330a565b602002602001015182611fa49190613320565b915080611fb081613338565b915050611f4c565b50803410156120005760405162461bcd60e51b81526020600482015260146024820152731393d508115393d551d20810559056081410525160621b6044820152606401610a68565b61200b600183613320565b915060005b8481101561216357612026336111358386613320565b33601560006120358487613320565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600061208b85838151811061207e5761207e61330a565b60200260200101516127fb565b6017549091506016600061209f8588613320565b81526020810191909152604001600020556120b8610ba3565b6120c290826133d0565b601760008282546120d39190613320565b909155507fc9d0543a84d3510329c0783b91576878ceb484e8699944cb5610c3436b3b8e3990506121048386613320565b338785815181106121175761211761330a565b6020026020010151604051612148939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a1508061215b81613338565b915050612010565b5050505050565b600e546001600160a01b031633146121945760405162461bcd60e51b8152600401610a68906131de565b6001600160a01b0381166121f95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a68565b61106781612651565b6012805461220f9061317c565b80601f016020809104026020016040519081016040528092919081815260200182805461223b9061317c565b80156122885780601f1061225d57610100808354040283529160200191612288565b820191906000526020600020905b81548152906001019060200180831161226b57829003601f168201915b505050505081565b6000610e188383612854565b60006122b284846001600160a01b0385166128a3565b949350505050565b3b151590565b6000610e1883836128c0565b6000610c43826128cc565b60008181526001830160205260408120541515610e18565b60006122b28484846128d7565b6000610c43825490565b6000610c436004836122c0565b600081815260076020526040902080546001600160a01b0319166001600160a01b038416908117909155819061234882611195565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061238c82612306565b6123ed5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a68565b60006123f883611195565b9050806001600160a01b0316846001600160a01b031614806124335750836001600160a01b031661242884610a00565b6001600160a01b0316145b806122b257506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff166122b2565b826001600160a01b031661247a82611195565b6001600160a01b0316146124e25760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a68565b6001600160a01b0382166125445760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a68565b61254f838383612923565b61255a600082612313565b6001600160a01b038316600090815260036020526040902061257c908261293b565b506001600160a01b038216600090815260036020526040902061259f9082612290565b506125ac6004828461229c565b506125b681610dcf565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000610e188383612947565b60008080806126178686612971565b9097909650945050505050565b8051610c8690600c906020840190612d0b565b610c8682826040518060200160405280600081525061299c565b600e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6126ae848484612467565b6126ba848484846129cf565b61187d5760405162461bcd60e51b8152600401610a68906133e4565b6060816126fa5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612724578061270e81613338565b915061271d9050600a836133d0565b91506126fe565b60008167ffffffffffffffff81111561273f5761273f612e9c565b6040519080825280601f01601f191660200182016040528015612769576020820181803683370190505b5090505b84156122b25761277e6001836131c7565b915061278b600a86613436565b612796906030613320565b60f81b8183815181106127ab576127ab61330a565b60200101906001600160f81b031916908160001a9053506127cd600a866133d0565b945061276d565b6000806127e2836005612adc565b9050610e18816064612ae8565b6000610e188284613320565b6000806128096032846133d0565b6002549091506001600160a01b03166108fc61282583866131c7565b6040518115909202916000818181858888f1935050505015801561284d573d6000803e3d6000fd5b5092915050565b600081815260018301602052604081205461289b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c43565b506000610c43565b600082815260028401602052604081208290556122b28484612290565b6000610e1883836122d7565b6000610c43826122fc565b6000828152600284016020526040812054801515806128fb57506128fb85856128c0565b839061291a5760405162461bcd60e51b8152600401610a689190612e2f565b50949350505050565b8061292c610c8a565b1115610b9e57610b9e816117e5565b6000610e188383612af4565b600082600001828154811061295e5761295e61330a565b9060005260206000200154905092915050565b6000808061297f85856125fc565b600081815260029690960160205260409095205494959350505050565b6129a68383612be7565b6129b360008484846129cf565b610b9e5760405162461bcd60e51b8152600401610a68906133e4565b60006001600160a01b0384163b15612ad157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612a1390339089908890889060040161344a565b602060405180830381600087803b158015612a2d57600080fd5b505af1925050508015612a5d575060408051601f3d908101601f19168201909252612a5a91810190613487565b60015b612ab7573d808015612a8b576040519150601f19603f3d011682016040523d82523d6000602084013e612a90565b606091505b508051612aaf5760405162461bcd60e51b8152600401610a68906133e4565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506122b2565b506001949350505050565b6000610e18828461339b565b6000610e1882846133d0565b60008181526001830160205260408120548015612bdd576000612b186001836131c7565b8554909150600090612b2c906001906131c7565b9050818114612b91576000866000018281548110612b4c57612b4c61330a565b9060005260206000200154905080876000018481548110612b6f57612b6f61330a565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612ba257612ba26134a4565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c43565b6000915050610c43565b6001600160a01b038216612c3d5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a68565b612c4681612306565b15612c935760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a68565b612c9f60008383612923565b6001600160a01b0382166000908152600360205260409020612cc19082612290565b50612cce6004828461229c565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054612d179061317c565b90600052602060002090601f016020900481019282612d395760008555612d7f565b82601f10612d5257805160ff1916838001178555612d7f565b82800160010185558215612d7f579182015b82811115612d7f578251825591602001919060010190612d64565b50612d8b929150612d8f565b5090565b5b80821115612d8b5760008155600101612d90565b6001600160e01b03198116811461106757600080fd5b600060208284031215612dcc57600080fd5b8135610e1881612da4565b60005b83811015612df2578181015183820152602001612dda565b8381111561187d5750506000910152565b60008151808452612e1b816020860160208601612dd7565b601f01601f19169290920160200192915050565b602081526000610e186020830184612e03565b600060208284031215612e5457600080fd5b5035919050565b80356001600160a01b0381168114610d6857600080fd5b60008060408385031215612e8557600080fd5b612e8e83612e5b565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612edb57612edb612e9c565b604052919050565b600067ffffffffffffffff831115612efd57612efd612e9c565b612f10601f8401601f1916602001612eb2565b9050828152838383011115612f2457600080fd5b828260208301376000602084830101529392505050565b600060208284031215612f4d57600080fd5b813567ffffffffffffffff811115612f6457600080fd5b8201601f81018413612f7557600080fd5b6122b284823560208401612ee3565b600080600060608486031215612f9957600080fd5b612fa284612e5b565b9250612fb060208501612e5b565b9150604084013590509250925092565b600060208284031215612fd257600080fd5b610e1882612e5b565b6020808252825182820181905260009190848201906040850190845b8181101561301357835183529284019291840191600101612ff7565b50909695505050505050565b6000806040838503121561303257600080fd5b61303b83612e5b565b915061304960208401612e5b565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016005831061309457634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600080604083850312156130b557600080fd5b6130be83612e5b565b9150602083013580151581146130d357600080fd5b809150509250929050565b600080600080608085870312156130f457600080fd5b6130fd85612e5b565b935061310b60208601612e5b565b925060408501359150606085013567ffffffffffffffff81111561312e57600080fd5b8501601f8101871361313f57600080fd5b61314e87823560208401612ee3565b91505092959194509250565b6000806040838503121561316d57600080fd5b50508035926020909101359150565b600181811c9082168061319057607f821691505b6020821081141561100557634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156131d9576131d96131b1565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000602080838503121561327757600080fd5b825167ffffffffffffffff8082111561328f57600080fd5b818501915085601f8301126132a357600080fd5b8151818111156132b5576132b5612e9c565b8060051b91506132c6848301612eb2565b81815291830184019184810190888411156132e057600080fd5b938501935b838510156132fe578451825293850193908501906132e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60008219821115613333576133336131b1565b500190565b600060001982141561334c5761334c6131b1565b5060010190565b60006020828403121561336557600080fd5b5051919050565b6000835161337e818460208801612dd7565b835190830190613392818360208801612dd7565b01949350505050565b60008160001904831182151516156133b5576133b56131b1565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133df576133df6133ba565b500490565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082613445576134456133ba565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061347d90830184612e03565b9695505050505050565b60006020828403121561349957600080fd5b8151610e1881612da4565b634e487b7160e01b600052603160045260246000fdfe4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220332bd1994a82dfa7476dd2cce1e9422a39769766ab14e776af158a66831ef94b64736f6c634300080900334552433732313a207472616e7366657220746f206e6f6e20455243373231526568747470733a2f2f63727970746f76696b696e67732e6172742f6170692f76696b696e672f4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e