[ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address[]", "name": "initialAdmins", "type": "address[]" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "string", "name": "collectionName", "type": "string" }, { "internalType": "string", "name": "collectionSymbol", "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": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "OperatorNotAllowed", "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": [], "name": "OPERATOR_FILTER_REGISTRY", "outputs": [ { "internalType": "contract IOperatorFilterRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adminAddress", "type": "address" } ], "name": "addAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "adminBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "adminBurnAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "name": "adminMintAndAirdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "admins", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adminAddress", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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": [ { "internalType": "address", "name": "adminAddress", "type": "address" } ], "name": "removeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "uri", "type": "string" } ], "name": "setBaseURI", "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" } ]
60806040523480156200001157600080fd5b506040516200428c3803806200428c833981810160405281019062000037919062000714565b733cc6cdda760b79bafa08df41ecfa224f810dceb660018383816002908162000061919062000a63565b50806003908162000073919062000a63565b50620000846200036a60201b60201c565b6000819055505050620000ac620000a06200037360201b60201c565b6200037b60201b60201c565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002a157801562000167576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200012d92919062000b5b565b600060405180830381600087803b1580156200014857600080fd5b505af11580156200015d573d6000803e3d6000fd5b50505050620002a0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000221576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b8152600401620001e792919062000b5b565b600060405180830381600087803b1580156200020257600080fd5b505af115801562000217573d6000803e3d6000fd5b505050506200029f565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b81526004016200026a919062000b88565b600060405180830381600087803b1580156200028557600080fd5b505af11580156200029a573d6000803e3d6000fd5b505050505b5b5b505060005b84518110156200033b57600160096000878481518110620002cc57620002cb62000ba5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620003329062000c03565b915050620002a6565b5082600a90816200034d919062000a63565b506200035f856200037b60201b60201c565b505050505062000c50565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004828262000455565b9050919050565b620004948162000475565b8114620004a057600080fd5b50565b600081519050620004b48162000489565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200050a82620004bf565b810181811067ffffffffffffffff821117156200052c576200052b620004d0565b5b80604052505050565b60006200054162000441565b90506200054f8282620004ff565b919050565b600067ffffffffffffffff821115620005725762000571620004d0565b5b602082029050602081019050919050565b600080fd5b60006200059f620005998462000554565b62000535565b90508083825260208201905060208402830185811115620005c557620005c462000583565b5b835b81811015620005f25780620005dd8882620004a3565b845260208401935050602081019050620005c7565b5050509392505050565b600082601f830112620006145762000613620004ba565b5b81516200062684826020860162000588565b91505092915050565b600080fd5b600067ffffffffffffffff821115620006525762000651620004d0565b5b6200065d82620004bf565b9050602081019050919050565b60005b838110156200068a5780820151818401526020810190506200066d565b60008484015250505050565b6000620006ad620006a78462000634565b62000535565b905082815260208101848484011115620006cc57620006cb6200062f565b5b620006d98482856200066a565b509392505050565b600082601f830112620006f957620006f8620004ba565b5b81516200070b84826020860162000696565b91505092915050565b600080600080600060a086880312156200073357620007326200044b565b5b60006200074388828901620004a3565b955050602086015167ffffffffffffffff81111562000767576200076662000450565b5b6200077588828901620005fc565b945050604086015167ffffffffffffffff81111562000799576200079862000450565b5b620007a788828901620006e1565b935050606086015167ffffffffffffffff811115620007cb57620007ca62000450565b5b620007d988828901620006e1565b925050608086015167ffffffffffffffff811115620007fd57620007fc62000450565b5b6200080b88828901620006e1565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086b57607f821691505b60208210810362000881576200088062000823565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008ac565b620008f78683620008ac565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009446200093e62000938846200090f565b62000919565b6200090f565b9050919050565b6000819050919050565b620009608362000923565b620009786200096f826200094b565b848454620008b9565b825550505050565b600090565b6200098f62000980565b6200099c81848462000955565b505050565b5b81811015620009c457620009b860008262000985565b600181019050620009a2565b5050565b601f82111562000a1357620009dd8162000887565b620009e8846200089c565b81016020851015620009f8578190505b62000a1062000a07856200089c565b830182620009a1565b50505b505050565b600082821c905092915050565b600062000a386000198460080262000a18565b1980831691505092915050565b600062000a53838362000a25565b9150826002028217905092915050565b62000a6e8262000818565b67ffffffffffffffff81111562000a8a5762000a89620004d0565b5b62000a96825462000852565b62000aa3828285620009c8565b600060209050601f83116001811462000adb576000841562000ac6578287015190505b62000ad2858262000a45565b86555062000b42565b601f19841662000aeb8662000887565b60005b8281101562000b155784890151825560018201915060208501945060208101905062000aee565b8683101562000b35578489015162000b31601f89168262000a25565b8355505b6001600288020188555050505b505050505050565b62000b558162000475565b82525050565b600060408201905062000b72600083018562000b4a565b62000b81602083018462000b4a565b9392505050565b600060208201905062000b9f600083018462000b4a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c10826200090f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c455762000c4462000bd4565b5b600182019050919050565b61362c8062000c606000396000f3fe6080604052600436106101b75760003560e01c806355f804b3116100ec57806395d89b411161008a578063badb97ff11610064578063badb97ff146105c0578063c87b56dd146105e9578063e985e9c514610626578063f2fde38b14610663576101b7565b806395d89b4114610550578063a22cb4651461057b578063b88d4fde146105a4576101b7565b806370480275116100c657806370480275146104a857806370a08231146104d1578063715018a61461050e5780638da5cb5b14610525576101b7565b806355f804b3146104175780636352211e146104405780636c0360eb1461047d576101b7565b806318160ddd1161015957806341f434341161013357806341f434341461036a57806342842e0e1461039557806342966c68146103b1578063429b62e5146103da576101b7565b806318160ddd146102e657806323b872dd1461031157806324d7806c1461032d576101b7565b8063081812fc11610195578063081812fc1461023b578063095ea7b3146102785780631375a681146102945780631785f53c146102bd576101b7565b806301ffc9a7146101bc57806306fdde03146101f957806307754a4e14610224575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de91906125ff565b61068c565b6040516101f09190612647565b60405180910390f35b34801561020557600080fd5b5061020e61069e565b60405161021b91906126f2565b60405180910390f35b34801561023057600080fd5b50610239610730565b005b34801561024757600080fd5b50610262600480360381019061025d919061274a565b61088a565b60405161026f91906127b8565b60405180910390f35b610292600480360381019061028d91906127ff565b610909565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612987565b610a4d565b005b3480156102c957600080fd5b506102e460048036038101906102df91906129d0565b610b4e565b005b3480156102f257600080fd5b506102fb610ba8565b6040516103089190612a0c565b60405180910390f35b61032b60048036038101906103269190612a27565b610bbf565b005b34801561033957600080fd5b50610354600480360381019061034f91906129d0565b610ee1565b6040516103619190612647565b60405180910390f35b34801561037657600080fd5b5061037f610f37565b60405161038c9190612ad9565b60405180910390f35b6103af60048036038101906103aa9190612a27565b610f49565b005b3480156103bd57600080fd5b506103d860048036038101906103d3919061274a565b611051565b005b3480156103e657600080fd5b5061040160048036038101906103fc91906129d0565b61105f565b60405161040e9190612647565b60405180910390f35b34801561042357600080fd5b5061043e60048036038101906104399190612ba9565b61107f565b005b34801561044c57600080fd5b506104676004803603810190610462919061274a565b61109a565b60405161047491906127b8565b60405180910390f35b34801561048957600080fd5b506104926110ac565b60405161049f91906126f2565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906129d0565b61113a565b005b3480156104dd57600080fd5b506104f860048036038101906104f391906129d0565b61119d565b6040516105059190612a0c565b60405180910390f35b34801561051a57600080fd5b50610523611255565b005b34801561053157600080fd5b5061053a611269565b60405161054791906127b8565b60405180910390f35b34801561055c57600080fd5b50610565611293565b60405161057291906126f2565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612c1e565b611325565b005b6105be60048036038101906105b99190612cff565b6113f7565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061274a565b61146a565b005b3480156105f557600080fd5b50610610600480360381019061060b919061274a565b61152f565b60405161061d91906126f2565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190612d82565b6115a2565b60405161065a9190612647565b60405180910390f35b34801561066f57600080fd5b5061068a600480360381019061068591906129d0565b611612565b005b600061069782611695565b9050919050565b6060600280546106ad90612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546106d990612df1565b80156107265780601f106106fb57610100808354040283529160200191610726565b820191906000526020600020905b81548152906001019060200180831161070957829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161076991906127b8565b602060405180830381865afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190612e37565b6107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090612eb0565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a9190612ee5565b90506000600190505b8181116108865761087381611051565b808061087e90612f41565b915050610863565b5050565b600061089582611727565b6108cb576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109148261109a565b90508073ffffffffffffffffffffffffffffffffffffffff16610935611786565b73ffffffffffffffffffffffffffffffffffffffff1614610998576109618161095c611786565b6115a2565b610997576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401610a8691906127b8565b602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190612e37565b610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612eb0565b60405180910390fd5b60005b8151811015610b4a57610b37828281518110610b2857610b27612f89565b5b6020026020010151600161178e565b8080610b4290612f41565b915050610b09565b5050565b610b56611949565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b6000610bb26119c7565b6001546000540303905090565b6000610bca826119d0565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c31576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610c3d84611a9c565b91509150610c538187610c4e611786565b611ac3565b610c9f57610c6886610c63611786565b6115a2565b610c9e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d05576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d128686866001611b07565b8015610d1d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610deb85610dc7888887611b0d565b7c020000000000000000000000000000000000000000000000000000000017611b35565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e715760006001850190506000600460008381526020019081526020016000205403610e6f576000548114610e6e578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610ed98686866001611b60565b505050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f8757610f8633611b66565b5b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401610fc091906127b8565b602060405180830381865afa158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110019190612e37565b611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612eb0565b60405180910390fd5b61104b848484611c63565b50505050565b61105c816001611c83565b50565b60096020528060005260406000206000915054906101000a900460ff1681565b611087611949565b80600a9081611096919061315a565b5050565b60006110a5826119d0565b9050919050565b600a80546110b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546110e590612df1565b80156111325780601f1061110757610100808354040283529160200191611132565b820191906000526020600020905b81548152906001019060200180831161111557829003601f168201915b505050505081565b611142611949565b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611204576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61125d611949565b6112676000611d4a565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546112a290612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112ce90612df1565b801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b8161132f81611b66565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161136891906127b8565b602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190612e37565b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612eb0565b60405180910390fd5b6113f28383611e10565b505050565b611402848484610bbf565b60008373ffffffffffffffffffffffffffffffffffffffff163b146114645761142d84848484611f1b565b611463576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016114a391906127b8565b602060405180830381865afa1580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e49190612e37565b611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90612eb0565b60405180910390fd5b61152c81611051565b50565b606061153a82611727565b611570576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a61157b8361206b565b60405160200161158c929190613383565b6040516020818303038152906040529050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115ff576001905061160c565b6116098383612139565b90505b92915050565b61161a611949565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061342f565b60405180910390fd5b61169281611d4a565b50565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806117205750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000816117326119c7565b11158015611741575060005482105b801561177f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600080549050600082036117ce576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117db6000848385611b07565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611852836118436000866000611b0d565b61184c856121cd565b17611b35565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146118f357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506118b8565b506000820361192e576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506119446000848385611b60565b505050565b6119516121dd565b73ffffffffffffffffffffffffffffffffffffffff1661196f611269565b73ffffffffffffffffffffffffffffffffffffffff16146119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc9061349b565b60405180910390fd5b565b60006001905090565b600080829050806119df6119c7565b11611a6557600054811015611a645760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611a62575b60008103611a58576004600083600190039350838152602001908152602001600020549050611a2e565b8092505050611a97565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611b248686846121e5565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611c60576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611bdd9291906134bb565b602060405180830381865afa158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612e37565b611c5f57806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611c5691906127b8565b60405180910390fd5b5b50565b611c7e838383604051806020016040528060008152506113f7565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401611cbc91906127b8565b602060405180830381865afa158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612e37565b611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390612eb0565b60405180910390fd5b611d4682826121ee565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060076000611e1d611786565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611eca611786565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f0f9190612647565b60405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f41611786565b8786866040518563ffffffff1660e01b8152600401611f639493929190613539565b6020604051808303816000875af1925050508015611f9f57506040513d601f19601f82011682018060405250810190611f9c919061359a565b60015b612018573d8060008114611fcf576040519150601f19603f3d011682016040523d82523d6000602084013e611fd4565b606091505b506000815103612010576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000600161207a84612440565b01905060008167ffffffffffffffff81111561209957612098612844565b5b6040519080825280601f01601f1916602001820160405280156120cb5781602001600182028036833780820191505090505b509050600082602001820190505b60011561212e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612122576121216135c7565b5b049450600085036120d9575b819350505050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006001821460e11b9050919050565b600033905090565b60009392505050565b60006121f9836119d0565b9050600081905060008061220c86611a9c565b915091508415612275576122288184612223611786565b611ac3565b6122745761223d83612238611786565b6115a2565b612273576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b612283836000886001611b07565b801561228e57600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612336836122f385600088611b0d565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717611b35565b600460008881526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008516036123bc57600060018701905060006004600083815260200190815260200160002054036123ba5760005481146123b9578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612426836000886001611b60565b600160008154809291906001019190505550505050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061249e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612494576124936135c7565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124db576d04ee2d6d415b85acef810000000083816124d1576124d06135c7565b5b0492506020810190505b662386f26fc10000831061250a57662386f26fc100008381612500576124ff6135c7565b5b0492506010810190505b6305f5e1008310612533576305f5e1008381612529576125286135c7565b5b0492506008810190505b612710831061255857612710838161254e5761254d6135c7565b5b0492506004810190505b6064831061257b5760648381612571576125706135c7565b5b0492506002810190505b600a831061258a576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125dc816125a7565b81146125e757600080fd5b50565b6000813590506125f9816125d3565b92915050565b6000602082840312156126155761261461259d565b5b6000612623848285016125ea565b91505092915050565b60008115159050919050565b6126418161262c565b82525050565b600060208201905061265c6000830184612638565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269c578082015181840152602081019050612681565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c482612662565b6126ce818561266d565b93506126de81856020860161267e565b6126e7816126a8565b840191505092915050565b6000602082019050818103600083015261270c81846126b9565b905092915050565b6000819050919050565b61272781612714565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b6000602082840312156127605761275f61259d565b5b600061276e84828501612735565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127a282612777565b9050919050565b6127b281612797565b82525050565b60006020820190506127cd60008301846127a9565b92915050565b6127dc81612797565b81146127e757600080fd5b50565b6000813590506127f9816127d3565b92915050565b600080604083850312156128165761281561259d565b5b6000612824858286016127ea565b925050602061283585828601612735565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61287c826126a8565b810181811067ffffffffffffffff8211171561289b5761289a612844565b5b80604052505050565b60006128ae612593565b90506128ba8282612873565b919050565b600067ffffffffffffffff8211156128da576128d9612844565b5b602082029050602081019050919050565b600080fd5b60006129036128fe846128bf565b6128a4565b90508083825260208201905060208402830185811115612926576129256128eb565b5b835b8181101561294f578061293b88826127ea565b845260208401935050602081019050612928565b5050509392505050565b600082601f83011261296e5761296d61283f565b5b813561297e8482602086016128f0565b91505092915050565b60006020828403121561299d5761299c61259d565b5b600082013567ffffffffffffffff8111156129bb576129ba6125a2565b5b6129c784828501612959565b91505092915050565b6000602082840312156129e6576129e561259d565b5b60006129f4848285016127ea565b91505092915050565b612a0681612714565b82525050565b6000602082019050612a2160008301846129fd565b92915050565b600080600060608486031215612a4057612a3f61259d565b5b6000612a4e868287016127ea565b9350506020612a5f868287016127ea565b9250506040612a7086828701612735565b9150509250925092565b6000819050919050565b6000612a9f612a9a612a9584612777565b612a7a565b612777565b9050919050565b6000612ab182612a84565b9050919050565b6000612ac382612aa6565b9050919050565b612ad381612ab8565b82525050565b6000602082019050612aee6000830184612aca565b92915050565b600080fd5b600067ffffffffffffffff821115612b1457612b13612844565b5b612b1d826126a8565b9050602081019050919050565b82818337600083830152505050565b6000612b4c612b4784612af9565b6128a4565b905082815260208101848484011115612b6857612b67612af4565b5b612b73848285612b2a565b509392505050565b600082601f830112612b9057612b8f61283f565b5b8135612ba0848260208601612b39565b91505092915050565b600060208284031215612bbf57612bbe61259d565b5b600082013567ffffffffffffffff811115612bdd57612bdc6125a2565b5b612be984828501612b7b565b91505092915050565b612bfb8161262c565b8114612c0657600080fd5b50565b600081359050612c1881612bf2565b92915050565b60008060408385031215612c3557612c3461259d565b5b6000612c43858286016127ea565b9250506020612c5485828601612c09565b9150509250929050565b600067ffffffffffffffff821115612c7957612c78612844565b5b612c82826126a8565b9050602081019050919050565b6000612ca2612c9d84612c5e565b6128a4565b905082815260208101848484011115612cbe57612cbd612af4565b5b612cc9848285612b2a565b509392505050565b600082601f830112612ce657612ce561283f565b5b8135612cf6848260208601612c8f565b91505092915050565b60008060008060808587031215612d1957612d1861259d565b5b6000612d27878288016127ea565b9450506020612d38878288016127ea565b9350506040612d4987828801612735565b925050606085013567ffffffffffffffff811115612d6a57612d696125a2565b5b612d7687828801612cd1565b91505092959194509250565b60008060408385031215612d9957612d9861259d565b5b6000612da7858286016127ea565b9250506020612db8858286016127ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e0957607f821691505b602082108103612e1c57612e1b612dc2565b5b50919050565b600081519050612e3181612bf2565b92915050565b600060208284031215612e4d57612e4c61259d565b5b6000612e5b84828501612e22565b91505092915050565b7f6e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000612e9a60098361266d565b9150612ea582612e64565b602082019050919050565b60006020820190508181036000830152612ec981612e8d565b9050919050565b600081519050612edf8161271e565b92915050565b600060208284031215612efb57612efa61259d565b5b6000612f0984828501612ed0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f4c82612714565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f7e57612f7d612f12565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261301a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612fdd565b6130248683612fdd565b95508019841693508086168417925050509392505050565b600061305761305261304d84612714565b612a7a565b612714565b9050919050565b6000819050919050565b6130718361303c565b61308561307d8261305e565b848454612fea565b825550505050565b600090565b61309a61308d565b6130a5818484613068565b505050565b5b818110156130c9576130be600082613092565b6001810190506130ab565b5050565b601f82111561310e576130df81612fb8565b6130e884612fcd565b810160208510156130f7578190505b61310b61310385612fcd565b8301826130aa565b50505b505050565b600082821c905092915050565b600061313160001984600802613113565b1980831691505092915050565b600061314a8383613120565b9150826002028217905092915050565b61316382612662565b67ffffffffffffffff81111561317c5761317b612844565b5b6131868254612df1565b6131918282856130cd565b600060209050601f8311600181146131c457600084156131b2578287015190505b6131bc858261313e565b865550613224565b601f1984166131d286612fb8565b60005b828110156131fa578489015182556001820191506020850194506020810190506131d5565b868310156132175784890151613213601f891682613120565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000815461324481612df1565b61324e818661322c565b94506001821660008114613269576001811461327e576132b1565b60ff19831686528115158202860193506132b1565b61328785612fb8565b60005b838110156132a95781548189015260018201915060208101905061328a565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b60006132f060018361322c565b91506132fb826132ba565b600182019050919050565b600061331182612662565b61331b818561322c565b935061332b81856020860161267e565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061336d60058361322c565b915061337882613337565b600582019050919050565b600061338f8285613237565b915061339a826132e3565b91506133a68284613306565b91506133b182613360565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061341960268361266d565b9150613424826133bd565b604082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061348560208361266d565b91506134908261344f565b602082019050919050565b600060208201905081810360008301526134b481613478565b9050919050565b60006040820190506134d060008301856127a9565b6134dd60208301846127a9565b9392505050565b600081519050919050565b600082825260208201905092915050565b600061350b826134e4565b61351581856134ef565b935061352581856020860161267e565b61352e816126a8565b840191505092915050565b600060808201905061354e60008301876127a9565b61355b60208301866127a9565b61356860408301856129fd565b818103606083015261357a8184613500565b905095945050505050565b600081519050613594816125d3565b92915050565b6000602082840312156135b0576135af61259d565b5b60006135be84828501613585565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220dc4ae97fb16fb7735c43cf8284a5d6b962c7e695e163bca000bbb0d0fc6a932464736f6c6343000811003300000000000000000000000090fe36a89a63a615950a0a892b350bcf9126bfc800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000faeae775e14493a8cc6c2582d588e20aff1848e1000000000000000000000000c8d559baa3345539ce679e3ef14b7569eaa62c6c000000000000000000000000000000000000000000000000000000000000004268747470733a2f2f7075622d30313930353232343138656434306138623635333036616234336633393966642e72322e6465762f52304e314e2f6d657461646174610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009304e312052304e314e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000552304e314e000000000000000000000000000000000000000000000000000000