[ { "inputs": [], "stateMutability": "payable", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "approveUSDC", "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": [], "name": "getMaxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getWalletMints", "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": "isPublicMintEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity_", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintStatus", "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": "onlyWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownerMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "owner", "type": "address" } ], "name": "readAllowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "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", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseTokenUri_", "type": "string" } ], "name": "setBaseTokenUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isPublicMintEnabled_", "type": "bool" } ], "name": "setIsPublicMintEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxSupply_", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintPrice_", "type": "uint256" } ], "name": "setMintingPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "onlyWhitelisted_", "type": "bool" } ], "name": "setOnlyWhitelisted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" } ], "name": "setTotalSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "spender", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "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": "", "type": "address" } ], "name": "walletMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "whitelistUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040526040518060400160405280600c81526020017f5969656c64205768616c657300000000000000000000000000000000000000008152506040518060400160405280600881526020017f59574e4654313030000000000000000000000000000000000000000000000000815250816000908051906020019062000088929190620002bb565b508060019080519060200190620000a1929190620002bb565b505050620000c4620000b8620001ed60201b60201c565b620001f560201b60201c565b6305f5e1006007819055506000600981905550610190600a819055506019600b8190555060006008819055506040518060600160405280603681526020016200472c60369139600d908051906020019062000121929190620002bb565b5073b93d019199f57f5b38ca778e369f30f822f869e3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a7d7079b0fead91f3e65f86e8915cb59c1a4c664601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60016101000a81548160ff021916908315150217905550620003d0565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002c9906200036b565b90600052602060002090601f016020900481019282620002ed576000855562000339565b82601f106200030857805160ff191683800117855562000339565b8280016001018555821562000339579182015b82811115620003385782518255916020019190600101906200031b565b5b5090506200034891906200034c565b5090565b5b80821115620003675760008160009055506001016200034d565b5090565b600060028204905060018216806200038457607f821691505b602082108114156200039b576200039a620003a1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61434c80620003e06000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80638417b47f1161015c578063b88d4fde116100ce578063e985e9c511610087578063e985e9c514610754578063edec5f2714610784578063f0293fd3146107a0578063f2fde38b146107d0578063f7ea7a3d146107ec578063fc0c546a146108085761027f565b8063b88d4fde1461067e578063ba4e5c491461069a578063c4e41b22146106ca578063c87b56dd146106e8578063d5abeb0114610718578063e8edc816146107365761027f565b80639c70b512116101205780639c70b512146105ce5780639da3f8fd146105ec578063a0712d681461060a578063a22cb46514610626578063a7f93ebd14610642578063b12dc991146106605761027f565b80638417b47f1461053c57806385d178f4146105585780638da5cb5b1461057657806395652cfa1461059457806395d89b41146105b05761027f565b80633af32abf116101f55780634c0f38c2116101b95780634c0f38c21461047a5780636352211e146104985780636817c76c146104c85780636f8b44b0146104e657806370a0823114610502578063715018a6146105325761027f565b80633af32abf146103ea5780633c9527641461041a5780633ccfd60b1461043657806342842e0e14610440578063453c23101461045c5761027f565b8063095ea7b311610247578063095ea7b31461032a57806311e93af61461034657806318160ddd146103645780632373ac221461038257806323b872dd1461039e5780632765108f146103ba5761027f565b80630116bc2d1461028457806301ffc9a7146102a257806302150afa146102d257806306fdde03146102dc578063081812fc146102fa575b600080fd5b61028c610826565b6040516102999190613670565b60405180910390f35b6102bc60048036038101906102b79190613006565b610839565b6040516102c99190613670565b60405180910390f35b6102da61091b565b005b6102e4610a58565b6040516102f191906136a6565b60405180910390f35b610314600480360381019061030f919061309d565b610aea565b6040516103219190613565565b60405180910390f35b610344600480360381019061033f9190612f33565b610b6f565b005b61034e610c87565b60405161035b9190613928565b60405180910390f35b61036c610cd3565b6040516103799190613928565b60405180910390f35b61039c60048036038101906103979190612fb4565b610cd9565b005b6103b860048036038101906103b39190612e2d565b610d72565b005b6103d460048036038101906103cf9190612dc8565b610dd2565b6040516103e19190613928565b60405180910390f35b61040460048036038101906103ff9190612dc8565b610e58565b6040516104119190613670565b60405180910390f35b610434600480360381019061042f9190612fb4565b610f2d565b005b61043e610fc6565b005b61045a60048036038101906104559190612e2d565b6111c0565b005b6104646111e0565b6040516104719190613928565b60405180910390f35b6104826111e6565b60405161048f9190613928565b60405180910390f35b6104b260048036038101906104ad919061309d565b6111f5565b6040516104bf9190613565565b60405180910390f35b6104d06112a7565b6040516104dd9190613928565b60405180910390f35b61050060048036038101906104fb919061309d565b6112ad565b005b61051c60048036038101906105179190612dc8565b611333565b6040516105299190613928565b60405180910390f35b61053a6113eb565b005b6105566004803603810190610551919061309d565b611473565b005b6105606114f9565b60405161056d9190613580565b60405180910390f35b61057e61151f565b60405161058b9190613565565b60405180910390f35b6105ae60048036038101906105a99190613058565b611549565b005b6105b86115db565b6040516105c591906136a6565b60405180910390f35b6105d661166d565b6040516105e39190613670565b60405180910390f35b6105f4611680565b6040516106019190613670565b60405180910390f35b610624600480360381019061061f919061309d565b61169c565b005b610640600480360381019061063b9190612ef7565b611947565b005b61064a61195d565b6040516106579190613928565b60405180910390f35b61066861196c565b6040516106759190613928565b60405180910390f35b61069860048036038101906106939190612e7c565b611972565b005b6106b460048036038101906106af919061309d565b6119d4565b6040516106c19190613565565b60405180910390f35b6106d2611a13565b6040516106df9190613928565b60405180910390f35b61070260048036038101906106fd919061309d565b611a1d565b60405161070f91906136a6565b60405180910390f35b610720611a99565b60405161072d9190613928565b60405180910390f35b61073e611a9f565b60405161074b9190613565565b60405180910390f35b61076e60048036038101906107699190612df1565b611ac5565b60405161077b9190613670565b60405180910390f35b61079e60048036038101906107999190612f6f565b611b59565b005b6107ba60048036038101906107b59190612dc8565b611cab565b6040516107c79190613928565b60405180910390f35b6107ea60048036038101906107e59190612dc8565b611cc3565b005b6108066004803603810190610801919061309d565b611dbb565b005b610810611e41565b60405161081d919061368b565b60405180910390f35b600c60009054906101000a900460ff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061090457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610914575061091382611e67565b5b9050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b33064e8d4a510006040518363ffffffff1660e01b815260040161097d929190613647565b602060405180830381600087803b15801561099757600080fd5b505af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190612fdd565b5064e8d4a51000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b606060008054610a6790613c3a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390613c3a565b8015610ae05780601f10610ab557610100808354040283529160200191610ae0565b820191906000526020600020905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b6000610af582611ed1565b610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90613848565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b7a826111f5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290613888565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c0a611f3d565b73ffffffffffffffffffffffffffffffffffffffff161480610c395750610c3881610c33611f3d565b611ac5565b5b610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906137c8565b60405180910390fd5b610c828383611f45565b505050565b600080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505090565b60095481565b610ce1611f3d565b73ffffffffffffffffffffffffffffffffffffffff16610cff61151f565b73ffffffffffffffffffffffffffffffffffffffff1614610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90613868565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b610d83610d7d611f3d565b82611ffe565b610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906138a8565b60405180910390fd5b610dcd8383836120dc565b505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600090505b601280549050811015610f22578273ffffffffffffffffffffffffffffffffffffffff1660128281548110610ebe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610f0f576001915050610f28565b8080610f1a90613c9d565b915050610e60565b50600090505b919050565b610f35611f3d565b73ffffffffffffffffffffffffffffffffffffffff16610f5361151f565b73ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa090613868565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b610fce611f3d565b73ffffffffffffffffffffffffffffffffffffffff16610fec61151f565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990613868565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110fe9190613565565b60206040518083038186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e91906130c6565b6040518363ffffffff1660e01b815260040161116b92919061359b565b602060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bd9190612fdd565b50565b6111db83838360405180602001604052806000815250611972565b505050565b600b5481565b600080600a5490508091505090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613808565b60405180910390fd5b80915050919050565b60075481565b6112b5611f3d565b73ffffffffffffffffffffffffffffffffffffffff166112d361151f565b73ffffffffffffffffffffffffffffffffffffffff1614611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090613868565b60405180910390fd5b80600a8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b906137e8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113f3611f3d565b73ffffffffffffffffffffffffffffffffffffffff1661141161151f565b73ffffffffffffffffffffffffffffffffffffffff1614611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90613868565b60405180910390fd5b6114716000612343565b565b61147b611f3d565b73ffffffffffffffffffffffffffffffffffffffff1661149961151f565b73ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613868565b60405180910390fd5b8060078190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611551611f3d565b73ffffffffffffffffffffffffffffffffffffffff1661156f61151f565b73ffffffffffffffffffffffffffffffffffffffff16146115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90613868565b60405180910390fd5b8181600d91906115d6929190612b96565b505050565b6060600180546115ea90613c3a565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613c3a565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905090565b600c60019054906101000a900460ff1681565b600080600c60009054906101000a900460ff1690508091505090565b600c60009054906101000a900460ff166116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e2906138e8565b60405180910390fd5b600a54816009546116fc91906139f1565b111561173d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611734906138c8565b60405180910390fd5b60011515600c60019054906101000a900460ff16151514156117a25761176233610e58565b6117a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179890613748565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600754856117f09190613a78565b6040518463ffffffff1660e01b815260040161180e939291906135c4565b602060405180830381600087803b15801561182857600080fd5b505af115801561183c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118609190612fdd565b5060005b818110156118b5576000600160095461187d91906139f1565b90506009600081548092919061189290613c9d565b91905055506118a13382612409565b5080806118ad90613c9d565b915050611864565b5080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190191906139f1565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b611959611952611f3d565b8383612427565b5050565b60008060075490508091505090565b60085481565b61198361197d611f3d565b83611ffe565b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b9906138a8565b60405180910390fd5b6119ce84848484612594565b50505050565b601281815481106119e457600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b6060611a2882611ed1565b611a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5e90613908565b60405180910390fd5b600d611a72836125f0565b604051602001611a83929190613536565b6040516020818303038152906040529050919050565b600a5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b61611f3d565b73ffffffffffffffffffffffffffffffffffffffff16611b7f61151f565b73ffffffffffffffffffffffffffffffffffffffff1614611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc90613868565b60405180910390fd5b60005b82829050811015611ca6576012838383818110611c1e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611c339190612dc8565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611c9e90613c9d565b915050611bd8565b505050565b600e6020528060005260406000206000915090505481565b611ccb611f3d565b73ffffffffffffffffffffffffffffffffffffffff16611ce961151f565b73ffffffffffffffffffffffffffffffffffffffff1614611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690613868565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da6906136e8565b60405180910390fd5b611db881612343565b50565b611dc3611f3d565b73ffffffffffffffffffffffffffffffffffffffff16611de161151f565b73ffffffffffffffffffffffffffffffffffffffff1614611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613868565b60405180910390fd5b8060098190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611fb8836111f5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061200982611ed1565b612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f906137a8565b60405180910390fd5b6000612053836111f5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209557506120948185611ac5565b5b806120d357508373ffffffffffffffffffffffffffffffffffffffff166120bb84610aea565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120fc826111f5565b73ffffffffffffffffffffffffffffffffffffffff1614612152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214990613708565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b990613768565b60405180910390fd5b6121cd83838361279d565b6121d8600082611f45565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122289190613ad2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461227f91906139f1565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461233e8383836127a2565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6124238282604051806020016040528060008152506127a7565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90613788565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516125879190613670565b60405180910390a3505050565b61259f8484846120dc565b6125ab84848484612802565b6125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e1906136c8565b60405180910390fd5b50505050565b60606000821415612638576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612798565b600082905060005b6000821461266a57808061265390613c9d565b915050600a826126639190613a47565b9150612640565b60008167ffffffffffffffff8111156126ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156126de5781602001600182028036833780820191505090505b5090505b60008514612791576001826126f79190613ad2565b9150600a856127069190613ce6565b603061271291906139f1565b60f81b81838151811061274e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561278a9190613a47565b94506126e2565b8093505050505b919050565b505050565b505050565b6127b18383612999565b6127be6000848484612802565b6127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f4906136c8565b60405180910390fd5b505050565b60006128238473ffffffffffffffffffffffffffffffffffffffff16612b73565b1561298c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261284c611f3d565b8786866040518563ffffffff1660e01b815260040161286e94939291906135fb565b602060405180830381600087803b15801561288857600080fd5b505af19250505080156128b957506040513d601f19601f820116820180604052508101906128b6919061302f565b60015b61293c573d80600081146128e9576040519150601f19603f3d011682016040523d82523d6000602084013e6128ee565b606091505b50600081511415612934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292b906136c8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612991565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0090613828565b60405180910390fd5b612a1281611ed1565b15612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613728565b60405180910390fd5b612a5e6000838361279d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612aae91906139f1565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612b6f600083836127a2565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612ba290613c3a565b90600052602060002090601f016020900481019282612bc45760008555612c0b565b82601f10612bdd57803560ff1916838001178555612c0b565b82800160010185558215612c0b579182015b82811115612c0a578235825591602001919060010190612bef565b5b509050612c189190612c1c565b5090565b5b80821115612c35576000816000905550600101612c1d565b5090565b6000612c4c612c4784613968565b613943565b905082815260208101848484011115612c6457600080fd5b612c6f848285613bf8565b509392505050565b600081359050612c86816142ba565b92915050565b60008083601f840112612c9e57600080fd5b8235905067ffffffffffffffff811115612cb757600080fd5b602083019150836020820283011115612ccf57600080fd5b9250929050565b600081359050612ce5816142d1565b92915050565b600081519050612cfa816142d1565b92915050565b600081359050612d0f816142e8565b92915050565b600081519050612d24816142e8565b92915050565b600082601f830112612d3b57600080fd5b8135612d4b848260208601612c39565b91505092915050565b60008083601f840112612d6657600080fd5b8235905067ffffffffffffffff811115612d7f57600080fd5b602083019150836001820283011115612d9757600080fd5b9250929050565b600081359050612dad816142ff565b92915050565b600081519050612dc2816142ff565b92915050565b600060208284031215612dda57600080fd5b6000612de884828501612c77565b91505092915050565b60008060408385031215612e0457600080fd5b6000612e1285828601612c77565b9250506020612e2385828601612c77565b9150509250929050565b600080600060608486031215612e4257600080fd5b6000612e5086828701612c77565b9350506020612e6186828701612c77565b9250506040612e7286828701612d9e565b9150509250925092565b60008060008060808587031215612e9257600080fd5b6000612ea087828801612c77565b9450506020612eb187828801612c77565b9350506040612ec287828801612d9e565b925050606085013567ffffffffffffffff811115612edf57600080fd5b612eeb87828801612d2a565b91505092959194509250565b60008060408385031215612f0a57600080fd5b6000612f1885828601612c77565b9250506020612f2985828601612cd6565b9150509250929050565b60008060408385031215612f4657600080fd5b6000612f5485828601612c77565b9250506020612f6585828601612d9e565b9150509250929050565b60008060208385031215612f8257600080fd5b600083013567ffffffffffffffff811115612f9c57600080fd5b612fa885828601612c8c565b92509250509250929050565b600060208284031215612fc657600080fd5b6000612fd484828501612cd6565b91505092915050565b600060208284031215612fef57600080fd5b6000612ffd84828501612ceb565b91505092915050565b60006020828403121561301857600080fd5b600061302684828501612d00565b91505092915050565b60006020828403121561304157600080fd5b600061304f84828501612d15565b91505092915050565b6000806020838503121561306b57600080fd5b600083013567ffffffffffffffff81111561308557600080fd5b61309185828601612d54565b92509250509250929050565b6000602082840312156130af57600080fd5b60006130bd84828501612d9e565b91505092915050565b6000602082840312156130d857600080fd5b60006130e684828501612db3565b91505092915050565b6130f881613b8c565b82525050565b61310781613b18565b82525050565b61311681613b06565b82525050565b61312581613b2a565b82525050565b6000613136826139ae565b61314081856139c4565b9350613150818560208601613c07565b61315981613dd3565b840191505092915050565b61316d81613b9e565b82525050565b61317c81613bc2565b82525050565b600061318d826139b9565b61319781856139d5565b93506131a7818560208601613c07565b6131b081613dd3565b840191505092915050565b60006131c6826139b9565b6131d081856139e6565b93506131e0818560208601613c07565b80840191505092915050565b600081546131f981613c3a565b61320381866139e6565b9450600182166000811461321e576001811461322f57613262565b60ff19831686528186019350613262565b61323885613999565b60005b8381101561325a5781548189015260018201915060208101905061323b565b838801955050505b50505092915050565b60006132786032836139d5565b915061328382613de4565b604082019050919050565b600061329b6026836139d5565b91506132a682613e33565b604082019050919050565b60006132be6025836139d5565b91506132c982613e82565b604082019050919050565b60006132e1601c836139d5565b91506132ec82613ed1565b602082019050919050565b60006133046018836139d5565b915061330f82613efa565b602082019050919050565b60006133276024836139d5565b915061333282613f23565b604082019050919050565b600061334a6019836139d5565b915061335582613f72565b602082019050919050565b600061336d602c836139d5565b915061337882613f9b565b604082019050919050565b60006133906038836139d5565b915061339b82613fea565b604082019050919050565b60006133b3602a836139d5565b91506133be82614039565b604082019050919050565b60006133d66029836139d5565b91506133e182614088565b604082019050919050565b60006133f96020836139d5565b9150613404826140d7565b602082019050919050565b600061341c602c836139d5565b915061342782614100565b604082019050919050565b600061343f6005836139e6565b915061344a8261414f565b600582019050919050565b60006134626020836139d5565b915061346d82614178565b602082019050919050565b60006134856021836139d5565b9150613490826141a1565b604082019050919050565b60006134a86031836139d5565b91506134b3826141f0565b604082019050919050565b60006134cb6009836139d5565b91506134d68261423f565b602082019050919050565b60006134ee6014836139d5565b91506134f982614268565b602082019050919050565b60006135116015836139d5565b915061351c82614291565b602082019050919050565b61353081613b82565b82525050565b600061354282856131ec565b915061354e82846131bb565b915061355982613432565b91508190509392505050565b600060208201905061357a600083018461310d565b92915050565b600060208201905061359560008301846130fe565b92915050565b60006040820190506135b060008301856130ef565b6135bd6020830184613527565b9392505050565b60006060820190506135d9600083018661310d565b6135e6602083018561310d565b6135f36040830184613527565b949350505050565b6000608082019050613610600083018761310d565b61361d602083018661310d565b61362a6040830185613527565b818103606083015261363c818461312b565b905095945050505050565b600060408201905061365c600083018561310d565b6136696020830184613173565b9392505050565b6000602082019050613685600083018461311c565b92915050565b60006020820190506136a06000830184613164565b92915050565b600060208201905081810360008301526136c08184613182565b905092915050565b600060208201905081810360008301526136e18161326b565b9050919050565b600060208201905081810360008301526137018161328e565b9050919050565b60006020820190508181036000830152613721816132b1565b9050919050565b60006020820190508181036000830152613741816132d4565b9050919050565b60006020820190508181036000830152613761816132f7565b9050919050565b600060208201905081810360008301526137818161331a565b9050919050565b600060208201905081810360008301526137a18161333d565b9050919050565b600060208201905081810360008301526137c181613360565b9050919050565b600060208201905081810360008301526137e181613383565b9050919050565b60006020820190508181036000830152613801816133a6565b9050919050565b60006020820190508181036000830152613821816133c9565b9050919050565b60006020820190508181036000830152613841816133ec565b9050919050565b600060208201905081810360008301526138618161340f565b9050919050565b6000602082019050818103600083015261388181613455565b9050919050565b600060208201905081810360008301526138a181613478565b9050919050565b600060208201905081810360008301526138c18161349b565b9050919050565b600060208201905081810360008301526138e1816134be565b9050919050565b60006020820190508181036000830152613901816134e1565b9050919050565b6000602082019050818103600083015261392181613504565b9050919050565b600060208201905061393d6000830184613527565b92915050565b600061394d61395e565b90506139598282613c6c565b919050565b6000604051905090565b600067ffffffffffffffff82111561398357613982613da4565b5b61398c82613dd3565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006139fc82613b82565b9150613a0783613b82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a3c57613a3b613d17565b5b828201905092915050565b6000613a5282613b82565b9150613a5d83613b82565b925082613a6d57613a6c613d46565b5b828204905092915050565b6000613a8382613b82565b9150613a8e83613b82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac757613ac6613d17565b5b828202905092915050565b6000613add82613b82565b9150613ae883613b82565b925082821015613afb57613afa613d17565b5b828203905092915050565b6000613b1182613b62565b9050919050565b6000613b2382613b62565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613b9782613bd4565b9050919050565b6000613ba982613bb0565b9050919050565b6000613bbb82613b62565b9050919050565b6000613bcd82613b82565b9050919050565b6000613bdf82613be6565b9050919050565b6000613bf182613b62565b9050919050565b82818337600083830152505050565b60005b83811015613c25578082015181840152602081019050613c0a565b83811115613c34576000848401525b50505050565b60006002820490506001821680613c5257607f821691505b60208210811415613c6657613c65613d75565b5b50919050565b613c7582613dd3565b810181811067ffffffffffffffff82111715613c9457613c93613da4565b5b80604052505050565b6000613ca882613b82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613cdb57613cda613d17565b5b600182019050919050565b6000613cf182613b82565b9150613cfc83613b82565b925082613d0c57613d0b613d46565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f596f7520617265206e6f742077686974656c6973746564210000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f536f6c64206f75742e0000000000000000000000000000000000000000000000600082015250565b7f4d696e74696e6720697320696e6163746976652e000000000000000000000000600082015250565b7f546f6b656e20646f6573206e6f74206578697374210000000000000000000000600082015250565b6142c381613b06565b81146142ce57600080fd5b50565b6142da81613b2a565b81146142e557600080fd5b50565b6142f181613b36565b81146142fc57600080fd5b50565b61430881613b82565b811461431357600080fd5b5056fea2646970667358221220f49b8b9937b6966ef1ae90c845c4dc6897b61fbe1f3e2e1ee34a78985b3741a364736f6c63430008040033697066733a2f2f516d52646d62417543684e7a714c3567727a6a463831734c4c645970636e7831396f4a36796f6d563956757767762f