[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "EmptyURI", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "InvalidAmount", "type": "error" }, { "inputs": [], "name": "MaxSupplyReached", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintPriceNotPaid", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "MintingNotStartedYet", "type": "error" }, { "inputs": [], "name": "NotEnoughWhitelistSpots", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "SoftCapSupplyReached", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "TransferFailed", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "addr", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "WhitelistSpotsAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "addr", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "WhitelistSpotsRemoved", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "addWhitelistSpots", "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": "address", "name": "_addr", "type": "address" } ], "name": "clearWhitelistSpots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_reservedAmount", "type": "uint256" } ], "name": "increaseSoftCapSupply", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintStartTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "premintTreasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "removeWhitelistSpots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revenueTreasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_timestamp", "type": "uint256" } ], "name": "setMintStartTimestamp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setWhitelistMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "softCapSupply", "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": "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" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "whitelistMintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistSpots", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526706f05b59d3b20000600d5567058d15e176280000600e556362f14f20600f553480156200003157600080fd5b506040518060400160405280600b81526020016a25b7b7b61025b7b0b630bd60a91b8152506040518060400160405280600681526020016525a7a0a620ad60d11b8152508160029081620000869190620004d6565b506003620000958282620004d6565b50506000805550620000a733620000f7565b600a805460ff60a01b19169055620000e27328f23227845a77b96791b93711b157649855b1f46103e862000149602090811b620012c217901c565b620000f161045760966200024e565b620005c9565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b0382161115620001bd5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002155760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620001b4565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600855565b62000258620002ef565b6115b382600c546200026b9190620005a2565b11156200028b5760405163d05cb60960e01b815260040160405180910390fd5b81811115620002b157604051633728b83d60e01b815260048101829052602401620001b4565b81600c6000828254620002c59190620005a2565b90915550620002eb905073f8089e6711c5caf89d3b271e11bd779b135ba03b826200034d565b5050565b600a546001600160a01b031633146200034b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001b4565b565b6000805490829003620003735760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083906000805160206200286c8339815191528180a4600183015b8181146200040257808360006000805160206200286c833981519152600080a4600101620003d9565b50816000036200042457604051622e076360e81b815260040160405180910390fd5b60005550505050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045d57607f821691505b6020821081036200047e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042d57600081815260208120601f850160051c81016020861015620004ad5750805b601f850160051c820191505b81811015620004ce57828155600101620004b9565b505050505050565b81516001600160401b03811115620004f257620004f262000432565b6200050a8162000503845462000448565b8462000484565b602080601f831160018114620005425760008415620005295750858301515b600019600386901b1c1916600185901b178555620004ce565b600085815260208120601f198616915b82811015620005735788860151825594840194600190910190840162000552565b5085821015620005925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008219821115620005c457634e487b7160e01b600052601160045260246000fd5b500190565b61229380620005d96000396000f3fe60806040526004361061023b5760003560e01c8063715018a61161012e578063a611708e116100ab578063d5abeb011161006f578063d5abeb01146106a1578063d69ece4f146106b7578063e985e9c5146106e4578063f2fde38b1461072d578063f4a0a5281461074d57600080fd5b8063a611708e146105f4578063ac9650d814610614578063b88d4fde14610641578063c87b56dd14610661578063cd9f5d8a1461068157600080fd5b806395d89b41116100f257806395d89b411461056e5780639802e16914610583578063a0712d68146105ab578063a0e389de146105be578063a22cb465146105d457600080fd5b8063715018a6146104e6578063811956ed146104fb5780638456cb591461051b5780638da5cb5b146105305780639479685e1461054e57600080fd5b80633e9a2b37116101bc5780635c975abb116101805780635c975abb1461045c5780636352211e1461047b5780636817c76c1461049b5780636c0360eb146104b157806370a08231146104c657600080fd5b80633e9a2b37146103c75780633f4ba83a146103e757806342842e0e146103fc57806354fee61f1461041c57806355f804b31461043c57600080fd5b806318160ddd1161020357806318160ddd1461031957806323b872dd1461033c5780632a55205a1461035c578063331efa421461039b57806335c6aaf8146103b157600080fd5b806301ffc9a71461024057806303b5a5cf1461027557806306fdde03146102b5578063081812fc146102d7578063095ea7b3146102f7575b600080fd5b34801561024c57600080fd5b5061026061025b366004611b67565b61076d565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061029d73f8089e6711c5caf89d3b271e11bd779b135ba03b81565b6040516001600160a01b03909116815260200161026c565b3480156102c157600080fd5b506102ca61078d565b60405161026c9190611bdc565b3480156102e357600080fd5b5061029d6102f2366004611bef565b61081f565b34801561030357600080fd5b50610317610312366004611c24565b610863565b005b34801561032557600080fd5b50600154600054035b60405190815260200161026c565b34801561034857600080fd5b50610317610357366004611c4e565b610903565b34801561036857600080fd5b5061037c610377366004611c8a565b610a9c565b604080516001600160a01b03909316835260208301919091520161026c565b3480156103a757600080fd5b5061032e600c5481565b3480156103bd57600080fd5b5061032e600e5481565b3480156103d357600080fd5b506103176103e2366004611c24565b610b4a565b3480156103f357600080fd5b50610317610b60565b34801561040857600080fd5b50610317610417366004611c4e565b610b72565b34801561042857600080fd5b50610317610437366004611bef565b610b92565b34801561044857600080fd5b50610317610457366004611cac565b610b9f565b34801561046857600080fd5b50600a54600160a01b900460ff16610260565b34801561048757600080fd5b5061029d610496366004611bef565b610bd6565b3480156104a757600080fd5b5061032e600d5481565b3480156104bd57600080fd5b506102ca610be1565b3480156104d257600080fd5b5061032e6104e1366004611d1e565b610c6f565b3480156104f257600080fd5b50610317610cbe565b34801561050757600080fd5b50610317610516366004611d1e565b610cd0565b34801561052757600080fd5b50610317610ce4565b34801561053c57600080fd5b50600a546001600160a01b031661029d565b34801561055a57600080fd5b50610317610569366004611c8a565b610cf4565b34801561057a57600080fd5b506102ca610d8b565b34801561058f57600080fd5b5061029d7328f23227845a77b96791b93711b157649855b1f481565b6103176105b9366004611bef565b610d9a565b3480156105ca57600080fd5b5061032e600f5481565b3480156105e057600080fd5b506103176105ef366004611d39565b610fc8565b34801561060057600080fd5b5061031761060f366004611bef565b61105d565b34801561062057600080fd5b5061063461062f366004611d75565b61106a565b60405161026c9190611dd8565b34801561064d57600080fd5b5061031761065c366004611e50565b61115f565b34801561066d57600080fd5b506102ca61067c366004611bef565b6111a9565b34801561068d57600080fd5b5061031761069c366004611c24565b61122d565b3480156106ad57600080fd5b5061032e6115b381565b3480156106c357600080fd5b5061032e6106d2366004611d1e565b600b6020526000908152604090205481565b3480156106f057600080fd5b506102606106ff366004611f2c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561073957600080fd5b50610317610748366004611d1e565b61123f565b34801561075957600080fd5b50610317610768366004611bef565b6112b5565b6000610778826113bf565b8061078757506107878261140d565b92915050565b60606002805461079c90611f5f565b80601f01602080910402602001604051908101604052809291908181526020018280546107c890611f5f565b80156108155780601f106107ea57610100808354040283529160200191610815565b820191906000526020600020905b8154815290600101906020018083116107f857829003601f168201915b5050505050905090565b600061082a82611442565b610847576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061086e82610bd6565b9050336001600160a01b038216146108a75761088a81336106ff565b6108a7576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600061090e82611469565b9050836001600160a01b0316816001600160a01b0316146109415760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b0388169091141761098e5761097186336106ff565b61098e57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166109b557604051633a954ecd60e21b815260040160405180910390fd5b80156109c057600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610a5257600184016000818152600460205260408120549003610a50576000548114610a505760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b60008281526009602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610b115750604080518082019091526008546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610b30906001600160601b031687611faf565b610b3a9190611fce565b91519350909150505b9250929050565b610b526114d0565b610b5c828261152a565b5050565b610b686114d0565b610b7061159a565b565b610b8d8383836040518060200160405280600081525061115f565b505050565b610b9a6114d0565b600f55565b610ba76114d0565b6000819003610bc95760405163683d806b60e11b815260040160405180910390fd5b6010610b8d828483612036565b600061078782611469565b60108054610bee90611f5f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90611f5f565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b505050505081565b60006001600160a01b038216610c98576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610cc66114d0565b610b7060006115ef565b610cd86114d0565b610ce181611641565b50565b610cec6114d0565b610b70611664565b610cfc6114d0565b6115b382600c54610d0d91906120f6565b1115610d2c5760405163d05cb60960e01b815260040160405180910390fd5b81811115610d5557604051633728b83d60e01b8152600481018290526024015b60405180910390fd5b81600c6000828254610d6791906120f6565b90915550610b5c905073f8089e6711c5caf89d3b271e11bd779b135ba03b826116a7565b60606003805461079c90611f5f565b610da26117a5565b600f54421015610dc557604051633601f27d60e11b815260040160405180910390fd5b80600003610de957604051633728b83d60e01b815260048101829052602401610d4c565b600c5481610dfa6001546000540390565b610e0491906120f6565b1115610e23576040516373ac1a4960e01b815260040160405180910390fd5b336000908152600b602052604090205481811115610e3e5750805b6000600e5482610e4e9190611faf565b600d54610e5b848661210e565b610e659190611faf565b610e6f91906120f6565b905080341015610e92576040516310f0c8f160e11b815260040160405180910390fd5b610e9c33836117f2565b610ea633846116a7565b6040516000907328f23227845a77b96791b93711b157649855b1f49083908381818185875af1925050503d8060008114610efc576040519150601f19603f3d011682016040523d82523d6000602084013e610f01565b606091505b5050905080610f39576040516339f1c8d960e01b81527328f23227845a77b96791b93711b157649855b1f46004820152602401610d4c565b6000610f45833461210e565b905080600003610f56575050505050565b60405133908290600081818185875af1925050503d8060008114610f96576040519150601f19603f3d011682016040523d82523d6000602084013e610f9b565b606091505b50508092505081610fc1576040516339f1c8d960e01b8152336004820152602401610d4c565b5050505050565b336001600160a01b03831603610ff15760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6110656114d0565b600e55565b60608167ffffffffffffffff81111561108557611085611e3a565b6040519080825280602002602001820160405280156110b857816020015b60608152602001906001900390816110a35790505b50905060005b8281101561115857611128308585848181106110dc576110dc612125565b90506020028101906110ee919061213b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061189392505050565b82828151811061113a5761113a612125565b6020026020010181905250808061115090612182565b9150506110be565b5092915050565b61116a848484610903565b6001600160a01b0383163b156111a357611186848484846118b8565b6111a3576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b60606111b482611442565b6111d157604051630a14c4b560e41b815260040160405180910390fd5b60006111db6119a4565b905080516000036111fb5760405180602001604052806000815250611226565b80611205846119b3565b60405160200161121692919061219b565b6040516020818303038152906040525b9392505050565b6112356114d0565b610b5c82826117f2565b6112476114d0565b6001600160a01b0381166112ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d4c565b610ce1816115ef565b6112bd6114d0565b600d55565b6127106001600160601b03821611156113305760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610d4c565b6001600160a01b0382166113865760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610d4c565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600855565b60006301ffc9a760e01b6001600160e01b0319831614806113f057506380ac58cd60e01b6001600160e01b03198316145b806107875750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b148061078757506301ffc9a760e01b6001600160e01b0319831614610787565b6000805482108015610787575050600090815260046020526040902054600160e01b161590565b6000816000548110156114b75760008181526004602052604081205490600160e01b821690036114b5575b80600003611226575060001901600081815260046020526040902054611494565b505b604051636f96cda160e11b815260040160405180910390fd5b600a546001600160a01b03163314610b705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d4c565b6001600160a01b0382166000908152600b6020526040812080548392906115529084906120f6565b90915550506040518181526001600160a01b038316907f867277aaaec66994a1a9e9284ba8e0554c9cf112c132d4048e8a97bc2a02ce1f906020015b60405180910390a25050565b6115a26119eb565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381166000908152600b6020526040902054610b5c82826117f2565b61166c6117a5565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115d23390565b60008054908290036116cc5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461177b57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611743565b508160000361179c57604051622e076360e81b815260040160405180910390fd5b60005550505050565b600a54600160a01b900460ff1615610b705760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610d4c565b6001600160a01b0382166000908152600b602052604090205481111561182b5760405163010cd67960e71b815260040160405180910390fd5b6001600160a01b0382166000908152600b60205260408120805483929061185390849061210e565b90915550506040518181526001600160a01b038316907ff7caf064183501aaef27053f2694706ee3ddba413a1f28cb2e7862b372114ddc9060200161158e565b6060611226838360405180606001604052806027815260200161223760279139611a3b565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906118ed9033908990889088906004016121ca565b6020604051808303816000875af1925050508015611928575060408051601f3d908101601f19168201909252611925918101906121fd565b60015b611986573d808015611956576040519150601f19603f3d011682016040523d82523d6000602084013e61195b565b606091505b50805160000361197e576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60606010805461079c90611f5f565b604080516080019081905280825b600183039250600a81066030018353600a9004806119c15750819003601f19909101908152919050565b600a54600160a01b900460ff16610b705760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d4c565b6060600080856001600160a01b031685604051611a58919061221a565b600060405180830381855af49150503d8060008114611a93576040519150601f19603f3d011682016040523d82523d6000602084013e611a98565b606091505b5091509150611aa986838387611ab3565b9695505050505050565b60608315611b22578251600003611b1b576001600160a01b0385163b611b1b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d4c565b508161199c565b61199c8383815115611b375781518083602001fd5b8060405162461bcd60e51b8152600401610d4c9190611bdc565b6001600160e01b031981168114610ce157600080fd5b600060208284031215611b7957600080fd5b813561122681611b51565b60005b83811015611b9f578181015183820152602001611b87565b838111156111a35750506000910152565b60008151808452611bc8816020860160208601611b84565b601f01601f19169290920160200192915050565b6020815260006112266020830184611bb0565b600060208284031215611c0157600080fd5b5035919050565b80356001600160a01b0381168114611c1f57600080fd5b919050565b60008060408385031215611c3757600080fd5b611c4083611c08565b946020939093013593505050565b600080600060608486031215611c6357600080fd5b611c6c84611c08565b9250611c7a60208501611c08565b9150604084013590509250925092565b60008060408385031215611c9d57600080fd5b50508035926020909101359150565b60008060208385031215611cbf57600080fd5b823567ffffffffffffffff80821115611cd757600080fd5b818501915085601f830112611ceb57600080fd5b813581811115611cfa57600080fd5b866020828501011115611d0c57600080fd5b60209290920196919550909350505050565b600060208284031215611d3057600080fd5b61122682611c08565b60008060408385031215611d4c57600080fd5b611d5583611c08565b915060208301358015158114611d6a57600080fd5b809150509250929050565b60008060208385031215611d8857600080fd5b823567ffffffffffffffff80821115611da057600080fd5b818501915085601f830112611db457600080fd5b813581811115611dc357600080fd5b8660208260051b8501011115611d0c57600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611e2d57603f19888603018452611e1b858351611bb0565b94509285019290850190600101611dff565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611e6657600080fd5b611e6f85611c08565b9350611e7d60208601611c08565b925060408501359150606085013567ffffffffffffffff80821115611ea157600080fd5b818701915087601f830112611eb557600080fd5b813581811115611ec757611ec7611e3a565b604051601f8201601f19908116603f01168101908382118183101715611eef57611eef611e3a565b816040528281528a6020848701011115611f0857600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611f3f57600080fd5b611f4883611c08565b9150611f5660208401611c08565b90509250929050565b600181811c90821680611f7357607f821691505b602082108103611f9357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611fc957611fc9611f99565b500290565b600082611feb57634e487b7160e01b600052601260045260246000fd5b500490565b601f821115610b8d57600081815260208120601f850160051c810160208610156120175750805b601f850160051c820191505b81811015610a9457828155600101612023565b67ffffffffffffffff83111561204e5761204e611e3a565b6120628361205c8354611f5f565b83611ff0565b6000601f841160018114612096576000851561207e5750838201355b600019600387901b1c1916600186901b178355610fc1565b600083815260209020601f19861690835b828110156120c757868501358255602094850194600190920191016120a7565b50868210156120e45760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000821982111561210957612109611f99565b500190565b60008282101561212057612120611f99565b500390565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261215257600080fd5b83018035915067ffffffffffffffff82111561216d57600080fd5b602001915036819003821315610b4357600080fd5b60006001820161219457612194611f99565b5060010190565b600083516121ad818460208801611b84565b8351908301906121c1818360208801611b84565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611aa990830184611bb0565b60006020828403121561220f57600080fd5b815161122681611b51565b6000825161222c818460208701611b84565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122075dcd7c302480c044433bec3512111ef15c9747d6ac354b53119702c3f03837264736f6c634300080f0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef