[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "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": "_addressToWhitelist", "type": "address[]" } ], "name": "addUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "hasMinted", "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": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mintByOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addressToRemove", "type": "address[]" } ], "name": "removeUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "_address1", "type": "address" }, { "internalType": "address", "name": "royalty", "type": "address" } ], "name": "setAddresses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxMintable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "priceInMilli", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setPrivateSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "royalty", "type": "uint256" } ], "name": "setRoyalty", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelistedAddress", "type": "address" } ], "name": "verifyUser", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060400160405280600981526020017f536d6f6c576f726d7a00000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f534d4c57524d0000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620002d9565b508060019080519060200190620000af929190620002d9565b505050620000d2620000c66200020b60201b60201c565b6200021360201b60201c565b604051806080016040528060438152602001620040a960439139600c908051906020019062000103929190620002d9565b506000600a819055506064600b819055506103e8600d819055506001600e819055506000601060016101000a81548160ff0219169083151502179055506000601060006101000a81548160ff021916908315150217905550738654fe925701a6cb66c1cba2786ef4d3a68ad6fe601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738654fe925701a6cb66c1cba2786ef4d3a68ad6fe601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003ee565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002e79062000389565b90600052602060002090601f0160209004810192826200030b576000855562000357565b82601f106200032657805160ff191683800117855562000357565b8280016001018555821562000357579182015b828111156200035657825182559160200191906001019062000339565b5b5090506200036691906200036a565b5090565b5b80821115620003855760008160009055506001016200036b565b5090565b60006002820490506001821680620003a257607f821691505b60208210811415620003b957620003b8620003bf565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613cab80620003fe6000396000f3fe6080604052600436106101ee5760003560e01c8063715018a61161010d578063a22cb465116100a0578063cdfca7f21161006f578063cdfca7f2146106f9578063e268e4d314610722578063e985e9c51461074b578063ee1cc94414610788578063f2fde38b146107b1576101ee565b8063a22cb46514610641578063b88d4fde1461066a578063c6f6f21614610693578063c87b56dd146106bc576101ee565b806391b7f5ed116100dc57806391b7f5ed146105a857806395d89b41146105d1578063993847d1146105fc578063a0712d6814610625576101ee565b8063715018a614610514578063769315a41461052b5780638da5cb5b1461055457806390107afe1461057f576101ee565b80633542aee2116101855780634d813120116101545780634d8131201461043457806355f804b3146104715780636352211e1461049a57806370a08231146104d7576101ee565b80633542aee21461037c57806338e21cce146103a55780634209a2e1146103e257806342842e0e1461040b576101ee565b806318160ddd116101c157806318160ddd146102c157806323b872dd146102ec57806325d387b5146103155780632a55205a1461033e576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190612b57565b6107da565b604051610227919061306c565b60405180910390f35b34801561023c57600080fd5b50610245610843565b6040516102529190613087565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612bea565b6108d5565b60405161028f9190612fdc565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190612ab1565b61091b565b005b3480156102cd57600080fd5b506102d6610a33565b6040516102e39190613309565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e91906129ab565b610a44565b005b34801561032157600080fd5b5061033c60048036038101906103379190612bea565b610aa4565b005b34801561034a57600080fd5b5061036560048036038101906103609190612c13565b610ab6565b604051610373929190613043565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190612ab1565b610b02565b005b3480156103b157600080fd5b506103cc60048036038101906103c7919061290a565b610b36565b6040516103d9919061306c565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190612bea565b610b8c565b005b34801561041757600080fd5b50610432600480360381019061042d91906129ab565b610b9e565b005b34801561044057600080fd5b5061045b6004803603810190610456919061290a565b610bbe565b604051610468919061306c565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612ba9565b610c14565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612bea565b610c36565b6040516104ce9190612fdc565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f9919061290a565b610ce8565b60405161050b9190613309565b60405180910390f35b34801561052057600080fd5b50610529610da0565b005b34801561053757600080fd5b50610552600480360381019061054d9190612aed565b610db4565b005b34801561056057600080fd5b50610569610e77565b6040516105769190612fdc565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612933565b610ea1565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190612bea565b610f2f565b005b3480156105dd57600080fd5b506105e6610f53565b6040516105f39190613087565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e9190612b2e565b610fe5565b005b61063f600480360381019061063a9190612bea565b61100a565b005b34801561064d57600080fd5b5061066860048036038101906106639190612a75565b61132a565b005b34801561067657600080fd5b50610691600480360381019061068c91906129fa565b611340565b005b34801561069f57600080fd5b506106ba60048036038101906106b59190612bea565b6113a2565b005b3480156106c857600080fd5b506106e360048036038101906106de9190612bea565b6113b4565b6040516106f09190613087565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190612aed565b6114c7565b005b34801561072e57600080fd5b5061074960048036038101906107449190612bea565b61158a565b005b34801561075757600080fd5b50610772600480360381019061076d919061296f565b61159c565b60405161077f919061306c565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190612b2e565b611630565b005b3480156107bd57600080fd5b506107d860048036038101906107d3919061290a565b611655565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610832576001905061083e565b61083b826116d9565b90505b919050565b606060008054610852906135f7565b80601f016020809104026020016040519081016040528092919081815260200182805461087e906135f7565b80156108cb5780601f106108a0576101008083540402835291602001916108cb565b820191906000526020600020905b8154815290600101906020018083116108ae57829003601f168201915b5050505050905090565b60006108e0826117bb565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092682610c36565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90613289565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109b6611806565b73ffffffffffffffffffffffffffffffffffffffff1614806109e557506109e4816109df611806565b61159c565b5b610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b906131c9565b60405180910390fd5b610a2e838361180e565b505050565b6000610a3f60086118c7565b905090565b610a55610a4f611806565b826118d5565b610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906132e9565b60405180910390fd5b610a9f83838361196a565b505050565b610aac611bd1565b80600b8190555050565b600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600d5485610aed91906134a1565b610af79190613470565b915091509250929050565b610b0a611bd1565b60005b81811015610b3157610b1e83611c4f565b8080610b299061365a565b915050610b0d565b505050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b94611bd1565b80600d8190555050565b610bb983838360405180602001604052806000815250611340565b505050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c1c611bd1565b80600c9080519060200190610c32929190612683565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690613269565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090613169565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610da8611bd1565b610db26000611cc3565b565b610dbc611bd1565b60005b8151811015610e7357600060136000848481518110610e07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e6b9061365a565b915050610dbf565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ea9611bd1565b81601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610f37611bd1565b66038d7ea4c6800081610f4a91906134a1565b600a8190555050565b606060018054610f62906135f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8e906135f7565b8015610fdb5780601f10610fb057610100808354040283529160200191610fdb565b820191906000526020600020905b815481529060010190602001808311610fbe57829003601f168201915b5050505050905090565b610fed611bd1565b80601060006101000a81548160ff02191690831515021790555050565b60011515601060009054906101000a900460ff161515141561107a576001151561103333610bbe565b151514611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90613249565b60405180910390fd5b6110e7565b60001515601060009054906101000a900460ff16151514156110e657600015156110a333610b36565b1515146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906132c9565b60405180910390fd5b5b5b601060019054906101000a900460ff16611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d906132a9565b60405180910390fd5b600e5481111561117b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611172906131a9565b60405180910390fd5b80600a5461118991906134a1565b3410156111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290613189565b60405180910390fd5b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611233573d6000803e3d6000fd5b5060005b8181101561125b5761124833611c4f565b80806112539061365a565b915050611237565b50601060009054906101000a900460ff16156112ce576000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611327565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b61133c611335611806565b8383611d89565b5050565b61135161134b611806565b836118d5565b611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906132e9565b60405180910390fd5b61139c84848484611ef6565b50505050565b6113aa611bd1565b80600e8190555050565b60606113bf826117bb565b60006006600084815260200190815260200160002080546113df906135f7565b80601f016020809104026020016040519081016040528092919081815260200182805461140b906135f7565b80156114585780601f1061142d57610100808354040283529160200191611458565b820191906000526020600020905b81548152906001019060200180831161143b57829003601f168201915b505050505090506000611469611f52565b905060008151141561147f5781925050506114c2565b6000825111156114b457808260405160200161149c929190612fb8565b604051602081830303815290604052925050506114c2565b6114bd84611fe4565b925050505b919050565b6114cf611bd1565b60005b81518110156115865760016013600084848151811061151a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061157e9061365a565b9150506114d2565b5050565b611592611bd1565b80600f8190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611638611bd1565b80601060016101000a81548160ff02191690831515021790555050565b61165d611bd1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c4906130c9565b60405180910390fd5b6116d681611cc3565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806117a457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806117b457506117b38261204c565b5b9050919050565b6117c4816120b6565b611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90613269565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661188183610c36565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000806118e183610c36565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806119235750611922818561159c565b5b8061196157508373ffffffffffffffffffffffffffffffffffffffff16611949846108d5565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661198a82610c36565b73ffffffffffffffffffffffffffffffffffffffff16146119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d7906130e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790613129565b60405180910390fd5b611a5b838383612122565b611a6660008261180e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ab691906134fb565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0d919061341a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611bcc838383612127565b505050565b611bd9611806565b73ffffffffffffffffffffffffffffffffffffffff16611bf7610e77565b73ffffffffffffffffffffffffffffffffffffffff1614611c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4490613229565b60405180910390fd5b565b611c59600861212c565b600b54611c6660086118c7565b1115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613209565b60405180910390fd5b6000611cb360086118c7565b9050611cbf8282612142565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90613149565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ee9919061306c565b60405180910390a3505050565b611f0184848461196a565b611f0d8484848461231c565b611f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f43906130a9565b60405180910390fd5b50505050565b6060600c8054611f61906135f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8d906135f7565b8015611fda5780601f10611faf57610100808354040283529160200191611fda565b820191906000526020600020905b815481529060010190602001808311611fbd57829003601f168201915b5050505050905090565b6060611fef826117bb565b6000611ff9611f52565b905060008151116120195760405180602001604052806000815250612044565b80612023846124b3565b604051602001612034929190612fb8565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a9906131e9565b60405180910390fd5b6121bb816120b6565b156121fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613109565b60405180910390fd5b61220760008383612122565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612257919061341a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461231860008383612127565b5050565b600061233d8473ffffffffffffffffffffffffffffffffffffffff16612660565b156124a6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612366611806565b8786866040518563ffffffff1660e01b81526004016123889493929190612ff7565b602060405180830381600087803b1580156123a257600080fd5b505af19250505080156123d357506040513d601f19601f820116820180604052508101906123d09190612b80565b60015b612456573d8060008114612403576040519150601f19603f3d011682016040523d82523d6000602084013e612408565b606091505b5060008151141561244e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612445906130a9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506124ab565b600190505b949350505050565b606060008214156124fb576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061265b565b600082905060005b6000821461252d5780806125169061365a565b915050600a826125269190613470565b9150612503565b60008167ffffffffffffffff81111561256f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156125a15781602001600182028036833780820191505090505b5090505b60008514612654576001826125ba91906134fb565b9150600a856125c991906136a3565b60306125d5919061341a565b60f81b818381518110612611577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561264d9190613470565b94506125a5565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461268f906135f7565b90600052602060002090601f0160209004810192826126b157600085556126f8565b82601f106126ca57805160ff19168380011785556126f8565b828001600101855582156126f8579182015b828111156126f75782518255916020019190600101906126dc565b5b5090506127059190612709565b5090565b5b8082111561272257600081600090555060010161270a565b5090565b600061273961273484613349565b613324565b9050808382526020820190508285602086028201111561275857600080fd5b60005b85811015612788578161276e888261280e565b84526020840193506020830192505060018101905061275b565b5050509392505050565b60006127a56127a084613375565b613324565b9050828152602081018484840111156127bd57600080fd5b6127c88482856135b5565b509392505050565b60006127e36127de846133a6565b613324565b9050828152602081018484840111156127fb57600080fd5b6128068482856135b5565b509392505050565b60008135905061281d81613c02565b92915050565b60008135905061283281613c19565b92915050565b600082601f83011261284957600080fd5b8135612859848260208601612726565b91505092915050565b60008135905061287181613c30565b92915050565b60008135905061288681613c47565b92915050565b60008151905061289b81613c47565b92915050565b600082601f8301126128b257600080fd5b81356128c2848260208601612792565b91505092915050565b600082601f8301126128dc57600080fd5b81356128ec8482602086016127d0565b91505092915050565b60008135905061290481613c5e565b92915050565b60006020828403121561291c57600080fd5b600061292a8482850161280e565b91505092915050565b6000806040838503121561294657600080fd5b600061295485828601612823565b92505060206129658582860161280e565b9150509250929050565b6000806040838503121561298257600080fd5b60006129908582860161280e565b92505060206129a18582860161280e565b9150509250929050565b6000806000606084860312156129c057600080fd5b60006129ce8682870161280e565b93505060206129df8682870161280e565b92505060406129f0868287016128f5565b9150509250925092565b60008060008060808587031215612a1057600080fd5b6000612a1e8782880161280e565b9450506020612a2f8782880161280e565b9350506040612a40878288016128f5565b925050606085013567ffffffffffffffff811115612a5d57600080fd5b612a69878288016128a1565b91505092959194509250565b60008060408385031215612a8857600080fd5b6000612a968582860161280e565b9250506020612aa785828601612862565b9150509250929050565b60008060408385031215612ac457600080fd5b6000612ad28582860161280e565b9250506020612ae3858286016128f5565b9150509250929050565b600060208284031215612aff57600080fd5b600082013567ffffffffffffffff811115612b1957600080fd5b612b2584828501612838565b91505092915050565b600060208284031215612b4057600080fd5b6000612b4e84828501612862565b91505092915050565b600060208284031215612b6957600080fd5b6000612b7784828501612877565b91505092915050565b600060208284031215612b9257600080fd5b6000612ba08482850161288c565b91505092915050565b600060208284031215612bbb57600080fd5b600082013567ffffffffffffffff811115612bd557600080fd5b612be1848285016128cb565b91505092915050565b600060208284031215612bfc57600080fd5b6000612c0a848285016128f5565b91505092915050565b60008060408385031215612c2657600080fd5b6000612c34858286016128f5565b9250506020612c45858286016128f5565b9150509250929050565b612c588161352f565b82525050565b612c6781613553565b82525050565b6000612c78826133d7565b612c8281856133ed565b9350612c928185602086016135c4565b612c9b81613790565b840191505092915050565b6000612cb1826133e2565b612cbb81856133fe565b9350612ccb8185602086016135c4565b612cd481613790565b840191505092915050565b6000612cea826133e2565b612cf4818561340f565b9350612d048185602086016135c4565b80840191505092915050565b6000612d1d6032836133fe565b9150612d28826137a1565b604082019050919050565b6000612d406026836133fe565b9150612d4b826137f0565b604082019050919050565b6000612d636025836133fe565b9150612d6e8261383f565b604082019050919050565b6000612d86601c836133fe565b9150612d918261388e565b602082019050919050565b6000612da96024836133fe565b9150612db4826138b7565b604082019050919050565b6000612dcc6019836133fe565b9150612dd782613906565b602082019050919050565b6000612def6029836133fe565b9150612dfa8261392f565b604082019050919050565b6000612e126015836133fe565b9150612e1d8261397e565b602082019050919050565b6000612e35601e836133fe565b9150612e40826139a7565b602082019050919050565b6000612e58603e836133fe565b9150612e63826139d0565b604082019050919050565b6000612e7b6020836133fe565b9150612e8682613a1f565b602082019050919050565b6000612e9e601c836133fe565b9150612ea982613a48565b602082019050919050565b6000612ec16020836133fe565b9150612ecc82613a71565b602082019050919050565b6000612ee46027836133fe565b9150612eef82613a9a565b604082019050919050565b6000612f076018836133fe565b9150612f1282613ae9565b602082019050919050565b6000612f2a6021836133fe565b9150612f3582613b12565b604082019050919050565b6000612f4d6016836133fe565b9150612f5882613b61565b602082019050919050565b6000612f706017836133fe565b9150612f7b82613b8a565b602082019050919050565b6000612f93602e836133fe565b9150612f9e82613bb3565b604082019050919050565b612fb2816135ab565b82525050565b6000612fc48285612cdf565b9150612fd08284612cdf565b91508190509392505050565b6000602082019050612ff16000830184612c4f565b92915050565b600060808201905061300c6000830187612c4f565b6130196020830186612c4f565b6130266040830185612fa9565b81810360608301526130388184612c6d565b905095945050505050565b60006040820190506130586000830185612c4f565b6130656020830184612fa9565b9392505050565b60006020820190506130816000830184612c5e565b92915050565b600060208201905081810360008301526130a18184612ca6565b905092915050565b600060208201905081810360008301526130c281612d10565b9050919050565b600060208201905081810360008301526130e281612d33565b9050919050565b6000602082019050818103600083015261310281612d56565b9050919050565b6000602082019050818103600083015261312281612d79565b9050919050565b6000602082019050818103600083015261314281612d9c565b9050919050565b6000602082019050818103600083015261316281612dbf565b9050919050565b6000602082019050818103600083015261318281612de2565b9050919050565b600060208201905081810360008301526131a281612e05565b9050919050565b600060208201905081810360008301526131c281612e28565b9050919050565b600060208201905081810360008301526131e281612e4b565b9050919050565b6000602082019050818103600083015261320281612e6e565b9050919050565b6000602082019050818103600083015261322281612e91565b9050919050565b6000602082019050818103600083015261324281612eb4565b9050919050565b6000602082019050818103600083015261326281612ed7565b9050919050565b6000602082019050818103600083015261328281612efa565b9050919050565b600060208201905081810360008301526132a281612f1d565b9050919050565b600060208201905081810360008301526132c281612f40565b9050919050565b600060208201905081810360008301526132e281612f63565b9050919050565b6000602082019050818103600083015261330281612f86565b9050919050565b600060208201905061331e6000830184612fa9565b92915050565b600061332e61333f565b905061333a8282613629565b919050565b6000604051905090565b600067ffffffffffffffff82111561336457613363613761565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156133905761338f613761565b5b61339982613790565b9050602081019050919050565b600067ffffffffffffffff8211156133c1576133c0613761565b5b6133ca82613790565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613425826135ab565b9150613430836135ab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613465576134646136d4565b5b828201905092915050565b600061347b826135ab565b9150613486836135ab565b92508261349657613495613703565b5b828204905092915050565b60006134ac826135ab565b91506134b7836135ab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134f0576134ef6136d4565b5b828202905092915050565b6000613506826135ab565b9150613511836135ab565b925082821015613524576135236136d4565b5b828203905092915050565b600061353a8261358b565b9050919050565b600061354c8261358b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156135e25780820151818401526020810190506135c7565b838111156135f1576000848401525b50505050565b6000600282049050600182168061360f57607f821691505b6020821081141561362357613622613732565b5b50919050565b61363282613790565b810181811067ffffffffffffffff8211171561365157613650613761565b5b80604052505050565b6000613665826135ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613698576136976136d4565b5b600182019050919050565b60006136ae826135ab565b91506136b9836135ab565b9250826136c9576136c8613703565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820415641582073656e742e0000000000000000000000600082015250565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6e6f742077686974656c69737465642c207761697420756e74696c207075626c60008201527f69632073616c6500000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f757365722068617320616c7265616479206d696e746564000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613c0b8161352f565b8114613c1657600080fd5b50565b613c2281613541565b8114613c2d57600080fd5b50565b613c3981613553565b8114613c4457600080fd5b50565b613c508161355f565b8114613c5b57600080fd5b50565b613c67816135ab565b8114613c7257600080fd5b5056fea2646970667358221220ecf5785ad1ac3e5480511d825470eb47669c36fbb8d9d5919b9a21fb2537f91e64736f6c63430008010033697066733a2f2f6261667962656968786f347174376f3271333668746a3572756e756a686772776e6672336374326833746d7265357437327a656136646a637677752f