[ { "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": false, "internalType": "string", "name": "newBaseURI", "type": "string" } ], "name": "BaseURISet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint24", "name": "newMaxSupply", "type": "uint24" } ], "name": "MaxSupplySet", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address payable", "name": "bidder", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "indexed": false, "internalType": "struct EightNapERC721V1.Bid", "name": "bid", "type": "tuple" } ], "name": "NewBidPlaced", "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": "PieceRevealed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "address", "name": "a", "type": "address" } ], "name": "allowListMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint24", "name": "count", "type": "uint24" }, { "internalType": "address", "name": "a", "type": "address" } ], "name": "artistMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "batchSafeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "batchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "a", "type": "address" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "getAllowListAndClaimStatus", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllowListPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getArtInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBiddingStartTimeStamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMaxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintPassId", "type": "uint256" } ], "name": "getMintPassMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMintPassStartTimeStamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPublicPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPublicStartTimeStamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getStatus", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSupplyLeftForAuction", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getallowListStartTimeStamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getmintPassHolderPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "baseURI", "type": "string" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "address", "name": "artInfo", "type": "address" }, { "internalType": "uint56", "name": "biddingStartTimeStamp", "type": "uint56" }, { "internalType": "uint32", "name": "maxSupply", "type": "uint32" }, { "internalType": "address payable", "name": "twoFiveSix", "type": "address" }, { "internalType": "uint96", "name": "mintPassHolderPrice", "type": "uint96" }, { "internalType": "address payable", "name": "royaltyAddress", "type": "address" }, { "internalType": "uint96", "name": "minBid", "type": "uint96" }, { "internalType": "address payable", "name": "artistAddress", "type": "address" }, { "internalType": "uint24", "name": "revealerDiscount", "type": "uint24" }, { "internalType": "uint24", "name": "royalty", "type": "uint24" }, { "internalType": "uint24", "name": "eightNapShare", "type": "uint24" }, { "internalType": "uint24", "name": "twoFiveSixShare", "type": "uint24" }, { "internalType": "address payable", "name": "eightNap", "type": "address" }, { "internalType": "uint56", "name": "mintPassStartTimeStamp", "type": "uint56" }, { "internalType": "uint32", "name": "auctionDuration", "type": "uint32" }, { "internalType": "uint56", "name": "allowListStartTimeStamp", "type": "uint56" }, { "internalType": "uint32", "name": "auctionExtension", "type": "uint32" }, { "internalType": "address", "name": "mintPassAddress", "type": "address" }, { "internalType": "uint56", "name": "publicStartTimeStamp", "type": "uint56" }, { "internalType": "uint32", "name": "auctionExtenderTimeFrame", "type": "uint32" }, { "internalType": "uint96", "name": "allowListPrice", "type": "uint96" }, { "internalType": "uint96", "name": "publicPrice", "type": "uint96" }, { "internalType": "uint32", "name": "supplyLeftForAuction", "type": "uint32" } ], "internalType": "struct EightNapERC721V1.Project", "name": "_p", "type": "tuple" } ], "name": "initProject", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "isOwnerOf", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "mintPassIds", "type": "uint256[]" } ], "name": "mintPassMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "placeBid", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "a", "type": "address" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealAndBid", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "revealNextPiece", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint24", "name": "_maxSupply", "type": "uint24" } ], "name": "setMaxSupply", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenIdToRevealer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "tokenId", "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": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080806040523461001657614a3c908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714610337578063025ea63d1461033257806306fdde031461032d578063081812fc14610328578063095ea7b3146103235780630eaffa031461031e57806318160ddd146103195780631cd500a5146103145780631f1a7d941461030f5780631ffa01c21461030a57806323b872dd1461030557806325161d11146103005780632a55205a146102fb5780632f745c59146102f657806334e33395146102f157806334ecc48f146102ec578063363e86fe146102e75780633ccfd60b146102e257806342842e0e146102dd57806342f74cd7146102d8578063438b6300146102d357806346fca9aa146102ce5780634c0f38c2146102c95780634d44660c146102c45780634e43663f146102bf5780634e69d560146102ba5780634e71d92d146102b55780634f6ccce7146102b057806355f804b3146102ab5780635a4fee30146102a65780636352211e146102a157806370a082311461029c578063715018a61461029757806374abc54c146102925780638da5cb5b1461028d57806395d89b41146102885780639bb22b40146102835780639df742d71461027e578063a22cb46514610279578063a7a5036514610274578063b88d4fde1461026f578063c1b8ce2e1461026a578063c87b56dd14610265578063ce6df2b914610260578063e985e9c51461025b578063ecfc7ecc14610256578063ed6f452014610251578063f2fde38b1461024c578063f3993d11146102475763fe0d8aac1461024257600080fd5b612235565b6121b5565b61211b565b6120f1565b6120dd565b612075565b611f96565b611e9a565b611e66565b611e10565b611def565b611d03565b611b37565b611b0d565b611a69565b611a40565b611937565b6118d6565b6118af565b611891565b611803565b611601565b61157e565b611433565b610f8f565b610f68565b610f16565b610ee1565b610eba565b610e51565b610e28565b610e00565b610c7e565b610c57565b610c30565b610b81565b610a58565b610a14565b61081c565b6107c3565b61077b565b610754565b61072a565b61070c565b610671565b610573565b610532565b610452565b6103db565b610353565b6001600160e01b031981160361034e57565b600080fd5b3461034e57602036600319011261034e5760206004356103728161033c565b63ffffffff60e01b1663780e9d6360e01b8114908115610398575b506040519015158152f35b6380ac58cd60e01b8114915081156103ca575b81156103b9575b503861038d565b6301ffc9a760e01b149050386103b2565b635b5e139f60e01b811491506103ab565b3461034e57600036600319011261034e576103f46133f3565b005b60005b8381106104095750506000910152565b81810151838201526020016103f9565b90602091610432815180928185528580860191016103f6565b601f01601f1916010190565b90602061044f928181520190610419565b90565b3461034e5760008060031936011261052f5760405181606554610474816123e8565b8084529060019081811690811561050757506001146104ae575b6104aa8461049e81880382610adc565b6040519182918261043e565b0390f35b60658352602094507f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75b8284106104f457505050816104aa9361049e928201019361048e565b80548585018701529285019281016104d8565b6104aa965061049e9450602092508593915060ff191682840152151560051b8201019361048e565b80fd5b3461034e57602036600319011261034e5760206105506004356143c4565b6040516001600160a01b039091168152f35b6001600160a01b0381160361034e57565b3461034e57604036600319011261034e5760043561059081610562565b60243561059c816142bc565b916001600160a01b038084169082168114610615576103f4936105c99133149081156105ce575b50614357565b6147c0565b6001600160a01b0316600090815260696020526040902061060f91506106089033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b386105c3565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b62ffffff81160361034e57565b3461034e57604036600319011261034e5760043561068e81610664565b6024359061069b82610562565b6106b060018060a01b03606a54163314612d91565b62ffffff606754911690818101808211610707576106da9063ffffffff60a45460d81c1611612e0d565b6106e660058310612e46565b60005b8281106106f257005b80610701600192840186613c23565b016106e9565b612ddc565b3461034e57600036600319011261034e576020606754604051908152f35b3461034e57600036600319011261034e57602066ffffffffffffff60a45460a01c16604051908152f35b3461034e57600036600319011261034e57602066ffffffffffffff60a95416604051908152f35b600036600319011261034e5761078f6133f3565b6103f4613731565b606090600319011261034e576004356107af81610562565b906024356107bc81610562565b9060443590565b3461034e576103f46107d436610797565b916107e76107e28433614583565b614447565b61465f565b9181601f8401121561034e578235916001600160401b03831161034e576020808501948460051b01011161034e57565b60208060031936011261034e5760049081356001600160401b03811161034e5761084990369084016107ec565b929061087a61087361086760a85466ffffffffffffff9060a01c1690565b66ffffffffffffff1690565b421161310b565b60a9549361089266ffffffffffffff86164210613157565b606754946109096108bd6108b76108ab60a55460a01c90565b6001600160601b031690565b8461319a565b6108ea6108ca858a612e00565b60a4546108e49060d81c63ffffffff165b63ffffffff1690565b11612e0d565b6108f58415156131ad565b61090160058510612e46565b341015612fe9565b61091432331461302e565b609f80543401905560581c6001600160a01b03169360005b82811061093557005b80826109456109649386886131ed565b35604051809481926331a9108f60e11b83528a83019190602083019252565b03818a5afa918215610a0f576109dd926109d8916000916109e2575b5061098b838b612e00565b906109b76109b26109ae6109a0878b8d6131ed565b356001901b609e5416151590565b1590565b61321e565b6109d36109c585898b6131ed565b356001901b609e5417609e55565b613c23565b6130cd565b61092c565b610a029150853d8711610a08575b6109fa8183610adc565b8101906131fd565b38610980565b503d6109f0565b613212565b3461034e57604036600319011261034e57604060018060a01b0360a65416612710610a4b62ffffff60a75460b81c1660243561319a565b0482519182526020820152f35b3461034e57604036600319011261034e576020610a83600435610a7a81610562565b60243590614004565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610abc57604052565b610a8b565b602081019081106001600160401b03821117610abc57604052565b90601f801991011681019081106001600160401b03821117610abc57604052565b60405190610b0a82610aa1565b565b6001600160401b038111610abc5760051b60200190565b81601f8201121561034e57803591610b3a83610b0c565b92610b486040519485610adc565b808452602092838086019260051b82010192831161034e578301905b828210610b72575050505090565b81358152908301908301610b64565b3461034e57604036600319011261034e57600435610b9e81610562565b6024356001600160401b03811161034e57610bc0610bfe913690600401610b23565b604051606084901b6001600160601b0319166020820190815290610bf181603481015b03601f198101835282610adc565b5190209060a35490613070565b6001600160a01b03919091166000908152609c6020908152604091829020548251931515845260ff1615159083015290f35b3461034e57602036600319011261034e57602060016004351b609e54161515604051908152f35b3461034e57600036600319011261034e5760206001600160601b0360ab5416604051908152f35b3461034e5760008060031936011261052f5760a854610cad906001600160a01b03165b6001600160a01b031690565b33148015610de3575b8015610dc0575b610cc690613a9b565b610cfd609f54610cd7811515613ad5565b82808080610d1e60a75495610d19610d11610d05610cfd62ffffff8b60d01c168561319a565b612710900490565b998a9960e81c8461319a565b978892613970565b613970565b95610d296000609f55565b60a854610d3e906001600160a01b0316610ca1565b828215610db7575bf115610a0f5760a5548391829182918291610d69906001600160a01b0316610ca1565b828215610dae575bf115610a0f5760a7548291829182918291610d94906001600160a01b0316610ca1565b828215610da5575bf115610a0f5780f35b506108fc610d9c565b506108fc610d71565b506108fc610d46565b5060a554610cc690610dda906001600160a01b0316610ca1565b33149050610cbd565b5060a754610df9906001600160a01b0316610ca1565b3314610cb6565b3461034e576103f4610e1136610797565b9060405192610e1f84610ac1565b600084526144ad565b3461034e57600036600319011261034e5760a4546040516001600160a01b039091168152602090f35b3461034e5760208060031936011261034e57610e77600435610e7281610562565b613b13565b906040519181839283018184528251809152816040850193019160005b828110610ea357505050500390f35b835185528695509381019392810192600101610e94565b3461034e57600036600319011261034e57602063ffffffff60ab5460601c16604051908152f35b3461034e57600036600319011261034e5763ffffffff6000198160a45460d81c16018181116107075760209160405191168152f35b3461034e57604036600319011261034e57600435610f3381610562565b6024356001600160401b03811161034e57602091610f58610f5e9236906004016107ec565b91613bba565b6040519015158152f35b3461034e57600036600319011261034e57602066ffffffffffffff60aa5416604051908152f35b3461034e5760008060031936011261052f57808190829183808160675493610fda610fd4610fc787600052609d602052604060002090565b546001600160a01b031690565b95612df2565b9660a454966110076108db610ff860ab5463ffffffff9060601c1690565b63ffffffff8b60d81c16612f97565b9061102161086760a85466ffffffffffffff9060a01c1690565b421180611416575b156113f157506001925b61104861086760a95466ffffffffffffff1690565b4211806113bf575b1561137c57506001985b66ffffffffffffff8061107560aa5466ffffffffffffff1690565b1693841594851580918192611371575b5080611368575b156113475750506001995b84611337575b5050821561132c575b50506112bd575b6110c56110bf6110bf6110cb93613d0b565b98613d0b565b95613d0b565b906110f26110ec6110e761086760af5466ffffffffffffff1690565b613d0b565b93613d0b565b936001600160a01b0390611107908216613f32565b95169050806112ae57506111196123cb565b945b604051607b60f81b602082015297889760218901701136b4b73a2830b9b9a9ba30ba3ab9911d60791b815260110161115291613c96565b61115b90613ebc565b711130b63637bba634b9ba29ba30ba3ab9911d60711b815260120161117f91613c96565b61118890613ebc565b6f1130bab1ba34b7b729ba30ba3ab9911d60811b81526010016111aa91613c96565b6111b390613ebc565b6e11383ab13634b1a9ba30ba3ab9911d60891b8152600f016111d491613c96565b6111dd90613ebc565b701130bab1ba34b7b722b7322a34b6b2911d60791b815260110161120091613c96565b61120990613ebc565b721131bab93932b73a2134b220b6b7bab73a111d60691b815260130161122e91613c96565b61123790613ebc565b701131bab93932b73a2134b23232b9111d1160791b815260110161125a91613c96565b6d1116113932bb32b0b632b9111d1160911b8152600e0161127a91613c96565b601160f91b8152600101607d60f81b815260010103601f19810182526112a09082610adc565b6040516104aa81928261043e565b6112b790613f32565b9461111b565b92909196506001966112da61086760af5466ffffffffffffff1690565b42101561131357505060ad54906110cb6110c56110bf6110bf611307610ca160ac5460018060a01b031690565b965b93505050506110ad565b91909296506110cb6110c56110bf6110bf60029a611309565b1015905038806110a6565b60a01c164210159250388061109d565b909a908061135e575b156110975760029a50611097565b5083831015611350565b5084841061108c565b905042101538611085565b9866ffffffffffffff8960a01c16421015806113a1575b1561105a576002995061105a565b506113b761086760aa5466ffffffffffffff1690565b421015611393565b5066ffffffffffffff8960a01c1642108061105057506113ea61086760aa5466ffffffffffffff1690565b4210611050565b9261140761086760a95466ffffffffffffff1690565b42106110335760029350611033565b5061142c61086760a95466ffffffffffffff1690565b4210611029565b3461034e5760008060031936011261052f5761147660ff60af5461146c66ffffffffffffff821661146581151561392e565b4211613a57565b60381c1615612f59565b60ac546001600160a01b031661149e610ca1610fc760ae54600052609d602052604060002090565b6001600160a01b0391821603611564578180808060ad546114fc6114f76114ef6114e86114de6114d660a75462ffffff9060a01c1690565b62ffffff1690565b612710860461319a565b8094613970565b609f54612e00565b609f55565b60ac54611511906001600160a01b0316610ca1565b82821561155b575bf115610a0f57611558905b60af805460ff60381b1916600160381b1790555b611542600060ae55565b60ac546001600160a01b031660ae549116613c23565b80f35b506108fc611519565b611558906115796114f760ad54609f54612e00565b611524565b3461034e57602036600319011261034e576004356067548110156115a757602090604051908152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b3461034e5760208060031936011261034e576001600160401b039060043582811161034e573660238201121561034e57806004013592831161034e576024913683858401011161034e5761166060018060a01b03606a54163314612d91565b6116748461166f60a2546123e8565b612476565b600090601f85116001146116e85750837ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f694846116d6936000926116db575b50508160011b906000198360031b1c19161760a2555b6040519384930183613e49565b0390a1005b85010135905084386116b3565b60a260005290601f1985167faaf4f58de99300cfadc4585755f376d5fa747d5bc561d5bd9d710de1f91bf42d9282905b82821061177c5750509185917ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f6966116d69410611760575b5050600181811b0160a2556116c9565b8401850135600019600384901b60f8161c191690553880611750565b8060018596898395978a0101358155019501930190611718565b6001600160401b038111610abc57601f01601f191660200190565b9291926117bd82611796565b916117cb6040519384610adc565b82948184528183011161034e578281602093846000960137010152565b9080601f8301121561034e5781602061044f933591016117b1565b3461034e57608036600319011261034e5760043561182081610562565b6024359061182d82610562565b6001600160401b0360443581811161034e5761184d903690600401610b23565b9060643590811161034e576118669036906004016117e8565b60005b82518110156103f457806109d88361188461188c94876130f2565b5188886144ad565b611869565b3461034e57602036600319011261034e5760206105506004356142bc565b3461034e57602036600319011261034e576020610a836004356118d181610562565b614207565b3461034e5760008060031936011261052f57606a5481906001600160a01b03811690611903338314612d91565b6001600160a01b031916606a557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461034e5760031960203682011261034e57600435906001600160401b03821161034e5761034090823603011261034e576119b06000549161199060ff8460081c161580948195611a32575b8115611a12575b50612336565b826119a3600160ff196000541617600055565b6119f9575b600401612c26565b6119b657005b6119c661ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989080602081016116d6565b611a0d61010061ff00196000541617600055565b6119a8565b303b15915081611a24575b503861198a565b6001915060ff161438611a1d565b600160ff8216109150611983565b3461034e57600036600319011261034e57606a546040516001600160a01b039091168152602090f35b3461034e5760008060031936011261052f5760405181606654611a8b816123e8565b808452906001908181169081156105075750600114611ab4576104aa8461049e81880382610adc565b60668352602094507f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b828410611afa57505050816104aa9361049e928201019361048e565b8054858501870152928501928101611ade565b3461034e57600036600319011261034e5760206001600160601b0360aa5460581c16604051908152f35b604036600319011261034e576004356001600160401b03811161034e57611b656103f4913690600401610b23565b602435611b7181610562565b611b90611b8961086760a95466ffffffffffffff1690565b4211612e89565b611c6160a45492611bf6611bf166ffffffffffffff92838760a01c1642108015611ce1575b611bbe90612ed5565b60a354604051606088901b6001600160601b0319166020820190815290611be88160348101610be3565b51902091613070565b612f19565b6001600160a01b0383166000908152609c60205260409020611c2190611c1b90610608565b15612f59565b611c4c6067549460aa54928316611ca2575b63ffffffff611c4187612df2565b9160d81c1611612e0d565b6001600160601b03349160581c161115612fe9565b611c6c32331461302e565b6001600160a01b0381166000908152609c60205260409020611c9590805460ff19166001179055565b6109d334609f5401609f55565b611cdc611cae87612df2565b611cd66108db611cc760ab5463ffffffff9060601c1690565b63ffffffff8660d81c16612f97565b11612fad565b611c33565b50611bbe611cfa61086760aa5466ffffffffffffff1690565b42109050611bb5565b3461034e57604036600319011261034e57600435611d2081610562565b602435801515810361034e576001600160a01b03821691338314611dae5781611d6b611d7c9233600052606960205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606490fd5b3461034e57600036600319011261034e57602060a55460a01c604051908152f35b3461034e57608036600319011261034e57600435611e2d81610562565b602435611e3981610562565b606435916001600160401b03831161034e57611e5c6103f49336906004016117e8565b91604435916144ad565b3461034e57602036600319011261034e57600435600052609d602052602060018060a01b0360406000205416604051908152f35b3461034e5760208060031936011261034e57600435606754811015611f5e57611ec290613d0b565b6040519060009260a254611ed5816123e8565b90600190818116908115611f3f5750600114611efe575b6104aa8561049e81610be38a89613c96565b9091945060a260005284600020906000915b838310611f2c5750505082019092019181610be361049e611eec565b8054868401880152918601918101611f10565b60ff191684870152505080151502830101925081610be361049e611eec565b60405162461bcd60e51b815260048101839052601060248201526f151bdad95b881b9bdd081b5a5b9d195960821b6044820152606490fd5b604036600319011261034e57600435611fae81610562565b602435611fe166ffffffffffffff611fce60aa5466ffffffffffffff1690565b16611fda811515613263565b42116132a0565b60ab54612035611ffa6001600160601b0383168461319a565b6108ea60675493611cd66108db6120118888612e00565b9263ffffffff61202a60a45463ffffffff9060d81c1690565b9160601c1690612f97565b61204032331461302e565b61204d34609f5401609f55565b60005b82811061205957005b806109d861206a6120709385612e00565b86613c23565b612050565b3461034e57604036600319011261034e57602060ff6120d160043561209981610562565b602435906120a682610562565b60018060a01b03166000526069845260406000209060018060a01b0316600052602052604060002090565b54166040519015158152f35b600036600319011261034e576103f4613731565b3461034e57600036600319011261034e57602066ffffffffffffff60a85460a01c16604051908152f35b3461034e57602036600319011261034e5760043561213881610562565b606a546001600160a01b03906121519082163314612d91565b811615612161576103f4906149bd565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461034e57606036600319011261034e576004356121d281610562565b602435906121df82610562565b6044356001600160401b03811161034e576121fe903690600401610b23565b60005b81518110156103f457806109d861221b61223093856130f2565b516122296107e28233614583565b868661465f565b612201565b3461034e57602036600319011261034e5760043561225281610664565b61226760018060a01b03606a54163314612d91565b60675462ffffff821690811115612307577f291346a9a1a36b98232bf8d9776ead3b0666a0a277b084d36170daab32d1c3c5916122bd6116d6926122b76108db60a45463ffffffff9060d81c1690565b11613e71565b6122f16122cc6114d683613ea8565b60a4805463ffffffff60d81b191660d89290921b63ffffffff60d81b16919091179055565b60405162ffffff90911681529081906020820190565b60405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606490fd5b1561233d57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b903590601e198136030182121561034e57018035906001600160401b03821161034e5760200191813603831361034e57565b604051906123d882610ac1565b60008252565b3561044f81610562565b90600182811c92168015612418575b602083101461240257565b634e487b7160e01b600052602260045260246000fd5b91607f16916123f7565b601f811161242e575050565b6000906065825260208220906020601f850160051c8301941061246c575b601f0160051c01915b82811061246157505050565b818155600101612455565b909250829061244c565b601f8111612482575050565b60009060a2825260208220906020601f850160051c830194106124c0575b601f0160051c01915b8281106124b557505050565b8181556001016124a9565b90925082906124a0565b601f81116124d6575050565b6000906066825260208220906020601f850160051c83019410612514575b601f0160051c01915b82811061250957505050565b8181556001016124fd565b90925082906124f4565b601f811161252a575050565b60009060a1825260208220906020601f850160051c83019410612568575b601f0160051c01915b82811061255d57505050565b818155600101612551565b9092508290612548565b91906001600160401b038111610abc576125968161259160a1546123e8565b61251e565b6000601f82116001146125d0578192936000926125c5575b50508160011b916000199060031b1c19161760a155565b0135905038806125ae565b60a1600052601f198216937faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f64987891805b868110612637575083600195961061261d575b505050811b0160a155565b0135600019600384901b60f8161c19169055388080612612565b909260206001819286860135815501940191016125ff565b91906001600160401b038111610abc5761266e8161166f60a2546123e8565b6000601f82116001146126a85781929360009261269d575b50508160011b916000199060031b1c19161760a255565b013590503880612686565b60a2600052601f198216937faaf4f58de99300cfadc4585755f376d5fa747d5bc561d5bd9d710de1f91bf42d91805b86811061270f57508360019596106126f5575b505050811b0160a255565b0135600019600384901b60f8161c191690553880806126ea565b909260206001819286860135815501940191016126d7565b3566ffffffffffffff8116810361034e5790565b3563ffffffff8116810361034e5790565b356001600160601b038116810361034e5790565b3561044f81610664565b612c01610320610b0a926127876127818280612399565b90612572565b61279d6127976020830183612399565b9061264f565b604081013560a3556127d66127b4606083016123de565b60a480546001600160a01b0319166001600160a01b0392909216919091179055565b6128106127e560808301612727565b60a4805466ffffffffffffff60a01b191660a09290921b66ffffffffffffff60a01b16919091179055565b61281f6122cc60a0830161273b565b61285061282e60c083016123de565b60a580546001600160a01b0319166001600160a01b0392909216919091179055565b61288461285f60e0830161274c565b60a580546001600160a01b031660a09290921b6001600160a01b031916919091179055565b6128b661289461010083016123de565b60a680546001600160a01b0319166001600160a01b0392909216919091179055565b6128eb6128c6610120830161274c565b60a680546001600160a01b031660a09290921b6001600160a01b031916919091179055565b61291d6128fb61014083016123de565b60a780546001600160a01b0319166001600160a01b0392909216919091179055565b61295061292d6101608301612760565b60a7805462ffffff60a01b191660a09290921b62ffffff60a01b16919091179055565b6129836129606101808301612760565b60a7805462ffffff60b81b191660b89290921b62ffffff60b81b16919091179055565b6129b66129936101a08301612760565b60a7805462ffffff60d01b191660d09290921b62ffffff60d01b16919091179055565b6129eb6129c66101c08301612760565b60a780546001600160e81b031660e89290921b6001600160e81b031916919091179055565b612a1d6129fb6101e083016123de565b60a880546001600160a01b0319166001600160a01b0392909216919091179055565b612a58612a2d6102008301612727565b60a8805466ffffffffffffff60a01b191660a09290921b66ffffffffffffff60a01b16919091179055565b612a8d612a68610220830161273b565b60a8805463ffffffff60d81b191660d89290921b63ffffffff60d81b16919091179055565b612ab9612a9d6102408301612727565b66ffffffffffffff1666ffffffffffffff1960a954161760a955565b612aee612ac9610260830161273b565b60a9805463ffffffff60381b191660389290921b63ffffffff60381b16919091179055565b612b29612afe61028083016123de565b60a98054600160581b600160f81b03191660589290921b600160581b600160f81b0316919091179055565b612b55612b396102a08301612727565b66ffffffffffffff1666ffffffffffffff1960aa54161760aa55565b612b8a612b656102c0830161273b565b60aa805463ffffffff60381b191660389290921b63ffffffff60381b16919091179055565b612bcf612b9a6102e0830161274c565b60aa80546bffffffffffffffffffffffff60581b191660589290921b6bffffffffffffffffffffffff60581b16919091179055565b612bfb612bdf610300830161274c565b6001600160601b03166001600160601b031960ab54161760ab55565b0161273b565b60ab805463ffffffff60601b191660609290921b63ffffffff60601b16919091179055565b90612c3b612c348380612399565b36916117b1565b91604051612c4881610aa1565b600781526020660e13905410549560ca1b81830152612c7760ff60005460081c16612c72816140c2565b6140c2565b8451906001600160401b038211610abc57612c9c82612c976065546123e8565b612422565b80601f8311600114612cff57509080612cd79392610b0a9697600092612cf4575b50508160011b916000199060031b1c191617606555614122565b612cef612cea610ca161014084016123de565b6149a4565b61276a565b015190503880612cbd565b6065600052601f198316969091907f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7926000905b898210612d79575050918391600193612cd79695610b0a999a10612d60575b505050811b01606555614122565b015160001960f88460031b161c19169055388080612d52565b80600185968294968601518155019501930190612d33565b15612d9857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b634e487b7160e01b600052601160045260246000fd5b906001820180921161070757565b9190820180921161070757565b15612e1457565b60405162461bcd60e51b815260206004820152600a602482015269135a5b9d1959081bdd5d60b21b6044820152606490fd5b15612e4d57565b60405162461bcd60e51b815260206004820152601460248201527309ad2dce840dac2f040ccdeeae440e0cae440e8f60631b6044820152606490fd5b15612e9057565b60405162461bcd60e51b815260206004820152601b60248201527f416c6c6f77206c697374206d696e74206e6f74207374617274656400000000006044820152606490fd5b15612edc57565b60405162461bcd60e51b8152602060048201526015602482015274105b1b1bddc81b1a5cdd081b5a5b9d08195b991959605a1b6044820152606490fd5b15612f2057565b60405162461bcd60e51b8152602060048201526011602482015270139bdd081bdb88185b1b1bddc81b1a5cdd607a1b6044820152606490fd5b15612f6057565b60405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b6044820152606490fd5b63ffffffff918216908216039190821161070757565b15612fb457565b60405162461bcd60e51b815260206004820152600d60248201526c4e6f7420617661696c61626c6560981b6044820152606490fd5b15612ff057565b60405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a5908199d5b991cc81c1c9bdd9a59195960521b6044820152606490fd5b1561303557565b60405162461bcd60e51b81526020600482015260136024820152724e6f20636f6e7472616374206d696e74696e6760681b6044820152606490fd5b929091906000915b84518310156130c55761308b83866130f2565b51906000828210156130b357506000526020526130ad60406000205b926130cd565b91613078565b6040916130ad938252602052206130a7565b915092501490565b60001981146107075760010190565b634e487b7160e01b600052603260045260246000fd5b80518210156131065760209160051b010190565b6130dc565b1561311257565b60405162461bcd60e51b815260206004820152601a60248201527f4d696e742070617373206d696e74206e6f7420737461727465640000000000006044820152606490fd5b1561315e57565b60405162461bcd60e51b8152602060048201526014602482015273135a5b9d081c185cdcc81b5a5b9d08195b99195960621b6044820152606490fd5b8181029291811591840414171561070757565b156131b457565b60405162461bcd60e51b81526020600482015260116024820152704d696e74206174206c65617374206f6e6560781b6044820152606490fd5b91908110156131065760051b0190565b9081602091031261034e575161044f81610562565b6040513d6000823e3d90fd5b1561322557565b60405162461bcd60e51b8152602060048201526016602482015275135a5b9d081c185cdcc8185b1c9958591e481d5cd95960521b6044820152606490fd5b1561326a57565b60405162461bcd60e51b815260206004820152600e60248201526d139bc81c1d589b1a58c81b5a5b9d60921b6044820152606490fd5b156132a757565b60405162461bcd60e51b8152602060048201526017602482015276141d589b1a58c81b5a5b9d081b9bdd081cdd185c9d1959604a1b6044820152606490fd5b156132ed57565b60405162461bcd60e51b8152602060048201526019602482015278109a59191a5b99c81c1a185cd9481b9bdd081cdd185c9d1959603a1b6044820152606490fd5b1561333557565b60405162461bcd60e51b81526020600482015260156024820152744e6f20636f6e74726163742072657665616c696e6760581b6044820152606490fd5b1561337957565b60405162461bcd60e51b815260206004820152601360248201527241756374696f6e20696e2070726f677265737360681b6044820152606490fd5b156133bb57565b60405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481c995d99585b195960821b6044820152606490fd5b60ff66ffffffffffffff8061341060aa5466ffffffffffffff1690565b16801561354f5742118061350c575b613428906132e6565b61343332331461332e565b61344360af549182164211613372565b60381c161580613501575b6134f4575b6134cd6067546134656108ca82612df2565b61347160ae54156133b4565b6134a83361348983600052609d602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b60af805467ffffffffffffffff191690556134c8600060ac55600060ad55565b60ae55565b7fabfa50b1969c21cf8a6ef98cc34a97b3c5ce9fe16e1268ffaa57c272faccbcab600080a1565b6134fc61397d565b613453565b5060ad54151561344e565b5061342861351b606754612df2565b6135466108db61353460a45463ffffffff9060d81c1690565b60ab5460601c63ffffffff1690612f97565b1115905061341f565b5061357361356c61086760a45466ffffffffffffff9060a01c1690565b42116132e6565b613428565b1561357f57565b60405162461bcd60e51b815260206004820152601260248201527114995d99585b081c1a5958d948199a5c9cdd60721b6044820152606490fd5b156135c057565b60405162461bcd60e51b815260206004820152601d60248201527f426964206973206c6f776572207468616e206d696e696d756d206269640000006044820152606490fd5b1561360c57565b60405162461bcd60e51b81526020600482015260136024820152724e6f20636f6e74726163742062696464696e6760681b6044820152606490fd5b1561364e57565b60405162461bcd60e51b815260206004820152602960248201527f426964206d757374206265203e2035252067726561746572207468616e2063756044820152681c9c995b9d08189a5960ba1b6064820152608490fd5b60405190604082018281106001600160401b03821117610abc5760405260ac546001600160a01b0316825260ad546020830152565b156136e157565b60405162461bcd60e51b815260206004820152600d60248201526c105d58dd1a5bdb88195b991959609a1b6044820152606490fd5b91909166ffffffffffffff8080941691160191821161070757565b61375c60018060a01b03613754610fc7606754600052609d602052604060002090565b161515613578565b61377661376e6108ab60a65460a01c90565b3410156135b9565b613781323314613605565b61379b61379460ad546014810490612e00565b3411613647565b6137a36136a5565b6137d36137ae610afd565b3380825234602090920182905260ac80546001600160a01b031916909117905560ad55565b66ffffffffffffff806137ee60af5466ffffffffffffff1690565b16156138f9576000808093819361380d60af5466ffffffffffffff1690565b90811661381b8142106136da565b61383a6138346108db60aa5463ffffffff9060381c1690565b42612e00565b116138b4575b508051602090613858906001600160a01b0316610ca1565b910151908282156138ab575bf115610a0f575b6040805160ac546001600160a01b0316815260ad5460208201527ffa040d55a6992a6143e6ea8c968e9530213b85d9a399be45045c7f5d5065bd579190a1565b506108fc613864565b6138d76138f3916138d16108db60a95463ffffffff9060381c1690565b90613716565b66ffffffffffffff1666ffffffffffffff1960af54161760af55565b38613840565b61392991506138d7906139186108db60a85463ffffffff9060d81c1690565b429091160166ffffffffffffff1690565b61386b565b1561393557565b60405162461bcd60e51b8152602060048201526013602482015272105d58dd1a5bdb881b9bdd081cdd185c9d1959606a1b6044820152606490fd5b9190820391821161070757565b6139a266ffffffffffffff61399a60af5466ffffffffffffff1690565b16151561392e565b60ac546001600160a01b03166139ca610ca1610fc760ae54600052609d602052604060002090565b6001600160a01b0391821603613a3d57600080808060ad54613a036114f76114ef6114e86114de6114d660a75462ffffff9060a01c1690565b60ac54613a18906001600160a01b0316610ca1565b828215613a34575bf115610a0f57610b0a90611542600060ae55565b506108fc613a20565b610b0a90613a526114f760ad54609f54612e00565b611538565b15613a5e57565b60405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd0818dbdb98db1d591959605a1b6044820152606490fd5b15613aa257565b60405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606490fd5b15613adc57565b60405162461bcd60e51b815260206004820152600f60248201526e42616c616e6365206973207a65726f60881b6044820152606490fd5b90613b1d82614207565b8015613b8457613b2c81610b0c565b90613b3a6040519283610adc565b808252601f19613b4982610b0c565b0136602084013760005b818110613b61575090925050565b80613b6f613b7f9287614004565b613b7982866130f2565b526130cd565b613b53565b509050604051613b9381610ac1565b60008152600036813790565b60675481101561310657606760005260206000200190600090565b90916000906067908154925b818110613bd857505050505050600190565b613be38183886131ed565b35848110156131065760008481526020902001546001600160a01b0390811690861603613c1857613c13906130cd565b613bc6565b505050505050600090565b606754600160401b811015610abc5781613c46826001613c659401606755613b9f565b90919082549060031b9160018060a01b03809116831b921b1916179055565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b90613ca9602092828151948592016103f6565b0190565b60405190606082018281106001600160401b03821117610abc57604052602a8252604082602036910137565b90613ce382611796565b613cf06040519182610adc565b8281528092613d01601f1991611796565b0190602036910137565b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b80821015613e3b575b506d04ee2d6d415b85acef810000000080831015613e2c575b50662386f26fc1000080831015613e1d575b506305f5e10080831015613e0e575b5061271080831015613dff575b506064821015613def575b600a80921015613de5575b600190816021613d9d828701613cd9565b95860101905b613daf575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215613de057919082613da3565b613da8565b9160010191613d8c565b9190606460029104910191613d81565b60049193920491019138613d76565b60089193920491019138613d69565b60109193920491019138613d5a565b60209193920491019138613d48565b604093508104915038613d2f565b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b15613e7857565b60405162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b6044820152606490fd5b90600162ffffff8093160191821161070757565b600b60fa1b815260010190565b908151811015613106570160200190565b8015610707576000190190565b15613eee57565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b613f3a613cad565b90815115613106576030602083015381516001908110156131065790607860218401536029915b808311613f74575061044f915015613ee7565b90600f811690601082101561310657613fb1916f181899199a1a9b1b9c1cb0b131b232b360811b901a613fa78587613ec9565b5360041c92613eda565b9190613f61565b60809060208152602b60208201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b60608201520190565b9061400e82614207565b8110156140a9576000908192606754935b8481106140435760405162461bcd60e51b81528061403f60048201613fb8565b0390fd5b614067610ca161405283613b9f565b905460039190911b1c6001600160a01b031690565b6001600160a01b03831614614085575b614080906130cd565b61401f565b9282810361409557505050905090565b6140a1614080916130cd565b939050614077565b60405162461bcd60e51b81528061403f60048201613fb8565b156140c957565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b9081516001600160401b038111610abc57614147816141426066546123e8565b6124ca565b602080601f83116001146141835750819293600092614178575b50508160011b916000199060031b1c191617606655565b015190503880614161565b6066600052601f198316949091907f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354926000905b8782106141ef5750508360019596106141d6575b505050811b01606655565b015160001960f88460031b161c191690553880806141cb565b806001859682949686015181550195019301906141b7565b6001600160a01b0316801561426457606754600091825b82811061422b5750505090565b61423a610ca161405283613b9f565b821461424f575b61424a906130cd565b61421e565b9261425c61424a916130cd565b939050614241565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b6067548110156131065760676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae01546001600160a01b031680156143005790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b1561435e57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608490fd5b6143cd81614538565b156143ed576000908152606860205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561444e57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b906144d19392916144c16107e28433614583565b6144cc83838361465f565b61489a565b156144d857565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b60675481109081614547575090565b90156131065760676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae01546001600160a01b0316151590565b61458c82614538565b156146055761459a826142bc565b6001600160a01b0382811682821681149490919085156145ed575b50505082156145c357505090565b6001600160a01b0316600090815260696020526040902060ff92506145e891906105f1565b541690565b6145fa91929395506143c4565b1614913880806145b5565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b614668836142bc565b6001600160a01b03918216919081168290036147155782169182156146c45761469d906146948561476c565b613c4685613b9f565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608490fd5b600081815260686020526040812080546001600160a01b03191690556001600160a01b03614799836142bc565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260686020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b03806147f9846142bc565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261034e575161044f8161033c565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261044f92910190610419565b3d15614895573d9061487b82611796565b916148896040519384610adc565b82523d6000602084013e565b606090565b92909190823b1561499b576148cd926020926000604051809681958294630a85bd0160e11b9a8b85523360048601614839565b03926001600160a01b03165af16000918161496b575b5061495d576148f061486a565b805190816149585760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b602001fd5b6001600160e01b0319161490565b61498d91925060203d8111614994575b6149858183610adc565b810190614824565b90386148e3565b503d61497b565b50505050600190565b610b0a906149bd60ff60005460081c16612c72816140c2565b606a80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fea264697066735822122052af9a53f59004ceb0db5d951e47b9f2824a27ee1d1462106d9622784269a19464736f6c63430008130033