[ { "inputs": [ { "internalType": "string", "name": "_baseMetadataUrl", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "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": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "mintAmount", "type": "uint256" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "freeAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hiddenMetadataUrl", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isRevealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxFreeSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintAmount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "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": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "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": "_baseURL", "type": "string" } ], "name": "setBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmt", "type": "uint256" } ], "name": "setFreeAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxFreeSupply", "type": "uint256" } ], "name": "setMaxFreeSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmt", "type": "uint256" } ], "name": "setMaxPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setPause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_hiddenMetadataUrl", "type": "string" } ], "name": "sethiddenMetadataUrl", "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": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052611b39600a55611770600b55660110d9316ec000600c556001600d556045600e556000600f60006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff02191690831515021790555060405180602001604052806000815250601090816200007b9190620005f3565b5060405180608001604052806042815260200162003e786042913960119081620000a69190620005f3565b50348015620000b457600080fd5b5060405162003eba38038062003eba8339818101604052810190620000da91906200083e565b6040518060400160405280601081526020017f4465616c205769746820497420454747000000000000000000000000000000008152506040518060400160405280600581526020017f24445749450000000000000000000000000000000000000000000000000000008152508160029081620001579190620005f3565b508060039081620001699190620005f3565b506200017a620001c260201b60201c565b6000819055505050620001a262000196620001cb60201b60201c565b620001d360201b60201c565b6001600981905550620001bb816200029960201b60201c565b5062000912565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002a9620002be60201b60201c565b8060109081620002ba9190620005f3565b5050565b620002ce620001cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002f46200034f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200034d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200034490620008f0565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003fb57607f821691505b602082108103620004115762000410620003b3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200047b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200043c565b6200048786836200043c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004d4620004ce620004c8846200049f565b620004a9565b6200049f565b9050919050565b6000819050919050565b620004f083620004b3565b62000508620004ff82620004db565b84845462000449565b825550505050565b600090565b6200051f62000510565b6200052c818484620004e5565b505050565b5b8181101562000554576200054860008262000515565b60018101905062000532565b5050565b601f821115620005a3576200056d8162000417565b62000578846200042c565b8101602085101562000588578190505b620005a062000597856200042c565b83018262000531565b50505b505050565b600082821c905092915050565b6000620005c860001984600802620005a8565b1980831691505092915050565b6000620005e38383620005b5565b9150826002028217905092915050565b620005fe8262000379565b67ffffffffffffffff8111156200061a576200061962000384565b5b620006268254620003e2565b6200063382828562000558565b600060209050601f8311600181146200066b576000841562000656578287015190505b620006628582620005d5565b865550620006d2565b601f1984166200067b8662000417565b60005b82811015620006a5578489015182556001820191506020850194506020810190506200067e565b86831015620006c55784890151620006c1601f891682620005b5565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200071482620006f8565b810181811067ffffffffffffffff8211171562000736576200073562000384565b5b80604052505050565b60006200074b620006da565b905062000759828262000709565b919050565b600067ffffffffffffffff8211156200077c576200077b62000384565b5b6200078782620006f8565b9050602081019050919050565b60005b83811015620007b457808201518184015260208101905062000797565b60008484015250505050565b6000620007d7620007d1846200075e565b6200073f565b905082815260208101848484011115620007f657620007f5620006f3565b5b6200080384828562000794565b509392505050565b600082601f830112620008235762000822620006ee565b5b815162000835848260208601620007c0565b91505092915050565b600060208284031215620008575762000856620006e4565b5b600082015167ffffffffffffffff811115620008785762000877620006e9565b5b62000886848285016200080b565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620008d86020836200088f565b9150620008e582620008a0565b602082019050919050565b600060208201905081810360008301526200090b81620008c9565b9050919050565b61355680620009226000396000f3fe6080604052600436106102255760003560e01c806370a0823111610123578063a0bcfc7f116100ab578063cb2b1c5e1161006f578063cb2b1c5e1461079c578063d5abeb01146107c5578063e268e4d3146107f0578063e985e9c514610819578063f2fde38b1461085657610225565b8063a0bcfc7f146106c8578063a22cb465146106f1578063b88d4fde1461071a578063bedb86fb14610736578063c87b56dd1461075f57610225565b80638da5cb5b116100f25780638da5cb5b1461060457806392910eec1461062f578063940cd05b1461065857806395d89b4114610681578063a0712d68146106ac57610225565b806370a082311461055c578063715018a6146105995780638456cb59146105b05780638ba4cc3c146105db57610225565b806323b872dd116101b15780634751333411610175578063475133341461047757806354214f69146104a25780635b28fd91146104cd5780636352211e146104f65780636f8b44b01461053357610225565b806323b872dd146103d45780633ccfd60b146103f057806342842e0e1461040757806344a0d68a14610423578063453c23101461044c57610225565b8063081812fc116101f8578063081812fc146102fa578063095ea7b31461033757806313faede6146103535780631638fef01461037e57806318160ddd146103a957610225565b80630103c92b1461022a57806301ffc9a7146102675780630451a9f1146102a457806306fdde03146102cf575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190612575565b61087f565b60405161025e91906125bb565b60405180910390f35b34801561027357600080fd5b5061028e6004803603810190610289919061262e565b610897565b60405161029b9190612676565b60405180910390f35b3480156102b057600080fd5b506102b9610929565b6040516102c691906125bb565b60405180910390f35b3480156102db57600080fd5b506102e461092f565b6040516102f19190612721565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c919061276f565b6109c1565b60405161032e91906127ab565b60405180910390f35b610351600480360381019061034c91906127c6565b610a40565b005b34801561035f57600080fd5b50610368610b84565b60405161037591906125bb565b60405180910390f35b34801561038a57600080fd5b50610393610b8a565b6040516103a09190612721565b60405180910390f35b3480156103b557600080fd5b506103be610c18565b6040516103cb91906125bb565b60405180910390f35b6103ee60048036038101906103e99190612806565b610c2f565b005b3480156103fc57600080fd5b50610405610f51565b005b610421600480360381019061041c9190612806565b610fd9565b005b34801561042f57600080fd5b5061044a6004803603810190610445919061276f565b610ff9565b005b34801561045857600080fd5b5061046161100b565b60405161046e91906125bb565b60405180910390f35b34801561048357600080fd5b5061048c611011565b60405161049991906125bb565b60405180910390f35b3480156104ae57600080fd5b506104b7611017565b6040516104c49190612676565b60405180910390f35b3480156104d957600080fd5b506104f460048036038101906104ef919061276f565b61102a565b005b34801561050257600080fd5b5061051d6004803603810190610518919061276f565b61103c565b60405161052a91906127ab565b60405180910390f35b34801561053f57600080fd5b5061055a6004803603810190610555919061276f565b61104e565b005b34801561056857600080fd5b50610583600480360381019061057e9190612575565b611060565b60405161059091906125bb565b60405180910390f35b3480156105a557600080fd5b506105ae611118565b005b3480156105bc57600080fd5b506105c561112c565b6040516105d29190612676565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd91906127c6565b61113f565b005b34801561061057600080fd5b506106196111ac565b60405161062691906127ab565b60405180910390f35b34801561063b57600080fd5b506106566004803603810190610651919061276f565b6111d6565b005b34801561066457600080fd5b5061067f600480360381019061067a9190612885565b61122c565b005b34801561068d57600080fd5b50610696611251565b6040516106a39190612721565b60405180910390f35b6106c660048036038101906106c1919061276f565b6112e3565b005b3480156106d457600080fd5b506106ef60048036038101906106ea91906129e7565b61166a565b005b3480156106fd57600080fd5b5061071860048036038101906107139190612a30565b611685565b005b610734600480360381019061072f9190612b11565b611790565b005b34801561074257600080fd5b5061075d60048036038101906107589190612885565b611803565b005b34801561076b57600080fd5b506107866004803603810190610781919061276f565b611828565b6040516107939190612721565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be91906129e7565b61197e565b005b3480156107d157600080fd5b506107da611999565b6040516107e791906125bb565b60405180910390f35b3480156107fc57600080fd5b506108176004803603810190610812919061276f565b61199f565b005b34801561082557600080fd5b50610840600480360381019061083b9190612b94565b6119f5565b60405161084d9190612676565b60405180910390f35b34801561086257600080fd5b5061087d60048036038101906108789190612575565b611a89565b005b60126020528060005260406000206000915090505481565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108f257506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109225750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600d5481565b60606002805461093e90612c03565b80601f016020809104026020016040519081016040528092919081815260200182805461096a90612c03565b80156109b75780601f1061098c576101008083540402835291602001916109b7565b820191906000526020600020905b81548152906001019060200180831161099a57829003601f168201915b5050505050905090565b60006109cc82611b0c565b610a02576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4b8261103c565b90508073ffffffffffffffffffffffffffffffffffffffff16610a6c611b6b565b73ffffffffffffffffffffffffffffffffffffffff1614610acf57610a9881610a93611b6b565b6119f5565b610ace576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600c5481565b60118054610b9790612c03565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc390612c03565b8015610c105780601f10610be557610100808354040283529160200191610c10565b820191906000526020600020905b815481529060010190602001808311610bf357829003601f168201915b505050505081565b6000610c22611b73565b6001546000540303905090565b6000610c3a82611b7c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ca1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610cad84611c48565b91509150610cc38187610cbe611b6b565b611c6f565b610d0f57610cd886610cd3611b6b565b6119f5565b610d0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d75576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d828686866001611cb3565b8015610d8d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e5b85610e37888887611cb9565b7c020000000000000000000000000000000000000000000000000000000017611ce1565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ee15760006001850190506000600460008381526020019081526020016000205403610edf576000548114610ede578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f498686866001611d0c565b505050505050565b610f59611d12565b6000610f636111ac565b73ffffffffffffffffffffffffffffffffffffffff1647604051610f8690612c65565b60006040518083038185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b5050905080610fd657600080fd5b50565b610ff483838360405180602001604052806000815250611790565b505050565b611001611d12565b80600c8190555050565b600e5481565b600b5481565b600f60009054906101000a900460ff1681565b611032611d12565b80600b8190555050565b600061104782611b7c565b9050919050565b611056611d12565b80600a8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c7576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611120611d12565b61112a6000611d90565b565b600f60019054906101000a900460ff1681565b611147611d12565b600a5481611153611e56565b61115d9190612ca9565b111561119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119590612d29565b60405180910390fd5b6111a88282611e69565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111de611d12565b600e548110611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990612d95565b60405180910390fd5b80600d8190555050565b611234611d12565b80600f60006101000a81548160ff02191690831515021790555050565b60606003805461126090612c03565b80601f016020809104026020016040519081016040528092919081815260200182805461128c90612c03565b80156112d95780601f106112ae576101008083540402835291602001916112d9565b820191906000526020600020905b8154815290600101906020018083116112bc57829003601f168201915b5050505050905090565b600f60019054906101000a900460ff1615611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90612e01565b60405180910390fd5b600d54601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106113d05780600c546113899190612e21565b3410156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612eaf565b60405180910390fd5b6114e9565b600b54816113dc610c18565b6113e69190612ca9565b1161149757601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d546114389190612ecf565b816114439190612ecf565b600c546114509190612e21565b341015611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990612eaf565b60405180910390fd5b6114e8565b80600c546114a59190612e21565b3410156114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90612eaf565b60405180910390fd5b5b5b600a54816114f5611e56565b6114ff9190612ca9565b1115611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612d29565b60405180910390fd5b600e5481601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158e9190612ca9565b11156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612f4f565b60405180910390fd5b6115d93382611e69565b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116249190612ca9565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b611672611d12565b8060109081611681919061311b565b5050565b8060076000611692611b6b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661173f611b6b565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117849190612676565b60405180910390a35050565b61179b848484610c2f565b60008373ffffffffffffffffffffffffffffffffffffffff163b146117fd576117c684848484611e87565b6117fc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b61180b611d12565b80600f60016101000a81548160ff02191690831515021790555050565b606061183382611b0c565b611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990613239565b60405180910390fd5b60001515600f60009054906101000a900460ff1615150361191f576011805461189a90612c03565b80601f01602080910402602001604051908101604052809291908181526020018280546118c690612c03565b80156119135780601f106118e857610100808354040283529160200191611913565b820191906000526020600020905b8154815290600101906020018083116118f657829003601f168201915b50505050509050611979565b6000611929611fd7565b51116119445760405180602001604052806000815250611976565b61194c611fd7565b61195583612069565b6040516020016119669291906132e1565b6040516020818303038152906040525b90505b919050565b611986611d12565b8060119081611995919061311b565b5050565b600a5481565b6119a7611d12565b600d5481116119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e290612d95565b60405180910390fd5b80600e8190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a91611d12565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af790613382565b60405180910390fd5b611b0981611d90565b50565b600081611b17611b73565b11158015611b26575060005482105b8015611b64575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611b8b611b73565b11611c1157600054811015611c105760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611c0e575b60008103611c04576004600083600190039350838152602001908152602001600020549050611bda565b8092505050611c43565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611cd0868684612137565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611d1a612140565b73ffffffffffffffffffffffffffffffffffffffff16611d386111ac565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d85906133ee565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611e60611b73565b60005403905090565b611e83828260405180602001604052806000815250612148565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611ead611b6b565b8786866040518563ffffffff1660e01b8152600401611ecf9493929190613463565b6020604051808303816000875af1925050508015611f0b57506040513d601f19601f82011682018060405250810190611f0891906134c4565b60015b611f84573d8060008114611f3b576040519150601f19603f3d011682016040523d82523d6000602084013e611f40565b606091505b506000815103611f7c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060108054611fe690612c03565b80601f016020809104026020016040519081016040528092919081815260200182805461201290612c03565b801561205f5780601f106120345761010080835404028352916020019161205f565b820191906000526020600020905b81548152906001019060200180831161204257829003601f168201915b5050505050905090565b606060006001612078846121e5565b01905060008167ffffffffffffffff811115612097576120966128bc565b5b6040519080825280601f01601f1916602001820160405280156120c95781602001600182028036833780820191505090505b509050600082602001820190505b60011561212c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816121205761211f6134f1565b5b049450600085036120d7575b819350505050919050565b60009392505050565b600033905090565b6121528383612338565b60008373ffffffffffffffffffffffffffffffffffffffff163b146121e057600080549050600083820390505b6121926000868380600101945086611e87565b6121c8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061217f5781600054146121dd57600080fd5b50505b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612243577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612239576122386134f1565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612280576d04ee2d6d415b85acef81000000008381612276576122756134f1565b5b0492506020810190505b662386f26fc1000083106122af57662386f26fc1000083816122a5576122a46134f1565b5b0492506010810190505b6305f5e10083106122d8576305f5e10083816122ce576122cd6134f1565b5b0492506008810190505b61271083106122fd5761271083816122f3576122f26134f1565b5b0492506004810190505b606483106123205760648381612316576123156134f1565b5b0492506002810190505b600a831061232f576001810190505b80915050919050565b60008054905060008203612378576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6123856000848385611cb3565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123fc836123ed6000866000611cb9565b6123f6856124f3565b17611ce1565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461249d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612462565b50600082036124d8576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124ee6000848385611d0c565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254282612517565b9050919050565b61255281612537565b811461255d57600080fd5b50565b60008135905061256f81612549565b92915050565b60006020828403121561258b5761258a61250d565b5b600061259984828501612560565b91505092915050565b6000819050919050565b6125b5816125a2565b82525050565b60006020820190506125d060008301846125ac565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61260b816125d6565b811461261657600080fd5b50565b60008135905061262881612602565b92915050565b6000602082840312156126445761264361250d565b5b600061265284828501612619565b91505092915050565b60008115159050919050565b6126708161265b565b82525050565b600060208201905061268b6000830184612667565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126cb5780820151818401526020810190506126b0565b60008484015250505050565b6000601f19601f8301169050919050565b60006126f382612691565b6126fd818561269c565b935061270d8185602086016126ad565b612716816126d7565b840191505092915050565b6000602082019050818103600083015261273b81846126e8565b905092915050565b61274c816125a2565b811461275757600080fd5b50565b60008135905061276981612743565b92915050565b6000602082840312156127855761278461250d565b5b60006127938482850161275a565b91505092915050565b6127a581612537565b82525050565b60006020820190506127c0600083018461279c565b92915050565b600080604083850312156127dd576127dc61250d565b5b60006127eb85828601612560565b92505060206127fc8582860161275a565b9150509250929050565b60008060006060848603121561281f5761281e61250d565b5b600061282d86828701612560565b935050602061283e86828701612560565b925050604061284f8682870161275a565b9150509250925092565b6128628161265b565b811461286d57600080fd5b50565b60008135905061287f81612859565b92915050565b60006020828403121561289b5761289a61250d565b5b60006128a984828501612870565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128f4826126d7565b810181811067ffffffffffffffff82111715612913576129126128bc565b5b80604052505050565b6000612926612503565b905061293282826128eb565b919050565b600067ffffffffffffffff821115612952576129516128bc565b5b61295b826126d7565b9050602081019050919050565b82818337600083830152505050565b600061298a61298584612937565b61291c565b9050828152602081018484840111156129a6576129a56128b7565b5b6129b1848285612968565b509392505050565b600082601f8301126129ce576129cd6128b2565b5b81356129de848260208601612977565b91505092915050565b6000602082840312156129fd576129fc61250d565b5b600082013567ffffffffffffffff811115612a1b57612a1a612512565b5b612a27848285016129b9565b91505092915050565b60008060408385031215612a4757612a4661250d565b5b6000612a5585828601612560565b9250506020612a6685828601612870565b9150509250929050565b600067ffffffffffffffff821115612a8b57612a8a6128bc565b5b612a94826126d7565b9050602081019050919050565b6000612ab4612aaf84612a70565b61291c565b905082815260208101848484011115612ad057612acf6128b7565b5b612adb848285612968565b509392505050565b600082601f830112612af857612af76128b2565b5b8135612b08848260208601612aa1565b91505092915050565b60008060008060808587031215612b2b57612b2a61250d565b5b6000612b3987828801612560565b9450506020612b4a87828801612560565b9350506040612b5b8782880161275a565b925050606085013567ffffffffffffffff811115612b7c57612b7b612512565b5b612b8887828801612ae3565b91505092959194509250565b60008060408385031215612bab57612baa61250d565b5b6000612bb985828601612560565b9250506020612bca85828601612560565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c1b57607f821691505b602082108103612c2e57612c2d612bd4565b5b50919050565b600081905092915050565b50565b6000612c4f600083612c34565b9150612c5a82612c3f565b600082019050919050565b6000612c7082612c42565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cb4826125a2565b9150612cbf836125a2565b9250828201905080821115612cd757612cd6612c7a565b5b92915050565b7f45786365656473206d617820307864333820737570706c790000000000000000600082015250565b6000612d1360188361269c565b9150612d1e82612cdd565b602082019050919050565b60006020820190508181036000830152612d4281612d06565b9050919050565b7f4e6f7420706f737369626c650000000000000000000000000000000000000000600082015250565b6000612d7f600c8361269c565b9150612d8a82612d49565b602082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f5468652073616c65206973206f66660000000000000000000000000000000000600082015250565b6000612deb600f8361269c565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b6000612e2c826125a2565b9150612e37836125a2565b9250828202612e45816125a2565b91508282048414831517612e5c57612e5b612c7a565b5b5092915050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000612e9960128361269c565b9150612ea482612e63565b602082019050919050565b60006020820190508181036000830152612ec881612e8c565b9050919050565b6000612eda826125a2565b9150612ee5836125a2565b9250828203905081811115612efd57612efc612c7a565b5b92915050565b7f45786365656473206d6178203078643338207065722077616c6c657400000000600082015250565b6000612f39601c8361269c565b9150612f4482612f03565b602082019050919050565b60006020820190508181036000830152612f6881612f2c565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612fd17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f94565b612fdb8683612f94565b95508019841693508086168417925050509392505050565b6000819050919050565b600061301861301361300e846125a2565b612ff3565b6125a2565b9050919050565b6000819050919050565b61303283612ffd565b61304661303e8261301f565b848454612fa1565b825550505050565b600090565b61305b61304e565b613066818484613029565b505050565b5b8181101561308a5761307f600082613053565b60018101905061306c565b5050565b601f8211156130cf576130a081612f6f565b6130a984612f84565b810160208510156130b8578190505b6130cc6130c485612f84565b83018261306b565b50505b505050565b600082821c905092915050565b60006130f2600019846008026130d4565b1980831691505092915050565b600061310b83836130e1565b9150826002028217905092915050565b61312482612691565b67ffffffffffffffff81111561313d5761313c6128bc565b5b6131478254612c03565b61315282828561308e565b600060209050601f8311600181146131855760008415613173578287015190505b61317d85826130ff565b8655506131e5565b601f19841661319386612f6f565b60005b828110156131bb57848901518255600182019150602085019450602081019050613196565b868310156131d857848901516131d4601f8916826130e1565b8355505b6001600288020188555050505b505050505050565b7f5468617420746f6b656e20646f65736e27742065786973740000000000000000600082015250565b600061322360188361269c565b915061322e826131ed565b602082019050919050565b6000602082019050818103600083015261325281613216565b9050919050565b600081905092915050565b600061326f82612691565b6132798185613259565b93506132898185602086016126ad565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006132cb600583613259565b91506132d682613295565b600582019050919050565b60006132ed8285613264565b91506132f98284613264565b9150613304826132be565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061336c60268361269c565b915061337782613310565b604082019050919050565b6000602082019050818103600083015261339b8161335f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133d860208361269c565b91506133e3826133a2565b602082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006134358261340e565b61343f8185613419565b935061344f8185602086016126ad565b613458816126d7565b840191505092915050565b6000608082019050613478600083018761279c565b613485602083018661279c565b61349260408301856125ac565b81810360608301526134a4818461342a565b905095945050505050565b6000815190506134be81612602565b92915050565b6000602082840312156134da576134d961250d565b5b60006134e8848285016134af565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220e028b8a51ec5532d68c5769e7719fc1e4d52406c2ef2059b3cf16bc650da691764736f6c63430008130033697066733a2f2f6261666b726569616c69706d716b7573356367743762357a657336336769626778707377666e37337566643335796b69666f69777a796c65697a7900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b726569616c69706d716b7573356367743762357a657336336769626778707377666e37337566643335796b69666f69777a796c65697a79000000000000000000000000000000000000000000000000000000000000