[ { "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": "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "isHolder", "outputs": [ { "internalType": "bool", "name": "_holder", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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", "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": "contract ERC721Enumerable", "name": "c1", "type": "address" } ], "name": "setContract1", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract ERC721Enumerable", "name": "c2", "type": "address" } ], "name": "setContract2", "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": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price", "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": "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" } ]
60806040527327445b5f0f97db4729a6cace3a52ac42080df8c9601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327445b5f0f97db4729a6cace3a52ac42080df8c9601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000bb57600080fd5b506040518060400160405280600d81526020017f506978656c20424f4f686f6f73000000000000000000000000000000000000008152506040518060400160405280600481526020017f70424f4f00000000000000000000000000000000000000000000000000000000815250816000908051906020019062000140929190620002da565b50806001908051906020019062000159929190620002da565b5050506200017c620001706200020c60201b60201c565b6200021460201b60201c565b60405180608001604052806043815260200162003bdc60439139600c9080519060200190620001ad929190620002da565b506000600a819055506104d2600b819055506102ee600d81905550600a600e819055506000601060016101000a81548160ff0219169083151502179055506000601060006101000a81548160ff021916908315150217905550620003ef565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002e8906200038a565b90600052602060002090601f0160209004810192826200030c576000855562000358565b82601f106200032757805160ff191683800117855562000358565b8280016001018555821562000358579182015b82811115620003575782518255916020019190600101906200033a565b5b5090506200036791906200036b565b5090565b5b80821115620003865760008160009055506001016200036c565b5090565b60006002820490506001821680620003a357607f821691505b60208210811415620003ba57620003b9620003c0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6137dd80620003ff6000396000f3fe6080604052600436106101b75760003560e01c806389462c38116100ec578063b88d4fde1161008a578063d4d7b19a11610064578063d4d7b19a146105f6578063e985e9c514610633578063ee1cc94414610670578063f2fde38b14610699576101b7565b8063b88d4fde14610567578063c6f6f21614610590578063c87b56dd146105b9576101b7565b806395d89b41116100c657806395d89b41146104ce578063993847d1146104f9578063a0712d6814610522578063a22cb4651461053e576101b7565b806389462c38146104515780638da5cb5b1461047a57806391b7f5ed146104a5576101b7565b806325d387b51161015957806355f804b31161013357806355f804b3146103975780636352211e146103c057806370a08231146103fd578063715018a61461043a576101b7565b806325d387b5146103075780632a55205a1461033057806342842e0e1461036e576101b7565b8063095ea7b311610195578063095ea7b31461026157806317ef67c61461028a57806318160ddd146102b357806323b872dd146102de576101b7565b806301ffc9a7146101bc57806306fdde03146101f9578063081812fc14610224575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de91906126cf565b6106c2565b6040516101f09190612c13565b60405180910390f35b34801561020557600080fd5b5061020e61072b565b60405161021b9190612c2e565b60405180910390f35b34801561023057600080fd5b5061024b6004803603810190610246919061278b565b6107bd565b6040516102589190612b83565b60405180910390f35b34801561026d57600080fd5b506102886004803603810190610283919061266a565b610803565b005b34801561029657600080fd5b506102b160048036038101906102ac9190612721565b61091b565b005b3480156102bf57600080fd5b506102c8610967565b6040516102d59190612e90565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190612564565b610978565b005b34801561031357600080fd5b5061032e6004803603810190610329919061278b565b6109d8565b005b34801561033c57600080fd5b50610357600480360381019061035291906127dd565b6109ea565b604051610365929190612bea565b60405180910390f35b34801561037a57600080fd5b5061039560048036038101906103909190612564565b610a1b565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061274a565b610a3b565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061278b565b610a5d565b6040516103f49190612b83565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f91906124ff565b610b0f565b6040516104319190612e90565b60405180910390f35b34801561044657600080fd5b5061044f610bc7565b005b34801561045d57600080fd5b5061047860048036038101906104739190612721565b610bdb565b005b34801561048657600080fd5b5061048f610c27565b60405161049c9190612b83565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c7919061278b565b610c51565b005b3480156104da57600080fd5b506104e3610c63565b6040516104f09190612c2e565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b91906126a6565b610cf5565b005b61053c6004803603810190610537919061278b565b610d1a565b005b34801561054a57600080fd5b506105656004803603810190610560919061262e565b610ebf565b005b34801561057357600080fd5b5061058e600480360381019061058991906125b3565b610ed5565b005b34801561059c57600080fd5b506105b760048036038101906105b2919061278b565b610f37565b005b3480156105c557600080fd5b506105e060048036038101906105db919061278b565b610f49565b6040516105ed9190612c2e565b60405180910390f35b34801561060257600080fd5b5061061d600480360381019061061891906124ff565b61105c565b60405161062a9190612c13565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190612528565b611212565b6040516106679190612c13565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906126a6565b6112a6565b005b3480156106a557600080fd5b506106c060048036038101906106bb91906124ff565b6112cb565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561071a5760019050610726565b6107238261134f565b90505b919050565b60606000805461073a90613152565b80601f016020809104026020016040519081016040528092919081815260200182805461076690613152565b80156107b35780601f10610788576101008083540402835291602001916107b3565b820191906000526020600020905b81548152906001019060200180831161079657829003601f168201915b5050505050905090565b60006107c882611431565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061080e82610a5d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561087f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087690612e30565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661089e61147c565b73ffffffffffffffffffffffffffffffffffffffff1614806108cd57506108cc816108c761147c565b611212565b5b61090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090390612d90565b60405180910390fd5b6109168383611484565b505050565b61092361153d565b80601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061097360086115bb565b905090565b61098961098361147c565b826115c9565b6109c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bf90612e70565b60405180910390fd5b6109d383838361165e565b505050565b6109e061153d565b80600b8190555050565b6000806109f5610c27565b612710600d5485610a069190612ffc565b610a109190612fcb565b915091509250929050565b610a3683838360405180602001604052806000815250610ed5565b505050565b610a4361153d565b80600c9080519060200190610a599291906122f9565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612e10565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7790612d30565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bcf61153d565b610bd960006118c5565b565b610be361153d565b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c5961153d565b80600a8190555050565b606060018054610c7290613152565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9e90613152565b8015610ceb5780601f10610cc057610100808354040283529160200191610ceb565b820191906000526020600020905b815481529060010190602001808311610cce57829003601f168201915b5050505050905090565b610cfd61153d565b80601060006101000a81548160ff02191690831515021790555050565b610d233361105c565b610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990612c50565b60405180910390fd5b601060019054906101000a900460ff16610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890612e50565b60405180910390fd5b600e54811115610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90612d70565b60405180910390fd5b80600a54610e049190612ffc565b341015610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90612d50565b60405180910390fd5b610e4e610c27565b73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610e93573d6000803e3d6000fd5b5060005b81811015610ebb57610ea83361198b565b8080610eb3906131b5565b915050610e97565b5050565b610ed1610eca61147c565b83836119ff565b5050565b610ee6610ee061147c565b836115c9565b610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612e70565b60405180910390fd5b610f3184848484611b6c565b50505050565b610f3f61153d565b80600e8190555050565b6060610f5482611431565b6000600660008481526020019081526020016000208054610f7490613152565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa090613152565b8015610fed5780601f10610fc257610100808354040283529160200191610fed565b820191906000526020600020905b815481529060010190602001808311610fd057829003601f168201915b505050505090506000610ffe611bc8565b9050600081511415611014578192505050611057565b600082511115611049578082604051602001611031929190612b5f565b60405160208183030381529060405292505050611057565b61105284611c5a565b925050505b919050565b6000601060009054906101000a900460ff16801561112457506000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016110d29190612b83565b60206040518083038186803b1580156110ea57600080fd5b505afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112291906127b4565b115b806111d957506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016111879190612b83565b60206040518083038186803b15801561119f57600080fd5b505afa1580156111b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d791906127b4565b115b156111e7576001905061120d565b60001515601060009054906101000a900460ff161515141561120c576001905061120d565b5b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112ae61153d565b80601060016101000a81548160ff02191690831515021790555050565b6112d361153d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a90612c90565b60405180910390fd5b61134c816118c5565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061141a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061142a575061142982611cc2565b5b9050919050565b61143a81611d2c565b611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612e10565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114f783610a5d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61154561147c565b73ffffffffffffffffffffffffffffffffffffffff16611563610c27565b73ffffffffffffffffffffffffffffffffffffffff16146115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b090612df0565b60405180910390fd5b565b600081600001549050919050565b6000806115d583610a5d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061161757506116168185611212565b5b8061165557508373ffffffffffffffffffffffffffffffffffffffff1661163d846107bd565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167e82610a5d565b73ffffffffffffffffffffffffffffffffffffffff16146116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90612cb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90612cf0565b60405180910390fd5b61174f838383611d98565b61175a600082611484565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117aa9190613056565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118019190612f75565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118c0838383611d9d565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119956008611da2565b600b546119a260086115bb565b11156119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90612dd0565b60405180910390fd5b60006119ef60086115bb565b90506119fb8282611db8565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590612d10565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b5f9190612c13565b60405180910390a3505050565b611b7784848461165e565b611b8384848484611f92565b611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb990612c70565b60405180910390fd5b50505050565b6060600c8054611bd790613152565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0390613152565b8015611c505780601f10611c2557610100808354040283529160200191611c50565b820191906000526020600020905b815481529060010190602001808311611c3357829003601f168201915b5050505050905090565b6060611c6582611431565b6000611c6f611bc8565b90506000815111611c8f5760405180602001604052806000815250611cba565b80611c9984612129565b604051602001611caa929190612b5f565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f90612db0565b60405180910390fd5b611e3181611d2c565b15611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6890612cd0565b60405180910390fd5b611e7d60008383611d98565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ecd9190612f75565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f8e60008383611d9d565b5050565b6000611fb38473ffffffffffffffffffffffffffffffffffffffff166122d6565b1561211c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611fdc61147c565b8786866040518563ffffffff1660e01b8152600401611ffe9493929190612b9e565b602060405180830381600087803b15801561201857600080fd5b505af192505050801561204957506040513d601f19601f8201168201806040525081019061204691906126f8565b60015b6120cc573d8060008114612079576040519150601f19603f3d011682016040523d82523d6000602084013e61207e565b606091505b506000815114156120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb90612c70565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612121565b600190505b949350505050565b60606000821415612171576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506122d1565b600082905060005b600082146121a357808061218c906131b5565b915050600a8261219c9190612fcb565b9150612179565b60008167ffffffffffffffff8111156121e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156122175781602001600182028036833780820191505090505b5090505b600085146122ca576001826122309190613056565b9150600a8561223f91906131fe565b603061224b9190612f75565b60f81b818381518110612287577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856122c39190612fcb565b945061221b565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461230590613152565b90600052602060002090601f016020900481019282612327576000855561236e565b82601f1061234057805160ff191683800117855561236e565b8280016001018555821561236e579182015b8281111561236d578251825591602001919060010190612352565b5b50905061237b919061237f565b5090565b5b80821115612398576000816000905550600101612380565b5090565b60006123af6123aa84612ed0565b612eab565b9050828152602081018484840111156123c757600080fd5b6123d2848285613110565b509392505050565b60006123ed6123e884612f01565b612eab565b90508281526020810184848401111561240557600080fd5b612410848285613110565b509392505050565b60008135905061242781613734565b92915050565b60008135905061243c8161374b565b92915050565b60008135905061245181613762565b92915050565b60008151905061246681613762565b92915050565b600082601f83011261247d57600080fd5b813561248d84826020860161239c565b91505092915050565b6000813590506124a581613779565b92915050565b600082601f8301126124bc57600080fd5b81356124cc8482602086016123da565b91505092915050565b6000813590506124e481613790565b92915050565b6000815190506124f981613790565b92915050565b60006020828403121561251157600080fd5b600061251f84828501612418565b91505092915050565b6000806040838503121561253b57600080fd5b600061254985828601612418565b925050602061255a85828601612418565b9150509250929050565b60008060006060848603121561257957600080fd5b600061258786828701612418565b935050602061259886828701612418565b92505060406125a9868287016124d5565b9150509250925092565b600080600080608085870312156125c957600080fd5b60006125d787828801612418565b94505060206125e887828801612418565b93505060406125f9878288016124d5565b925050606085013567ffffffffffffffff81111561261657600080fd5b6126228782880161246c565b91505092959194509250565b6000806040838503121561264157600080fd5b600061264f85828601612418565b92505060206126608582860161242d565b9150509250929050565b6000806040838503121561267d57600080fd5b600061268b85828601612418565b925050602061269c858286016124d5565b9150509250929050565b6000602082840312156126b857600080fd5b60006126c68482850161242d565b91505092915050565b6000602082840312156126e157600080fd5b60006126ef84828501612442565b91505092915050565b60006020828403121561270a57600080fd5b600061271884828501612457565b91505092915050565b60006020828403121561273357600080fd5b600061274184828501612496565b91505092915050565b60006020828403121561275c57600080fd5b600082013567ffffffffffffffff81111561277657600080fd5b612782848285016124ab565b91505092915050565b60006020828403121561279d57600080fd5b60006127ab848285016124d5565b91505092915050565b6000602082840312156127c657600080fd5b60006127d4848285016124ea565b91505092915050565b600080604083850312156127f057600080fd5b60006127fe858286016124d5565b925050602061280f858286016124d5565b9150509250929050565b6128228161308a565b82525050565b6128318161309c565b82525050565b600061284282612f32565b61284c8185612f48565b935061285c81856020860161311f565b612865816132eb565b840191505092915050565b600061287b82612f3d565b6128858185612f59565b935061289581856020860161311f565b61289e816132eb565b840191505092915050565b60006128b482612f3d565b6128be8185612f6a565b93506128ce81856020860161311f565b80840191505092915050565b60006128e7603e83612f59565b91506128f2826132fc565b604082019050919050565b600061290a603283612f59565b91506129158261334b565b604082019050919050565b600061292d602683612f59565b91506129388261339a565b604082019050919050565b6000612950602583612f59565b915061295b826133e9565b604082019050919050565b6000612973601c83612f59565b915061297e82613438565b602082019050919050565b6000612996602483612f59565b91506129a182613461565b604082019050919050565b60006129b9601983612f59565b91506129c4826134b0565b602082019050919050565b60006129dc602983612f59565b91506129e7826134d9565b604082019050919050565b60006129ff601483612f59565b9150612a0a82613528565b602082019050919050565b6000612a22601e83612f59565b9150612a2d82613551565b602082019050919050565b6000612a45603e83612f59565b9150612a508261357a565b604082019050919050565b6000612a68602083612f59565b9150612a73826135c9565b602082019050919050565b6000612a8b601c83612f59565b9150612a96826135f2565b602082019050919050565b6000612aae602083612f59565b9150612ab98261361b565b602082019050919050565b6000612ad1601883612f59565b9150612adc82613644565b602082019050919050565b6000612af4602183612f59565b9150612aff8261366d565b604082019050919050565b6000612b17601683612f59565b9150612b22826136bc565b602082019050919050565b6000612b3a602e83612f59565b9150612b45826136e5565b604082019050919050565b612b5981613106565b82525050565b6000612b6b82856128a9565b9150612b7782846128a9565b91508190509392505050565b6000602082019050612b986000830184612819565b92915050565b6000608082019050612bb36000830187612819565b612bc06020830186612819565b612bcd6040830185612b50565b8181036060830152612bdf8184612837565b905095945050505050565b6000604082019050612bff6000830185612819565b612c0c6020830184612b50565b9392505050565b6000602082019050612c286000830184612828565b92915050565b60006020820190508181036000830152612c488184612870565b905092915050565b60006020820190508181036000830152612c69816128da565b9050919050565b60006020820190508181036000830152612c89816128fd565b9050919050565b60006020820190508181036000830152612ca981612920565b9050919050565b60006020820190508181036000830152612cc981612943565b9050919050565b60006020820190508181036000830152612ce981612966565b9050919050565b60006020820190508181036000830152612d0981612989565b9050919050565b60006020820190508181036000830152612d29816129ac565b9050919050565b60006020820190508181036000830152612d49816129cf565b9050919050565b60006020820190508181036000830152612d69816129f2565b9050919050565b60006020820190508181036000830152612d8981612a15565b9050919050565b60006020820190508181036000830152612da981612a38565b9050919050565b60006020820190508181036000830152612dc981612a5b565b9050919050565b60006020820190508181036000830152612de981612a7e565b9050919050565b60006020820190508181036000830152612e0981612aa1565b9050919050565b60006020820190508181036000830152612e2981612ac4565b9050919050565b60006020820190508181036000830152612e4981612ae7565b9050919050565b60006020820190508181036000830152612e6981612b0a565b9050919050565b60006020820190508181036000830152612e8981612b2d565b9050919050565b6000602082019050612ea56000830184612b50565b92915050565b6000612eb5612ec6565b9050612ec18282613184565b919050565b6000604051905090565b600067ffffffffffffffff821115612eeb57612eea6132bc565b5b612ef4826132eb565b9050602081019050919050565b600067ffffffffffffffff821115612f1c57612f1b6132bc565b5b612f25826132eb565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f8082613106565b9150612f8b83613106565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fc057612fbf61322f565b5b828201905092915050565b6000612fd682613106565b9150612fe183613106565b925082612ff157612ff061325e565b5b828204905092915050565b600061300782613106565b915061301283613106565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561304b5761304a61322f565b5b828202905092915050565b600061306182613106565b915061306c83613106565b92508282101561307f5761307e61322f565b5b828203905092915050565b6000613095826130e6565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006130df8261308a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561313d578082015181840152602081019050613122565b8381111561314c576000848401525b50505050565b6000600282049050600182168061316a57607f821691505b6020821081141561317e5761317d61328d565b5b50919050565b61318d826132eb565b810181811067ffffffffffffffff821117156131ac576131ab6132bc565b5b80604052505050565b60006131c082613106565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131f3576131f261322f565b5b600182019050919050565b600061320982613106565b915061321483613106565b9250826132245761322361325e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f6e6f74206120686f6c646572206f66207175616c696679696e6720636f6c6c6560008201527f6374696f6e732c207761697420756e74696c207075626c69632073616c650000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f7567682046544d2073656e742e000000000000000000000000600082015250565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b61373d8161308a565b811461374857600080fd5b50565b6137548161309c565b811461375f57600080fd5b50565b61376b816130a8565b811461377657600080fd5b50565b613782816130d4565b811461378d57600080fd5b50565b61379981613106565b81146137a457600080fd5b5056fea26469706673582212207ce9675a9d0749671f3f2b2f178d36df3cc455aaaae192669ae9a2f58d28697f64736f6c63430008010033697066733a2f2f62616679626569637a7a767434646b6364766e78357865767864676c6764357270797378626577773633666b656378717661726a64757a336d33342f