[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint16", "name": "tokenId", "type": "uint16" } ], "name": "TokenRevealed", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "MAX_TOKENS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "addAdmin", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAddressWriteBlock", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTokenMintBlock", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTokenTraits", "outputs": [ { "components": [ { "internalType": "bool", "name": "isRevealed", "type": "bool" }, { "internalType": "bool", "name": "isFighter", "type": "bool" }, { "internalType": "bool", "name": "isGen0", "type": "bool" }, { "internalType": "uint16", "name": "level", "type": "uint16" }, { "internalType": "uint256", "name": "lastLevelUpgradeTime", "type": "uint256" }, { "internalType": "uint8", "name": "rank", "type": "uint8" }, { "internalType": "uint256", "name": "lastRankUpgradeTime", "type": "uint256" }, { "internalType": "uint8", "name": "courage", "type": "uint8" }, { "internalType": "uint8", "name": "cunning", "type": "uint8" }, { "internalType": "uint8", "name": "brutality", "type": "uint8" }, { "internalType": "uint64", "name": "mintedBlockNumber", "type": "uint64" } ], "internalType": "struct IUNFT.FighterYakuza", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTokenWriteBlock", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getYakuzaRanks", "outputs": [ { "internalType": "uint8[4]", "name": "", "type": "uint8[4]" } ], "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": "isFighter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "bool", "name": "isGen0", "type": "bool" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "removeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "tokenId", "type": "uint16" }, { "internalType": "uint256", "name": "seed", "type": "uint256" } ], "name": "revealTokenId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_uGame", "type": "address" } ], "name": "setContracts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setRevealedBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "number", "type": "uint256" } ], "name": "setRoyaltyPermille", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "brutality", "type": "uint8" } ], "name": "setTraitBrutality", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "courage", "type": "uint8" } ], "name": "setTraitCourage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "cunning", "type": "uint8" } ], "name": "setTraitCunning", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint16", "name": "level", "type": "uint16" } ], "name": "setTraitLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "rank", "type": "uint8" } ], "name": "setTraitRank", "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": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensMinted", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "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": [], "name": "uGame", "outputs": [ { "internalType": "contract IUGame", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16[]", "name": "tokenIds", "type": "uint16[]" } ], "name": "updateOriginAccess", "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" } ]
61ea60600d5561010060405260056080908152600660a052600760c052600860e05262000031906010906004620001f5565b5060456015553480156200004457600080fd5b50604080518082018252600f81526e151a1948155b99195c99dc9bdd5b99608a1b6020808301918252835180850190945260048452631553919560e21b90840152815191929162000098916000916200028f565b508051620000ae9060019060208401906200028f565b505050620000cb620000c5620000ed60201b60201c565b620000f1565b600a805460ff60a01b191690556001600b55620000e762000143565b62000360565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000157600a54600160a01b900460ff1690565b156200019c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640160405180910390fd5b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620001d83390565b6040516001600160a01b03909116815260200160405180910390a1565b6001830191839082156200027d5791602002820160005b838211156200024c57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026200020c565b80156200027b5782816101000a81549060ff02191690556001016020816000010492830192600103026200024c565b505b506200028b9291506200030c565b5090565b8280546200029d9062000323565b90600052602060002090601f016020900481019282620002c157600085556200027d565b82601f10620002dc57805160ff19168380011785556200027d565b828001600101855582156200027d579182015b828111156200027d578251825591602001919060010190620002ef565b5b808211156200028b57600081556001016200030d565b600181811c908216806200033857607f821691505b602082108114156200035a57634e487b7160e01b600052602260045260246000fd5b50919050565b6157a380620003706000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80635c975abb11610167578063a76e6bc4116100ce578063ebd1736811610087578063ebd17368146105f2578063ee525fef14610605578063f2fde38b14610618578063f47c84c51461062b578063f840627714610634578063febc6b0a1461064757600080fd5b8063a76e6bc414610580578063ac32d3b414610593578063b88d4fde146105a6578063c87b56dd146105b9578063dac55cd4146105cc578063e985e9c5146105df57600080fd5b8063715018a611610120578063715018a61461052257806386340cd11461052a5780638da5cb5b1461053d57806394e568471461054557806395d89b4114610565578063a22cb4651461056d57600080fd5b80635c975abb146104ad5780636352211e146104b55780636de9f32b146104c85780636e83843a146104e957806370480275146104fc57806370a082311461050f57600080fd5b80632e9f3f671161020b57806342966c68116101c457806342966c6814610439578063438b63001461044c57806349492fa11461046c5780634a5f3a731461047f5780634f6ccce7146104875780635a2e2f471461049a57600080fd5b80632e9f3f67146103ba5780632f745c59146103cd57806332385e25146103e057806335ca838b1461040b5780633ccfd60b1461041e57806342842e0e1461042657600080fd5b806316c38b3c1161025d57806316c38b3c1461032a5780631785f53c1461033d57806318160ddd146103505780632097d3fb1461036257806323b872dd146103755780632a55205a1461038857600080fd5b806301ffc9a71461029a57806306fdde03146102c2578063081812fc146102d7578063095ea7b31461030257806314fa091314610317575b600080fd5b6102ad6102a8366004614a92565b61065c565b60405190151581526020015b60405180910390f35b6102ca610687565b6040516102b99190614b07565b6102ea6102e5366004614b1a565b610719565b6040516001600160a01b0390911681526020016102b9565b610315610310366004614b4a565b61084a565b005b610315610325366004614b83565b610971565b610315610338366004614bc1565b610b9a565b61031561034b366004614bde565b610c3a565b6008545b6040519081526020016102b9565b610315610370366004614bf9565b610c8a565b610315610383366004614c25565b610f40565b61039b610396366004614c61565b611096565b604080516001600160a01b0390931683526020830191909152016102b9565b6103156103c8366004614b1a565b6110c7565b6103546103db366004614b4a565b6110fb565b6103f36103ee366004614b1a565b6112aa565b6040516001600160401b0390911681526020016102b9565b610315610419366004614d02565b611396565b6103156114ce565b610315610434366004614c25565b61153d565b610315610447366004614b1a565b611666565b61045f61045a366004614bde565b61177a565b6040516102b99190614db3565b6102ad61047a366004614b1a565b611853565b6103f3611ad5565b610354610495366004614b1a565b611b28565b6103156104a8366004614bde565b611c8d565b6102ad611cde565b6102ea6104c3366004614b1a565b611cee565b600e546104d69061ffff1681565b60405161ffff90911681526020016102b9565b6103156104f7366004614df7565b611e99565b61031561050a366004614bde565b611ed9565b61035461051d366004614bde565b611f2c565b610315611fbc565b610315610538366004614b83565b611ff7565b6102ea612227565b610558610553366004614b1a565b612236565b6040516102b99190614e68565b6102ca61247c565b61031561057b366004614bf9565b61248b565b61031561058e366004614f2b565b6124d8565b6103156105a1366004614b83565b6127fc565b6103156105b4366004614f50565b612a29565b6102ca6105c7366004614b1a565b612b54565b600c546102ea906001600160a01b031681565b6102ad6105ed36600461500f565b612e69565b6103f3610600366004614b1a565b612ed9565b610315610613366004615042565b612f2b565b610315610626366004614bde565b613108565b610354600d5481565b610315610642366004614b83565b6131a5565b61064f6133cd565b6040516102b99190615060565b60006001600160e01b0319821663152a902d60e11b1480610681575061068182613454565b92915050565b6060600080546106969061508b565b80601f01602080910402602001604051908101604052809291908181526020018280546106c29061508b565b801561070f5780601f106106e45761010080835404028352916020019161070f565b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b600081815260136020526040812054829043600160401b9091046001600160401b0316106107625760405162461bcd60e51b8152600401610759906150c6565b60405180910390fd5b600083815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905284919043116108385760405162461bcd60e51b8152600401610759906150c6565b61084185613479565b95945050505050565b600081815260136020526040902054819043600160401b9091046001600160401b03161061088a5760405162461bcd60e51b8152600401610759906150c6565b600082815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905283919043116109605760405162461bcd60e51b8152600401610759906150c6565b61096a8585613501565b5050505050565b610979611cde565b156109965760405162461bcd60e51b8152600401610759906150ea565b336000908152600f602052604090205460ff166109c55760405162461bcd60e51b815260040161075990615114565b600082815260116020908152604091829020825161016081018452815460ff8082161515808452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b0316610140830152610a965760405162461bcd60e51b81526004016107599061514b565b60ff9182166101208201908152600093845260116020908152604094859020835181549285015196850151606086015161ffff1994851692151561ff0019169290921761010098151589021764ffffff0000191662010000911515820264ffff000000191617630100000061ffff90931683021783556080860151600184015560a086015160028401805460ff191691891691909117905560c0860151600384015560e086015160049093018054898801519651610140909801519489169516949094179487169097029390931762010000600160581b031916939094169094026affffffffffffffff0000001916919091176001600160401b0390921602179055565b600c546001600160a01b0316610bf25760405162461bcd60e51b815260206004820152601a60248201527f4e46543a2047616d6520636f6e7472616374206e6f74207365740000000000006044820152606401610759565b33610bfb612227565b6001600160a01b031614610c215760405162461bcd60e51b815260040161075990615182565b8015610c3257610c2f61360d565b50565b610c2f61368a565b33610c43612227565b6001600160a01b031614610c695760405162461bcd60e51b815260040161075990615182565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b610c92611cde565b15610caf5760405162461bcd60e51b8152600401610759906150ea565b3260009081526012602052604090205443600160401b9091046001600160401b031610610cee5760405162461bcd60e51b8152600401610759906150c6565b6002600b541415610d115760405162461bcd60e51b8152600401610759906151b7565b6002600b55336000908152600f602052604090205460ff16610d455760405162461bcd60e51b815260040161075990615114565b600d54600e54610d5a9061ffff166001615204565b61ffff161115610da55760405162461bcd60e51b81526020600482015260166024820152751391950e88105b1b081d1bdad95b9cc81b5a5b9d195960521b6044820152606401610759565b600e805461ffff16906000610db98361522a565b91906101000a81548161ffff021916908361ffff16021790555050610ddc614969565b8115156040828101918252436001600160401b039081166101408501908152600e805461ffff9081166000908152601160209081529590208751815496890151975160608a015161ffff1998891692151561ff001916929092176101009915158a021764ffffff0000191662010000911515820264ffff0000001916176301000000928516830217835560808a0151600184015560a08a015160028401805460ff191660ff92831617905560c08b0151600385015560e08b0151600490940180548b8d01516101208e0151995196841691909b1617998216909a029890981762010000600160581b031916959097169096026affffffffffffffff000000191693909317929093169093021790925554610ef891859116613709565b600e5460405161ffff909116906001600160a01b038516907fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a890600090a350506001600b5550565b600081815260136020526040902054819043600160401b9091046001600160401b031610610f805760405162461bcd60e51b8152600401610759906150c6565b600082815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905283919043116110565760405162461bcd60e51b8152600401610759906150c6565b6002600b5414156110795760405162461bcd60e51b8152600401610759906151b7565b6002600b55611089868686613723565b50506001600b5550505050565b6000806110a1612227565b6103e8601554856110b2919061524c565b6110bc9190615281565b915091509250929050565b336110d0612227565b6001600160a01b0316146110f65760405162461bcd60e51b815260040161075990615182565b601555565b3260009081526012602052604081205443600160401b9091046001600160401b03161061113a5760405162461bcd60e51b8152600401610759906150c6565b6001600160a01b03831660009081526012602052604090205443600160401b9091046001600160401b0316106111825760405162461bcd60e51b8152600401610759906150c6565b600061118e8484613754565b60008181526013602052604090205490915043600160401b9091046001600160401b0316106111cf5760405162461bcd60e51b8152600401610759906150c6565b600081815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905243116112a25760405162461bcd60e51b8152600401610759906150c6565b509392505050565b336000908152600f602052604081205460ff166112d95760405162461bcd60e51b815260040161075990615114565b50600081815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b03166101409091018190525b919050565b336000908152600f602052604090205460ff166113c55760405162461bcd60e51b815260040161075990615114565b6040805180820182526001600160401b0342818116835243828116602080860191825232600090815260129091529586209451855491518516600160401b026001600160801b031990921694169390931792909217909255915b83518110156114c8576040518060400160405280836001600160401b03168152602001846001600160401b03168152506013600086848151811061146557611465615295565b60209081029190910181015161ffff168252818101929092526040016000208251815493909201516001600160401b03908116600160401b026001600160801b0319909416921691909117919091179055806114c0816152ab565b91505061141f565b50505050565b336114d7612227565b6001600160a01b0316146114fd5760405162461bcd60e51b815260040161075990615182565b611505612227565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610c2f573d6000803e3d6000fd5b600081815260136020526040902054819043600160401b9091046001600160401b03161061157d5760405162461bcd60e51b8152600401610759906150c6565b600082815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905283919043116116535760405162461bcd60e51b8152600401610759906150c6565b61165e8686866137ea565b505050505050565b61166e611cde565b1561168b5760405162461bcd60e51b8152600401610759906150ea565b6002600b5414156116ae5760405162461bcd60e51b8152600401610759906151b7565b6002600b55336000908152600f602052604090205460ff166116e25760405162461bcd60e51b815260040161075990615114565b806116ec82611cee565b6001600160a01b03167f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa260405160405180910390a361172a81613805565b6000908152601160205260408120805464ffffffffff19168155600180820183905560028201805460ff19169055600382019290925560040180546affffffffffffffffffffff19169055600b55565b3260009081526012602052604090205460609043600160401b9091046001600160401b0316106117bc5760405162461bcd60e51b8152600401610759906150c6565b60006117c783611f2c565b90506000816001600160401b038111156117e3576117e3614c83565b60405190808252806020026020018201604052801561180c578160200160208202803683370190505b50905060005b828110156112a25761182485826110fb565b82828151811061183657611836615295565b60209081029190910101528061184b816152ab565b915050611812565b6000818152601160209081526040808320815161016081018352815460ff80821615158352610100808304821615159684019690965262010000808304821615159584019590955263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e084015285810484169583019590955292840490911661012082015291046001600160401b0316610140820181905283919043116119275760405162461bcd60e51b8152600401610759906150c6565b3260009081526012602052604090205443600160401b9091046001600160401b0316106119665760405162461bcd60e51b8152600401610759906150c6565b600084815260136020526040902054849043600160401b9091046001600160401b0316106119a65760405162461bcd60e51b8152600401610759906150c6565b6119af8561389a565b6119f75760405162461bcd60e51b81526020600482015260196024820152781391950e88151bdad95b88191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610759565b600085815260116020908152604091829020825161016081018452815460ff8082161515808452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b0316610140830152611ac85760405162461bcd60e51b81526004016107599061514b565b6020015195945050505050565b336000908152600f602052604081205460ff16611b045760405162461bcd60e51b815260040161075990615114565b5032600090815260126020526040902054600160401b90046001600160401b031690565b3260009081526012602052604081205443600160401b9091046001600160401b031610611b675760405162461bcd60e51b8152600401610759906150c6565b6000611b72836138b7565b60008181526013602052604090205490915043600160401b9091046001600160401b031610611bb35760405162461bcd60e51b8152600401610759906150c6565b600081815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b031661014082018190524311611c865760405162461bcd60e51b8152600401610759906150c6565b5092915050565b33611c96612227565b6001600160a01b031614611cbc5760405162461bcd60e51b815260040161075990615182565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600a54600160a01b900460ff1690565b3260009081526012602052604081205443600160401b9091046001600160401b031610611d2d5760405162461bcd60e51b8152600401610759906150c6565b600082815260136020526040902054829043600160401b9091046001600160401b031610611d6d5760405162461bcd60e51b8152600401610759906150c6565b600083815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b031661014082018190528491904311611e435760405162461bcd60e51b8152600401610759906150c6565b6000611e4e8661394a565b6001600160a01b03811660009081526012602052604090205490915043600160401b9091046001600160401b0316106108415760405162461bcd60e51b8152600401610759906150c6565b33611ea2612227565b6001600160a01b031614611ec85760405162461bcd60e51b815260040161075990615182565b611ed4601483836149c5565b505050565b33611ee2612227565b6001600160a01b031614611f085760405162461bcd60e51b815260040161075990615182565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b3260009081526012602052604081205443600160401b9091046001600160401b031610611f6b5760405162461bcd60e51b8152600401610759906150c6565b6001600160a01b03821660009081526012602052604090205443600160401b9091046001600160401b031610611fb35760405162461bcd60e51b8152600401610759906150c6565b610681826139c1565b33611fc5612227565b6001600160a01b031614611feb5760405162461bcd60e51b815260040161075990615182565b611ff56000613a48565b565b611fff611cde565b1561201c5760405162461bcd60e51b8152600401610759906150ea565b336000908152600f602052604090205460ff1661204b5760405162461bcd60e51b815260040161075990615114565b600082815260116020908152604091829020825161016081018452815460ff8082161515808452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b031661014083015261211c5760405162461bcd60e51b81526004016107599061514b565b60ff918216610100828101918252600094855260116020908152604095869020845181549286015197860151606087015161ffff1994851692151561ff0019169290921798151585029890981764ffffff0000191662010000981515890264ffff000000191617630100000061ffff90921682021782556080860151600183015560a086015160028301805460ff191691891691909117905560c0860151600383015560e08601516004909201805495516101208801516101409098015193891696909416959095179287169093029190911762010000600160581b031916939094169094026affffffffffffffff0000001916919091176001600160401b03909216909202179055565b600a546001600160a01b031690565b61223e614969565b600082815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b0316610140820181905283919043116123145760405162461bcd60e51b8152600401610759906150c6565b3260009081526012602052604090205443600160401b9091046001600160401b0316106123535760405162461bcd60e51b8152600401610759906150c6565b600084815260136020526040902054849043600160401b9091046001600160401b0316106123935760405162461bcd60e51b8152600401610759906150c6565b336000908152600f602052604090205460ff166123c25760405162461bcd60e51b815260040161075990615114565b50505060009182525060116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b031661014082015290565b6060600180546106969061508b565b3260009081526012602052604090205443600160401b9091046001600160401b0316106124ca5760405162461bcd60e51b8152600401610759906150c6565b6124d48282613a9a565b5050565b6124e0611cde565b156124fd5760405162461bcd60e51b8152600401610759906150ea565b336000908152600f602052604090205460ff1661252c5760405162461bcd60e51b815260040161075990615114565b600060116000848152602001908152602001600020604051806101600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900460ff161515151581526020016000820160039054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900460ff1660ff1660ff168152602001600382015481526020016004820160009054906101000a900460ff1660ff1660ff1681526020016004820160019054906101000a900460ff1660ff1660ff1681526020016004820160029054906101000a900460ff1660ff1660ff1681526020016004820160039054906101000a90046001600160401b03166001600160401b03166001600160401b031681525050905081816060019061ffff16908161ffff168152505042816080018181525050806011600085815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160000160026101000a81548160ff02191690831515021790555060608201518160000160036101000a81548161ffff021916908361ffff1602179055506080820151816001015560a08201518160020160006101000a81548160ff021916908360ff16021790555060c0820151816003015560e08201518160040160006101000a81548160ff021916908360ff1602179055506101008201518160040160016101000a81548160ff021916908360ff1602179055506101208201518160040160026101000a81548160ff021916908360ff1602179055506101408201518160040160036101000a8154816001600160401b0302191690836001600160401b03160217905550905050505050565b612804611cde565b156128215760405162461bcd60e51b8152600401610759906150ea565b336000908152600f602052604090205460ff166128505760405162461bcd60e51b815260040161075990615114565b600082815260116020908152604091829020825161016081018452815460ff8082161515808452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b03166101408301526129215760405162461bcd60e51b81526004016107599061514b565b60ff91821660a082019081524260c08301908152600094855260116020908152604095869020845181549286015197860151606087015161ffff1994851692151561ff001916929092176101009915158a021764ffffff0000191662010000911515820264ffff000000191617630100000061ffff909316830217835560808701516001840155945160028301805460ff19169189169190911790559251600382015560e085015160049091018054888701516101208801516101409098015193891691909416179287169097029190911762010000600160581b031916939094169091026affffffffffffffff0000001916919091176001600160401b0390921602179055565b600082815260136020526040902054829043600160401b9091046001600160401b031610612a695760405162461bcd60e51b8152600401610759906150c6565b600083815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b031661014082018190528491904311612b3f5760405162461bcd60e51b8152600401610759906150c6565b612b4b87878787613aa5565b50505050505050565b600081815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff16606080850191909152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b03166101408301819052909183914311612c305760405162461bcd60e51b8152600401610759906150c6565b3260009081526012602052604090205443600160401b9091046001600160401b031610612c6f5760405162461bcd60e51b8152600401610759906150c6565b600084815260136020526040902054849043600160401b9091046001600160401b031610612caf5760405162461bcd60e51b8152600401610759906150c6565b600c54604051632ec8bf5160e21b8152600481018790526060916000916001600160a01b039091169063bb22fd449060240161016060405180830381865afa158015612cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2391906152fe565b9050612d2e8761389a565b8015612d38575080515b15612e3a5781612d4788613ad7565b612d658360200151612d5a576000612d5d565b60015b60ff16613ad7565b612d7f8460400151612d78576001612d5d565b6000613ad7565b612d9085610100015160ff16613ad7565b612da186610120015160ff16613ad7565b604051602001612db6969594939291906153e6565b604051602081830303815290604052915081612dd88260e0015160ff16613ad7565b612de9836060015161ffff16613ad7565b612df68460800151613ad7565b612e068560a0015160ff16613ad7565b612e138660c00151613ad7565b604051602001612e2896959493929190615497565b60405160208183030381529060405291505b601482604051602001612e4e929190615542565b60405160208183030381529060405295505050505050919050565b3260009081526012602052604081205443600160401b9091046001600160401b031610612ea85760405162461bcd60e51b8152600401610759906150c6565b6001600160a01b0380841660009081526005602090815260408083209386168352929052205460ff165b9392505050565b336000908152600f602052604081205460ff16612f085760405162461bcd60e51b815260040161075990615114565b50600090815260136020526040902054600160401b90046001600160401b031690565b61ffff828116600081815260116020908152604091829020825161016081018452815460ff8082161515835261010080830482161515958401959095526201000080830482161515968401969096526301000000918290049097166060830152600183015460808301526002830154871660a0830152600383015460c083015260049092015480871660e0830152838104871693820193909352928204909416610120830152929092046001600160401b0316610140830181905290919043116130075760405162461bcd60e51b8152600401610759906150c6565b3260009081526012602052604090205443600160401b9091046001600160401b0316106130465760405162461bcd60e51b8152600401610759906150c6565b61ffff841660008181526013602052604090205443600160401b9091046001600160401b0316106130895760405162461bcd60e51b8152600401610759906150c6565b336000908152600f602052604090205460ff166130b85760405162461bcd60e51b815260040161075990615114565b6130c68561ffff1685613bdc565b506040805161ffff87168152905133917f1c1084a8de078a6ff77fc503f87d9710c34e080459c15ab29b64bb9ce9dc4c4d919081900360200190a25050505050565b33613111612227565b6001600160a01b0316146131375760405162461bcd60e51b815260040161075990615182565b6001600160a01b03811661319c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610759565b610c2f81613a48565b6131ad611cde565b156131ca5760405162461bcd60e51b8152600401610759906150ea565b336000908152600f602052604090205460ff166131f95760405162461bcd60e51b815260040161075990615114565b600082815260116020908152604091829020825161016081018452815460ff8082161515808452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b03166101408301526132ca5760405162461bcd60e51b81526004016107599061514b565b60ff91821660e08201908152600093845260116020908152604094859020835181549285015196850151606086015161ffff1994851692151561ff0019169290921761010098151589021764ffffff0000191662010000911515820264ffff000000191617630100000061ffff90931683021783556080860151600184015560a086015160028401805460ff191691891691909117905560c08601516003840155935160049092018054888701516101208801516101409098015194891691909516179387169097029290921762010000600160581b031916939094169091026affffffffffffffff0000001916919091176001600160401b0390921602179055565b6133d5614a49565b336000908152600f602052604090205460ff166134045760405162461bcd60e51b815260040161075990615114565b60408051608081019182905290601090600490826000855b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161341c5790505050505050905090565b60006001600160e01b0319821663780e9d6360e01b14806106815750610681826140b0565b60006134848261389a565b6134e55760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610759565b506000908152600460205260409020546001600160a01b031690565b600061350c8261394a565b9050806001600160a01b0316836001600160a01b0316141561357a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610759565b336001600160a01b038216148061359657506135968133612e69565b6136035760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608401610759565b611ed48383614100565b613615611cde565b156136325760405162461bcd60e51b8152600401610759906150ea565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861366d3390565b6040516001600160a01b03909116815260200160405180910390a1565b613692611cde565b6136d55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610759565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361366d565b6124d482826040518060200160405280600081525061416e565b61372d33826141a1565b6137495760405162461bcd60e51b8152600401610759906155f7565b611ed4838383614263565b600061375f836139c1565b82106137c15760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610759565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b611ed483838360405180602001604052806000815250612a29565b60006138108261394a565b905061381e816000846143f8565b613829600083614100565b6001600160a01b0381166000908152600360205260408120805460019290613852908490615648565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b0384169060008051602061574e833981519152908390a45050565b6000908152600260205260409020546001600160a01b0316151590565b60006138c260085490565b82106139255760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610759565b6008828154811061393857613938615295565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806106815760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610759565b60006001600160a01b038216613a2c5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610759565b506001600160a01b031660009081526003602052604090205490565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6124d43383836144b0565b613aaf33836141a1565b613acb5760405162461bcd60e51b8152600401610759906155f7565b6114c88484848461457b565b606081613afb5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613b255780613b0f816152ab565b9150613b1e9050600a83615281565b9150613aff565b6000816001600160401b03811115613b3f57613b3f614c83565b6040519080825280601f01601f191660200182016040528015613b69576020820181803683370190505b5090505b8415613bd457613b7e600183615648565b9150613b8b600a8661565f565b613b96906030615673565b60f81b818381518110613bab57613bab615295565b60200101906001600160f81b031916908160001a905350613bcd600a86615281565b9450613b6d565b949350505050565b613be4614969565b600083815260116020908152604091829020825161016081018452815460ff80821615158352610100808304821615159584019590955262010000808304821615159684019690965263010000009182900461ffff166060840152600184015460808401526002840154811660a0840152600384015460c084015260049093015480841660e08401528481048416948301949094529383049091166101208201529190046001600160401b031661014082018190528491904311613cba5760405162461bcd60e51b8152600401610759906150c6565b3260009081526012602052604090205443600160401b9091046001600160401b031610613cf95760405162461bcd60e51b8152600401610759906150c6565b600085815260136020526040902054859043600160401b9091046001600160401b031610613d395760405162461bcd60e51b8152600401610759906150c6565b600086815260116020908152604091829020825161016081018452815460ff8082161580158452610100808404831615159685019690965262010000808404831615159785019790975263010000009283900461ffff166060850152600185015460808501526002850154821660a0850152600385015460c085015260049094015480821660e0850152858104821695840195909552948404909416610120820152929091046001600160401b0316610140830152909450613e3d5760405162461bcd60e51b815260206004820152601e60248201527f4e46543a20546f6b656e20697320616c72656164792072657665616c656400006044820152606401610759565b438461014001516001600160401b031610613e6a5760405162461bcd60e51b8152600401610759906150c6565b613e79600a61ffff871661565f565b15156020808601919091526064601087901c811660e08701529086901c8116610100860152603086901c1661012085015260409490941c936000613ebf60016004615648565b8616905060108160ff1660048110613ed957613ed9615295565b602091828204019190069054906101000a900460ff168560a0019060ff16908160ff1681525050428560c0018181525050601086901c955085600316856060019061ffff16908161ffff1681525050428560800181815250506001856000019015159081151581525050846011600089815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160000160026101000a81548160ff02191690831515021790555060608201518160000160036101000a81548161ffff021916908361ffff1602179055506080820151816001015560a08201518160020160006101000a81548160ff021916908360ff16021790555060c0820151816003015560e08201518160040160006101000a81548160ff021916908360ff1602179055506101008201518160040160016101000a81548160ff021916908360ff1602179055506101208201518160040160026101000a81548160ff021916908360ff1602179055506101408201518160040160036101000a8154816001600160401b0302191690836001600160401b03160217905550905050505b50505092915050565b60006001600160e01b031982166380ac58cd60e01b14806140e157506001600160e01b03198216635b5e139f60e01b145b8061068157506301ffc9a760e01b6001600160e01b0319831614610681565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906141358261394a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61417883836145ae565b61418560008484846146db565b611ed45760405162461bcd60e51b81526004016107599061568b565b60006141ac8261389a565b61420d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610759565b60006142188361394a565b9050806001600160a01b0316846001600160a01b031614806142535750836001600160a01b031661424884610719565b6001600160a01b0316145b80613bd45750613bd48185612e69565b826001600160a01b03166142768261394a565b6001600160a01b0316146142da5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610759565b6001600160a01b03821661433c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610759565b6143478383836143f8565b614352600082614100565b6001600160a01b038316600090815260036020526040812080546001929061437b908490615648565b90915550506001600160a01b03821660009081526003602052604081208054600192906143a9908490615673565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03868116918217909255915184939187169160008051602061574e83398151915291a4505050565b6001600160a01b0383166144535761444e81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614476565b816001600160a01b0316836001600160a01b0316146144765761447683826147d9565b6001600160a01b03821661448d57611ed481614876565b826001600160a01b0316826001600160a01b031614611ed457611ed48282614925565b816001600160a01b0316836001600160a01b0316141561450e5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610759565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614586848484614263565b614592848484846146db565b6114c85760405162461bcd60e51b81526004016107599061568b565b6001600160a01b0382166146045760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610759565b61460d8161389a565b1561465a5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610759565b614666600083836143f8565b6001600160a01b038216600090815260036020526040812080546001929061468f908490615673565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b038616908117909155905183929060008051602061574e833981519152908290a45050565b60006001600160a01b0384163b156147ce57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061471f9033908990889088906004016156dd565b6020604051808303816000875af192505050801561475a575060408051601f3d908101601f191682019092526147579181019061571a565b60015b6147b4573d808015614788576040519150601f19603f3d011682016040523d82523d6000602084013e61478d565b606091505b5080516147ac5760405162461bcd60e51b81526004016107599061568b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050613bd4565b506001949350505050565b600060016147e6846139c1565b6147f09190615648565b600083815260076020526040902054909150808214614843576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061488890600190615648565b600083815260096020526040812054600880549394509092849081106148b0576148b0615295565b9060005260206000200154905080600883815481106148d1576148d1615295565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061490957614909615737565b6001900381819060005260206000200160009055905550505050565b6000614930836139c1565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b8280546149d19061508b565b90600052602060002090601f0160209004810192826149f35760008555614a39565b82601f10614a0c5782800160ff19823516178555614a39565b82800160010185558215614a39579182015b82811115614a39578235825591602001919060010190614a1e565b50614a45929150614a67565b5090565b60405180608001604052806004906020820280368337509192915050565b5b80821115614a455760008155600101614a68565b6001600160e01b031981168114610c2f57600080fd5b600060208284031215614aa457600080fd5b8135612ed281614a7c565b60005b83811015614aca578181015183820152602001614ab2565b838111156114c85750506000910152565b60008151808452614af3816020860160208601614aaf565b601f01601f19169290920160200192915050565b602081526000612ed26020830184614adb565b600060208284031215614b2c57600080fd5b5035919050565b80356001600160a01b038116811461139157600080fd5b60008060408385031215614b5d57600080fd5b614b6683614b33565b946020939093013593505050565b60ff81168114610c2f57600080fd5b60008060408385031215614b9657600080fd5b823591506020830135614ba881614b74565b809150509250929050565b8015158114610c2f57600080fd5b600060208284031215614bd357600080fd5b8135612ed281614bb3565b600060208284031215614bf057600080fd5b612ed282614b33565b60008060408385031215614c0c57600080fd5b614c1583614b33565b91506020830135614ba881614bb3565b600080600060608486031215614c3a57600080fd5b614c4384614b33565b9250614c5160208501614b33565b9150604084013590509250925092565b60008060408385031215614c7457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715614cbc57614cbc614c83565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614cea57614cea614c83565b604052919050565b61ffff81168114610c2f57600080fd5b60006020808385031215614d1557600080fd5b82356001600160401b0380821115614d2c57600080fd5b818501915085601f830112614d4057600080fd5b813581811115614d5257614d52614c83565b8060051b9150614d63848301614cc2565b8181529183018401918481019088841115614d7d57600080fd5b938501935b83851015614da75784359250614d9783614cf2565b8282529385019390850190614d82565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015614deb57835183529284019291840191600101614dcf565b50909695505050505050565b60008060208385031215614e0a57600080fd5b82356001600160401b0380821115614e2157600080fd5b818501915085601f830112614e3557600080fd5b813581811115614e4457600080fd5b866020828501011115614e5657600080fd5b60209290920196919550909350505050565b81511515815261016081016020830151614e86602084018215159052565b506040830151614e9a604084018215159052565b506060830151614eb0606084018261ffff169052565b506080830151608083015260a0830151614ecf60a084018260ff169052565b5060c083015160c083015260e0830151614eee60e084018260ff169052565b506101008381015160ff908116918401919091526101208085015190911690830152610140928301516001600160401b0316929091019190915290565b60008060408385031215614f3e57600080fd5b823591506020830135614ba881614cf2565b60008060008060808587031215614f6657600080fd5b614f6f85614b33565b93506020614f7e818701614b33565b93506040860135925060608601356001600160401b0380821115614fa157600080fd5b818801915088601f830112614fb557600080fd5b813581811115614fc757614fc7614c83565b614fd9601f8201601f19168501614cc2565b91508082528984828501011115614fef57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561502257600080fd5b61502b83614b33565b915061503960208401614b33565b90509250929050565b6000806040838503121561505557600080fd5b8235614b6681614cf2565b60808101818360005b60048110156140a757815160ff16835260209283019290910190600101615069565b600181811c9082168061509f57607f821691505b602082108114156150c057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600a90820152694e46543a204e6f70652160b01b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601e908201527f4e46543a204f6e6c792061646d696e732063616e2063616c6c20746869730000604082015260600190565b6020808252601e908201527f4e46543a20546f6b656e206973206e6f74207965742072657665616c65640000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff808316818516808303821115615221576152216151ee565b01949350505050565b600061ffff80831681811415615242576152426151ee565b6001019392505050565b6000816000190483118215151615615266576152666151ee565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826152905761529061526b565b500490565b634e487b7160e01b600052603260045260246000fd5b60006000198214156152bf576152bf6151ee565b5060010190565b805161139181614bb3565b805161139181614cf2565b805161139181614b74565b80516001600160401b038116811461139157600080fd5b6000610160828403121561531157600080fd5b615319614c99565b615322836152c6565b8152615330602084016152c6565b6020820152615341604084016152c6565b6040820152615352606084016152d1565b60608201526080830151608082015261536d60a084016152dc565b60a082015260c083015160c082015261538860e084016152dc565b60e082015261010061539b8185016152dc565b908201526101206153ad8482016152dc565b908201526101406153bf8482016152e7565b908201529392505050565b600081516153dc818560208601614aaf565b9290920192915050565b6000875160206153f98285838d01614aaf565b88519184019161540c8184848d01614aaf565b600b60fa1b9201828152885190929061542b8160018601858d01614aaf565b6001930192830181905287516154478160028601858c01614aaf565b6002930192830181905286516154638160038601858b01614aaf565b60039301928301819052855161547f8160048601858a01614aaf565b60049301928301525060050198975050505050505050565b6000875160206154aa8285838d01614aaf565b8851918401916154bd8184848d01614aaf565b600b60fa1b920182815288519092906154dc8160018601858d01614aaf565b6001930192830181905287516154f88160028601858c01614aaf565b6002930192830181905286516155148160038601858b01614aaf565b6003930192830152845161552e8160048501848901614aaf565b919091016004019998505050505050505050565b600080845481600182811c91508083168061555e57607f831692505b602080841082141561557e57634e487b7160e01b86526022600452602486fd5b81801561559257600181146155a3576155d0565b60ff198616895284890196506155d0565b60008b81526020902060005b868110156155c85781548b8201529085019083016155af565b505084890196505b5050505050506108416155f182673f7472616974733d60c01b815260080190565b856153ca565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008282101561565a5761565a6151ee565b500390565b60008261566e5761566e61526b565b500690565b60008219821115615686576156866151ee565b500190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061571090830184614adb565b9695505050505050565b60006020828403121561572c57600080fd5b8151612ed281614a7c565b634e487b7160e01b600052603160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122080847e77d099e9c9379987591c218806b37384aea4be93c22a47e5c4f1b3d3c464736f6c634300080b0033