[ { "inputs": [ { "internalType": "string", "name": "_initBaseURI", "type": "string" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "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": "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": "BASE_MINT_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BASE_SUPER_PERCENTAGE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_BASE_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_PER_MINT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_PRESALE_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NFT_TAX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRESALE_MINT_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADE_SALES_OFFSET", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" }, { "internalType": "uint256", "name": "_yield", "type": "uint256" } ], "name": "addUpgrade", "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": [], "name": "baseSalesOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_offset", "type": "uint256" }, { "internalType": "uint256", "name": "_maxSize", "type": "uint256" } ], "name": "batchedMinerOfOwner", "outputs": [ { "components": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "bool", "name": "revealed", "type": "bool" } ], "internalType": "struct Miner.MinerInfo[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "burnLock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "diamond", "outputs": [ { "internalType": "contract Diamond", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eventAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gameStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "getCurrentBlockTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getWhiteList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "giveFreeNFTs", "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": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "isUpgrade", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "isWhiteListed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "levels", "outputs": [ { "internalType": "uint256", "name": "supply", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "yield", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lockLV", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mineAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_numTokens", "type": "uint16" } ], "name": "mintBase", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_numTokens", "type": "uint16" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "mintLock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_level", "type": "uint256" }, { "internalType": "uint16", "name": "_numTokens", "type": "uint16" } ], "name": "mintUpgrade", "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": "uint16", "name": "_numTokens", "type": "uint16" } ], "name": "presaleMintBase", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "presaleOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "presaleStartTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "presaleSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "revealedTokenLevel", "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": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "salesStartTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setBASE_MINT_PRICE", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setBASE_SUPER_PERCENTAGE", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract Diamond", "name": "_diamond", "type": "address" } ], "name": "setDiamond", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_eventAddress", "type": "address" } ], "name": "setEventAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "setMAX_BASE_SUPPLY", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "setMAX_PRESALE_SUPPLY", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_mineAddress", "type": "address" } ], "name": "setMineAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setNFT_TAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setPRESALE_MINT_PRICE", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setPresaleStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setSalesStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setSkipWL", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "skipWL", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "tokenRevealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_level", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "updateUpgradePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whiteListAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "whiteListUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
61251c600f556101f4601055671bc16d674ec800006011556714d1120d7b16000060125567016345785d8a00006013556005601455601a805460ff1916905560a06040819052600060808190526200005a91601d91620002f6565b50601e805460ff191690553480156200007257600080fd5b50604051620047a0380380620047a0833981016040819052620000959162000453565b815182908290620000ae906000906020850190620002f6565b508051620000c4906001906020840190620002f6565b505050620000e1620000db6200022860201b60201c565b6200022c565b600a805460ff60a01b19169055620000f9836200027e565b505060408051608080820183526000808352602080840182815284860183815260016060808801828152601c80548085018255818952995160049a8b027f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2118181019290925596517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2128089019190915595517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2138089019190915592517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a214978801558b51998a018c52888a529689018881529a89018881526005938a019384528154948501825597529651919097029384015595519582019590955590519181019190915590519101555062000537565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314620002dd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620002f290601d906020840190620002f6565b5050565b8280546200030490620004e4565b90600052602060002090601f01602090048101928262000328576000855562000373565b82601f106200034357805160ff191683800117855562000373565b8280016001018555821562000373579182015b828111156200037357825182559160200191906001019062000356565b506200038192915062000385565b5090565b5b8082111562000381576000815560010162000386565b600082601f830112620003ae57600080fd5b81516001600160401b0380821115620003cb57620003cb62000521565b604051601f8301601f19908116603f01168101908282118183101715620003f657620003f662000521565b816040528381526020925086838588010111156200041357600080fd5b600091505b8382101562000437578582018301518183018401529082019062000418565b83821115620004495760008385830101525b9695505050505050565b6000806000606084860312156200046957600080fd5b83516001600160401b03808211156200048157600080fd5b6200048f878388016200039c565b94506020860151915080821115620004a657600080fd5b620004b4878388016200039c565b93506040860151915080821115620004cb57600080fd5b50620004da868287016200039c565b9150509250925092565b600181811c90821680620004f957607f821691505b602082108114156200051b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61425980620005476000396000f3fe6080604052600436106104475760003560e01c8063715018a611610234578063be2bd96c1161012e578063e3b9ac3e116100b6578063f2fde38b1161007a578063f2fde38b14610c87578063f6384e6c14610ca7578063f954127014610cc7578063fad5677914610cda578063fbc4504814610cfa57600080fd5b8063e3b9ac3e14610bfc578063e8a3d48514610c1c578063e985e9c514610c31578063ebe2ca7b14610c51578063f0b7db4e14610c6757600080fd5b8063c87b56dd116100fd578063c87b56dd14610b69578063ca98787a14610b89578063da76d5cd14610b9c578063dbbc3ce814610bbc578063decec7d914610bdc57600080fd5b8063be2bd96c14610aff578063bee6348a14610b1f578063c35d47a714610b34578063c8718dfa14610b5457600080fd5b80639d897351116101bc578063aff485f711610180578063aff485f714610a5e578063b18caadf14610a73578063b2596a6714610a89578063b3a196e914610ac9578063b88d4fde14610adf57600080fd5b80639d897351146109d3578063a22cb465146109f3578063a2c1737214610a13578063a475b5dd14610a33578063a82524b214610a4857600080fd5b80638d63976f116102035780638d63976f1461094b5780638da5cb5b1461096b578063901507f81461098957806395d89b41146109a95780639894a494146109be57600080fd5b8063715018a6146108ea57806376ed535a146108ff578063772eeb251461091f578063860f50481461093557600080fd5b8063296cab551161034557806355f804b3116102cd5780636352211e116102915780636352211e146108545780636b8dc355146108745780636f9170f61461088a57806370242015146108aa57806370a08231146108ca57600080fd5b806355f804b3146107b957806359bf2052146107d95780635a6727f4146107f35780635c975abb146108205780635e123ce41461083f57600080fd5b80633831c97d116103145780633831c97d14610719578063398ac9531461073957806342842e0e14610759578063475fda0e146107795780634f6ccce71461079957600080fd5b8063296cab55146106ac5780632a234e57146106cc5780632f745c59146106e257806337f6727f1461070257600080fd5b80630f28c97d116103d357806318db3c771161039757806318db3c77146106165780631b54c025146106365780631b97228e1461064c5780631f7c55141461066c57806323b872dd1461068c57600080fd5b80630f28c97d1461058e5780630f69aa78146105a157806312566a42146105c157806318160ddd146105e15780631896db54146105f657600080fd5b806306fdde031161041a57806306fdde03146104dd578063081812fc146104ff578063095ea7b31461053757806309a9d76c1461055757806309d42b301461057957600080fd5b806301ffc9a71461044c578063050b9b0814610481578063054ee789146104a3578063064d705e146104c7575b600080fd5b34801561045857600080fd5b5061046c610467366004613ac7565b610d1a565b60405190151581526020015b60405180910390f35b34801561048d57600080fd5b506104a161049c366004613b81565b610d45565b005b3480156104af57600080fd5b506104b960115481565b604051908152602001610478565b3480156104d357600080fd5b506104b9600f5481565b3480156104e957600080fd5b506104f2610d7d565b6040516104789190613ef0565b34801561050b57600080fd5b5061051f61051a366004613b81565b610e0f565b6040516001600160a01b039091168152602001610478565b34801561054357600080fd5b506104a16105523660046139f1565b610ea4565b34801561056357600080fd5b5061056c610fba565b6040516104789190613e48565b34801561058557600080fd5b506104b9601e81565b34801561059a57600080fd5b50426104b9565b3480156105ad57600080fd5b506104a16105bc366004613b81565b61101b565b3480156105cd57600080fd5b5061046c6105dc366004613b81565b6110ee565b3480156105ed57600080fd5b506008546104b9565b34801561060257600080fd5b506104a1610611366004613b81565b61114e565b34801561062257600080fd5b506104a1610631366004613b81565b61117d565b34801561064257600080fd5b506104b960195481565b34801561065857600080fd5b506104b9610667366004613b81565b6111ac565b34801561067857600080fd5b506104a1610687366004613b65565b6111e7565b34801561069857600080fd5b506104a16106a73660046138fd565b611589565b3480156106b857600080fd5b506104a16106c7366004613b81565b6115ba565b3480156106d857600080fd5b506104b960125481565b3480156106ee57600080fd5b506104b96106fd3660046139f1565b6116e2565b34801561070e57600080fd5b506104b96202a30081565b34801561072557600080fd5b506104b9610734366004613b81565b611778565b34801561074557600080fd5b506104a1610754366004613a52565b6117d5565b34801561076557600080fd5b506104a16107743660046138fd565b61184d565b34801561078557600080fd5b506104a1610794366004613a52565b611868565b3480156107a557600080fd5b506104b96107b4366004613b81565b61190a565b3480156107c557600080fd5b506104a16107d4366004613b01565b61199d565b3480156107e557600080fd5b50601a5461046c9060ff1681565b3480156107ff57600080fd5b5061081361080e366004613a1d565b6119de565b6040516104789190613e95565b34801561082c57600080fd5b50600a54600160a01b900460ff1661046c565b34801561084b57600080fd5b5061046c611b86565b34801561086057600080fd5b5061051f61086f366004613b81565b611bbe565b34801561088057600080fd5b506104b960105481565b34801561089657600080fd5b5061046c6108a53660046138a7565b611c35565b3480156108b657600080fd5b506104a16108c53660046138a7565b611c9f565b3480156108d657600080fd5b506104b96108e53660046138a7565b611ceb565b3480156108f657600080fd5b506104a1611d72565b34801561090b57600080fd5b506104a161091a3660046138a7565b611da8565b34801561092b57600080fd5b506104b960145481565b34801561094157600080fd5b506104b960155481565b34801561095757600080fd5b506104a16109663660046138a7565b611df4565b34801561097757600080fd5b50600a546001600160a01b031661051f565b34801561099557600080fd5b506104a16109a4366004613c01565b611e40565b3480156109b557600080fd5b506104f2611f38565b3480156109ca57600080fd5b506104a1611f47565b3480156109df57600080fd5b5061046c6109ee366004613b81565b611f85565b3480156109ff57600080fd5b506104a1610a0e3660046139be565b611fa2565b348015610a1f57600080fd5b506104a1610a2e366004613b81565b611fad565b348015610a3f57600080fd5b506104a1612021565b348015610a5457600080fd5b506104b960185481565b348015610a6a57600080fd5b5061046c61205a565b348015610a7f57600080fd5b506104b960135481565b348015610a9557600080fd5b50610aa9610aa4366004613b81565b612074565b604080519485526020850193909352918301526060820152608001610478565b348015610ad557600080fd5b506104b960165481565b348015610aeb57600080fd5b506104a1610afa36600461393e565b6120ae565b348015610b0b57600080fd5b50600d5461051f906001600160a01b031681565b348015610b2b57600080fd5b5061046c6120e0565b348015610b4057600080fd5b506104a1610b4f366004613b81565b6120fa565b348015610b6057600080fd5b506104b9600281565b348015610b7557600080fd5b506104f2610b84366004613b81565b612129565b6104a1610b97366004613b4a565b6121e0565b348015610ba857600080fd5b506104a1610bb7366004613b81565b612395565b348015610bc857600080fd5b506104a1610bd7366004613b81565b6123f9565b348015610be857600080fd5b506104a1610bf7366004613bb3565b612428565b348015610c0857600080fd5b506104a1610c17366004613b81565b6127b1565b348015610c2857600080fd5b506104f26127e0565b348015610c3d57600080fd5b5061046c610c4c3660046138c4565b612808565b348015610c5d57600080fd5b506104b960175481565b348015610c7357600080fd5b50600b5461051f906001600160a01b031681565b348015610c9357600080fd5b506104a1610ca23660046138a7565b612857565b348015610cb357600080fd5b5061051f610cc2366004613b81565b6128ef565b6104a1610cd5366004613b4a565b612919565b348015610ce657600080fd5b50600c5461051f906001600160a01b031681565b348015610d0657600080fd5b506104a1610d15366004613bdf565b6129ee565b60006001600160e01b0319821663780e9d6360e01b1480610d3f5750610d3f82612aa3565b92915050565b600a546001600160a01b03163314610d785760405162461bcd60e51b8152600401610d6f90613fb9565b60405180910390fd5b601355565b606060008054610d8c90614120565b80601f0160208091040260200160405190810160405280929190818152602001828054610db890614120565b8015610e055780601f10610dda57610100808354040283529160200191610e05565b820191906000526020600020905b815481529060010190602001808311610de857829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610e885760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610d6f565b506000908152600460205260409020546001600160a01b031690565b6000610eaf82611bbe565b9050806001600160a01b0316836001600160a01b03161415610f1d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610d6f565b336001600160a01b0382161480610f395750610f398133612808565b610fab5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610d6f565b610fb58383612af3565b505050565b6060600e805480602002602001604051908101604052809291908181526020018280548015610e0557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ff4575050505050905090565b600a546001600160a01b031633146110455760405162461bcd60e51b8152600401610d6f90613fb9565b4281116110945760405162461bcd60e51b815260206004820181905260248201527f53746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610d6f565b61109c61205a565b156110e95760405162461bcd60e51b815260206004820152601a60248201527f426173652073616c657320616c726561647920737461727465640000000000006044820152606401610d6f565b601955565b6000818152600260205260408120546001600160a01b03166111455760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081d1bdad95b88125160821b6044820152606401610d6f565b50600f54111590565b600a546001600160a01b031633146111785760405162461bcd60e51b8152600401610d6f90613fb9565b601255565b600a546001600160a01b031633146111a75760405162461bcd60e51b8152600401610d6f90613fb9565b601055565b6000806111b883611778565b9050601c81815481106111cd576111cd6141cc565b906000526020600020906004020160030154915050919050565b6111ef611b86565b61123b5760405162461bcd60e51b815260206004820152601a60248201527f557067726164652073616c657320617265206e6f74206f70656e0000000000006044820152606401610d6f565b601e8261ffff1611156112605760405162461bcd60e51b8152600401610d6f90613f55565b601c546002108015611270575060015b6112ac5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081b195d995b609a1b6044820152606401610d6f565b601c6002815481106112c0576112c06141cc565b9060005260206000209060040201600101548261ffff16601c6002815481106112eb576112eb6141cc565b9060005260206000209060040201600001546113079190614092565b11156113255760405162461bcd60e51b8152600401610d6f90613f8c565b600c546001600160a01b0316331461134f5760405162461bcd60e51b8152600401610d6f90613fee565b6000601c600281548110611365576113656141cc565b9060005260206000209060040201600201548361ffff1661138691906140be565b905061139a600a546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146114e457600b546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190613b9a565b101561147d5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74204449414d4f4e442062616c616e6365000000006044820152606401610d6f565b600b54604051632770a7eb60e21b81526001600160a01b0384811660048301526024820184905290911690639dc29fac90604401600060405180830381600087803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b505050505b60005b8361ffff16811015611583576000601754600f546115059190614092565b90506115118482612b61565b6000818152601b60205260409020600290819055601c8054909190811061153a5761153a6141cc565b6000918252602082206004909102018054916115558361415b565b90915550506017805490600061156a8361415b565b919050555050808061157b9061415b565b9150506114e7565b50505050565b6115933382612b7b565b6115af5760405162461bcd60e51b8152600401610d6f90614041565b610fb5838383612c52565b600a546001600160a01b031633146115e45760405162461bcd60e51b8152600401610d6f90613fb9565b4281116116335760405162461bcd60e51b815260206004820181905260248201527f53746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610d6f565b61163b61205a565b156116885760405162461bcd60e51b815260206004820152601a60248201527f426173652073616c657320616c726561647920737461727465640000000000006044820152606401610d6f565b6116906120e0565b156116dd5760405162461bcd60e51b815260206004820152601760248201527f50726573616c6520616c726561647920737461727465640000000000000000006044820152606401610d6f565b601855565b60006116ed83611ceb565b821061174f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610d6f565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600061178382611f85565b6117c25760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881d5b9c995d99585b195960821b6044820152606401610d6f565b506000908152601b602052604090205490565b600a546001600160a01b031633146117ff5760405162461bcd60e51b8152600401610d6f90613fb9565b60005b81811015610fb55761183b6001848484818110611821576118216141cc565b905060200201602081019061183691906138a7565b612df9565b806118458161415b565b915050611802565b610fb5838383604051806020016040528060008152506120ae565b600a546001600160a01b031633146118925760405162461bcd60e51b8152600401610d6f90613fb9565b60005b81811015610fb557600e8383838181106118b1576118b16141cc565b90506020020160208101906118c691906138a7565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055806119028161415b565b915050611895565b600061191560085490565b82106119785760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610d6f565b6008828154811061198b5761198b6141cc565b90600052602060002001549050919050565b600a546001600160a01b031633146119c75760405162461bcd60e51b8152600401610d6f90613fb9565b80516119da90601d906020840190613786565b5050565b60606119e984611ceb565b8310611a46576040805160008082526020820190925290611a3e565b611a2b604051806060016040528060008152602001600081526020016000151581525090565b815260200190600190039081611a055790505b509050611b7f565b81611a5085611ceb565b611a5a8486614092565b10611a765783611a6986611ceb565b611a7391906140dd565b90505b60008167ffffffffffffffff811115611a9157611a916141e2565b604051908082528060200260200182016040528015611ae857816020015b611ad5604051806060016040528060008152602001600081526020016000151581525090565b815260200190600190039081611aaf5790505b50905060005b82811015611b7a576000611b06886106fd848a614092565b601e5490915060009060ff1615611b2357611b2082611778565b90505b6040805160608101825283815260208101839052601e5460ff161515918101919091528451859085908110611b5a57611b5a6141cc565b602002602001018190525050508080611b729061415b565b915050611aee565b509150505b9392505050565b6000611b9061205a565b8015611bb957506202a300601954611ba89190614092565b42101580611bb95750600f54601554145b905090565b6000818152600260205260408120546001600160a01b031680610d3f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610d6f565b6000805b600e54811015611c9657826001600160a01b0316600e8281548110611c6057611c606141cc565b6000918252602090912001546001600160a01b03161415611c845750600192915050565b80611c8e8161415b565b915050611c39565b50600092915050565b600a546001600160a01b03163314611cc95760405162461bcd60e51b8152600401610d6f90613fb9565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038216611d565760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610d6f565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b03163314611d9c5760405162461bcd60e51b8152600401610d6f90613fb9565b611da66000612ee2565b565b600a546001600160a01b03163314611dd25760405162461bcd60e51b8152600401610d6f90613fb9565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314611e1e5760405162461bcd60e51b8152600401610d6f90613fb9565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314611e6a5760405162461bcd60e51b8152600401610d6f90613fb9565b6040805160808101825260008082526020820195865291810193845260608101928352601c80546001810182559252517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21160049092029182015592517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21284015590517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a213830155517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21490910155565b606060018054610d8c90614120565b600a546001600160a01b03163314611f715760405162461bcd60e51b8152600401610d6f90613fb9565b601a805460ff19811660ff90911615179055565b6000611f90826110ee565b80610d3f5750601e5460ff1692915050565b6119da338383612f34565b600d546001600160a01b031633146120155760405162461bcd60e51b815260206004820152602560248201527f4f6e6c7920746865206d696e6520616464726573732063616e206275726e2061604482015264206c6f636b60d81b6064820152608401610d6f565b61201e81613003565b50565b600a546001600160a01b0316331461204b5760405162461bcd60e51b8152600401610d6f90613fb9565b601e805460ff19166001179055565b6000601954600014158015611bb957505060195442101590565b601c818154811061208457600080fd5b60009182526020909120600490910201805460018201546002830154600390930154919350919084565b6120b83383612b7b565b6120d45760405162461bcd60e51b8152600401610d6f90614041565b611583848484846130aa565b6000601854600014158015611bb957505060185442101590565b600a546001600160a01b031633146121245760405162461bcd60e51b8152600401610d6f90613fb9565b601455565b6060612134826110ee565b1561217357601d61214c61214784611778565b6130dd565b60405160200161215d929190613dc2565b6040516020818303038152906040529050919050565b61217c82611f85565b61219257601d60405160200161215d9190613d97565b61219b82611778565b600114156121bf57601d6121ae836130dd565b60405160200161215d929190613d2e565b601d6121ca836130dd565b60405160200161215d929190613cf3565b919050565b600a546001600160a01b03163314612257576013546012546122069061ffff84166140be565b6122109190614092565b3410156122575760405162461bcd60e51b8152602060048201526015602482015274125b98dbdc9c9958dd08185b5bdd5b9d081cd95b9d605a1b6044820152606401610d6f565b61225f6120e0565b6122ab5760405162461bcd60e51b815260206004820152601760248201527f5468652070726573616c65206973206e6f74206f70656e0000000000000000006044820152606401610d6f565b6010548161ffff166016546122c09190614092565b111561230e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742070726573616c6520737570706c7900000000006044820152606401610d6f565b601a5460ff1661236d5761232133611c35565b61236d5760405162461bcd60e51b815260206004820152601d60248201527f5468652073656e646572206973206e6f742077686974656c69737465640000006044820152606401610d6f565b6123778133612df9565b8061ffff166016600082825461238d9190614092565b909155505050565b600a546001600160a01b031633146123bf5760405162461bcd60e51b8152600401610d6f90613fb9565b478111156123cc57600080fd5b604051339082156108fc029083906000818181858888f193505050501580156119da573d6000803e3d6000fd5b600a546001600160a01b031633146124235760405162461bcd60e51b8152600401610d6f90613fb9565b601155565b612430611b86565b61247c5760405162461bcd60e51b815260206004820152601a60248201527f557067726164652073616c657320617265206e6f74206f70656e0000000000006044820152606401610d6f565b601e8161ffff1611156124a15760405162461bcd60e51b8152600401610d6f90613f55565b601c54821080156124b25750600182115b6124ee5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081b195d995b609a1b6044820152606401610d6f565b601c8281548110612501576125016141cc565b9060005260206000209060040201600101548161ffff16601c848154811061252b5761252b6141cc565b9060005260206000209060040201600001546125479190614092565b11156125655760405162461bcd60e51b8152600401610d6f90613f8c565b60028214156125865760405162461bcd60e51b8152600401610d6f90613fee565b6000601c838154811061259b5761259b6141cc565b9060005260206000209060040201600201548261ffff166125bc91906140be565b90506125d0600a546001600160a01b031690565b6001600160a01b0316336001600160a01b03161461271657600b546040516370a0823160e01b815233600482015282916001600160a01b0316906370a082319060240160206040518083038186803b15801561262b57600080fd5b505afa15801561263f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126639190613b9a565b10156126b15760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74204449414d4f4e442062616c616e6365000000006044820152606401610d6f565b600b54604051632770a7eb60e21b8152336004820152602481018390526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b1580156126fd57600080fd5b505af1158015612711573d6000803e3d6000fd5b505050505b60005b8261ffff16811015611583576000601754600f546127379190614092565b90506127433382612b61565b6000818152601b60205260409020859055601c805486908110612768576127686141cc565b6000918252602082206004909102018054916127838361415b565b9091555050601780549060006127988361415b565b91905055505080806127a99061415b565b915050612719565b600a546001600160a01b031633146127db5760405162461bcd60e51b8152600401610d6f90613fb9565b600f55565b6060601d6040516020016127f49190613d69565b604051602081830303815290604052905090565b600d546000906001600160a01b038381169116141561282957506001610d3f565b6001600160a01b0380841660009081526005602090815260408083209386168352929052205460ff16611b7f565b600a546001600160a01b031633146128815760405162461bcd60e51b8152600401610d6f90613fb9565b6001600160a01b0381166128e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d6f565b61201e81612ee2565b600e81815481106128ff57600080fd5b6000918252602090912001546001600160a01b0316905081565b600a546001600160a01b031633146129905760135460115461293f9061ffff84166140be565b6129499190614092565b3410156129905760405162461bcd60e51b8152602060048201526015602482015274125b98dbdc9c9958dd08185b5bdd5b9d081cd95b9d605a1b6044820152606401610d6f565b61299861205a565b6129e45760405162461bcd60e51b815260206004820181905260248201527f546865206d61696e2073616c6520706572696f64206973206e6f74206f70656e6044820152606401610d6f565b61201e8133612df9565b600c546001600160a01b0316331480612a115750600a546001600160a01b031633145b612a765760405162461bcd60e51b815260206004820152603060248201527f4d75737420626520746865206f776e6572206f72206576656e7420616464726560448201526f737320746f207365742070726963657360801b6064820152608401610d6f565b80601c8381548110612a8a57612a8a6141cc565b9060005260206000209060040201600201819055505050565b60006001600160e01b031982166380ac58cd60e01b1480612ad457506001600160e01b03198216635b5e139f60e01b145b80610d3f57506301ffc9a760e01b6001600160e01b0319831614610d3f565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612b2882611bbe565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6119da8282604051806020016040528060008152506131db565b6000818152600260205260408120546001600160a01b0316612bf45760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610d6f565b6000612bff83611bbe565b9050806001600160a01b0316846001600160a01b03161480612c265750612c268185612808565b80612c4a5750836001600160a01b0316612c3f84610e0f565b6001600160a01b0316145b949350505050565b826001600160a01b0316612c6582611bbe565b6001600160a01b031614612cc95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610d6f565b6001600160a01b038216612d2b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610d6f565b612d3683838361320e565b612d41600082612af3565b6001600160a01b0383166000908152600360205260408120805460019290612d6a9084906140dd565b90915550506001600160a01b0382166000908152600360205260408120805460019290612d98908490614092565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600f548261ffff16601554612e0e9190614092565b1115612e2c5760405162461bcd60e51b8152600401610d6f90613f8c565b601e8261ffff161115612e515760405162461bcd60e51b8152600401610d6f90613f55565b60005b8261ffff16811015610fb557601554612e6d8382612b61565b60158054906000612e7d8361415b565b91905055506014546064612e98612e9360085490565b6132c6565b612ea29190614176565b1015612ebf576000818152601b6020526040902060019055612ecf565b6000818152601b60205260408120555b5080612eda8161415b565b915050612e54565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415612f965760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610d6f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600061300e82611bbe565b905061301c8160008461320e565b613027600083612af3565b6001600160a01b03811660009081526003602052604081208054600192906130509084906140dd565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6130b5848484612c52565b6130c18484848461339b565b6115835760405162461bcd60e51b8152600401610d6f90613f03565b6060816131015750506040805180820190915260018152600360fc1b602082015290565b8160005b811561312b57806131158161415b565b91506131249050600a836140aa565b9150613105565b60008167ffffffffffffffff811115613146576131466141e2565b6040519080825280601f01601f191660200182016040528015613170576020820181803683370190505b5090505b8415612c4a576131856001836140dd565b9150613192600a86614176565b61319d906030614092565b60f81b8183815181106131b2576131b26141cc565b60200101906001600160f81b031916908160001a9053506131d4600a866140aa565b9450613174565b6131e583836134a8565b6131f2600084848461339b565b610fb55760405162461bcd60e51b8152600401610d6f90613f03565b6001600160a01b0383166132695761326481600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61328c565b816001600160a01b0316836001600160a01b03161461328c5761328c83826135f6565b6001600160a01b0382166132a357610fb581613693565b826001600160a01b0316826001600160a01b031614610fb557610fb58282613742565b60003233146133025760405162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b6044820152606401610d6f565b61330d6004436140dd565b403261331a6002436140dd565b406133266003436140dd565b406133326001436140dd565b60408051602081019690965260609490941b6bffffffffffffffffffffffff1916938501939093526054840191909152607483015240609482015260b481018390524260d482015260f40160408051601f19818403018152919052805160209091012092915050565b60006001600160a01b0384163b1561349d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906133df903390899088908890600401613e0b565b602060405180830381600087803b1580156133f957600080fd5b505af1925050508015613429575060408051601f3d908101601f1916820190925261342691810190613ae4565b60015b613483573d808015613457576040519150601f19603f3d011682016040523d82523d6000602084013e61345c565b606091505b50805161347b5760405162461bcd60e51b8152600401610d6f90613f03565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612c4a565b506001949350505050565b6001600160a01b0382166134fe5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610d6f565b6000818152600260205260409020546001600160a01b0316156135635760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610d6f565b61356f6000838361320e565b6001600160a01b0382166000908152600360205260408120805460019290613598908490614092565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000600161360384611ceb565b61360d91906140dd565b600083815260076020526040902054909150808214613660576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906136a5906001906140dd565b600083815260096020526040812054600880549394509092849081106136cd576136cd6141cc565b9060005260206000200154905080600883815481106136ee576136ee6141cc565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613726576137266141b6565b6001900381819060005260206000200160009055905550505050565b600061374d83611ceb565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b82805461379290614120565b90600052602060002090601f0160209004810192826137b457600085556137fa565b82601f106137cd57805160ff19168380011785556137fa565b828001600101855582156137fa579182015b828111156137fa5782518255916020019190600101906137df565b5061380692915061380a565b5090565b5b80821115613806576000815560010161380b565b600067ffffffffffffffff8084111561383a5761383a6141e2565b604051601f8501601f19908116603f01168101908282118183101715613862576138626141e2565b8160405280935085815286868601111561387b57600080fd5b858560208301376000602087830101525050509392505050565b803561ffff811681146121db57600080fd5b6000602082840312156138b957600080fd5b8135611b7f816141f8565b600080604083850312156138d757600080fd5b82356138e2816141f8565b915060208301356138f2816141f8565b809150509250929050565b60008060006060848603121561391257600080fd5b833561391d816141f8565b9250602084013561392d816141f8565b929592945050506040919091013590565b6000806000806080858703121561395457600080fd5b843561395f816141f8565b9350602085013561396f816141f8565b925060408501359150606085013567ffffffffffffffff81111561399257600080fd5b8501601f810187136139a357600080fd5b6139b28782356020840161381f565b91505092959194509250565b600080604083850312156139d157600080fd5b82356139dc816141f8565b9150602083013580151581146138f257600080fd5b60008060408385031215613a0457600080fd5b8235613a0f816141f8565b946020939093013593505050565b600080600060608486031215613a3257600080fd5b8335613a3d816141f8565b95602085013595506040909401359392505050565b60008060208385031215613a6557600080fd5b823567ffffffffffffffff80821115613a7d57600080fd5b818501915085601f830112613a9157600080fd5b813581811115613aa057600080fd5b8660208260051b8501011115613ab557600080fd5b60209290920196919550909350505050565b600060208284031215613ad957600080fd5b8135611b7f8161420d565b600060208284031215613af657600080fd5b8151611b7f8161420d565b600060208284031215613b1357600080fd5b813567ffffffffffffffff811115613b2a57600080fd5b8201601f81018413613b3b57600080fd5b612c4a8482356020840161381f565b600060208284031215613b5c57600080fd5b611b7f82613895565b60008060408385031215613b7857600080fd5b6138e283613895565b600060208284031215613b9357600080fd5b5035919050565b600060208284031215613bac57600080fd5b5051919050565b60008060408385031215613bc657600080fd5b82359150613bd660208401613895565b90509250929050565b60008060408385031215613bf257600080fd5b50508035926020909101359150565b600080600060608486031215613c1657600080fd5b505081359360208301359350604090920135919050565b60008151808452613c458160208601602086016140f4565b601f01601f19169290920160200192915050565b8054600090600181811c9080831680613c7357607f831692505b6020808410821415613c9557634e487b7160e01b600052602260045260246000fd5b818015613ca95760018114613cba57613ce7565b60ff19861689528489019650613ce7565b60008881526020902060005b86811015613cdf5781548b820152908501908301613cc6565b505084890196505b50505050505092915050565b6000613cff8285613c59565b8351613d0f8183602088016140f4565b6a16b6b4b732b9173539b7b760a91b9101908152600b01949350505050565b6000613d3a8285613c59565b8351613d4a8183602088016140f4565b6a16b9bab832b9173539b7b760a91b9101908152600b01949350505050565b6000613d758284613c59565b7131b7b73a3930b1ba16b6b2ba30973539b7b760711b81526012019392505050565b6000613da38284613c59565b6e3ab73932bb32b0b632b2173539b7b760891b8152600f019392505050565b6000613dce8285613c59565b656c6576656c2f60d01b81528351613ded8160068401602088016140f4565b64173539b7b760d91b60069290910191820152600b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613e3e90830184613c2d565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613e895783516001600160a01b031683529284019291840191600101613e64565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613ee357815180518552868101518786015285015115158585015260609093019290850190600101613eb2565b5091979650505050505050565b602081526000611b7f6020830184613c2d565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252601a908201527f546f6f206d616e7920707572636861736573206174206f6e6365000000000000604082015260600190565b602080825260139082015272496e73756666696369656e7420737570706c7960681b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526033908201527f4c6f636b732063616e206f6e6c79206265206d696e746564207468726f756768604082015272081d1a1948195d995b9d0818dbdb9d1c9858dd606a1b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156140a5576140a561418a565b500190565b6000826140b9576140b96141a0565b500490565b60008160001904831182151516156140d8576140d861418a565b500290565b6000828210156140ef576140ef61418a565b500390565b60005b8381101561410f5781810151838201526020016140f7565b838111156115835750506000910152565b600181811c9082168061413457607f821691505b6020821081141561415557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561416f5761416f61418a565b5060010190565b600082614185576141856141a0565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461201e57600080fd5b6001600160e01b03198116811461201e57600080fdfea26469706673582212209977672528efb2fa6629e304a51cd641de6f250d5a9b81e478f9f86957a4fd8664736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261667962656963706473663333347835656b326c6f7275337037727832763370706d70706c7179787a6d70356a35627971696f6b666378646c6d2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4d696e657256657273654e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d564e4654000000000000000000000000000000000000000000000000000000