Loading
[ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "InvalidOwner", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "NotFound", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ERC721Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "activePhase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "availableIds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "phase", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "canMintAmountInPhase", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "contractNFTBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "contractTokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "enoughTokenBalance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "phase", "type": "uint256" }, { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "grantPhaseAccess", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "phase", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasPhaseAccess", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintHasStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "ownerMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phaseDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "phaseMintsRemaining", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phases", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "revokeOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "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": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "secondsUntilStart", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "_maxMintPerTx", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "mintActive_", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_royaltyAmount", "type": "uint256" } ], "name": "setRoyaltyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "setRoyaltyReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAvailableIds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "totalNFTsOwned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalNativeSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60e06040523480156200001157600080fd5b506040516200372038038062003720833981016040819052620000349162000201565b604080518082018252601381527f414349443430343a20544845205349434b4f530000000000000000000000000060208083019190915282518084019093526006835265245349434b4f60d01b908301529060126108ae85806001600160a01b038116620000b5576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060016200010c8682620002e4565b5060026200011b8582620002e4565b5060ff8316608081905260c08390526200013790600a620004c5565b620001439083620004dd565b60a0525050506001600160a01b0384166000818152600460209081526040808320683635c9adc5dea000009055600c825291829020805460ff1916600117905567016345785d8a00006012556104c6600f5560fa601055601780546003601155601888905561ffff19169055601380546001600160a01b03191690931790925580516060810190915260368082529093509150620036ea90830139600e90620001ed9082620002e4565b5050610258601655506002601555620004f7565b600080604083850312156200021557600080fd5b82516001600160a01b03811681146200022d57600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200026857607f821691505b6020821081036200028957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002df576000816000526020600020601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b038111156200030057620003006200023d565b620003188162000311845462000253565b846200028f565b602080601f831160018114620003505760008415620003375750858301515b600019600386901b1c1916600185901b178555620002db565b600085815260208120601f198616915b82811015620003815788860151825594840194600190910190840162000360565b5085821015620003a05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000407578160001904821115620003eb57620003eb620003b0565b80851615620003f957918102915b93841c9390800290620003cb565b509250929050565b6000826200042057506001620004bf565b816200042f57506000620004bf565b8160018114620004485760028114620004535762000473565b6001915050620004bf565b60ff841115620004675762000467620003b0565b50506001821b620004bf565b5060208310610133831016604e8410600b841016171562000498575081810a620004bf565b620004a48383620003c6565b8060001904821115620004bb57620004bb620003b0565b0290505b92915050565b6000620004d660ff8416836200040f565b9392505050565b8082028115828204841417620004bf57620004bf620003b0565b60805160a05160c0516131ae6200053c600039600081816107da01526123c5015260008181610518015261213901526000818161060b0152611a5d01526131ae6000f3fe60806040526004361061038c5760003560e01c80637c6e551d116101dc578063ac5553ce11610102578063d9adc191116100a0578063ee1cc9441161006f578063ee1cc94414610b27578063ef1f3ebb14610b47578063f2fde38b14610b7d578063ff6728ad14610b9d57600080fd5b8063d9adc19114610a68578063dd62ed3e14610a9e578063de7fcb1d14610ad6578063e985e9c514610aec57600080fd5b8063c6f6f216116100dc578063c6f6f216146109f3578063c87b56dd14610a13578063d528d11814610a33578063d547cfb714610a5357600080fd5b8063ac5553ce146109a7578063b76b8ced146109bd578063b88d4fde146109d357600080fd5b80639fbc87131161017a578063a22cb46511610149578063a22cb46514610902578063a4fd255914610922578063a9059cbb14610942578063a96fd9d51461096257600080fd5b80639fbc8713146108a1578063a035b1fe146108c1578063a0712d68146108d7578063a21b5fe9146108ea57600080fd5b80638dc251e3116101b65780638dc251e31461081c57806391b7f5ed1461083c57806395d89b411461085c5780639b19251a1461087157600080fd5b80637c6e551d146107b257806381456f48146107c85780638da5cb5b146107fc57600080fd5b80632a55205a116102c15780634f07de091161025f5780636352211e1161022e5780636352211e1461072f57806366e3e5e41461074f57806370a082311461076f57806378e979251461079c57600080fd5b80634f07de09146106b557806353d6fd59146106d557806355f804b3146106f55780635c975abb1461071557600080fd5b80633e0a322d1161029b5780633e0a322d1461063f57806342842e0e1461065f578063484b973c1461067f5780634f02c4201461069f57600080fd5b80632a55205a146105a55780632b968958146105e4578063313ce567146105f957600080fd5b80630e1b26c61161032e5780631ae24366116103085780631ae243661461053a5780632154dc391461055a57806323b872dd1461057057806325fd90f31461059057600080fd5b80630e1b26c6146104cf57806316c38b3c146104e457806318160ddd1461050657600080fd5b806306fdde031161036a57806306fdde03146103fa578063081812fc1461041c578063095ea7b31461046a5780630ca793c31461048a57600080fd5b806301ffc9a71461039157806304bdc76b146103c6578063051cbd24146103e5575b600080fd5b34801561039d57600080fd5b506103b16103ac3660046128ce565b610bd5565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b50600d545b6040519081526020016103bd565b3480156103f157600080fd5b506103d7610ca6565b34801561040657600080fd5b5061040f610cd1565b6040516103bd919061290f565b34801561042857600080fd5b50610452610437366004612942565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561047657600080fd5b506103b1610485366004612972565b610d5f565b34801561049657600080fd5b506103b16104a536600461299c565b60009283526014602090815260408085206001600160a01b03949094168552929052912054101590565b3480156104db57600080fd5b506103d7610eaf565b3480156104f057600080fd5b506105046104ff3660046129e1565b610f15565b005b34801561051257600080fd5b506103d77f000000000000000000000000000000000000000000000000000000000000000081565b34801561054657600080fd5b506103b1610555366004612972565b610f52565b34801561056657600080fd5b506103d7600f5481565b34801561057c57600080fd5b506103b161058b3660046129fc565b610fae565b34801561059c57600080fd5b506103b1611076565b3480156105b157600080fd5b506105c56105c0366004612a28565b611094565b604080516001600160a01b0390931683526020830191909152016103bd565b3480156105f057600080fd5b506105046110ce565b34801561060557600080fd5b5061062d7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103bd565b34801561064b57600080fd5b5061050461065a366004612942565b611134565b34801561066b57600080fd5b5061050461067a3660046129fc565b611163565b34801561068b57600080fd5b5061050461069a366004612972565b61123e565b3480156106ab57600080fd5b506103d760035481565b3480156106c157600080fd5b506105046106d0366004612942565b611276565b3480156106e157600080fd5b506105046106f0366004612a4a565b6112a5565b34801561070157600080fd5b50610504610710366004612ac4565b6112fa565b34801561072157600080fd5b506017546103b19060ff1681565b34801561073b57600080fd5b5061045261074a366004612942565b611330565b34801561075b57600080fd5b506103d761076a366004612b59565b611384565b34801561077b57600080fd5b506103d761078a366004612b59565b60046020526000908152604090205481565b3480156107a857600080fd5b506103d760185481565b3480156107be57600080fd5b506103d760105481565b3480156107d457600080fd5b506103d77f000000000000000000000000000000000000000000000000000000000000000081565b34801561080857600080fd5b50600054610452906001600160a01b031681565b34801561082857600080fd5b50610504610837366004612b59565b6113d4565b34801561084857600080fd5b50610504610857366004612942565b611420565b34801561086857600080fd5b5061040f61144f565b34801561087d57600080fd5b506103b161088c366004612b59565b600c6020526000908152604090205460ff1681565b3480156108ad57600080fd5b50601354610452906001600160a01b031681565b3480156108cd57600080fd5b506103d760125481565b6105046108e5366004612942565b61145c565b3480156108f657600080fd5b506018544210156103b1565b34801561090e57600080fd5b5061050461091d366004612a4a565b6116dc565b34801561092e57600080fd5b5061050461093d366004612b74565b611748565b34801561094e57600080fd5b506103b161095d366004612972565b6117ed565b34801561096e57600080fd5b506103b161097d366004612c35565b60009182526014602090815260408084206001600160a01b03939093168452919052902054151590565b3480156109b357600080fd5b506103d760165481565b3480156109c957600080fd5b506103d760155481565b3480156109df57600080fd5b506105046109ee366004612c58565b611801565b3480156109ff57600080fd5b50610504610a0e366004612942565b6118cc565b348015610a1f57600080fd5b5061040f610a2e366004612942565b6118fb565b348015610a3f57600080fd5b506103d7610a4e366004612942565b61192f565b348015610a5f57600080fd5b5061040f611950565b348015610a7457600080fd5b506103d7610a83366004612b59565b6001600160a01b031660009081526009602052604090205490565b348015610aaa57600080fd5b506103d7610ab9366004612cf3565b600560209081526000928352604080842090915290825290205481565b348015610ae257600080fd5b506103d760115481565b348015610af857600080fd5b506103b1610b07366004612cf3565b600760209081526000928352604080842090915290825290205460ff1681565b348015610b3357600080fd5b50610504610b423660046129e1565b61195d565b348015610b5357600080fd5b506103d7610b62366004612b59565b6001600160a01b03166000908152600a602052604090205490565b348015610b8957600080fd5b50610504610b98366004612b59565b6119a1565b348015610ba957600080fd5b506103d7610bb8366004612c35565b601460209081526000928352604080842090915290825290205481565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480610c3857506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610c6c57506001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000145b80610ca057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6000610cb460185442101590565b610ccb5742601854610cc69190612d33565b905090565b50600090565b60018054610cde90612d46565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0a90612d46565b8015610d575780601f10610d2c57610100808354040283529160200191610d57565b820191906000526020600020905b815481529060010190602001808311610d3a57829003601f168201915b505050505081565b60006003548211158015610d735750600082115b15610e4a576000828152600860205260409020546001600160a01b0316338114801590610dc457506001600160a01b038116600090815260076020908152604080832033845290915290205460ff16155b15610de1576040516282b42960e81b815260040160405180910390fd5b60008381526006602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350610ea6565b3360008181526005602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50600192915050565b6000610ebd60185442101590565b610ec75750600090565b600060185442610ed79190612d33565b9050600060165482610ee99190612d80565b610ef4906001612da2565b9050601554811115610ca057601554610f0e906001612da2565b9250505090565b6000546001600160a01b03163314610f3f576040516282b42960e81b815260040160405180910390fd5b6017805460ff1916911515919091179055565b600080610f5d611a56565b6001600160a01b0385166000908152600a6020526040902054610f809190612db5565b6001600160a01b038516600090815260046020526040902054610fa39190612d33565b909211159392505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054828110156110275760405162461bcd60e51b815260206004820152601560248201527f4e6f7420656e6f75676820616c6c6f77616e63652e000000000000000000000060448201526064015b60405180910390fd5b600019811461105f5761103a8382612d33565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b61106a858585611a83565b50600195945050505050565b601754600090610100900460ff1680610cc657505060185442101590565b60135460105460009182916001600160a01b0390911690612710906110b99086612db5565b6110c39190612d80565b915091509250929050565b6000546001600160a01b031633146110f8576040516282b42960e81b815260040160405180910390fd5b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b6000546001600160a01b0316331461115e576040516282b42960e81b815260040160405180910390fd5b601855565b61116f33848484611ce1565b6001600160a01b0382163b1580159061121b5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156111ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120e9190612dcc565b6001600160e01b03191614155b1561123957604051633da6393160e01b815260040160405180910390fd5b505050565b6000546001600160a01b03163314611268576040516282b42960e81b815260040160405180910390fd5b6112728282611f5b565b5050565b6000546001600160a01b031633146112a0576040516282b42960e81b815260040160405180910390fd5b601055565b6000546001600160a01b031633146112cf576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611324576040516282b42960e81b815260040160405180910390fd5b600e6112728282612e39565b6000818152600860205260409020546001600160a01b03168061137f576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600061138e611a56565b6001600160a01b0383166000908152600a60205260409020546113b19190612db5565b6001600160a01b038316600090815260046020526040902054610ca09190612d33565b6000546001600160a01b031633146113fe576040516282b42960e81b815260040160405180910390fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461144a576040516282b42960e81b815260040160405180910390fd5b601255565b60028054610cde90612d46565b611464611076565b6114b05760405162461bcd60e51b815260206004820152601660248201527f4d696e74696e67206973206e6f74206163746976652e00000000000000000000604482015260640161101e565b60175460ff16156114c057600080fd5b6011548111156115125760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000604482015260640161101e565b600f54816003546115239190612da2565b11156115715760405162461bcd60e51b815260206004820152601160248201527f46696e6973686564206d696e74696e672e000000000000000000000000000000604482015260640161101e565b60125461157e9082612db5565b3410156115cd5760405162461bcd60e51b815260206004820152601560248201527f4e6f7420656e6f75676820415641582073656e742e0000000000000000000000604482015260640161101e565b60015b601554811161168c57806115e2610eaf565b0361167a57600081815260146020908152604080832033845290915290205482111561160d82611fb7565b60405160200161161d9190612ef9565b6040516020818303038152906040529061164a5760405162461bcd60e51b815260040161101e919061290f565b50600081815260146020908152604080832033845290915281208054849290611674908490612d33565b90915550505b8061168481612f65565b9150506115d0565b5034156116cf57600080546040516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156116cd573d6000803e3d6000fd5b505b6116d93382611f5b565b50565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b03163314611772576040516282b42960e81b815260040160405180910390fd5b60005b82518110156117e757600084815260146020526040812084518492908690859081106117a3576117a3612f7e565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546117da9190612da2565b9091555050600101611775565b50505050565b60006117fa338484611a83565b9392505050565b61180d33868686611ce1565b6001600160a01b0384163b158015906118a75750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a02906118579033908a90899089908990600401612f94565b6020604051808303816000875af1158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190612dcc565b6001600160e01b03191614155b156118c557604051633da6393160e01b815260040160405180910390fd5b5050505050565b6000546001600160a01b031633146118f6576040516282b42960e81b815260040160405180910390fd5b601155565b6060600e61190883611fb7565b604051602001611919929190612fe8565b6040516020818303038152906040529050919050565b600d818154811061193f57600080fd5b600091825260209091200154905081565b600e8054610cde90612d46565b6000546001600160a01b03163314611987576040516282b42960e81b815260040160405180910390fd5b601780549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146119cb576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116611a0b576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610cc67f0000000000000000000000000000000000000000000000000000000000000000600a613153565b6000611a90848484612057565b6000611a9a611a56565b6001600160a01b0386811660009081526004602052604080822054928816825290205491925090863b15611b4a576001600160a01b0387166000908152600a6020526040812054611aec908590612db5565b611af69084612d33565b905085811015611b485760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63652e00000000000000604482015260640161101e565b505b6001600160a01b03871660009081526004602052604081208054879290611b72908490612d33565b90915550506001600160a01b0386166000908152600460205260409020805486019055611b9e876121d0565b1580611bc157506001600160a01b03871660009081526009602052604090205415155b15611c1f576001600160a01b038716600090815260046020526040812054611bea908590612d80565b611bf48585612d80565b611bfe9190612d33565b905060005b81811015611c1c57611c14896121f9565b600101611c03565b50505b611c28866121d0565b611c87576000611c388483612d80565b6001600160a01b038816600090815260046020526040902054611c5c908690612d80565b611c669190612d33565b905060005b81811015611c8457611c7c8861236c565b600101611c6b565b50505b856001600160a01b0316876001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051611ccc91815260200190565b60405180910390a35060019695505050505050565b6000818152600860205260409020546001600160a01b03848116911614611d4a5760405162461bcd60e51b815260206004820152601b60248201527f53656e646572206973206e6f74206f776e6572206f66204e46542e0000000000604482015260640161101e565b6001600160a01b038216611da05760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f206e756c6c20616464726573732e00000000604482015260640161101e565b826001600160a01b0316846001600160a01b03161480611de557506001600160a01b0380841660009081526007602090815260408083209388168352929052205460ff165b80611e0957506000818152600660205260409020546001600160a01b038581169116145b611e555760405162461bcd60e51b815260206004820152601960248201527f4f70657261746f72206973206e6f7420617070726f7665642e00000000000000604482015260640161101e565b611e5d611a56565b6001600160a01b03841660009081526004602052604081208054909190611e85908490612d33565b90915550611e939050611a56565b6001600160a01b038316600090815260046020526040902080549091019055611ebc838261254b565b611ec6828261271b565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4816001600160a01b0316836001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487611f44611a56565b60405190815260200160405180910390a350505050565b611f63611a56565b611f6d9082612db5565b6001600160a01b03831660009081526004602052604081208054909190611f95908490612da2565b90915550600090505b8181101561123957611faf8361236c565b600101611f9e565b60606000611fc4836127d6565b600101905060008167ffffffffffffffff811115611fe457611fe4612a7d565b6040519080825280601f01601f19166020018201604052801561200e576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461201857509392505050565b601554612062610eaf565b11612102576000546001600160a01b038481169116148061209057506000546001600160a01b038381169116145b6112395760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f74207472616e7366657220756e74696c206d696e7420656e74657260448201527f73207075626c69632e0000000000000000000000000000000000000000000000606482015260840161101e565b6016546015546121129190612db5565b60185461211f9190612da2565b61212a9060b4612da2565b421015611239576103e861215f7f00000000000000000000000000000000000000000000000000000000000000006005612db5565b6121699190612d80565b6001600160a01b03831660009081526004602052604090205411156112395760405162461bcd60e51b815260206004820181905260248201527f4e6f206d6f7265207468616e20302e352520617420746869732073746167652e604482015260640161101e565b6001600160a01b0381166000908152600c602052604081205460ff1680610ca05750813b610ca0565b6001600160a01b038116612239576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166000908152600960205260408120805461225f90600190612d33565b8154811061226f5761226f612f7e565b9060005260206000200154905060096000836001600160a01b03166001600160a01b031681526020019081526020016000208054806122b0576122b0613162565b600082815260208082208301600019908101839055909201909255828252600b815260408083208390556008825280832080546001600160a01b031990811690915560069092528083208054909216909155600d80546001810182559083527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501839055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0381166123ac576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d5460009081036124615760038054600101908190557f000000000000000000000000000000000000000000000000000000000000000010156124585760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74206d696e74206d6f7265207468616e20676976656e207375707060448201527f6c792e0000000000000000000000000000000000000000000000000000000000606482015260840161101e565b506003546124b6565b600d805461247190600190612d33565b8154811061248157612481612f7e565b90600052602060002001549050600d80548061249f5761249f613162565b600190038181906000526020600020016000905590555b6000818152600860205260409020546001600160a01b031615612505576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61250f828261271b565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000823b1561261e576001600160a01b0383166000908152600a60205260409020805461257a90600190612d33565b8154811061258a5761258a612f7e565b60009182526020808320909101546001600160a01b0386168352600a82526040808420868552600b909352909220548154929350839281106125ce576125ce612f7e565b60009182526020808320909101929092556001600160a01b0385168152600a9091526040902080548061260357612603613162565b600190038181906000526020600020016000905590556126e4565b6001600160a01b0383166000908152600960205260409020805461264490600190612d33565b8154811061265457612654612f7e565b60009182526020808320909101546001600160a01b0386168352600982526040808420868552600b9093529092205481549293508392811061269857612698612f7e565b60009182526020808320909101929092556001600160a01b03851681526009909152604090208054806126cd576126cd613162565b600190038181906000526020600020016000905590555b6000828152600b6020908152604080832054938352808320939093559281526006909252902080546001600160a01b031916905550565b600081815260086020526040902080546001600160a01b0319166001600160a01b038416179055813b15612799576001600160a01b0382166000818152600a602090815260408220805460018181018355828552928420018590559290915290546127869190612d33565b6000828152600b60205260409020555050565b6001600160a01b03821660008181526009602090815260408220805460018181018355828552928420018590559290915290546127869190612d33565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061281f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061284b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061286957662386f26fc10000830492506010015b6305f5e1008310612881576305f5e100830492506008015b612710831061289557612710830492506004015b606483106128a7576064830492506002015b600a8310610ca05760010192915050565b6001600160e01b0319811681146116d957600080fd5b6000602082840312156128e057600080fd5b81356117fa816128b8565b60005b838110156129065781810151838201526020016128ee565b50506000910152565b602081526000825180602084015261292e8160408501602087016128eb565b601f01601f19169190910160400192915050565b60006020828403121561295457600080fd5b5035919050565b80356001600160a01b038116811461137f57600080fd5b6000806040838503121561298557600080fd5b61298e8361295b565b946020939093013593505050565b6000806000606084860312156129b157600080fd5b833592506129c16020850161295b565b9150604084013590509250925092565b8035801515811461137f57600080fd5b6000602082840312156129f357600080fd5b6117fa826129d1565b600080600060608486031215612a1157600080fd5b612a1a8461295b565b92506129c16020850161295b565b60008060408385031215612a3b57600080fd5b50508035926020909101359150565b60008060408385031215612a5d57600080fd5b612a668361295b565b9150612a74602084016129d1565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612abc57612abc612a7d565b604052919050565b60006020808385031215612ad757600080fd5b823567ffffffffffffffff80821115612aef57600080fd5b818501915085601f830112612b0357600080fd5b813581811115612b1557612b15612a7d565b612b27601f8201601f19168501612a93565b91508082528684828501011115612b3d57600080fd5b8084840185840137600090820190930192909252509392505050565b600060208284031215612b6b57600080fd5b6117fa8261295b565b600080600060608486031215612b8957600080fd5b8335925060208085013567ffffffffffffffff80821115612ba957600080fd5b818701915087601f830112612bbd57600080fd5b813581811115612bcf57612bcf612a7d565b8060051b9150612be0848301612a93565b818152918301840191848101908a841115612bfa57600080fd5b938501935b83851015612c1f57612c108561295b565b82529385019390850190612bff565b979a979950505050604095909501359450505050565b60008060408385031215612c4857600080fd5b82359150612a746020840161295b565b600080600080600060808688031215612c7057600080fd5b612c798661295b565b9450612c876020870161295b565b935060408601359250606086013567ffffffffffffffff80821115612cab57600080fd5b818801915088601f830112612cbf57600080fd5b813581811115612cce57600080fd5b896020828501011115612ce057600080fd5b9699959850939650602001949392505050565b60008060408385031215612d0657600080fd5b612d0f8361295b565b9150612a746020840161295b565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ca057610ca0612d1d565b600181811c90821680612d5a57607f821691505b602082108103612d7a57634e487b7160e01b600052602260045260246000fd5b50919050565b600082612d9d57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610ca057610ca0612d1d565b8082028115828204841417610ca057610ca0612d1d565b600060208284031215612dde57600080fd5b81516117fa816128b8565b601f821115611239576000816000526020600020601f850160051c81016020861015612e125750805b601f850160051c820191505b81811015612e3157828155600101612e1e565b505050505050565b815167ffffffffffffffff811115612e5357612e53612a7d565b612e6781612e618454612d46565b84612de9565b602080601f831160018114612e9c5760008415612e845750858301515b600019600386901b1c1916600185901b178555612e31565b600085815260208120601f198616915b82811015612ecb57888601518255948401946001909101908401612eac565b5085821015612ee95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f43757272656e746c7920696e2070686173652000000000000000000000000000815260008251612f318160138501602087016128eb565b7f2e000000000000000000000000000000000000000000000000000000000000006013939091019283015250601401919050565b600060018201612f7757612f77612d1d565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000808454612ff681612d46565b6001828116801561300e576001811461302357613052565b60ff1984168752821515830287019450613052565b8860005260208060002060005b858110156130495781548a820152908401908201613030565b50505082870194505b5050505083516130668183602088016128eb565b01949350505050565b600181815b808511156130aa57816000190482111561309057613090612d1d565b8085161561309d57918102915b93841c9390800290613074565b509250929050565b6000826130c157506001610ca0565b816130ce57506000610ca0565b81600181146130e457600281146130ee5761310a565b6001915050610ca0565b60ff8411156130ff576130ff612d1d565b50506001821b610ca0565b5060208310610133831016604e8410600b841016171561312d575081810a610ca0565b613137838361306f565b806000190482111561314b5761314b612d1d565b029392505050565b60006117fa60ff8416836130b2565b634e487b7160e01b600052603160045260246000fdfea26469706673582212207e03959bafdc59557db2d3a21961d9c52eb30aa966e0aaaeab715175d2e3891c64736f6c63430008180033697066733a2f2f516d663658593766426e6438795163426d43316e52453657766e6d383764776d526978537477766637514e5657782f000000000000000000000000ea869669210a69b035b382e0f2a498b87dc6a45c0000000000000000000000000000000000000000000000000000000065e24fe0