[ { "inputs": [], "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": "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPublicPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "mintToUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintedWallets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "notRevealedUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "numberMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publicPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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": "uint256", "name": "quantity", "type": "uint256" } ], "name": "saleMint", "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": "uint256", "name": "maxMint", "type": "uint256" } ], "name": "setMaxMintPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_notRevealedURI", "type": "string" } ], "name": "setNotRevealedURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setPublicPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uriPrefix", "type": "string" } ], "name": "setUriPrefix", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uriSuffix", "type": "string" } ], "name": "setUriSuffix", "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": [], "name": "uriPrefix", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriSuffix", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052620249f0600a55661550f7dca70000600b556064600c55600a600d5560405180602001604052806000815250600e908051906020019062000047929190620002a1565b5060405180602001604052806000815250600f90805190602001906200006f929190620002a1565b5060405180608001604052806044815260200162003cb26044913960109080519060200190620000a1929190620002a1565b506001601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff021916908315150217905550348015620000e557600080fd5b506040518060400160405280600881526020017f43686577626965730000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f434845574200000000000000000000000000000000000000000000000000000081525081600290805190602001906200016a929190620002a1565b50806003908051906020019062000183929190620002a1565b5062000194620001ca60201b60201c565b6000819055505050620001bc620001b0620001d360201b60201c565b620001db60201b60201c565b6001600981905550620003b6565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002af9062000380565b90600052602060002090601f016020900481019282620002d357600085556200031f565b82601f10620002ee57805160ff19168380011785556200031f565b828001600101855582156200031f579182015b828111156200031e57825182559160200191906001019062000301565b5b5090506200032e919062000332565b5090565b5b808211156200034d57600081600090555060010162000333565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039957607f821691505b60208210811415620003b057620003af62000351565b5b50919050565b6138ec80620003c66000396000f3fe6080604052600436106102255760003560e01c8063715018a611610123578063a945bf80116100ab578063d5abeb011161006f578063d5abeb011461079e578063dc33e681146107c9578063e985e9c514610806578063f2c4ce1e14610843578063f2fde38b1461086c57610225565b8063a945bf80146106b4578063ada7c4ed146106df578063b88d4fde1461071c578063c627525514610738578063c87b56dd1461076157610225565b80638da5cb5b116100f25780638da5cb5b146105f55780639007bd721461062057806395d89b4114610649578063a22cb46514610674578063a475b5dd1461069d57610225565b8063715018a6146105825780637ec4a65914610599578063853828b6146105c25780638ca887ca146105d957610225565b8063363e86fe116101b15780635c975abb116101755780635c975abb14610489578063616cdb1e146104b457806362b99ad4146104dd5780636352211e1461050857806370a082311461054557610225565b8063363e86fe146103af57806342842e0e146103da578063438b6300146103f657806351830227146104335780635503a0e81461045e57610225565b8063095ea7b3116101f8578063095ea7b3146102fa57806316ba10e01461031657806316c38b3c1461033f57806318160ddd1461036857806323b872dd1461039357610225565b806301ffc9a71461022a57806306fdde0314610267578063081812fc14610292578063081c8c44146102cf575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c91906127f6565b610895565b60405161025e919061283e565b60405180910390f35b34801561027357600080fd5b5061027c610927565b60405161028991906128f2565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061294a565b6109b9565b6040516102c691906129b8565b60405180910390f35b3480156102db57600080fd5b506102e4610a38565b6040516102f191906128f2565b60405180910390f35b610314600480360381019061030f91906129ff565b610ac6565b005b34801561032257600080fd5b5061033d60048036038101906103389190612b74565b610c0a565b005b34801561034b57600080fd5b5061036660048036038101906103619190612be9565b610c2c565b005b34801561037457600080fd5b5061037d610c51565b60405161038a9190612c25565b60405180910390f35b6103ad60048036038101906103a89190612c40565b610c68565b005b3480156103bb57600080fd5b506103c4610f8d565b6040516103d19190612c25565b60405180910390f35b6103f460048036038101906103ef9190612c40565b610f97565b005b34801561040257600080fd5b5061041d60048036038101906104189190612c93565b610fb7565b60405161042a9190612d7e565b60405180910390f35b34801561043f57600080fd5b506104486110c2565b604051610455919061283e565b60405180910390f35b34801561046a57600080fd5b506104736110d5565b60405161048091906128f2565b60405180910390f35b34801561049557600080fd5b5061049e611163565b6040516104ab919061283e565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d6919061294a565b611176565b005b3480156104e957600080fd5b506104f2611188565b6040516104ff91906128f2565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a919061294a565b611216565b60405161053c91906129b8565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612c93565b611228565b6040516105799190612c25565b60405180910390f35b34801561058e57600080fd5b506105976112e1565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190612b74565b6112f5565b005b3480156105ce57600080fd5b506105d7611317565b005b6105f360048036038101906105ee919061294a565b611382565b005b34801561060157600080fd5b5061060a611633565b60405161061791906129b8565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612da0565b61165d565b005b34801561065557600080fd5b5061065e611673565b60405161066b91906128f2565b60405180910390f35b34801561068057600080fd5b5061069b60048036038101906106969190612de0565b611705565b005b3480156106a957600080fd5b506106b2611810565b005b3480156106c057600080fd5b506106c9611844565b6040516106d69190612c25565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190612c93565b61184a565b6040516107139190612c25565b60405180910390f35b61073660048036038101906107319190612ec1565b611862565b005b34801561074457600080fd5b5061075f600480360381019061075a919061294a565b6118d5565b005b34801561076d57600080fd5b506107886004803603810190610783919061294a565b6118e7565b60405161079591906128f2565b60405180910390f35b3480156107aa57600080fd5b506107b3611a40565b6040516107c09190612c25565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190612c93565b611a46565b6040516107fd9190612c25565b60405180910390f35b34801561081257600080fd5b5061082d60048036038101906108289190612f44565b611a58565b60405161083a919061283e565b60405180910390f35b34801561084f57600080fd5b5061086a60048036038101906108659190612b74565b611aec565b005b34801561087857600080fd5b50610893600480360381019061088e9190612c93565b611b0e565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108f057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109205750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461093690612fb3565b80601f016020809104026020016040519081016040528092919081815260200182805461096290612fb3565b80156109af5780601f10610984576101008083540402835291602001916109af565b820191906000526020600020905b81548152906001019060200180831161099257829003601f168201915b5050505050905090565b60006109c482611b92565b6109fa576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60108054610a4590612fb3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7190612fb3565b8015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b6000610ad182611216565b90508073ffffffffffffffffffffffffffffffffffffffff16610af2611bf1565b73ffffffffffffffffffffffffffffffffffffffff1614610b5557610b1e81610b19611bf1565b611a58565b610b54576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610c12611bf9565b80600f9080519060200190610c289291906126e7565b5050565b610c34611bf9565b80601160006101000a81548160ff02191690831515021790555050565b6000610c5b611c77565b6001546000540303905090565b6000610c7382611c80565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cda576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610ce684611d4e565b91509150610cfc8187610cf7611bf1565b611d75565b610d4857610d1186610d0c611bf1565b611a58565b610d47576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610daf576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dbc8686866001611db9565b8015610dc757600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e9585610e71888887611dbf565b7c020000000000000000000000000000000000000000000000000000000017611de7565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415610f1d576000600185019050600060046000838152602001908152602001600020541415610f1b576000548114610f1a578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f858686866001611e12565b505050505050565b6000600b54905090565b610fb283838360405180602001604052806000815250611862565b505050565b60606000610fc483611228565b905060008167ffffffffffffffff811115610fe257610fe1612a49565b5b6040519080825280602002602001820160405280156110105781602001602082028036833780820191505090505b50905060006001905060005b838110801561102d5750600a548211155b156110b657600061103d83611216565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110a2578284838151811061108757611086612fe5565b5b602002602001018181525050818061109e90613043565b9250505b82806110ad90613043565b9350505061101c565b82945050505050919050565b601160019054906101000a900460ff1681565b600f80546110e290612fb3565b80601f016020809104026020016040519081016040528092919081815260200182805461110e90612fb3565b801561115b5780601f106111305761010080835404028352916020019161115b565b820191906000526020600020905b81548152906001019060200180831161113e57829003601f168201915b505050505081565b601160009054906101000a900460ff1681565b61117e611bf9565b80600d8190555050565b600e805461119590612fb3565b80601f01602080910402602001604051908101604052809291908181526020018280546111c190612fb3565b801561120e5780601f106111e35761010080835404028352916020019161120e565b820191906000526020600020905b8154815290600101906020018083116111f157829003601f168201915b505050505081565b600061122182611c80565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611290576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6112e9611bf9565b6112f36000611e18565b565b6112fd611bf9565b80600e90805190602001906113139291906126e7565b5050565b61131f611bf9565b60006103e8601947611331919061308c565b61133b9190613115565b905061135b73914912f14fe6fd17ac83e672c0e5eb8a29cd8fd182611ede565b600047905061137e739a021ccd00f365f708f36df1b3db3675a960620582611ede565b5050565b61138a611f8f565b601160009054906101000a900460ff16156113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d190613192565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f906131fe565b60405180910390fd5b600c5481601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611496919061321e565b11156114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906132c0565b60405180910390fd5b600d5481111561151c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115139061332c565b60405180910390fd5b600a5481611528610c51565b611532919061321e565b1115611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90613398565b60405180910390fd5b348161157d610f8d565b611587919061308c565b11156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf90613404565b60405180910390fd5b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611617919061321e565b925050819055506116283382611fdf565b611630611ffd565b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611665611bf9565b61166f8183611fdf565b5050565b60606003805461168290612fb3565b80601f01602080910402602001604051908101604052809291908181526020018280546116ae90612fb3565b80156116fb5780601f106116d0576101008083540402835291602001916116fb565b820191906000526020600020905b8154815290600101906020018083116116de57829003601f168201915b5050505050905090565b8060076000611712611bf1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117bf611bf1565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611804919061283e565b60405180910390a35050565b611818611bf9565b601160019054906101000a900460ff1615601160016101000a81548160ff021916908315150217905550565b600b5481565b60126020528060005260406000206000915090505481565b61186d848484610c68565b60008373ffffffffffffffffffffffffffffffffffffffff163b146118cf5761189884848484612007565b6118ce576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6118dd611bf9565b80600b8190555050565b60606118f282611b92565b611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613496565b60405180910390fd5b60001515601160019054906101000a900460ff16151514156119df576010805461195a90612fb3565b80601f016020809104026020016040519081016040528092919081815260200182805461198690612fb3565b80156119d35780601f106119a8576101008083540402835291602001916119d3565b820191906000526020600020905b8154815290600101906020018083116119b657829003601f168201915b50505050509050611a3b565b60006119e9612158565b90506000815111611a095760405180602001604052806000815250611a37565b80611a13846121ea565b600f604051602001611a2793929190613586565b6040516020818303038152906040525b9150505b919050565b600a5481565b6000611a51826122c2565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611af4611bf9565b8060109080519060200190611b0a9291906126e7565b5050565b611b16611bf9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90613629565b60405180910390fd5b611b8f81611e18565b50565b600081611b9d611c77565b11158015611bac575060005482105b8015611bea575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b611c01612319565b73ffffffffffffffffffffffffffffffffffffffff16611c1f611633565b73ffffffffffffffffffffffffffffffffffffffff1614611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c90613695565b60405180910390fd5b565b60006001905090565b60008082905080611c8f611c77565b11611d1757600054811015611d165760006004600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415611d14575b6000811415611d0a576004600083600190039350838152602001908152602001600020549050611cdf565b8092505050611d49565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611dd6868684612321565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611f04906136e6565b60006040518083038185875af1925050503d8060008114611f41576040519150601f19603f3d011682016040523d82523d6000602084013e611f46565b606091505b5050905080611f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8190613747565b60405180910390fd5b505050565b60026009541415611fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcc906137b3565b60405180910390fd5b6002600981905550565b611ff982826040518060200160405280600081525061232a565b5050565b6001600981905550565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261202d611bf1565b8786866040518563ffffffff1660e01b815260040161204f9493929190613828565b6020604051808303816000875af192505050801561208b57506040513d601f19601f820116820180604052508101906120889190613889565b60015b612105573d80600081146120bb576040519150601f19603f3d011682016040523d82523d6000602084013e6120c0565b606091505b506000815114156120fd576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600e805461216790612fb3565b80601f016020809104026020016040519081016040528092919081815260200182805461219390612fb3565b80156121e05780601f106121b5576101008083540402835291602001916121e0565b820191906000526020600020905b8154815290600101906020018083116121c357829003601f168201915b5050505050905090565b6060600060016121f9846123c7565b01905060008167ffffffffffffffff81111561221857612217612a49565b5b6040519080825280601f01601f19166020018201604052801561224a5781602001600182028036833780820191505090505b509050600082602001820190505b6001156122b7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816122a1576122a06130e6565b5b04945060008514156122b2576122b7565b612258565b819350505050919050565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600033905090565b60009392505050565b612334838361251a565b60008373ffffffffffffffffffffffffffffffffffffffff163b146123c257600080549050600083820390505b6123746000868380600101945086612007565b6123aa576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106123615781600054146123bf57600080fd5b50505b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612425577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161241b5761241a6130e6565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612462576d04ee2d6d415b85acef81000000008381612458576124576130e6565b5b0492506020810190505b662386f26fc10000831061249157662386f26fc100008381612487576124866130e6565b5b0492506010810190505b6305f5e10083106124ba576305f5e10083816124b0576124af6130e6565b5b0492506008810190505b61271083106124df5761271083816124d5576124d46130e6565b5b0492506004810190505b6064831061250257606483816124f8576124f76130e6565b5b0492506002810190505b600a8310612511576001810190505b80915050919050565b600080549050600082141561255b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125686000848385611db9565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506125df836125d06000866000611dbf565b6125d9856126d7565b17611de7565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461268057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612645565b5060008214156126bc576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506126d26000848385611e12565b505050565b60006001821460e11b9050919050565b8280546126f390612fb3565b90600052602060002090601f016020900481019282612715576000855561275c565b82601f1061272e57805160ff191683800117855561275c565b8280016001018555821561275c579182015b8281111561275b578251825591602001919060010190612740565b5b509050612769919061276d565b5090565b5b8082111561278657600081600090555060010161276e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127d38161279e565b81146127de57600080fd5b50565b6000813590506127f0816127ca565b92915050565b60006020828403121561280c5761280b612794565b5b600061281a848285016127e1565b91505092915050565b60008115159050919050565b61283881612823565b82525050565b6000602082019050612853600083018461282f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612893578082015181840152602081019050612878565b838111156128a2576000848401525b50505050565b6000601f19601f8301169050919050565b60006128c482612859565b6128ce8185612864565b93506128de818560208601612875565b6128e7816128a8565b840191505092915050565b6000602082019050818103600083015261290c81846128b9565b905092915050565b6000819050919050565b61292781612914565b811461293257600080fd5b50565b6000813590506129448161291e565b92915050565b6000602082840312156129605761295f612794565b5b600061296e84828501612935565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129a282612977565b9050919050565b6129b281612997565b82525050565b60006020820190506129cd60008301846129a9565b92915050565b6129dc81612997565b81146129e757600080fd5b50565b6000813590506129f9816129d3565b92915050565b60008060408385031215612a1657612a15612794565b5b6000612a24858286016129ea565b9250506020612a3585828601612935565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a81826128a8565b810181811067ffffffffffffffff82111715612aa057612a9f612a49565b5b80604052505050565b6000612ab361278a565b9050612abf8282612a78565b919050565b600067ffffffffffffffff821115612adf57612ade612a49565b5b612ae8826128a8565b9050602081019050919050565b82818337600083830152505050565b6000612b17612b1284612ac4565b612aa9565b905082815260208101848484011115612b3357612b32612a44565b5b612b3e848285612af5565b509392505050565b600082601f830112612b5b57612b5a612a3f565b5b8135612b6b848260208601612b04565b91505092915050565b600060208284031215612b8a57612b89612794565b5b600082013567ffffffffffffffff811115612ba857612ba7612799565b5b612bb484828501612b46565b91505092915050565b612bc681612823565b8114612bd157600080fd5b50565b600081359050612be381612bbd565b92915050565b600060208284031215612bff57612bfe612794565b5b6000612c0d84828501612bd4565b91505092915050565b612c1f81612914565b82525050565b6000602082019050612c3a6000830184612c16565b92915050565b600080600060608486031215612c5957612c58612794565b5b6000612c67868287016129ea565b9350506020612c78868287016129ea565b9250506040612c8986828701612935565b9150509250925092565b600060208284031215612ca957612ca8612794565b5b6000612cb7848285016129ea565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cf581612914565b82525050565b6000612d078383612cec565b60208301905092915050565b6000602082019050919050565b6000612d2b82612cc0565b612d358185612ccb565b9350612d4083612cdc565b8060005b83811015612d71578151612d588882612cfb565b9750612d6383612d13565b925050600181019050612d44565b5085935050505092915050565b60006020820190508181036000830152612d988184612d20565b905092915050565b60008060408385031215612db757612db6612794565b5b6000612dc585828601612935565b9250506020612dd6858286016129ea565b9150509250929050565b60008060408385031215612df757612df6612794565b5b6000612e05858286016129ea565b9250506020612e1685828601612bd4565b9150509250929050565b600067ffffffffffffffff821115612e3b57612e3a612a49565b5b612e44826128a8565b9050602081019050919050565b6000612e64612e5f84612e20565b612aa9565b905082815260208101848484011115612e8057612e7f612a44565b5b612e8b848285612af5565b509392505050565b600082601f830112612ea857612ea7612a3f565b5b8135612eb8848260208601612e51565b91505092915050565b60008060008060808587031215612edb57612eda612794565b5b6000612ee9878288016129ea565b9450506020612efa878288016129ea565b9350506040612f0b87828801612935565b925050606085013567ffffffffffffffff811115612f2c57612f2b612799565b5b612f3887828801612e93565b91505092959194509250565b60008060408385031215612f5b57612f5a612794565b5b6000612f69858286016129ea565b9250506020612f7a858286016129ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fcb57607f821691505b60208210811415612fdf57612fde612f84565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061304e82612914565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561308157613080613014565b5b600182019050919050565b600061309782612914565b91506130a283612914565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130db576130da613014565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061312082612914565b915061312b83612914565b92508261313b5761313a6130e6565b5b828204905092915050565b7f436f6e7472616374206973207061757365640000000000000000000000000000600082015250565b600061317c601283612864565b915061318782613146565b602082019050919050565b600060208201905081810360008301526131ab8161316f565b9050919050565b7f4e6f20636f6e7472616374206d696e74696e6700000000000000000000000000600082015250565b60006131e8601383612864565b91506131f3826131b2565b602082019050919050565b60006020820190508181036000830152613217816131db565b9050919050565b600061322982612914565b915061323483612914565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561326957613268613014565b5b828201905092915050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006132aa601983612864565b91506132b582613274565b602082019050919050565b600060208201905081810360008301526132d98161329d565b9050919050565b7f416d6f756e742065786365656473207472616e73616374696f6e206c696d6974600082015250565b6000613316602083612864565b9150613321826132e0565b602082019050919050565b6000602082019050818103600083015261334581613309565b9050919050565b7f416d6f756e74206578636565647320737570706c790000000000000000000000600082015250565b6000613382601583612864565b915061338d8261334c565b602082019050919050565b600060208201905081810360008301526133b181613375565b9050919050565b7f496e73756666696369656e74207061796d656e74000000000000000000000000600082015250565b60006133ee601483612864565b91506133f9826133b8565b602082019050919050565b6000602082019050818103600083015261341d816133e1565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613480602f83612864565b915061348b82613424565b604082019050919050565b600060208201905081810360008301526134af81613473565b9050919050565b600081905092915050565b60006134cc82612859565b6134d681856134b6565b93506134e6818560208601612875565b80840191505092915050565b60008190508160005260206000209050919050565b6000815461351481612fb3565b61351e81866134b6565b94506001821660008114613539576001811461354a5761357d565b60ff1983168652818601935061357d565b613553856134f2565b60005b8381101561357557815481890152600182019150602081019050613556565b838801955050505b50505092915050565b600061359282866134c1565b915061359e82856134c1565b91506135aa8284613507565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613613602683612864565b915061361e826135b7565b604082019050919050565b6000602082019050818103600083015261364281613606565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061367f602083612864565b915061368a82613649565b602082019050919050565b600060208201905081810360008301526136ae81613672565b9050919050565b600081905092915050565b50565b60006136d06000836136b5565b91506136db826136c0565b600082019050919050565b60006136f1826136c3565b9150819050919050565b7f4661696c656420746f2073656e64206574686572000000000000000000000000600082015250565b6000613731601483612864565b915061373c826136fb565b602082019050919050565b6000602082019050818103600083015261376081613724565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061379d601f83612864565b91506137a882613767565b602082019050919050565b600060208201905081810360008301526137cc81613790565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137fa826137d3565b61380481856137de565b9350613814818560208601612875565b61381d816128a8565b840191505092915050565b600060808201905061383d60008301876129a9565b61384a60208301866129a9565b6138576040830185612c16565b818103606083015261386981846137ef565b905095945050505050565b600081519050613883816127ca565b92915050565b60006020828403121561389f5761389e612794565b5b60006138ad84828501613874565b9150509291505056fea26469706673582212202e493a11b2b434f37a91e2d9a1064fe9624e00c07686a0da362a1963ae8f691064736f6c634300080c0033697066733a2f2f626166796265696875326f65756e78616869376f646572673364777a3533767a6c786f6934677a7362743670627a7332753762776c7a68723332342f31