[ { "inputs": [ { "internalType": "string", "name": "_colName", "type": "string" }, { "internalType": "string", "name": "_colSymbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "input", "type": "bytes" }, { "internalType": "uint256", "name": "lengthInt", "type": "uint256" } ], "name": "ByteCodeLengthNotMet", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "name": "ERC1967InvalidImplementation", "type": "error" }, { "inputs": [], "name": "ERC1967NonPayable", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidDefaultRoyalty", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidDefaultRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidTokenRoyalty", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidTokenRoyaltyReceiver", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "expected", "type": "uint32" }, { "internalType": "uint32", "name": "max", "type": "uint32" } ], "name": "InsufficientMint", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "maxSupp", "type": "uint256" }, { "internalType": "uint256", "name": "circulateSupp", "type": "uint256" } ], "name": "InsufficientSupply", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "mintPrice", "type": "uint256" } ], "name": "InsufficientValue", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "inputAddress", "type": "address" } ], "name": "InvalidAddr", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotWhitelistAddress", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReachedMintLimit", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "StringsInsufficientHexLength", "type": "error" }, { "inputs": [], "name": "UUPSUnauthorizedCallContext", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "slot", "type": "bytes32" } ], "name": "UUPSUnsupportedProxiableUUID", "type": "error" }, { "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": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "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": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "_draftNftId", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "inputData", "type": "bytes" } ], "name": "mintNfts", "type": "event" }, { "inputs": [], "name": "UPGRADE_INTERFACE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "circularSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "circularSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getbalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_colName", "type": "string" }, { "internalType": "string", "name": "_colSymbol", "type": "string" }, { "internalType": "string", "name": "_baseTokenURI", "type": "string" }, { "internalType": "uint32", "name": "_maxPerMint", "type": "uint32" }, { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_normalMintPrice", "type": "uint256" }, { "internalType": "uint96", "name": "_royaltyPercentInx100", "type": "uint96" }, { "internalType": "uint8", "name": "_whitelistControlFlag", "type": "uint8" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "maxPerMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_jsonUri", "type": "string" }, { "internalType": "uint32", "name": "_quantity", "type": "uint32" }, { "internalType": "uint96", "name": "_royaltyPercentInx100", "type": "uint96" }, { "internalType": "string", "name": "_draftNftId", "type": "string" }, { "internalType": "uint32", "name": "maxWlMint", "type": "uint32" }, { "internalType": "bytes", "name": "whitelistSignature", "type": "bytes" } ], "name": "normalMintNFTs", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "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": "value", "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": "uint256", "name": "_mintPrice", "type": "uint256" } ], "name": "setMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "totalSupply", "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": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60a0604052306080523480156200001557600080fd5b5060405162003d2c38038062003d2c833981016040819052620000389162000153565b600160008190558054610100600160a81b0319167455b0cf9ea794c100a173dacca50ceb412c3969fc00179055600c6200007383826200024e565b50600d6200008282826200024e565b5050506200031a565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b357600080fd5b81516001600160401b0380821115620000d057620000d06200008b565b604051601f8301601f19908116603f01168101908282118183101715620000fb57620000fb6200008b565b81604052838152602092508660208588010111156200011957600080fd5b600091505b838210156200013d57858201830151818301840152908201906200011e565b6000602085830101528094505050505092915050565b600080604083850312156200016757600080fd5b82516001600160401b03808211156200017f57600080fd5b6200018d86838701620000a1565b93506020850151915080821115620001a457600080fd5b50620001b385828601620000a1565b9150509250929050565b600181811c90821680620001d257607f821691505b602082108103620001f357634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000249576000816000526020600020601f850160051c81016020861015620002245750805b601f850160051c820191505b81811015620002455782815560010162000230565b5050505b505050565b81516001600160401b038111156200026a576200026a6200008b565b62000282816200027b8454620001bd565b84620001f9565b602080601f831160018114620002ba5760008415620002a15750858301515b600019600386901b1c1916600185901b17855562000245565b600085815260208120601f198616915b82811015620002eb57888601518255948401946001909101908401620002ca565b50858210156200030a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516139e8620003446000396000818161176801528181611791015261194601526139e86000f3fe6080604052600436106101d75760003560e01c80638da5cb5b11610102578063c87b56dd11610095578063e985e9c511610064578063e985e9c51461057f578063f242432a146105e7578063f2fde38b14610607578063f4a0a5281461062757600080fd5b8063c87b56dd1461050a578063d0e643ac1461052a578063d5abeb011461053d578063d638c90c1461055257600080fd5b8063a3a16ea4116100d1578063a3a16ea41461045f578063ad3cb1cc14610474578063b390c0ab146104bd578063bd85b039146104dd57600080fd5b80638da5cb5b146103cd57806395d89b411461040a5780639a26879d1461041f578063a22cb4651461043f57600080fd5b80632eb2c2d61161017a5780634f1ef286116101495780634f1ef2861461036e578063507e094f1461038157806352d1902d146103a3578063715018a6146103b857600080fd5b80632eb2c2d6146103025780633ccfd60b146103245780634d9b3d5d1461032c5780634e1273f41461034157600080fd5b806306fdde03116101b657806306fdde031461026c5780630e89341c1461028e57806318160ddd146102ae5780632a55205a146102c357600080fd5b8062fdd58e146101dc57806301ffc9a71461020f57806302d05d3f1461023f575b600080fd5b3480156101e857600080fd5b506101fc6101f7366004612e36565b610647565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b5061022f61022a366004612e76565b610690565b6040519015158152602001610206565b34801561024b57600080fd5b5061025461069b565b6040516001600160a01b039091168152602001610206565b34801561027857600080fd5b506102816106d3565b6040516102069190612ee3565b34801561029a57600080fd5b506102816102a9366004612ef6565b610761565b3480156102ba57600080fd5b506009546101fc565b3480156102cf57600080fd5b506102e36102de366004612f0f565b610838565b604080516001600160a01b039093168352602083019190915201610206565b34801561030e57600080fd5b5061032261031d36600461307b565b610850565b005b610322610913565b34801561033857600080fd5b506101fc610a05565b34801561034d57600080fd5b5061036161035c366004613125565b610a14565b6040516102069190613221565b61032261037c366004613234565b610afa565b34801561038d57600080fd5b50600154600160b01b900463ffffffff166101fc565b3480156103af57600080fd5b506101fc610b15565b3480156103c457600080fd5b50610322610b44565b3480156103d957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610254565b34801561041657600080fd5b50610281610b58565b34801561042b57600080fd5b5061032261043a3660046132b9565b610b65565b34801561044b57600080fd5b5061032261045a366004613387565b610e68565b34801561046b57600080fd5b50600b546101fc565b34801561048057600080fd5b506102816040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156104c957600080fd5b506103226104d8366004612f0f565b610e73565b3480156104e957600080fd5b506101fc6104f8366004612ef6565b60009081526008602052604090205490565b34801561051657600080fd5b50610281610525366004612ef6565b610f11565b6103226105383660046133c3565b61100a565b34801561054957600080fd5b506002546101fc565b34801561055e57600080fd5b506101fc61056d366004612ef6565b6000908152600a602052604090205490565b34801561058b57600080fd5b5061022f61059a36600461347c565b6001600160a01b0391821660009081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b3480156105f357600080fd5b506103226106023660046134af565b61142d565b34801561061357600080fd5b50610322610622366004613514565b6114e3565b34801561063357600080fd5b50610322610642366004612ef6565b61153a565b60008181527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500602090815260408083206001600160a01b03861684529091529020545b92915050565b600061068a82611547565b60006106ce7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b905090565b600c80546106e09061352f565b80601f016020809104026020016040519081016040528092919081815260200182805461070c9061352f565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b505050505081565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060917f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500916107b29061352f565b80601f01602080910402602001604051908101604052809291908181526020018280546107de9061352f565b801561082b5780601f106108005761010080835404028352916020019161082b565b820191906000526020600020905b81548152906001019060200180831161080e57829003601f168201915b5050505050915050919050565b6000806108458484611585565b915091509250929050565b336001600160a01b03861681148015906108af57506001600160a01b0380871660009081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209385168352929052205460ff16155b156108fe576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038083166004830152871660248201526044015b60405180910390fd5b61090b8686868686611682565b505050505050565b61091b6116e9565b47806109695760405162461bcd60e51b815260206004820152600c60248201527f5a65726f2042616c616e6365000000000000000000000000000000000000000060448201526064016108f5565b604051600090339083908381818185875af1925050503d80600081146109ab576040519150601f19603f3d011682016040523d82523d6000602084013e6109b0565b606091505b5050905080610a015760405162461bcd60e51b815260206004820152601060248201527f5472616e73666572206661696c65642e0000000000000000000000000000000060448201526064016108f5565b5050565b6000610a0f6116e9565b504790565b60608151835114610a5e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016108f5565b6000835167ffffffffffffffff811115610a7a57610a7a612f31565b604051908082528060200260200182016040528015610aa3578160200160208202803683370190505b50905060005b8451811015610af257602080820286010151610acd90602080840287010151610647565b828281518110610adf57610adf613569565b6020908102919091010152600101610aa9565b509392505050565b610b0261175d565b610b0b8261182d565b610a018282611835565b6000610b1f61193b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610b4c6116e9565b610b56600061199d565b565b600d80546106e09061352f565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610bb05750825b905060008267ffffffffffffffff166001148015610bcd5750303b155b905081158015610bdb575080155b15610c12576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610c5d57845468ff00000000000000001916680100000000000000001785555b60015460ff1615610cb05760405162461bcd60e51b815260206004820152600660248201527f4c6f636b6564000000000000000000000000000000000000000000000000000060448201526064016108f5565b610cb98b611a26565b610cc1611a37565b610cca33611a3f565b610cd2611a37565b610cdc3388611a50565b60018054600782905560038a905560ff88167501000000000000000000000000000000000000000000027fffffffffffffffffffff000000000000000000000000000000000000000000ff909116177455b0cf9ea794c100a173dacca50ceb412c3969fc0017905563ffffffff8a16610d9857600180547fffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff1679ffffffff00000000000000000000000000000000000000000000179055610dcf565b600180547fffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b63ffffffff8d16021790555b60008911610de257600019600255610de8565b60028990555b600c610df48e826135c7565b50600d610e018d826135c7565b506001805460ff1916811790558315610e5957845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b610a01338383611b54565b80610e7e3384610647565b1015610ecc5760405162461bcd60e51b815260206004820152601760248201527f4e6f7420656e6f75676874206e667420746f206275726e00000000000000000060448201526064016108f5565b6000828152600a6020526040902054610ee690829061369d565b6000838152600a6020526040902055600b54610f0390829061369d565b600b55610a01338383611c28565b6000818152600660205260409020805460609190610f2e9061352f565b9050600003610f6c576040517f9307fe39000000000000000000000000000000000000000000000000000000008152600481018390526024016108f5565b60008281526006602052604090208054610f859061352f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb19061352f565b8015610ffe5780601f10610fd357610100808354040283529160200191610ffe565b820191906000526020600020905b815481529060010190602001808311610fe157829003601f168201915b50505050509050919050565b611012611c90565b600060035411801561103657508463ffffffff1660035461103391906136b0565b34105b1561108b57348563ffffffff1660035461105091906136b0565b6040517f7040b58c000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016108f5565b60015463ffffffff600160b01b909104811690861611156110f4576001546040517f1289b0fb00000000000000000000000000000000000000000000000000000000815263ffffffff8781166004830152600160b01b90920490911660248201526044016108f5565b6001547501000000000000000000000000000000000000000000900460ff16156111fe5761117761112430611cd3565b61112d33611cd3565b61113c8563ffffffff16611ce9565b60405160200161114e939291906136c7565b6040516020818303038152906040528260018054906101000a90046001600160a01b0316611d89565b6111ad576040517f68c88eed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604090205463ffffffff8084169116106111fe576040517f5a835bf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546002546000828152600860205260409020546112249063ffffffff89169061373d565b111561127857600254600082815260086020526040908190205490517f9e4c4461000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016108f5565b60016007600082825461128b919061373d565b909155505033600090815260056020526040812080548892906112b590849063ffffffff16613750565b92506101000a81548163ffffffff021916908363ffffffff1602179055508563ffffffff16600960008282546112eb919061373d565b90915550506000818152600860205260408120805463ffffffff8916929061131490849061373d565b925050819055508563ffffffff16600b6000828254611333919061373d565b90915550506000818152600a60205260408120805463ffffffff8916929061135c90849061373d565b9250508190555061138433828863ffffffff1660405180602001604052806000815250611eb4565b61138f813387611f11565b60008181526006602052604090206113a788826135c7565b50600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040519293507f61f40ea2b1f6bd1950e592bd236fd19b8d60a90c11878f8a1516bb3a836b19c5926114199250339150859089908690613774565b60405180910390a1505061090b6001600055565b336001600160a01b038616811480159061148c57506001600160a01b0380871660009081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209385168352929052205460ff16155b156114d6576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038083166004830152871660248201526044016108f5565b61090b8686868686612037565b6114eb6116e9565b6001600160a01b03811661152e576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016108f5565b6115378161199d565b50565b6115426116e9565b600355565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061068a575061068a826120c5565b60008281527fdaedc9ab023613a7caf35e703657e986ccfad7e3eb0af93a2853f8d65dd86b01602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff169282019290925282917fdaedc9ab023613a7caf35e703657e986ccfad7e3eb0af93a2853f8d65dd86b00919061164557506040805180820190915281546001600160a01b0381168252600160a01b90046bffffffffffffffffffffffff1660208201525b602081015160009061271090611669906bffffffffffffffffffffffff16886136b0565b61167391906137cf565b91519791965090945050505050565b6001600160a01b0384166116ac57604051632bfa23e760e11b8152600060048201526024016108f5565b6001600160a01b0385166116d557604051626a0d4560e21b8152600060048201526024016108f5565b6116e28585858585612160565b5050505050565b3361171b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b56576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016108f5565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806117f657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117ea7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610b56576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115376116e9565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561188f575060408051601f3d908101601f1916820190925261188c918101906137e3565b60015b6118d0576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108f5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461192c576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108f5565b61193683836121b3565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b56576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b611a2e612209565b61153781612270565b610b56612209565b611a47612209565b61153781612281565b7fdaedc9ab023613a7caf35e703657e986ccfad7e3eb0af93a2853f8d65dd86b006127106bffffffffffffffffffffffff8316811015611ad3576040517f6f483d090000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff84166004820152602481018290526044016108f5565b6001600160a01b038416611b16576040517fb6d9900a000000000000000000000000000000000000000000000000000000008152600060048201526024016108f5565b50604080518082019091526001600160a01b039093168084526bffffffffffffffffffffffff9092166020909301839052600160a01b909202179055565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b038316611bb8576040517fced3e100000000000000000000000000000000000000000000000000000000008152600060048201526024016108f5565b6001600160a01b038481166000818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611c5157604051626a0d4560e21b8152600060048201526024016108f5565b604080516001808252602082018590528183019081526060820184905260a082019092526000608082018181529192916116e291879185908590612160565b600260005403611ccc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b606061068a6001600160a01b0383166014612289565b60606000611cf6836124af565b600101905060008167ffffffffffffffff811115611d1657611d16612f31565b6040519080825280601f01601f191660200182016040528015611d40576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611d4a57509392505050565b60006001600160a01b03821615801590611da1575060015b611de2576040517f63e38c120000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108f5565b6000611dee8551612591565b85604051602001611e009291906137fc565b6040516020818303038152906040528051906020012090506000806000611e2687612687565b925092509250600060018585858560405160008152602001604052604051611e6a949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611e8c573d6000803e3d6000fd5b5050604051601f1901516001600160a01b0389811691161496505050505050505b9392505050565b6001600160a01b038416611ede57604051632bfa23e760e11b8152600060048201526024016108f5565b6040805160018082526020820186905281830190815260608201859052608082019092529061090b600087848487612160565b7fdaedc9ab023613a7caf35e703657e986ccfad7e3eb0af93a2853f8d65dd86b006127106bffffffffffffffffffffffff8316811015611f9b576040517fdfd1fc1b000000000000000000000000000000000000000000000000000000008152600481018690526bffffffffffffffffffffffff84166024820152604481018290526064016108f5565b6001600160a01b038416611fe5576040517f969f085200000000000000000000000000000000000000000000000000000000815260048101869052600060248201526044016108f5565b506040805180820182526001600160a01b0394851681526bffffffffffffffffffffffff938416602080830191825260009788526001909401909352942093519051909116600160a01b029116179055565b6001600160a01b03841661206157604051632bfa23e760e11b8152600060048201526024016108f5565b6001600160a01b03851661208a57604051626a0d4560e21b8152600060048201526024016108f5565b604080516001808252602082018690528183019081526060820185905260808201909252906120bc8787848487612160565b50505050505050565b60006001600160e01b031982167fd9b67a2600000000000000000000000000000000000000000000000000000000148061212857506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061068a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161461068a565b61216c858585856126e7565b6001600160a01b038416156116e257825133906001036121a5576020848101519084015161219e838989858589612950565b505061090b565b61090b818787878787612aa6565b6121bc82612bc1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612201576119368282612c69565b610a01612cdf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610b56576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612278612209565b61153781612d17565b6114eb612209565b60608260006122998460026136b0565b6122a490600261373d565b67ffffffffffffffff8111156122bc576122bc612f31565b6040519080825280601f01601f1916602001820160405280156122e6576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061231d5761231d613569565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061238057612380613569565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006123bc8560026136b0565b6123c790600161373d565b90505b6001811115612464577f303132333435363738396162636465660000000000000000000000000000000083600f166010811061240857612408613569565b1a60f81b82828151811061241e5761241e613569565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049290921c9161245d81613857565b90506123ca565b5081156124a7576040517fe22e27eb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016108f5565b949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124f8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612524576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061254257662386f26fc10000830492506010015b6305f5e100831061255a576305f5e100830492506008015b612710831061256e57612710830492506004015b60648310612580576064830492506002015b600a831061068a5760010192915050565b60606001825b6125a2600a826137cf565b905080156125bc57816125b48161386e565b925050612597565b60008267ffffffffffffffff8111156125d7576125d7612f31565b6040519080825280601f01601f191660200182016040528015612601576020820181803683370190505b5090505b8261260f81613857565b935061261e9050600a86613888565b61262990603061373d565b60f81b81848151811061263e5761263e613569565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612678600a866137cf565b94508261260557949350505050565b600080600083516041146126cb5783516040517f843f6b300000000000000000000000000000000000000000000000000000000081526108f591869160040161389c565b5050506020810151604082015160609092015160001a92909190565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500911461275157825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016108f5565b3360005b8451811015612870576020818102868101820151908601909101516001600160a01b03891615612821576000828152602086815260408083206001600160a01b038d168452909152902054818110156127fa576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016108f5565b6000838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615612866576000828152602086815260408083206001600160a01b038c1684529091528120805483929061286090849061373d565b90915550505b5050600101612755565b5083516001036128f15760208401516000906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516128e2929190918252602082015260400190565b60405180910390a4505061090b565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516129409291906138be565b60405180910390a4505050505050565b6001600160a01b0384163b1561090b576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e61906129ad90899089908890889088906004016138e3565b6020604051808303816000875af19250505080156129e8575060408051601f3d908101601f191682019092526129e59181019061391b565b60015b612a51573d808015612a16576040519150601f19603f3d011682016040523d82523d6000602084013e612a1b565b606091505b508051600003612a4957604051632bfa23e760e11b81526001600160a01b03861660048201526024016108f5565b805181602001fd5b6001600160e01b031981167ff23a6e6100000000000000000000000000000000000000000000000000000000146120bc57604051632bfa23e760e11b81526001600160a01b03861660048201526024016108f5565b6001600160a01b0384163b1561090b576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190612b039089908990889088908890600401613938565b6020604051808303816000875af1925050508015612b3e575060408051601f3d908101601f19168201909252612b3b9181019061391b565b60015b612b6c573d808015612a16576040519150601f19603f3d011682016040523d82523d6000602084013e612a1b565b6001600160e01b031981167fbc197c8100000000000000000000000000000000000000000000000000000000146120bc57604051632bfa23e760e11b81526001600160a01b03861660048201526024016108f5565b806001600160a01b03163b600003612c10576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108f5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051612c869190613996565b600060405180830381855af49150503d8060008114612cc1576040519150601f19603f3d011682016040523d82523d6000602084013e612cc6565b606091505b5091509150612cd6858383612d63565b95945050505050565b3415610b56576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450261193683826135c7565b606082612d7857612d7382612dd8565b611ead565b8151158015612d8f57506001600160a01b0384163b155b15612dd1576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108f5565b5080611ead565b805115612de85780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b0381168114612e3157600080fd5b919050565b60008060408385031215612e4957600080fd5b612e5283612e1a565b946020939093013593505050565b6001600160e01b03198116811461153757600080fd5b600060208284031215612e8857600080fd5b8135611ead81612e60565b60005b83811015612eae578181015183820152602001612e96565b50506000910152565b60008151808452612ecf816020860160208601612e93565b601f01601f19169290920160200192915050565b602081526000611ead6020830184612eb7565b600060208284031215612f0857600080fd5b5035919050565b60008060408385031215612f2257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f7057612f70612f31565b604052919050565b600067ffffffffffffffff821115612f9257612f92612f31565b5060051b60200190565b600082601f830112612fad57600080fd5b81356020612fc2612fbd83612f78565b612f47565b8083825260208201915060208460051b870101935086841115612fe457600080fd5b602086015b848110156130005780358352918301918301612fe9565b509695505050505050565b600082601f83011261301c57600080fd5b813567ffffffffffffffff81111561303657613036612f31565b6130496020601f19601f84011601612f47565b81815284602083860101111561305e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561309357600080fd5b61309c86612e1a565b94506130aa60208701612e1a565b9350604086013567ffffffffffffffff808211156130c757600080fd5b6130d389838a01612f9c565b945060608801359150808211156130e957600080fd5b6130f589838a01612f9c565b9350608088013591508082111561310b57600080fd5b506131188882890161300b565b9150509295509295909350565b6000806040838503121561313857600080fd5b823567ffffffffffffffff8082111561315057600080fd5b818501915085601f83011261316457600080fd5b81356020613174612fbd83612f78565b82815260059290921b8401810191818101908984111561319357600080fd5b948201945b838610156131b8576131a986612e1a565b82529482019490820190613198565b965050860135925050808211156131ce57600080fd5b506131db85828601612f9c565b9150509250929050565b60008151808452602080850194506020840160005b83811015613216578151875295820195908201906001016131fa565b509495945050505050565b602081526000611ead60208301846131e5565b6000806040838503121561324757600080fd5b61325083612e1a565b9150602083013567ffffffffffffffff81111561326c57600080fd5b6131db8582860161300b565b803563ffffffff81168114612e3157600080fd5b80356bffffffffffffffffffffffff81168114612e3157600080fd5b803560ff81168114612e3157600080fd5b600080600080600080600080610100898b0312156132d657600080fd5b883567ffffffffffffffff808211156132ee57600080fd5b6132fa8c838d0161300b565b995060208b013591508082111561331057600080fd5b61331c8c838d0161300b565b985060408b013591508082111561333257600080fd5b5061333f8b828c0161300b565b96505061334e60608a01613278565b94506080890135935060a0890135925061336a60c08a0161328c565b915061337860e08a016132a8565b90509295985092959890939650565b6000806040838503121561339a57600080fd5b6133a383612e1a565b9150602083013580151581146133b857600080fd5b809150509250929050565b60008060008060008060c087890312156133dc57600080fd5b863567ffffffffffffffff808211156133f457600080fd5b6134008a838b0161300b565b975061340e60208a01613278565b965061341c60408a0161328c565b9550606089013591508082111561343257600080fd5b61343e8a838b0161300b565b945061344c60808a01613278565b935060a089013591508082111561346257600080fd5b5061346f89828a0161300b565b9150509295509295509295565b6000806040838503121561348f57600080fd5b61349883612e1a565b91506134a660208401612e1a565b90509250929050565b600080600080600060a086880312156134c757600080fd5b6134d086612e1a565b94506134de60208701612e1a565b93506040860135925060608601359150608086013567ffffffffffffffff81111561350857600080fd5b6131188882890161300b565b60006020828403121561352657600080fd5b611ead82612e1a565b600181811c9082168061354357607f821691505b60208210810361356357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f821115611936576000816000526020600020601f850160051c810160208610156135a85750805b601f850160051c820191505b8181101561090b578281556001016135b4565b815167ffffffffffffffff8111156135e1576135e1612f31565b6135f5816135ef845461352f565b8461357f565b602080601f83116001811461362a57600084156136125750858301515b600019600386901b1c1916600185901b17855561090b565b600085815260208120601f198616915b828110156136595788860151825594840194600190910190840161363a565b50858210156136775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068a5761068a613687565b808202811582820484141761068a5761068a613687565b600084516136d9818460208901612e93565b80830190507f2c000000000000000000000000000000000000000000000000000000000000008082528551613715816001850160208a01612e93565b60019201918201528351613730816002840160208801612e93565b0160020195945050505050565b8082018082111561068a5761068a613687565b63ffffffff81811683821601908082111561376d5761376d613687565b5092915050565b6001600160a01b038516815283602082015260806040820152600061379c6080830185612eb7565b82810360608401526137ae8185612eb7565b979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826137de576137de6137b9565b500490565b6000602082840312156137f557600080fd5b5051919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161383481601a850160208801612e93565b83519083019061384b81601a840160208801612e93565b01601a01949350505050565b60008161386657613866613687565b506000190190565b6000600019820361388157613881613687565b5060010190565b600082613897576138976137b9565b500690565b6040815260006138af6040830185612eb7565b90508260208301529392505050565b6040815260006138d160408301856131e5565b8281036020840152612cd681856131e5565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526137ae60a0830184612eb7565b60006020828403121561392d57600080fd5b8151611ead81612e60565b60006001600160a01b03808816835280871660208401525060a0604083015261396460a08301866131e5565b828103606084015261397681866131e5565b9050828103608084015261398a8185612eb7565b98975050505050505050565b600082516139a8818460208701612e93565b919091019291505056fea2646970667358221220f8f3d06712dcc5a214f0a61f70f3bfa8a153d27ba0b77f707a2e3c98a2022aed64736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b496e676f744d79734765636b6f436f6c6c656374696f6e313135350000000000000000000000000000000000000000000000000000000000000000000000000b494d4765636b6f31313535000000000000000000000000000000000000000000