[ { "inputs": [ { "internalType": "contract ERC20", "name": "_tundraToken", "type": "address" }, { "internalType": "address", "name": "_burnAddress", "type": "address" } ], "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": "uint256", "name": "characterIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" } ], "name": "CharacterBidEntered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" } ], "name": "CharacterBidWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" } ], "name": "CharacterBought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "CharacterNoLongerForSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "minValue", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" } ], "name": "CharacterOffered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "minter", "type": "address" } ], "name": "Mint", "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": [], "name": "SaleBegins", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "TOKEN_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "uint256", "name": "minPrice", "type": "uint256" } ], "name": "acceptBidForcharacter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_approved", "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": [], "name": "burnAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "buycharacter", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "cancelledOffers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "characterBids", "outputs": [ { "internalType": "bool", "name": "hasBid", "type": "bool" }, { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "address", "name": "bidder", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "characterNoLongerForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "charactersOfferedForSale", "outputs": [ { "internalType": "bool", "name": "isForSale", "type": "bool" }, { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "address", "name": "seller", "type": "address" }, { "internalType": "uint256", "name": "minValue", "type": "uint256" }, { "internalType": "address", "name": "onlySellTo", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "enterBidForcharacter", "outputs": [], "stateMutability": "payable", "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": [], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintsRemaining", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "uint256", "name": "minSalePriceInWei", "type": "uint256" } ], "name": "offercharacterForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "uint256", "name": "minSalePriceInWei", "type": "uint256" }, { "internalType": "address", "name": "toAddress", "type": "address" } ], "name": "offercharacterForSaleToAddress", "outputs": [], "stateMutability": "nonpayable", "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": "_owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "pendingWithdrawals", "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": "bytes4", "name": "_interfaceID", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "tundraBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tundraToken", "outputs": [ { "internalType": "contract ERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "withdrawBidForcharacter", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060400160405280600681526020017f52696c616666000000000000000000000000000000000000000000000000000081525060099080519060200190620000519291906200039a565b506040518060400160405280600481526020017f4865726f00000000000000000000000000000000000000000000000000000000815250600a90805190602001906200009f9291906200039a565b506000600b556000600c55670de0b6b3a7640000600e556000600f55348015620000c857600080fd5b506040516200600b3803806200600b83398181016040526040811015620000ee57600080fd5b81019080805190602001909291908051906020019092919050505060006200011b6200039260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600180819055506001600260006301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555060016002600063780e9d6360e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000450565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003d257600085556200041e565b82601f10620003ed57805160ff19168380011785556200041e565b828001600101855582156200041e579182015b828111156200041d57825182559160200191906001019062000400565b5b5090506200042d919062000431565b5090565b5b808211156200044c57600081600090555060010162000432565b5090565b615bab80620004606000396000f3fe60806040526004361061021a5760003560e01c80636a997bc71161012357806393dac718116100ab578063c87b56dd1161006f578063c87b56dd14610cca578063e985e9c514610d7e578063f2fde38b14610e05578063f3f4370314610e56578063f7a01c6714610ebb5761021a565b806393dac71814610a4057806395d89b4114610abc5780639f7bf76214610b4c578063a22cb46514610b9d578063b88d4fde14610bfa5761021a565b8063715018a6116100f2578063715018a61461092d578063761e15bf1461094457806377efcb7e1461097f5780637cae1ad4146109c45780638da5cb5b146109ff5761021a565b80636a997bc7146108185780636ab1050f1461085957806370a082311461088757806370d5ae05146108ec5761021a565b806323b872dd116101a657806342842e0e1161017557806342842e0e1461065957806344c66be7146106d45780634f6ccce7146106ff57806360f9f6eb1461074e5780636352211e146107b35761021a565b806323b872dd146104bf57806329c63cb41461053a5780632f745c59146105d35780633ccfd60b146106425761021a565b80630912a425116101ed5780630912a425146103af578063095ea7b3146103f45780631249c58b1461044f57806318160ddd14610466578063237376f5146104915761021a565b806301ffc9a71461021f578063031bd4c41461028f57806306fdde03146102ba578063081812fc1461034a575b600080fd5b34801561022b57600080fd5b506102776004803603602081101561024257600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f20565b60405180821515815260200191505060405180910390f35b34801561029b57600080fd5b506102a4610f88565b6040518082815260200191505060405180910390f35b3480156102c657600080fd5b506102cf610f8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030f5780820151818401526020810190506102f4565b50505050905090810190601f16801561033c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035657600080fd5b506103836004803603602081101561036d57600080fd5b8101908080359060200190929190505050611030565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bb57600080fd5b506103f2600480360360408110156103d257600080fd5b810190808035906020019092919080359060200190929190505050611145565b005b34801561040057600080fd5b5061044d6004803603604081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b005b34801561045b57600080fd5b506104646117db565b005b34801561047257600080fd5b5061047b611b3f565b6040518082815260200191505060405180910390f35b6104bd600480360360208110156104a757600080fd5b8101908080359060200190929190505050611b49565b005b3480156104cb57600080fd5b50610538600480360360608110156104e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612272565b005b34801561054657600080fd5b506105736004803603602081101561055d57600080fd5b81019080803590602001909291905050506126ac565b6040518086151581526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b3480156105df57600080fd5b5061062c600480360360408110156105f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612730565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b506106576127dd565b005b34801561066557600080fd5b506106d26004803603606081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061293a565b005b3480156106e057600080fd5b506106e961295a565b6040518082815260200191505060405180910390f35b34801561070b57600080fd5b506107386004803603602081101561072257600080fd5b8101908080359060200190929190505050612978565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b506107b16004803603606081101561077157600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299f565b005b3480156107bf57600080fd5b506107ec600480360360208110156107d657600080fd5b8101908080359060200190929190505050612ccc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082457600080fd5b5061082d612d75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108856004803603602081101561086f57600080fd5b8101908080359060200190929190505050612d9b565b005b34801561089357600080fd5b506108d6600480360360208110156108aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613224565b6040518082815260200191505060405180910390f35b3480156108f857600080fd5b5061090161326f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093957600080fd5b50610942613295565b005b34801561095057600080fd5b5061097d6004803603602081101561096757600080fd5b8101908080359060200190929190505050613402565b005b34801561098b57600080fd5b506109c2600480360360408110156109a257600080fd5b8101908080359060200190929190803590602001909291905050506138a1565b005b3480156109d057600080fd5b506109fd600480360360208110156109e757600080fd5b8101908080359060200190929190505050613dae565b005b348015610a0b57600080fd5b50610a14613f64565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4c57600080fd5b50610a7960048036036020811015610a6357600080fd5b8101908080359060200190929190505050613f8d565b6040518085151581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390f35b348015610ac857600080fd5b50610ad1613feb565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b11578082015181840152602081019050610af6565b50505050905090810190601f168015610b3e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b5857600080fd5b50610b8560048036036020811015610b6f57600080fd5b810190808035906020019092919050505061408d565b60405180821515815260200191505060405180910390f35b348015610ba957600080fd5b50610bf860048036036040811015610bc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506140ae565b005b348015610c0657600080fd5b50610cc860048036036080811015610c1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610c8457600080fd5b820183602082011115610c9657600080fd5b80359060200191846001830284011164010000000083111715610cb857600080fd5b90919293919293905050506141ad565b005b348015610cd657600080fd5b50610d0360048036036020811015610ced57600080fd5b8101908080359060200190929190505050614204565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d43578082015181840152602081019050610d28565b50505050905090810190601f168015610d705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d8a57600080fd5b50610ded60048036036040811015610da157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614380565b60405180821515815260200191505060405180910390f35b348015610e1157600080fd5b50610e5460048036036020811015610e2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614414565b005b348015610e6257600080fd5b50610ea560048036036020811015610e7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614606565b6040518082815260200191505060405180910390f35b348015610ec757600080fd5b50610f0a60048036036020811015610ede57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061461f565b6040518082815260200191505060405180910390f35b600060026000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6101f481565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110265780601f10610ffb57610100808354040283529160200191611026565b820191906000526020600020905b81548152906001019060200180831161100957829003601f168201915b5050505050905090565b600081600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b600260015414156111be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600181905550816101f4811061123e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661125e82612ccc565b73ffffffffffffffffffffffffffffffffffffffff16146112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b6040518060a001604052806001151581526020018481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001838152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610206600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600073ffffffffffffffffffffffffffffffffffffffff16837fce417ce9b239fca12bd4ef562a1ffb93cd8da3d6abbb7edaf7a7eb0dbd7cc62b846040518082815260200191505060405180910390a350600180819055505050565b8060006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061156c5750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43616e6e6f74206f7065726174652e000000000000000000000000000000000081525060200191505060405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b60006003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561172657600080fd5b856004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050505050565b60026001541415611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506101f4611867611b3f565b11156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4578636565647320544f4b454e5f4c494d49540000000000000000000000000081525060200191505060405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561196657600080fd5b505afa15801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b81019080805190602001909291905050509050600e548111611a1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e454544204d4f52452054554e4452410000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611aef57600080fd5b505af1158015611b03573d6000803e3d6000fd5b505050506040513d6020811015611b1957600080fd5b810190808051906020019092919050505050611b3433614638565b505060018081905550565b6000600b54905090565b60026001541415611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506101f48110611c41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b600061020660008381526020019081526020016000206040518060a00160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090508060000151611db6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f636861726163746572206e6f742061637475616c6c7920666f722073616c650081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff161480611e2457503373ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff16145b611e79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615b04602e913960400191505060405180910390fd5b8060600151341015611ef3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4469646e27742073656e6420656e6f75676820616d6f756e740000000000000081525060200191505060405180910390fd5b806040015173ffffffffffffffffffffffffffffffffffffffff16611f1783612ccc565b73ffffffffffffffffffffffffffffffffffffffff1614611f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615ae16023913960400191505060405180910390fd5b600081604001519050611fa78133856040518060200160405280600081525061481b565b611fb083614bb3565b3461020860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847f276b044762b1ab0de2685db41c997fcff127bb71779415d43202e41aef8dd3fd346040518082815260200191505060405180910390a4600061020760008581526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff16141561226557806060015161020860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506040518060800160405280600015158152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250610207600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505b5050506001808190555050565b8060006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061234357503373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806123d45750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f43616e6e6f74207472616e736665722e0000000000000000000000000000000081525060200191505060405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b60006003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f57726f6e672066726f6d20616464726573732e0000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612699576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616e6e6f742073656e6420746f203078302e0000000000000000000000000081525060200191505060405180910390fd5b6126a38686614d14565b50505050505050565b6102066020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821061278057600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106127ca57fe5b9060005260206000200154905092915050565b60026001541415612856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600181905550600061020860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061020860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561292f573d6000803e3d6000fd5b505060018081905550565b61295583838360405180602001604052806000815250614dc9565b505050565b6000612973600c546101f461533790919063ffffffff16565b905090565b600080821015801561298b57506101f482105b61299457600080fd5b600182019050919050565b60026001541415612a18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600181905550826101f48110612a98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16612ab882612ccc565b73ffffffffffffffffffffffffffffffffffffffff1614612b41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b6040518060a001604052806001151581526020018581526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250610206600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508173ffffffffffffffffffffffffffffffffffffffff16847fce417ce9b239fca12bd4ef562a1ffb93cd8da3d6abbb7edaf7a7eb0dbd7cc62b856040518082815260200191505060405180910390a35060018081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d3a57600080fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026001541415612e14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506101f48110612e93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16612eb382612ccc565b73ffffffffffffffffffffffffffffffffffffffff161415612f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b556021913960400191505060405180910390fd5b60003411612f96576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6269642063616e206e6f74206265207a65726f0000000000000000000000000081525060200191505060405180910390fd5b600061020760008381526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152505090508060600151341161309a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b326023913960400191505060405180910390fd5b6000816060015111156130fe5780606001516102086000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b60405180608001604052806001151581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815260200134815250610207600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff16827fdf69ca1a2ea4a29aa03d1533b7fac2b0e0f8504895521d1afd1bddee6749aaf8346040518082815260200191505060405180910390a3506001808190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561325f57600080fd5b613268826153ba565b9050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61329d615406565b73ffffffffffffffffffffffffffffffffffffffff166132bb613f64565b73ffffffffffffffffffffffffffffffffffffffff1614613344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6002600154141561347b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506101f481106134fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661351a82612ccc565b73ffffffffffffffffffffffffffffffffffffffff1614156135a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e6720616374696f6e000000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16610207600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461367c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4f6e6c79206269646465722063616e207769746864726177000000000000000081525060200191505060405180910390fd5b600061020760008381526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152505090503373ffffffffffffffffffffffffffffffffffffffff16827f96bf05db81a5c13e34b629f2b303079431ed1643213b1afc0289a0e5dafdafa583606001516040518082815260200191505060405180910390a36000816060015190506040518060800160405280600015158152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250610207600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613894573d6000803e3d6000fd5b5050506001808190555050565b6002600154141561391a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600181905550816101f4811061399a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166139ba82612ccc565b73ffffffffffffffffffffffffffffffffffffffff1614613a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b6000339050600061020760008681526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152505090506000816060015111613b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7468657265206973206e6f7420616e792062696400000000000000000000000081525060200191505060405180910390fd5b8381606001511015613be4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f626964206973206c6f776572207468616e206d696e207072696365000000000081525060200191505060405180910390fd5b613bed85614bb3565b613c0c828260400151876040518060200160405280600081525061481b565b6000816060015190506040518060800160405280600015158152602001878152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250610207600088815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050508061020860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816040015173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16877f276b044762b1ab0de2685db41c997fcff127bb71779415d43202e41aef8dd3fd85606001516040518082815260200191505060405180910390a450505050600180819055505050565b60026001541415613e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600181905550806101f48110613ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f636861726163746572206e756d6265722069732077726f6e670000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16613ec782612ccc565b73ffffffffffffffffffffffffffffffffffffffff1614613f50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b613f5982614bb3565b506001808190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6102076020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156140835780601f1061405857610100808354040283529160200191614083565b820191906000526020600020905b81548152906001019060200180831161406657829003601f168201915b5050505050905090565b6102056020528060005260406000206000915054906101000a900460ff1681565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6141fd85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050614dc9565b5050505050565b606081600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156142dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b6142e68361540e565b60405160200180807f68747470733a2f2f706f6c7970756e6b732e6170702f70756e6b732f00000000815250601c0182805190602001908083835b602083106143445780518252602082019150602081019050602083039250614321565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61441c615406565b73ffffffffffffffffffffffffffffffffffffffff1661443a613f64565b73ffffffffffffffffffffffffffffffffffffffff16146144c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615abb6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102086020528060005260406000206000915090505481565b6102046020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156146dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616e6e6f74206d696e7420746f203078302e0000000000000000000000000081525060200191505060405180910390fd5b6101f4600b5410614755576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f546f6b656e206c696d697420726561636865642e00000000000000000000000081525060200191505060405180910390fd5b6001600b5401600b8190555061476d82600b54615555565b8173ffffffffffffffffffffffffffffffffffffffff16600b547ff3cea5493d790af0133817606f7350a91d7f154ea52eaa79d179d4d231e5010260405160405180910390a3600b548273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600b549050919050565b81600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156148f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b60006003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146149cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415614a0557600080fd5b614a0f8585614d14565b614a1885615753565b15614bab5760008573ffffffffffffffffffffffffffffffffffffffff1663150b7a02338988886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614acc578082015181840152602081019050614ab1565b50505050905090810190601f168015614af95780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015614b1b57600080fd5b505af1158015614b2f573d6000803e3d6000fd5b505050506040513d6020811015614b4557600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614ba957600080fd5b505b505050505050565b6040518060a001604052806000151581526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610206600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050807f0dc5e8312473fca3ec270f0fb45bb8d0c5e9037fb56e6e9dd794834368611c7a60405160405180910390a250565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614d5582615766565b614d5f8183615807565b614d698383615555565b818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8160006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614e9a57503373ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80614f2b5750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b614f9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f43616e6e6f74207472616e736665722e0000000000000000000000000000000081525060200191505060405180910390fd5b83600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415615074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420746f6b656e2e00000000000000000000000000000000000081525060200191505060405180910390fd5b60006003600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461514d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561518757600080fd5b6151918787614d14565b61519a87615753565b1561532d5760008773ffffffffffffffffffffffffffffffffffffffff1663150b7a02338b8a8a6040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561524e578082015181840152602081019050615233565b50505050905090810190601f16801561527b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561529d57600080fd5b505af11580156152b1573d6000803e3d6000fd5b505050506040513d60208110156152c757600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461532b57600080fd5b505b5050505050505050565b6000828211156153af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600033905090565b60606000821415615456576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050615550565b600082905060005b60008214615480578080600101915050600a828161547857fe5b04915061545e565b60008167ffffffffffffffff8111801561549957600080fd5b506040519080825280601f01601f1916602001820160405280156154cc5781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461554857600a84816154ed57fe5b0660300160f81b8282806001900393508151811061550757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161554057fe5b0493506154db565b819450505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461562a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43616e6e6f74206164642c20616c7265616479206f776e65642e00000000000081525060200191505060405180910390fd5b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150556157386001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061533790919063ffffffff16565b60076000838152602001908152602001600020819055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615804576004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50565b8173ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146158db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e636f7272656374206f776e65722e0000000000000000000000000000000081525060200191505060405180910390fd5b6003600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560006007600083815260200190815260200160002054905060006159816001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061533790919063ffffffff16565b9050818114615a56576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106159d657fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110615a2e57fe5b9060005260206000200181905550826007600083815260200190815260200160002081905550505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480615a9e57fe5b600190038181906000526020600020016000905590555050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737353656c6c6572206e6f206c6f6e676572206f776e6572206f6620636861726163746572636861726163746572206e6f7420737570706f73656420746f20626520736f6c6420746f20746869732075736572796f752063616e206e6f7420626964206c6f776572207468616e206c61737420626964796f752063616e206e6f7420626964206f6e20796f757220636861726163746572a26469706673582212206ebabbd01ef7bb46334fffbe4400e7c2995ebb4d0c4bc58dd4dfe442b723a98464736f6c6343000706003300000000000000000000000021c5402c3b7d40c89cc472c9df5dd7e51bbab1b1000000000000000000000000000000000000000000000000000000000000dead