[ { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "uint256", "name": "_saleCap", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "allowedPerMintEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_operationsAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_treasuryAddress", "type": "address" } ], "name": "companyAddrAddedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "discountPercentageEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "fundsWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "_teirs", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "_prices", "type": "uint256[]" } ], "name": "mintPricesEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "nftBlacklistRemovedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "nftBlacklistedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_teir", "type": "uint256" }, { "indexed": false, "internalType": "uint256[]", "name": "_ids", "type": "uint256[]" } ], "name": "nftMintedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_paymentToken", "type": "address" } ], "name": "paymentTokenAddedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_points", "type": "uint256" } ], "name": "referClaimPointsEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "referPercentageEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "rewardMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_cap", "type": "uint256" } ], "name": "saleCapEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_newCap", "type": "uint256" } ], "name": "tier4CapEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "", "type": "bool" } ], "name": "toggleDiscountEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "", "type": "bool" } ], "name": "toggleReferEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "", "type": "bool" } ], "name": "toggleSaleEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "", "type": "bool" } ], "name": "toggleWhitelistEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" } ], "name": "whitelistRemovedEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "whitelistedEvent", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "_whiteListAddress", "type": "address[]" } ], "name": "addWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "allowedPerMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nftId", "type": "uint256" } ], "name": "blacklistNft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimPoints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tier", "type": "uint256" } ], "name": "currentSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tier", "type": "uint256" } ], "name": "currentTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "discountEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "discountPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tier", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "refferalAddress", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "mintPrices", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operationsAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "raisedCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referDiscount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "referReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nftId", "type": "uint256" } ], "name": "removeBlacklistedNft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_removeAddress", "type": "address" } ], "name": "removeWhitelist", "outputs": [], "stateMutability": "nonpayable", "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operational", "type": "address" }, { "internalType": "address", "name": "_treasury", "type": "address" } ], "name": "setAddresses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setAllowedPerMint", "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": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "setDiscountPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tier", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "price", "type": "uint256[]" } ], "name": "setMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_paymentToken", "type": "address" } ], "name": "setPaymentToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_points", "type": "uint256" } ], "name": "setReferalClaimPoints", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "setReferalDiscount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_cap", "type": "uint256" } ], "name": "setTier4MaxCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCap", "type": "uint256" } ], "name": "setTotalSaleCapp", "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": "tier4maxCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleDiscount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleRefer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenCounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSaleCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasuryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a0604052600060809081526003906200001a90826200017b565b503480156200002857600080fd5b5060405162003b1c38038062003b1c8339810160408190526200004b9162000247565b81620000578162000072565b50620000633362000084565b6001600655600e555062000322565b60026200008082826200017b565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200010157607f821691505b6020821081036200012257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200017657600081815260208120601f850160051c81016020861015620001515750805b601f850160051c820191505b8181101562000172578281556001016200015d565b5050505b505050565b81516001600160401b03811115620001975762000197620000d6565b620001af81620001a88454620000ec565b8462000128565b602080601f831160018114620001e75760008415620001ce5750858301515b600019600386901b1c1916600185901b17855562000172565b600085815260208120601f198616915b828110156200021857888601518255948401946001909101908401620001f7565b5085821015620002375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156200025b57600080fd5b82516001600160401b03808211156200027357600080fd5b818501915085601f8301126200028857600080fd5b8151818111156200029d576200029d620000d6565b604051601f8201601f19908116603f01168101908382118183101715620002c857620002c8620000d6565b81604052828152602093508884848701011115620002e557600080fd5b600091505b82821015620003095784820184015181830185015290830190620002ea565b6000928101840192909252509401519395939450505050565b6137ea80620003326000396000f3fe608060405234801561001057600080fd5b50600436106103415760003560e01c80638041470f116101b8578063c5f956af11610104578063edac985b116100a2578063f2fde38b1161007c578063f2fde38b14610733578063f6bce82d14610746578063f8c1c18614610759578063fe17ea601461076c57600080fd5b8063edac985b146106fa578063f20424831461070d578063f242432a1461072057600080fd5b8063d3f00fc2116100de578063d3f00fc214610685578063e7d3fe6b14610698578063e985e9c5146106ab578063ea4cfe12146106e757600080fd5b8063c5f956af14610656578063c6c6b37514610669578063d22dee5a1461067c57600080fd5b8063a2e81a8311610171578063b3fa9f241161014b578063b3fa9f241461061f578063b48fa49714610628578063b88a802f1461063b578063b9a6a2fd1461064357600080fd5b8063a2e81a83146105e3578063aae639a114610603578063b3428d151461060c57600080fd5b80638041470f146105865780638d578bee1461059a5780638da5cb5b146105a357806390107afe146105b45780639d072b5d146105c7578063a22cb465146105d057600080fd5b80633af32abf116102925780636a326ab11161023057806379e0aadc1161020a57806379e0aadc146105335780637d8966e4146105535780637e15144b1461055b5780637ecdc9c61461056357600080fd5b80636a326ab114610505578063715018a61461051857806378c8cda71461052057600080fd5b806355f804b31161026c57806355f804b3146104ad578063570ad39e146104c05780635b746077146104d25780636187b33e146104e557600080fd5b80633af32abf1461045d5780634e1273f41461048057806351fb012d146104a057600080fd5b80631636bebd116102ff5780631bb63c2d116102d95780631bb63c2d1461040457806324600fc3146104175780632eb2c2d61461041f5780633013ce291461043257600080fd5b80631636bebd146103e05780631af9e54e146103e85780631b222646146103f157600080fd5b8062fdd58e1461034657806301ffc9a71461036c57806304d092c71461038f5780630cd870c1146103985780630e89341c146103ad578063162094c4146103cd575b600080fd5b610359610354366004612ae2565b610774565b6040519081526020015b60405180910390f35b61037f61037a366004612b22565b61080d565b6040519015158152602001610363565b61035960125481565b6103ab6103a6366004612b3f565b61085d565b005b6103c06103bb366004612b3f565b61090d565b6040516103639190612ba8565b6103ab6103db366004612c70565b6109ed565b6103ab610a03565b610359600d5481565b6103ab6103ff366004612b3f565b610a6d565b6103ab610412366004612b3f565b610afa565b6103ab610b57565b6103ab61042d366004612d4a565b610ca8565b601654610445906001600160a01b031681565b6040516001600160a01b039091168152602001610363565b61037f61046b366004612df3565b600a6020526000908152604090205460ff1681565b61049361048e366004612e7b565b610d82565b6040516103639190612f0f565b600c5461037f9060ff1681565b6103ab6104bb366004612f22565b610eab565b600c5461037f90610100900460ff1681565b6103596104e0366004612b3f565b610ebf565b6103596104f3366004612b3f565b60086020526000908152604090205481565b6103ab610513366004612df3565b610f24565b6103ab610fbf565b6103ab61052e366004612df3565b610fd3565b610359610541366004612b3f565b60076020526000908152604090205481565b6103ab61107c565b6103ab6110de565b61037f610571366004612b3f565b600b6020526000908152604090205460ff1681565b600c5461037f906301000000900460ff1681565b610359600e5481565b6005546001600160a01b0316610445565b6103ab6105c2366004612f56565b61112e565b610359600f5481565b6103ab6105de366004612f97565b611200565b6103596105f1366004612df3565b60096020526000908152604090205481565b61035960115481565b6103ab61061a366004612b3f565b61120b565b61035960105481565b610359610636366004612b3f565b611268565b6103ab6112fb565b6103ab610651366004612b3f565b611474565b601554610445906001600160a01b031681565b6103ab610677366004612b3f565b6114b1565b61035960135481565b6103ab610693366004612fce565b61152d565b6103ab6106a6366004613004565b6116a1565b61037f6106b9366004612f56565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b601454610445906001600160a01b031681565b6103ab610708366004613039565b611b88565b6103ab61071b366004612b3f565b611c9d565b6103ab61072e36600461306d565b611cfa565b6103ab610741366004612df3565b611d8c565b6103ab610754366004612b3f565b611e02565b600c5461037f9062010000900460ff1681565b6103ab611e5f565b60006001600160a01b0383166107e45760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061083e57506001600160e01b031982166303a24d0760e21b145b8061080757506301ffc9a760e01b6001600160e01b0319831614610807565b610865611ec3565b6000818152600b602052604090205460ff1615156001146108ba5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08189b1858dadb1a5cdd1959608a1b60448201526064016107db565b6000818152600b602052604090819020805460ff19169055517ff2694c7a54749f9368589485209c89b9da3e6f9d592f36f17b8f8ddcdaa6b3b2906109029083815260200190565b60405180910390a150565b60008181526004602052604081208054606092919061092b906130d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610957906130d1565b80156109a45780601f10610979576101008083540402835291602001916109a4565b820191906000526020600020905b81548152906001019060200180831161098757829003601f168201915b5050505050905060008151116109c2576109bd83611f1d565b6109e6565b6003816040516020016109d692919061310b565b6040516020818303038152906040525b9392505050565b6109f5611ec3565b6109ff8282611fb1565b5050565b610a0b611ec3565b600c805460ff610100808304821615810261ff001990931692909217928390556040517f57b97b64182d1594869ef9ad20167bdba2559189a16073e9e465017d644db91593610a639390049091161515815260200190565b60405180910390a1565b610a75611ec3565b80600003610aaf5760405162461bcd60e51b81526020600482015260076024820152661e995c9bc8125960ca1b60448201526064016107db565b6000818152600b602052604090819020805460ff19166001179055517f75a21e63a3f5005812c7217b6b421def41fa2b5b816dd80c4fe10782bdaac676906109029083815260200190565b610b02611ec3565b80600003610b225760405162461bcd60e51b81526004016107db90613192565b60128190556040518181527f99f2afe345308a720835355d052acbab2bd92d36422709eb3ea540e30e3ded9e90602001610902565b610b5f611ec3565b6016546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcc91906131b6565b90506103e88111610c0b5760405162461bcd60e51b81526020600482015260096024820152686c6f772066756e647360b81b60448201526064016107db565b60006103e8610c1b8360fa6131e5565b610c2591906131fc565b90506000610c33828461321e565b601554601654919250610c53916001600160a01b0390811691168461200e565b601454601654610c70916001600160a01b0391821691168361200e565b6040518381527f1bfef580145c4435e8f8cc555d0bdfe9eef366f703955596483d8da0bfa0a90e9060200160405180910390a1505050565b6001600160a01b038516331480610cc45750610cc485336106b9565b610ce05760405162461bcd60e51b81526004016107db90613231565b60005b8351811015610d6d57600b6000858381518110610d0257610d0261327f565b60209081029190910181015182528101919091526040016000205460ff1615610d5b5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016107db565b80610d6581613295565b915050610ce3565b50610d7b8585858585612071565b5050505050565b60608151835114610de75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107db565b600083516001600160401b03811115610e0257610e02612bbb565b604051908082528060200260200182016040528015610e2b578160200160208202803683370190505b50905060005b8451811015610ea357610e76858281518110610e4f57610e4f61327f565b6020026020010151858381518110610e6957610e6961327f565b6020026020010151610774565b828281518110610e8857610e8861327f565b6020908102919091010152610e9c81613295565b9050610e31565b509392505050565b610eb3611ec3565b610ebc8161224e565b50565b600060018210158015610ed3575060048211155b610f115760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1e5c19481251608a1b60448201526064016107db565b5060009081526007602052604090205490565b610f2c611ec3565b6001600160a01b038116610f715760405162461bcd60e51b815260206004820152600c60248201526b6e756c6c206164647265737360a01b60448201526064016107db565b601680546001600160a01b0319166001600160a01b0383169081179091556040519081527f909cad3d6470be2613808958b385776fe03f3088ddaf9278d83b4ec09f6fe9a590602001610902565b610fc7611ec3565b610fd1600061225a565b565b610fdb611ec3565b6001600160a01b03811661102b5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420616464206e756c6c206164647265737360481b60448201526064016107db565b6001600160a01b0381166000818152600a6020908152604091829020805460ff1916905590519182527f6e4becdcf3a6a2101d6a5d56162aff0bb0f32761aaa963b6cd8aaeaf88b4be519101610902565b611084611ec3565b600c805460ff62010000808304821615810262ff00001990931692909217928390556040517f3e52998b67cf6d37b3e6ed7686223aee3ea1057c48181af3a7aa058d447d621b93610a639390049091161515815260200190565b6110e6611ec3565b600c805460ff8082161560ff1990921682179092556040519116151581527f907944c0cb948ab0f747027c1575e089841e6cc0b9b0a3a009af36bae7a3fd0d90602001610a63565b611136611ec3565b6001600160a01b0382161580159061115657506001600160a01b03811615155b6111915760405162461bcd60e51b815260206004820152600c60248201526b6e756c6c206164647265737360a01b60448201526064016107db565b601480546001600160a01b038481166001600160a01b03199283168117909355601580549185169190921681179091556040805192835260208301919091527f3d08d61c9ffd95a2c6ff3641adafab6c6a2837a69681b54b285c5da78dd2243891015b60405180910390a15050565b6109ff3383836122ac565b611213611ec3565b806000036112335760405162461bcd60e51b81526004016107db90613192565b60108190556040518181527fe8398e0e7719f195ea2bb95d541efe683ffe3d6f4e7d5c24befb82d68342f7ee90602001610902565b60006001821015801561127c575060048211155b6112ba5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1e5c19481251608a1b60448201526064016107db565b60008281526007602052604081205490816112d48161238c565b6112df90600a613392565b6112e990866131e5565b6112f3919061339e565b949350505050565b6113036123b5565b336000908152600960205260409020546012548110156113585760405162461bcd60e51b815260206004820152601060248201526f6e6f74456e6f75676820706f696e747360801b60448201526064016107db565b601254336000908152600960205260408120805490919061137a90849061321e565b90915550506001600090815260076020527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8288054916113b883613295565b90915550506001600090815260076020527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285490816113f68161238c565b61140190600a613392565b61140c9060016131e5565b611416919061339e565b9050611434338260016040518060200160405280600081525061240e565b6040518181527f6f8624f38f20ab3833a12a1bc8df730c39fe056e86f6a49bf8fe43f3f4e607c79060200160405180910390a1505050610fd16001600655565b61147c611ec3565b600f8190556040518181527f8fbfdd6c424b206d5133d2dcad26ab30e02a4161f5309efcb54469084d72bd5e90602001610902565b6114b9611ec3565b600e5481116114f85760405162461bcd60e51b815260206004820152600b60248201526a0496e76616c6964206361760ac1b60448201526064016107db565b600e8190556040518181527f30a7677e49e6a959d760baec2010aa2980e91d46a8c6e2456e2cccdcd2edddbf90602001610902565b611535611ec3565b80518251148015611547575060058251105b6115875760405162461bcd60e51b81526020600482015260116024820152701b195b99dd1a081b5a5cd3585d18da1959607a1b60448201526064016107db565b60005b825181101561166f5760018382815181106115a7576115a761327f565b6020026020010151101580156115d7575060048382815181106115cc576115cc61327f565b602002602001015111155b6116125760405162461bcd60e51b815260206004820152600c60248201526b24b73b30b634b2103a34b2b960a11b60448201526064016107db565b8181815181106116245761162461327f565b6020026020010151600860008584815181106116425761164261327f565b6020026020010151815260200190815260200160002081905550808061166790613295565b91505061158a565b507f9b4e13783dfdd62169243d6cc4f8cbba83b5af393f28941c7a55c9883c32904c82826040516111f49291906133b1565b6116a96123b5565b600c5462010000900460ff166116f15760405162461bcd60e51b815260206004820152600d60248201526c73616c65206e6f74206c69766560981b60448201526064016107db565b600c5460ff161561174e57336000908152600a602052604090205460ff1661174e5760405162461bcd60e51b815260206004820152601060248201526f08139bdd081dda1a5d19531a5cdd195960821b60448201526064016107db565b6000821180156117605750600f548211155b6117a55760405162461bcd60e51b8152602060048201526016602482015275185b5bdd5b9d08115e18d95959081c195c881b5a5b9d60521b60448201526064016107db565b600183101580156117b7575060048311155b6117f25760405162461bcd60e51b815260206004820152600c60248201526b24b73b30b634b2103a34b2b960a11b60448201526064016107db565b8260040361185a5760135460008481526007602052604090205461181790849061339e565b111561185a5760405162461bcd60e51b81526020600482015260126024820152711d1a595c880d0818d85c081c995858da195960721b60448201526064016107db565b600c54600090610100900460ff16156118d55760105460008581526008602052604081205490916103e8916118909087906131e5565b61189a91906131e5565b6118a491906131fc565b60008681526008602052604090205490915081906118c39086906131e5565b6118cd919061321e565b915050611a04565b600c546301000000900460ff16156119e757336001600160a01b038316036119385760405162461bcd60e51b815260206004820152601660248201527531b0b73737ba103932b332b9103cb7bab91039b2b63360511b60448201526064016107db565b60115460008581526008602052604081205490916103e89161195b9087906131e5565b61196591906131e5565b61196f91906131fc565b600086815260086020526040902054909150819061198e9086906131e5565b611998919061321e565b91506001600160a01b038316156119e1576119b384866131e5565b6001600160a01b038416600090815260096020526040812080549091906119db90849061339e565b90915550505b50611a04565b600084815260086020526040902054611a019084906131e5565b90505b600e54600d54611a14908361339e565b1115611a555760405162461bcd60e51b815260206004820152601060248201526f63616e6e6f74206d696e74206d6f726560801b60448201526064016107db565b601654611a6d906001600160a01b0316333084612522565b80600d6000828254611a7f919061339e565b90915550606090506000805b85811015611b3c576000878152600760205260408120805491611aad83613295565b9091555050600087815260076020526040812054925082611acd8161238c565b611ad890600a613392565b611ae2908a6131e5565b611aec919061339e565b905080848381518110611b0157611b0161327f565b602002602001018181525050611b29338260016040518060200160405280600081525061240e565b5080611b3481613295565b915050611a8b565b507f0ff1ea38cf16d18c82d232b800ada4c4fc54a12e3f4594e8115065821a8c75218683604051611b6e9291906133df565b60405180910390a1505050611b836001600655565b505050565b611b90611ec3565b60005b8151811015611c6d5760006001600160a01b0316828281518110611bb957611bb961327f565b60200260200101516001600160a01b031603611c115760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420616464206e756c6c206164647265737360481b60448201526064016107db565b6001600a6000848481518110611c2957611c2961327f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611c6581613295565b915050611b93565b507f2e5a39c9760d197f0b3d1ba06ea5c7e9e6c228578fb8aa07a65d6484af90105c8160405161090291906133f8565b611ca5611ec3565b80600003611cc55760405162461bcd60e51b81526004016107db90613192565b60118190556040518181527f765bcf1a9169863ee08e5fdb79d72fc77d7fd66ae0cabc60f13301a74012beaf90602001610902565b6001600160a01b038516331480611d165750611d1685336106b9565b611d325760405162461bcd60e51b81526004016107db90613231565b6000838152600b602052604090205460ff1615611d7f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016107db565b610d7b8585858585612560565b611d94611ec3565b6001600160a01b038116611df95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107db565b610ebc8161225a565b611e0a611ec3565b80600003611e2a5760405162461bcd60e51b81526004016107db90613192565b60138190556040518181527faddbe780363524d91825db575f287fbd8fce35025857cd9b12f2c71ef4c643ab90602001610902565b611e67611ec3565b600c805460ff6301000000808304821615810263ff0000001990931692909217928390556040517f14836bb2c92101fc412650739858a482c61455078c1eae151c5557f52998ceb993610a639390049091161515815260200190565b6005546001600160a01b03163314610fd15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b606060028054611f2c906130d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611f58906130d1565b8015611fa55780601f10611f7a57610100808354040283529160200191611fa5565b820191906000526020600020905b815481529060010190602001808311611f8857829003601f168201915b50505050509050919050565b6000828152600460205260409020611fc9828261348b565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b611ff58461090d565b6040516120029190612ba8565b60405180910390a25050565b6040516001600160a01b038316602482015260448101829052611b8390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261268a565b81518351146120d35760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107db565b6001600160a01b0384166120f95760405162461bcd60e51b81526004016107db9061354a565b3360005b84518110156121e057600085828151811061211a5761211a61327f565b6020026020010151905060008583815181106121385761213861327f565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156121885760405162461bcd60e51b81526004016107db9061358f565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906121c590849061339e565b92505081905550505050806121d990613295565b90506120fd565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516122309291906133b1565b60405180910390a461224681878787878761275c565b505050505050565b60036109ff828261348b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361231f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107db565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000805b8215610807576123a1600a846131fc565b9250806123ad81613295565b915050612390565b6002600654036124075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600655565b6001600160a01b03841661246e5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107db565b33600061247a856128b7565b90506000612487856128b7565b90506000868152602081815260408083206001600160a01b038b168452909152812080548792906124b990849061339e565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461251983600089898989612902565b50505050505050565b6040516001600160a01b038085166024830152831660448201526064810182905261255a9085906323b872dd60e01b9060840161203a565b50505050565b6001600160a01b0384166125865760405162461bcd60e51b81526004016107db9061354a565b336000612592856128b7565b9050600061259f856128b7565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156125e25760405162461bcd60e51b81526004016107db9061358f565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061261f90849061339e565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461267f848a8a8a8a8a612902565b505050505050505050565b60006126df826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129bd9092919063ffffffff16565b805190915015611b8357808060200190518101906126fd91906135d9565b611b835760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107db565b6001600160a01b0384163b156122465760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906127a090899089908890889088906004016135f6565b6020604051808303816000875af19250505080156127db575060408051601f3d908101601f191682019092526127d891810190613654565b60015b612887576127e7613671565b806308c379a00361282057506127fb61368d565b806128065750612822565b8060405162461bcd60e51b81526004016107db9190612ba8565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107db565b6001600160e01b0319811663bc197c8160e01b146125195760405162461bcd60e51b81526004016107db90613716565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106128f1576128f161327f565b602090810291909101015292915050565b6001600160a01b0384163b156122465760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612946908990899088908890889060040161375e565b6020604051808303816000875af1925050508015612981575060408051601f3d908101601f1916820190925261297e91810190613654565b60015b61298d576127e7613671565b6001600160e01b0319811663f23a6e6160e01b146125195760405162461bcd60e51b81526004016107db90613716565b60606112f3848460008585600080866001600160a01b031685876040516129e49190613798565b60006040518083038185875af1925050503d8060008114612a21576040519150601f19603f3d011682016040523d82523d6000602084013e612a26565b606091505b5091509150612a3787838387612a42565b979650505050505050565b60608315612ab1578251600003612aaa576001600160a01b0385163b612aaa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107db565b50816112f3565b6112f383838151156128065781518083602001fd5b80356001600160a01b0381168114612add57600080fd5b919050565b60008060408385031215612af557600080fd5b612afe83612ac6565b946020939093013593505050565b6001600160e01b031981168114610ebc57600080fd5b600060208284031215612b3457600080fd5b81356109e681612b0c565b600060208284031215612b5157600080fd5b5035919050565b60005b83811015612b73578181015183820152602001612b5b565b50506000910152565b60008151808452612b94816020860160208601612b58565b601f01601f19169290920160200192915050565b6020815260006109e66020830184612b7c565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612bf657612bf6612bbb565b6040525050565b600082601f830112612c0e57600080fd5b81356001600160401b03811115612c2757612c27612bbb565b604051612c3e601f8301601f191660200182612bd1565b818152846020838601011115612c5357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215612c8357600080fd5b8235915060208301356001600160401b03811115612ca057600080fd5b612cac85828601612bfd565b9150509250929050565b60006001600160401b03821115612ccf57612ccf612bbb565b5060051b60200190565b600082601f830112612cea57600080fd5b81356020612cf782612cb6565b604051612d048282612bd1565b83815260059390931b8501820192828101915086841115612d2457600080fd5b8286015b84811015612d3f5780358352918301918301612d28565b509695505050505050565b600080600080600060a08688031215612d6257600080fd5b612d6b86612ac6565b9450612d7960208701612ac6565b935060408601356001600160401b0380821115612d9557600080fd5b612da189838a01612cd9565b94506060880135915080821115612db757600080fd5b612dc389838a01612cd9565b93506080880135915080821115612dd957600080fd5b50612de688828901612bfd565b9150509295509295909350565b600060208284031215612e0557600080fd5b6109e682612ac6565b600082601f830112612e1f57600080fd5b81356020612e2c82612cb6565b604051612e398282612bd1565b83815260059390931b8501820192828101915086841115612e5957600080fd5b8286015b84811015612d3f57612e6e81612ac6565b8352918301918301612e5d565b60008060408385031215612e8e57600080fd5b82356001600160401b0380821115612ea557600080fd5b612eb186838701612e0e565b93506020850135915080821115612ec757600080fd5b50612cac85828601612cd9565b600081518084526020808501945080840160005b83811015612f0457815187529582019590820190600101612ee8565b509495945050505050565b6020815260006109e66020830184612ed4565b600060208284031215612f3457600080fd5b81356001600160401b03811115612f4a57600080fd5b6112f384828501612bfd565b60008060408385031215612f6957600080fd5b612f7283612ac6565b9150612f8060208401612ac6565b90509250929050565b8015158114610ebc57600080fd5b60008060408385031215612faa57600080fd5b612fb383612ac6565b91506020830135612fc381612f89565b809150509250929050565b60008060408385031215612fe157600080fd5b82356001600160401b0380821115612ff857600080fd5b612eb186838701612cd9565b60008060006060848603121561301957600080fd5b833592506020840135915061303060408501612ac6565b90509250925092565b60006020828403121561304b57600080fd5b81356001600160401b0381111561306157600080fd5b6112f384828501612e0e565b600080600080600060a0868803121561308557600080fd5b61308e86612ac6565b945061309c60208701612ac6565b9350604086013592506060860135915060808601356001600160401b038111156130c557600080fd5b612de688828901612bfd565b600181811c908216806130e557607f821691505b60208210810361310557634e487b7160e01b600052602260045260246000fd5b50919050565b6000808454613119816130d1565b60018281168015613131576001811461314657613175565b60ff1984168752821515830287019450613175565b8860005260208060002060005b8581101561316c5781548a820152908401908201613153565b50505082870194505b505050508351613189818360208801612b58565b01949350505050565b6020808252600a90820152697a65726f2076616c756560b01b604082015260600190565b6000602082840312156131c857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610807576108076131cf565b60008261321957634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610807576108076131cf565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016132a7576132a76131cf565b5060010190565b600181815b808511156132e95781600019048211156132cf576132cf6131cf565b808516156132dc57918102915b93841c93908002906132b3565b509250929050565b60008261330057506001610807565b8161330d57506000610807565b8160018114613323576002811461332d57613349565b6001915050610807565b60ff84111561333e5761333e6131cf565b50506001821b610807565b5060208310610133831016604e8410600b841016171561336c575081810a610807565b61337683836132ae565b806000190482111561338a5761338a6131cf565b029392505050565b60006109e683836132f1565b80820180821115610807576108076131cf565b6040815260006133c46040830185612ed4565b82810360208401526133d68185612ed4565b95945050505050565b8281526040602082015260006112f36040830184612ed4565b6020808252825182820181905260009190848201906040850190845b818110156134395783516001600160a01b031683529284019291840191600101613414565b50909695505050505050565b601f821115611b8357600081815260208120601f850160051c8101602086101561346c5750805b601f850160051c820191505b8181101561224657828155600101613478565b81516001600160401b038111156134a4576134a4612bbb565b6134b8816134b284546130d1565b84613445565b602080601f8311600181146134ed57600084156134d55750858301515b600019600386901b1c1916600185901b178555612246565b600085815260208120601f198616915b8281101561351c578886015182559484019460019091019084016134fd565b508582101561353a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6000602082840312156135eb57600080fd5b81516109e681612f89565b6001600160a01b0386811682528516602082015260a06040820181905260009061362290830186612ed4565b82810360608401526136348186612ed4565b905082810360808401526136488185612b7c565b98975050505050505050565b60006020828403121561366657600080fd5b81516109e681612b0c565b600060033d111561368a5760046000803e5060005160e01c5b90565b600060443d101561369b5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156136ca57505050505090565b82850191508151818111156136e25750505050505090565b843d87010160208285010111156136fc5750505050505090565b61370b60208286010187612bd1565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612a3790830184612b7c565b600082516137aa818460208701612b58565b919091019291505056fea26469706673582212208343b4ab414d07cf44b576995558e4512fe6835eb34a1530b20b7afbf34c41df64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000000f7777772e676f6f646c652e636f6d2f0000000000000000000000000000000000