[ { "inputs": [ { "internalType": "string", "name": "_initUnrevealedURI", "type": "string" }, { "internalType": "address", "name": "_initCommunityAddress", "type": "address" }, { "internalType": "address", "name": "_initDonationAddress", "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": "address", "name": "wallet", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "uint8", "name": "rewardType", "type": "uint8" } ], "name": "ClaimedRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "seller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "NewListing", "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": "uint256", "name": "tokenID", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "TokenSold", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "WithdrawnListing", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint8[]", "name": "amounts", "type": "uint8[]" } ], "name": "airDrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "allowListings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimMintRewards", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "claimSalesRewards", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "collectSalesRewardsFromThirdParty", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "createListing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "flipAllowListingsState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipCollectSalesRewardsFromThirdParty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipPausedState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "fulfillListing", "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": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "getListingByTokenID", "outputs": [ { "components": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "address", "name": "seller", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "internalType": "struct VendingMachinesNFT.Listing", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getListings", "outputs": [ { "components": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "address", "name": "seller", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "internalType": "struct VendingMachinesNFT.Listing[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "getMintRewardsOfAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "getNumberOfMintsOfAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "getSalesRewardsOfAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "isTokenListed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintAmountPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reservedSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_initBaseURI", "type": "string" } ], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royalties", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": [], "name": "salesRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "setMaxMintAmountPerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "setMintRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "setReservedSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "setRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "setSalesRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newSuffix", "type": "string" } ], "name": "setURIsuffix", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newUnrevealedURI", "type": "string" } ], "name": "setUnrevealedURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newCommunityAddress", "type": "address" }, { "internalType": "address", "name": "newDonationAddress", "type": "address" } ], "name": "setWithdrawAddresses", "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": "totalMintRewardsVault", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSalesRewardsVault", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "_address", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "withdrawListing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040516200441e3803806200441e83398101604081905262000034916200035e565b604080518082018252601481527f56656e64696e67204d616368696e6573204e46540000000000000000000000006020808301918252835180850190945260038452622b26a760e91b908401528151919291620000949160009162000285565b508051620000aa90600190602084019062000285565b5050600160065550620000bd3362000170565b60078054630101000160a01b63ffffffff60a01b19909116179055671bc16d674ec80000600b5561115c600c556101bc600d55600a600e55609660108190556103e8601155601255601780546001600160a01b038085166001600160a01b0319928316179092556018805492841692909116919091179055604080518082019091526005815264173539b7b760d91b60208201526200015c90620001c2565b62000167836200022a565b5050506200049e565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6007546001600160a01b03163314620002115760405162461bcd60e51b81526020600482018190526024820152600080516020620043fe83398151915260448201526064015b60405180910390fd5b80516200022690600a90602084019062000285565b5050565b6007546001600160a01b03163314620002755760405162461bcd60e51b81526020600482018190526024820152600080516020620043fe833981519152604482015260640162000208565b8051620002269060089060208401905b828054620002939062000461565b90600052602060002090601f016020900481019282620002b7576000855562000302565b82601f10620002d257805160ff191683800117855562000302565b8280016001018555821562000302579182015b8281111562000302578251825591602001919060010190620002e5565b506200031092915062000314565b5090565b5b8082111562000310576000815560010162000315565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035957600080fd5b919050565b6000806000606084860312156200037457600080fd5b83516001600160401b03808211156200038c57600080fd5b818601915086601f830112620003a157600080fd5b815181811115620003b657620003b66200032b565b604051601f8201601f19908116603f01168101908382118183101715620003e157620003e16200032b565b81604052828152602093508984848701011115620003fe57600080fd5b600091505b8282101562000422578482018401518183018501529083019062000403565b82821115620004345760008484830101525b96506200044691505086820162000341565b93505050620004586040850162000341565b90509250925092565b600181811c908216806200047657607f821691505b602082108114156200049857634e487b7160e01b600052602260045260246000fd5b50919050565b613f5080620004ae6000396000f3fe6080604052600436106103a65760003560e01c80636f8b44b0116101e7578063aff721411161010d578063dd76cba3116100a0578063f1b2d6a31161006f578063f1b2d6a314610b94578063f2fde38b14610bb6578063f9daade414610bd6578063fe2c7fee14610bf657600080fd5b8063dd76cba314610b32578063e02f399314610b48578063e985e9c514610b5e578063f053dc5c14610b7e57600080fd5b8063d5abeb01116100dc578063d5abeb0114610ade578063d6fb650c14610af4578063db2e21bc14610b14578063dceb262914610b1c57600080fd5b8063aff7214114610a48578063b36a206414610a68578063b88d4fde14610a9e578063c87b56dd14610abe57600080fd5b806395d89b4111610185578063a17bd78311610154578063a17bd783146109d3578063a22cb465146109e8578063a79123a914610a08578063aec6e27314610a2857600080fd5b806395d89b41146109535780639b83cddc14610968578063a0712d681461099f578063a0ba1bbf146109b257600080fd5b806384917f4a116101c157806384917f4a146108eb57806389ac1fa8146109185780638da5cb5b1461092057806393eff8511461093e57600080fd5b80636f8b44b01461088b57806370a08231146108ab5780637ef6f656146108cb57600080fd5b80633ccfd60b116102cc5780634f8a1db51161026a57806356fcf95b1161023957806356fcf95b146108145780635c41d75e146108345780635c975abb1461084a5780636352211e1461086b57600080fd5b80634f8a1db51461079257806351830227146107b357806355f804b3146107d45780635697f53e146107f457600080fd5b8063438b6300116102a6578063438b63001461070f57806344a0d68a1461073c57806344d19d2b1461075c5780634c2612471461077257600080fd5b80633ccfd60b146106d25780633e57bb14146106e757806342842e0e146106ef57600080fd5b806318160ddd116103445780632a55205a116103135780632a55205a1461062a5780632ab648ee146106695780632b80183f1461069f5780633912fc85146106bf57600080fd5b806318160ddd146105bf5780631e13f86b146105d4578063234cb051146105f457806323b872dd1461060a57600080fd5b80630798e5c9116103805780630798e5c91461053a578063081812fc14610551578063095ea7b31461058957806313faede6146105a957600080fd5b806301ffc9a71461049f578063048d228b146104d457806306fdde031461051857600080fd5b3661049a5760006103b6601a5490565b600754909150600160b81b900460ff16151560011480156103d75750600081115b15610497576000816012546010546012546103f291906135d2565b6103fc9034613600565b6104069190613614565b6104109190613600565b9050600061041e8383613614565b905060015b83811161047c57600061043582610c16565b6001600160a01b0381166000908152601660205260408120805492935086929091906104629084906135d2565b90915550829150610474905081613633565b915050610423565b50806014600082825461048f91906135d2565b909155505050505b50005b600080fd5b3480156104ab57600080fd5b506104bf6104ba366004613664565b610c98565b60405190151581526020015b60405180910390f35b3480156104e057600080fd5b5061050a6104ef36600461369d565b6001600160a01b031660009081526016602052604090205490565b6040519081526020016104cb565b34801561052457600080fd5b5061052d610cbd565b6040516104cb9190613710565b34801561054657600080fd5b5061054f610d4f565b005b34801561055d57600080fd5b5061057161056c366004613723565b610d9a565b6040516001600160a01b0390911681526020016104cb565b34801561059557600080fd5b5061054f6105a436600461373c565b610e2f565b3480156105b557600080fd5b5061050a600b5481565b3480156105cb57600080fd5b5061050a610f45565b3480156105e057600080fd5b5061054f6105ef366004613723565b610f55565b34801561060057600080fd5b5061050a60115481565b34801561061657600080fd5b5061054f610625366004613766565b610f84565b34801561063657600080fd5b5061064a6106453660046137a2565b610fb5565b604080516001600160a01b0390931683526020830191909152016104cb565b34801561067557600080fd5b5061050a61068436600461369d565b6001600160a01b03166000908152600f602052604090205490565b3480156106ab57600080fd5b5061054f6106ba366004613723565b610fec565b61054f6106cd366004613723565b61101b565b3480156106de57600080fd5b5061054f611495565b61054f611744565b3480156106fb57600080fd5b5061054f61070a366004613766565b6118aa565b34801561071b57600080fd5b5061072f61072a36600461369d565b6118c5565b6040516104cb91906137c4565b34801561074857600080fd5b5061054f610757366004613723565b6119a6565b34801561076857600080fd5b5061050a600d5481565b34801561077e57600080fd5b5061054f61078d366004613894565b6119d5565b34801561079e57600080fd5b506007546104bf90600160b81b900460ff1681565b3480156107bf57600080fd5b506007546104bf90600160a81b900460ff1681565b3480156107e057600080fd5b5061054f6107ef366004613894565b611a1e565b34801561080057600080fd5b5061054f61080f366004613723565b611a5f565b34801561082057600080fd5b5061054f61082f366004613723565b611a8e565b34801561084057600080fd5b5061050a600e5481565b34801561085657600080fd5b506007546104bf90600160a01b900460ff1681565b34801561087757600080fd5b50610571610886366004613723565b610c16565b34801561089757600080fd5b5061054f6108a6366004613723565b611abd565b3480156108b757600080fd5b5061050a6108c636600461369d565b611aec565b3480156108d757600080fd5b5061054f6108e63660046138dd565b611b73565b3480156108f757600080fd5b5061090b610906366004613723565b611bcb565b6040516104cb9190613910565b61054f611c91565b34801561092c57600080fd5b506007546001600160a01b0316610571565b34801561094a57600080fd5b5061054f611db0565b34801561095f57600080fd5b5061052d611dfb565b34801561097457600080fd5b50610988610983366004613723565b611e0a565b6040805192151583526020830191909152016104cb565b61054f6109ad366004613723565b611e72565b3480156109be57600080fd5b506007546104bf90600160b01b900460ff1681565b3480156109df57600080fd5b5061054f612154565b3480156109f457600080fd5b5061054f610a03366004613944565b61219f565b348015610a1457600080fd5b5061054f610a233660046137a2565b6121aa565b348015610a3457600080fd5b5061054f610a43366004613723565b612497565b348015610a5457600080fd5b5061054f610a63366004613894565b61264e565b348015610a7457600080fd5b5061050a610a8336600461369d565b6001600160a01b031660009081526015602052604090205490565b348015610aaa57600080fd5b5061054f610ab9366004613980565b61268b565b348015610aca57600080fd5b5061052d610ad9366004613723565b6126c3565b348015610aea57600080fd5b5061050a600c5481565b348015610b0057600080fd5b5061054f610b0f366004613723565b612844565b61054f612873565b348015610b2857600080fd5b5061050a60135481565b348015610b3e57600080fd5b5061050a60145481565b348015610b5457600080fd5b5061050a60125481565b348015610b6a57600080fd5b506104bf610b793660046138dd565b612921565b348015610b8a57600080fd5b5061050a60105481565b348015610ba057600080fd5b50610ba961294f565b6040516104cb91906139fc565b348015610bc257600080fd5b5061054f610bd136600461369d565b6129d9565b348015610be257600080fd5b5061054f610bf1366004613aaa565b612a71565b348015610c0257600080fd5b5061054f610c11366004613894565b612bf9565b6000818152600260205260408120546001600160a01b031680610c925760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084015b60405180910390fd5b92915050565b60006001600160e01b0319821663152a902d60e11b1480610c925750610c9282612c36565b606060008054610ccc90613b16565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf890613b16565b8015610d455780601f10610d1a57610100808354040283529160200191610d45565b820191906000526020600020905b815481529060010190602001808311610d2857829003601f168201915b5050505050905090565b6007546001600160a01b03163314610d795760405162461bcd60e51b8152600401610c8990613b51565b6007805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000818152600260205260408120546001600160a01b0316610e135760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610c89565b506000908152600460205260409020546001600160a01b031690565b6000610e3a82610c16565b9050806001600160a01b0316836001600160a01b03161415610ea85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c89565b336001600160a01b0382161480610ec45750610ec48133612921565b610f365760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610c89565b610f408383612c86565b505050565b6000610f50601a5490565b905090565b6007546001600160a01b03163314610f7f5760405162461bcd60e51b8152600401610c8990613b51565b600d55565b610f8e3382612cf4565b610faa5760405162461bcd60e51b8152600401610c8990613b86565b610f40838383612dcb565b60008030612710601254601054610fcc91906135d2565b610fd69086613614565b610fe09190613600565b915091505b9250929050565b6007546001600160a01b031633146110165760405162461bcd60e51b8152600401610c8990613b51565b601055565b6002600654141561103e5760405162461bcd60e51b8152600401610c8990613bd7565b600260065560008061104f83611e0a565b91509150816110705760405162461bcd60e51b8152600401610c8990613c0e565b60006019828154811061108557611085613c55565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b031690820152600390910154606082015290506110d83390565b6001600160a01b031681604001516001600160a01b0316141561116f5760405162461bcd60e51b815260206004820152604360248201527f455243373231204d61726b6574706c6163653a20427579657220616e6420736560448201527f6c6c6572206d75737420626520626520646966666572656e742061646472657360648201526273657360e81b608482015260a401610c89565b80602001513410156111d25760405162461bcd60e51b815260206004820152602660248201527f455243373231204d61726b6574706c6163653a20496e73756666696369656e746044820152652066756e647360d01b6064820152608401610c89565b60006111dd601a5490565b90506000612710601054346111f29190613614565b6111fc9190613600565b9050600082612710601254346112129190613614565b61121c9190613600565b6112269190613600565b905060006112348483613614565b9050600085604001516001600160a01b0316828561125291906135d2565b61125c9034613c6b565b604051600081818185875af1925050503d8060008114611298576040519150601f19603f3d011682016040523d82523d6000602084013e61129d565b606091505b50509050806112be5760405162461bcd60e51b8152600401610c8990613c82565b601980546112ce90600190613c6b565b815481106112de576112de613c55565b9060005260206000209060040201601988815481106112ff576112ff613c55565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b03909216919091179055600391820154910155601980548061135e5761135e613cba565b60008281526020812060046000199093019283020181815560018181018390556002820180546001600160a01b031916905560039091019190915591555b8581116113f55760006113ae82610c16565b6001600160a01b0381166000908152601660205260408120805492935087929091906113db9084906135d2565b909155508291506113ed905081613633565b91505061139c565b50816014600082825461140891906135d2565b909155503390506001600160a01b031686604001516001600160a01b03168a7f3d5eb834b5d6cadc063c171c3f25f60bca8ea892ba9db25342278927d0af95563460405161145891815260200190565b60405180910390a4611485866040015161146f3390565b8b60405180602001604052806000815250612f72565b5050600160065550505050505050565b6007546001600160a01b031633146114bf5760405162461bcd60e51b8152600401610c8990613b51565b60006014546013546114d191906135d2565b9050600060646114e18347613c6b565b6114ec90600a613614565b6114f69190613600565b6017549091506000906001600160a01b0316611513836003613614565b604051600081818185875af1925050503d806000811461154f576040519150601f19603f3d011682016040523d82523d6000602084013e611554565b606091505b50509050806115b95760405162461bcd60e51b815260206004820152603f6024820152600080516020613efb83398151915260448201527f736665722066756e647320746f20636f6d6d756e6974792077616c6c657421006064820152608401610c89565b6018546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611606576040519150601f19603f3d011682016040523d82523d6000602084013e61160b565b606091505b50509050806116705760405162461bcd60e51b815260206004820152603e6024820152600080516020613efb83398151915260448201527f736665722066756e647320746f20646f6e6174696f6e2077616c6c65742100006064820152608401610c89565b60006116846007546001600160a01b031690565b6001600160a01b03166116978647613c6b565b604051600081818185875af1925050503d80600081146116d3576040519150601f19603f3d011682016040523d82523d6000602084013e6116d8565b606091505b505090508061173d5760405162461bcd60e51b815260206004820152603f6024820152600080516020613efb83398151915260448201527f736665722066756e647320746f20746865206f776e65722077616c6c657421006064820152608401610c89565b5050505050565b600260065414156117675760405162461bcd60e51b8152600401610c8990613bd7565b600260065533600090815260166020526040902054806117c95760405162461bcd60e51b815260206004820152601a60248201527f596f7520646f6e2774206861766520616e7920726577617264730000000000006044820152606401610c89565b604051600090339083908381818185875af1925050503d806000811461180b576040519150601f19603f3d011682016040523d82523d6000602084013e611810565b606091505b50509050806118315760405162461bcd60e51b8152600401610c8990613c82565b33600090815260166020526040812081905560148054849290611855908490613c6b565b9091555060029050335b6001600160a01b03167fd5803ea2a72e3d43ba8dfbcbde26efe91ba6901d868467b86ef6163baa185ba98460405161189991815260200190565b60405180910390a350506001600655565b610f408383836040518060200160405280600081525061268b565b606060006118d283611aec565b905060008167ffffffffffffffff8111156118ef576118ef613808565b604051908082528060200260200182016040528015611918578160200160208202803683370190505b509050600160005b83811080156119315750600c548211155b1561199c57600061194183610c16565b9050866001600160a01b0316816001600160a01b03161415611989578284838151811061197057611970613c55565b60209081029190910101528161198581613633565b9250505b8261199381613633565b93505050611920565b5090949350505050565b6007546001600160a01b031633146119d05760405162461bcd60e51b8152600401610c8990613b51565b600b55565b6007546001600160a01b031633146119ff5760405162461bcd60e51b8152600401610c8990613b51565b6007805460ff60a81b1916600160a81b179055611a1b81611a1e565b50565b6007546001600160a01b03163314611a485760405162461bcd60e51b8152600401610c8990613b51565b8051611a5b906009906020840190613523565b5050565b6007546001600160a01b03163314611a895760405162461bcd60e51b8152600401610c8990613b51565b600e55565b6007546001600160a01b03163314611ab85760405162461bcd60e51b8152600401610c8990613b51565b601255565b6007546001600160a01b03163314611ae75760405162461bcd60e51b8152600401610c8990613b51565b600c55565b60006001600160a01b038216611b575760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610c89565b506001600160a01b031660009081526003602052604090205490565b6007546001600160a01b03163314611b9d5760405162461bcd60e51b8152600401610c8990613b51565b601780546001600160a01b039384166001600160a01b03199182161790915560188054929093169116179055565b611bff6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b600080611c0b84611e0a565b9150915081611c2c5760405162461bcd60e51b8152600401610c8990613c0e565b60198181548110611c3f57611c3f613c55565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b0316908201526003909101546060820152949350505050565b60026006541415611cb45760405162461bcd60e51b8152600401610c8990613bd7565b60026006553360009081526015602052604090205480611d165760405162461bcd60e51b815260206004820152601a60248201527f596f7520646f6e2774206861766520616e7920726577617264730000000000006044820152606401610c89565b604051600090339083908381818185875af1925050503d8060008114611d58576040519150601f19603f3d011682016040523d82523d6000602084013e611d5d565b606091505b5050905080611d7e5760405162461bcd60e51b8152600401610c8990613c82565b33600090815260156020526040812081905560138054849290611da2908490613c6b565b90915550600190503361185f565b6007546001600160a01b03163314611dda5760405162461bcd60e51b8152600401610c8990613b51565b6007805460ff60a01b198116600160a01b9182900460ff1615909102179055565b606060018054610ccc90613b16565b60008060008060005b601954811015611e67578560198281548110611e3157611e31613c55565b90600052602060002090600402016000015414611e4d57611e55565b600192508091505b80611e5f81613633565b915050611e13565b509094909350915050565b60026006541415611e955760405162461bcd60e51b8152600401610c8990613bd7565b60026006558015801590611ebe5750600e5481611eb133610684565b611ebb91906135d2565b11155b611f005760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b5a5b9d08185b5bdd5b9d606a1b6044820152606401610c89565b600081611f0c601a5490565b611f1691906135d2565b9050600c54811115611f665760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610c89565b600d54600c54611f769190613c6b565b811115611fc55760405162461bcd60e51b815260206004820152601d60248201527f52656d61696e696e6720746f6b656e73206172652072657365727665640000006044820152606401610c89565b600754600160a01b900460ff16156120135760405162461bcd60e51b8152602060048201526011602482015270135a5b9d1a5b99c81a5cc81c185d5cd959607a1b6044820152606401610c89565b81600b546120219190613614565b3410156120655760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610c89565b61206f3383612fa5565b336000908152600f60205260408120805484929061208e9084906135d2565b92505081905550600081612710601154346120a99190613614565b6120b39190613600565b6120bd9190613600565b905060006120cb8383613614565b905060015b838161ffff16116121315760006120ea8261ffff16610c16565b6001600160a01b0381166000908152601560205260408120805492935086929091906121179084906135d2565b90915550829150612129905081613cd0565b9150506120d0565b50806013600082825461214491906135d2565b9091555050600160065550505050565b6007546001600160a01b0316331461217e5760405162461bcd60e51b8152600401610c8990613b51565b6007805460ff60b01b198116600160b01b9182900460ff1615909102179055565b611a5b338383612fe2565b600260065414156121cd5760405162461bcd60e51b8152600401610c8990613bd7565b6002600655600754600160b01b900460ff166122475760405162461bcd60e51b815260206004820152603360248201527f455243373231204d61726b6574706c6163653a204c697374696e6773206172656044820152720818dd5c9c995b9d1b1e48191a5cd8589b1959606a1b6064820152608401610c89565b600081116122a95760405162461bcd60e51b815260206004820152602960248201527f455243373231204d61726b6574706c6163653a20496e76616c6964206c697374604482015268696e6720707269636560b81b6064820152608401610c89565b336122b383610c16565b6001600160a01b0316146122d95760405162461bcd60e51b8152600401610c8990613cf2565b60006122e483611e0a565b50905080156123495760405162461bcd60e51b815260206004820152602b60248201527f455243373231204d61726b6574706c6163653a20546f6b656e20697320616c7260448201526a1958591e481b1a5cdd195960aa1b6064820152608401610c89565b600060405180608001604052808581526020018481526020016123693390565b6001600160a01b039081168252426020928301526019805460018101825560009190915283517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695600490920291820155918301517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969683015560408301517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9697830180546001600160a01b0319169190921617905560608201517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9698909101559050336001600160a01b0316847fda5118e11956b6ccec7a349074d6efada2b70b987d2eabba029de60d8f67b1aa8560405161248491815260200190565b60405180910390a3505060016006555050565b600260065414156124ba5760405162461bcd60e51b8152600401610c8990613bd7565b60026006556000806124cb83611e0a565b91509150816124ec5760405162461bcd60e51b8152600401610c8990613c0e565b336001600160a01b03166019828154811061250957612509613c55565b60009182526020909120600260049092020101546001600160a01b0316146125435760405162461bcd60e51b8152600401610c8990613cf2565b6019805461255390600190613c6b565b8154811061256357612563613c55565b90600052602060002090600402016019828154811061258457612584613c55565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b0390921691909117905560039182015491015560198054806125e3576125e3613cba565b600082815260208120600460001990930192830201818155600181018290556002810180546001600160a01b0319169055600301819055915560405184917fd61f1a8b7be6805af2e554cc25e9395d458bbd556fa7c01c166ffbd9197347de91a25050600160065550565b6007546001600160a01b031633146126785760405162461bcd60e51b8152600401610c8990613b51565b8051611a5b90600a906020840190613523565b6126953383612cf4565b6126b15760405162461bcd60e51b8152600401610c8990613b86565b6126bd84848484612f72565b50505050565b6000818152600260205260409020546060906001600160a01b03166127425760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610c89565b600754600160a81b900460ff166127e5576008805461276090613b16565b80601f016020809104026020016040519081016040528092919081815260200182805461278c90613b16565b80156127d95780601f106127ae576101008083540402835291602001916127d9565b820191906000526020600020905b8154815290600101906020018083116127bc57829003601f168201915b50505050509050919050565b60006127ef6130b1565b9050600081511161280f576040518060200160405280600081525061283d565b80612819846130c0565b600a60405160200161282d93929190613d3d565b6040516020818303038152906040525b9392505050565b6007546001600160a01b0316331461286e5760405162461bcd60e51b8152600401610c8990613b51565b601155565b6007546001600160a01b0316331461289d5760405162461bcd60e51b8152600401610c8990613b51565b60006128b16007546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d80600081146128fb576040519150601f19603f3d011682016040523d82523d6000602084013e612900565b606091505b5050905080611a1b5760405162461bcd60e51b8152600401610c8990613c82565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156129d05760008481526020908190206040805160808101825260048602909201805483526001808201548486015260028201546001600160a01b0316928401929092526003015460608301529083529092019101612973565b50505050905090565b6007546001600160a01b03163314612a035760405162461bcd60e51b8152600401610c8990613b51565b6001600160a01b038116612a685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c89565b611a1b816131be565b6007546001600160a01b03163314612a9b5760405162461bcd60e51b8152600401610c8990613b51565b828114612aaa57612aaa613e01565b8215801590612ab857508015155b612ac457612ac4613e01565b6000805b82811015612b195783836000818110612ae357612ae3613c55565b9050602002016020810190612af89190613e17565b612b059060ff16836135d2565b915080612b1181613633565b915050612ac8565b50600c5481612b27601a5490565b612b3191906135d2565b1115612b7b5760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610c89565b60005b84811015612bf157612bdf868683818110612b9b57612b9b613c55565b9050602002016020810190612bb0919061369d565b858584818110612bc257612bc2613c55565b9050602002016020810190612bd79190613e17565b60ff16612fa5565b80612be981613633565b915050612b7e565b505050505050565b6007546001600160a01b03163314612c235760405162461bcd60e51b8152600401610c8990613b51565b8051611a5b906008906020840190613523565b60006001600160e01b031982166380ac58cd60e01b1480612c6757506001600160e01b03198216635b5e139f60e01b145b80610c9257506301ffc9a760e01b6001600160e01b0319831614610c92565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612cbb82610c16565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316612d6d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610c89565b6000612d7883610c16565b9050806001600160a01b0316846001600160a01b03161480612db35750836001600160a01b0316612da884610d9a565b6001600160a01b0316145b80612dc35750612dc38185612921565b949350505050565b826001600160a01b0316612dde82610c16565b6001600160a01b031614612e425760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610c89565b6001600160a01b038216612ea45760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c89565b612eaf838383613210565b612eba600082612c86565b6001600160a01b0383166000908152600360205260408120805460019290612ee3908490613c6b565b90915550506001600160a01b0382166000908152600360205260408120805460019290612f119084906135d2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612f7d848484612dcb565b612f898484848461328f565b6126bd5760405162461bcd60e51b8152600401610c8990613e3a565b60005b81811015610f4057612fbe601a80546001019055565b612fd083612fcb601a5490565b61338d565b80612fda81613633565b915050612fa8565b816001600160a01b0316836001600160a01b031614156130445760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c89565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606060098054610ccc90613b16565b6060816130e45750506040805180820190915260018152600360fc1b602082015290565b8160005b811561310e57806130f881613633565b91506131079050600a83613600565b91506130e8565b60008167ffffffffffffffff81111561312957613129613808565b6040519080825280601f01601f191660200182016040528015613153576020820181803683370190505b5090505b8415612dc357613168600183613c6b565b9150613175600a86613e8c565b6131809060306135d2565b60f81b81838151811061319557613195613c55565b60200101906001600160f81b031916908160001a9053506131b7600a86613600565b9450613157565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061321b82611e0a565b509050801561328a5760405162461bcd60e51b815260206004820152603560248201527f455243373231204d61726b6574706c6163653a20556e61626c6520746f20747260448201527430b739b332b91030903634b9ba32b2103a37b5b2b760591b6064820152608401610c89565b6126bd565b60006001600160a01b0384163b1561338257604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906132d3903390899088908890600401613ea0565b6020604051808303816000875af192505050801561330e575060408051601f3d908101601f1916820190925261330b91810190613edd565b60015b613368573d80801561333c576040519150601f19603f3d011682016040523d82523d6000602084013e613341565b606091505b5080516133605760405162461bcd60e51b8152600401610c8990613e3a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612dc3565b506001949350505050565b611a5b8282604051806020016040528060008152506133ac83836133d5565b6133b9600084848461328f565b610f405760405162461bcd60e51b8152600401610c8990613e3a565b6001600160a01b03821661342b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c89565b6000818152600260205260409020546001600160a01b0316156134905760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c89565b61349c60008383613210565b6001600160a01b03821660009081526003602052604081208054600192906134c59084906135d2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461352f90613b16565b90600052602060002090601f0160209004810192826135515760008555613597565b82601f1061356a57805160ff1916838001178555613597565b82800160010185558215613597579182015b8281111561359757825182559160200191906001019061357c565b506135a39291506135a7565b5090565b5b808211156135a357600081556001016135a8565b634e487b7160e01b600052601160045260246000fd5b600082198211156135e5576135e56135bc565b500190565b634e487b7160e01b600052601260045260246000fd5b60008261360f5761360f6135ea565b500490565b600081600019048311821515161561362e5761362e6135bc565b500290565b6000600019821415613647576136476135bc565b5060010190565b6001600160e01b031981168114611a1b57600080fd5b60006020828403121561367657600080fd5b813561283d8161364e565b80356001600160a01b038116811461369857600080fd5b919050565b6000602082840312156136af57600080fd5b61283d82613681565b60005b838110156136d35781810151838201526020016136bb565b838111156126bd5750506000910152565b600081518084526136fc8160208601602086016136b8565b601f01601f19169290920160200192915050565b60208152600061283d60208301846136e4565b60006020828403121561373557600080fd5b5035919050565b6000806040838503121561374f57600080fd5b61375883613681565b946020939093013593505050565b60008060006060848603121561377b57600080fd5b61378484613681565b925061379260208501613681565b9150604084013590509250925092565b600080604083850312156137b557600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156137fc578351835292840192918401916001016137e0565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561383957613839613808565b604051601f8501601f19908116603f0116810190828211818310171561386157613861613808565b8160405280935085815286868601111561387a57600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156138a657600080fd5b813567ffffffffffffffff8111156138bd57600080fd5b8201601f810184136138ce57600080fd5b612dc38482356020840161381e565b600080604083850312156138f057600080fd5b6138f983613681565b915061390760208401613681565b90509250929050565b81518152602080830151908201526040808301516001600160a01b0316908201526060808301519082015260808101610c92565b6000806040838503121561395757600080fd5b61396083613681565b91506020830135801515811461397557600080fd5b809150509250929050565b6000806000806080858703121561399657600080fd5b61399f85613681565b93506139ad60208601613681565b925060408501359150606085013567ffffffffffffffff8111156139d057600080fd5b8501601f810187136139e157600080fd5b6139f08782356020840161381e565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156137fc57613a5283855180518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b9284019260809290920191600101613a18565b60008083601f840112613a7757600080fd5b50813567ffffffffffffffff811115613a8f57600080fd5b6020830191508360208260051b8501011115610fe557600080fd5b60008060008060408587031215613ac057600080fd5b843567ffffffffffffffff80821115613ad857600080fd5b613ae488838901613a65565b90965094506020870135915080821115613afd57600080fd5b50613b0a87828801613a65565b95989497509550505050565b600181811c90821680613b2a57607f821691505b60208210811415613b4b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526027908201527f455243373231204d61726b6574706c6163653a20546f6b656e206973206e6f74604082015266081b1a5cdd195960ca1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600082821015613c7d57613c7d6135bc565b500390565b6020808252602a90820152600080516020613efb833981519152604082015269736665722066756e647360b01b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b600061ffff80831681811415613ce857613ce86135bc565b6001019392505050565b6020808252602b908201527f455243373231204d61726b6574706c6163653a2043616c6c6572206973206e6f60408201526a3a103a34329037bbb732b960a91b606082015260800190565b600084516020613d508285838a016136b8565b855191840191613d638184848a016136b8565b8554920191600090600181811c9080831680613d8057607f831692505b858310811415613d9e57634e487b7160e01b85526022600452602485fd5b808015613db25760018114613dc357613df0565b60ff19851688528388019550613df0565b60008b81526020902060005b85811015613de85781548a820152908401908801613dcf565b505083880195505b50939b9a5050505050505050505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215613e2957600080fd5b813560ff8116811461283d57600080fd5b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082613e9b57613e9b6135ea565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613ed3908301846136e4565b9695505050505050565b600060208284031215613eef57600080fd5b815161283d8161364e56fe41564158205472616e73616374696f6e3a204661696c656420746f207472616ea264697066735822122095f7100a0e7e61380a1413171fbeda41e944bf9f335ccc85bf44a2a19d6edcf964736f6c634300080b00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000000000000000000000000000600000000000000000000000004057f6d0c49358b88a318dcb230f7d3140fa78de0000000000000000000000001070aa92aa80d0bdf14692352726bc22cd8d91300000000000000000000000000000000000000000000000000000000000000000