[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "tradingActive", "type": "bool" } ], "name": "EnabledTrading", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "MaxTransactionExclusion", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [], "name": "RemovedLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxBuyAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxSellAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxWalletAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "UpdatedTeamWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isWhitelisted", "type": "bool" } ], "name": "Whitelisted", "type": "event" }, { "inputs": [], "name": "CAP_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNISWAP_FACTORY", "outputs": [ { "internalType": "contract IUniswapV2Factory", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNISWAP_ROUTER", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNISWAP_V2_PAIR", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "controller", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "fetchFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintToAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_capSupply", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newBuyFees", "type": "uint256" }, { "internalType": "uint256", "name": "newSellFees", "type": "uint256" } ], "name": "setNewFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newTeamWallet", "type": "address" } ], "name": "setTeamWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxedTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "teamWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenSwapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingOpenedOnBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxBuyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxSellAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isWhitelisted", "type": "bool" } ], "name": "updateWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawStuckEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "withdrawStuckToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a060405269d5e1f1c66d1d3fc000006006556008805463ffffffff60a81b1916630100000160a81b17905534801562000037575f80fd5b5060405180604001604052806008815260200167384c454d454e545360c01b815250604051806040016040528060028152602001610e1360f21b8152508160039081620000859190620007d7565b506004620000948282620007d7565b505050620000b1620000ab6200036160201b60201c565b62000365565b620000d433620000ce60086a06a1743b1143caf2000000620008b7565b620003b6565b620000f630737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620003f6565b62000117737a250d5630b4cf539739df2c5dacb4c659f2488d60016200040a565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b29190620008d7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002239190620008d7565b6001600160a01b03166080526103e86200023c60025490565b6200024990600c62000906565b620002559190620008b7565b6009556103e86200026560025490565b6200027290600562000906565b6200027e9190620008b7565b600a556103e86200028e60025490565b6200029b90601462000906565b620002a79190620008b7565b600b55612710620002b760025490565b620002c490603c62000906565b620002d09190620008b7565b600c5560088054610100600160a81b031916336101008102919091179091555f818152601360205260409020805460ff191660019081179091556200031691906200040a565b620003233060016200040a565b6200033261dead60016200040a565b6200033f3360016200046c565b6200034c3060016200046c565b6200035b61dead60016200046c565b6200093c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003e55760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620003f25f8383620004d4565b5050565b62000405838383600162000603565b505050565b6001600160a01b0382165f81815260116020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b62000476620006dc565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03831662000502578060025f828254620004f6919062000926565b90915550620005749050565b6001600160a01b0383165f9081526020819052604090205481811015620005565760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620003dc565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166200059257600280548290039055620005b0565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005f691815260200190565b60405180910390a3505050565b6001600160a01b0384166200062e5760405163e602df0560e01b81525f6004820152602401620003dc565b6001600160a01b0383166200065957604051634a1406b160e11b81525f6004820152602401620003dc565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015620006d657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620006cd91815260200190565b60405180910390a35b50505050565b6005546001600160a01b03163314620007385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003dc565b565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200076357607f821691505b6020821081036200078257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200040557805f5260205f20601f840160051c81016020851015620007af5750805b601f840160051c820191505b81811015620007d0575f8155600101620007bb565b5050505050565b81516001600160401b03811115620007f357620007f36200073a565b6200080b816200080484546200074e565b8462000788565b602080601f83116001811462000841575f8415620008295750858301515b5f19600386901b1c1916600185901b1785556200089b565b5f85815260208120601f198616915b82811015620008715788860151825594840194600190910190840162000850565b50858210156200088f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f82620008d257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620008e8575f80fd5b81516001600160a01b0381168114620008ff575f80fd5b9392505050565b8082028115828204841417620009205762000920620008a3565b92915050565b80820180821115620009205762000920620008a3565b6080516124e0620009785f395f818161085d015281816117170152818161185701528181611a1b01528181611b280152611ba701526124e05ff3fe60806040526004361061028e575f3560e01c8063751039fc11610155578063c13aa7b5116100be578063d85ba06311610078578063d85ba06314610787578063d936547e1461079c578063dc3f0d0f146107ca578063dd62ed3e146107e9578063f2fde38b1461082d578063f40acc3d1461084c575f80fd5b8063c13aa7b5146106b9578063c18bc195146106e7578063c74c0fac14610706578063c9567bf91461072d578063d257b34f14610741578063d826492014610760575f80fd5b806395d89b411161010f57806395d89b4114610613578063a9059cbb14610627578063aa4bde2814610646578063baccf5cf1461065b578063bbc0c7421461067a578063c02466681461069a575f80fd5b8063751039fc1461058557806376d628b7146105995780637fa787ba146105ae57806388e765ff146105c25780638da5cb5b146105d757806392eefe9b146105f4575f80fd5b80632be32b61116101f757806366d602ae116101b157806366d602ae146104d45780636a486a8e146104e95780636ddd1713146104fe5780636f8b44b01461051e57806370a082311461053d578063715018a614610571575f80fd5b80632be32b611461041e578063313ce5671461043d57806340c10f19146103e05780634a62bb651461045857806359927044146104785780636057b3eb146104b4575f80fd5b80630e300099116102485780630e3000991461036a57806310d5de531461037f5780631525ff7d146103ad57806318160ddd146103cc57806321ca4236146103e057806323b872dd146103ff575f80fd5b8063068acf6c1461029957806306fdde03146102ba578063070c0c4e146102e4578063095ea7b3146103075780630a3b39a3146103365780630d392cd91461034b575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102b86102b3366004612188565b61087f565b005b3480156102c5575f80fd5b506102ce610a39565b6040516102db91906121aa565b60405180910390f35b3480156102ef575f80fd5b506102f960065481565b6040519081526020016102db565b348015610312575f80fd5b506103266103213660046121f6565b610ac9565b60405190151581526020016102db565b348015610341575f80fd5b506102f960075481565b348015610356575f80fd5b506102b861036536600461222d565b610ae2565b348015610375575f80fd5b506102f9600c5481565b34801561038a575f80fd5b50610326610399366004612188565b60116020525f908152604090205460ff1681565b3480156103b8575f80fd5b506102b86103c7366004612188565b610b49565b3480156103d7575f80fd5b506002546102f9565b3480156103eb575f80fd5b506102b86103fa3660046121f6565b610c0a565b34801561040a575f80fd5b50610326610419366004612264565b610cbe565b348015610429575f80fd5b506102b86104383660046122a2565b610ce1565b348015610448575f80fd5b50604051601281526020016102db565b348015610463575f80fd5b5060085461032690600160a81b900460ff1681565b348015610483575f80fd5b5060085461049c9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016102db565b3480156104bf575f80fd5b5060085461032690600160c01b900460ff1681565b3480156104df575f80fd5b506102f9600a5481565b3480156104f4575f80fd5b506102f9600e5481565b348015610509575f80fd5b5060085461032690600160b81b900460ff1681565b348015610529575f80fd5b506102b86105383660046122a2565b610dae565b348015610548575f80fd5b506102f9610557366004612188565b6001600160a01b03165f9081526020819052604090205490565b34801561057c575f80fd5b506102b8610de1565b348015610590575f80fd5b506102b8610df4565b3480156105a4575f80fd5b506102f9600f5481565b3480156105b9575f80fd5b506102b8610e33565b3480156105cd575f80fd5b506102f960095481565b3480156105e2575f80fd5b506005546001600160a01b031661049c565b3480156105ff575f80fd5b506102b861060e366004612188565b610eee565b34801561061e575f80fd5b506102ce610f3f565b348015610632575f80fd5b506103266106413660046121f6565b610f4e565b348015610651575f80fd5b506102f9600b5481565b348015610666575f80fd5b506102b86106753660046122b9565b610f5b565b348015610685575f80fd5b5060085461032690600160b01b900460ff1681565b3480156106a5575f80fd5b506102b86106b436600461222d565b610f6e565b3480156106c4575f80fd5b506103266106d3366004612188565b60136020525f908152604090205460ff1681565b3480156106f2575f80fd5b506102b86107013660046122a2565b610fcd565b348015610711575f80fd5b5061049c735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b348015610738575f80fd5b506102b8611096565b34801561074c575f80fd5b506102b861075b3660046122a2565b611158565b34801561076b575f80fd5b5061049c737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610792575f80fd5b506102f9600d5481565b3480156107a7575f80fd5b506103266107b6366004612188565b60126020525f908152604090205460ff1681565b3480156107d5575f80fd5b506102b86107e43660046122a2565b6111fc565b3480156107f4575f80fd5b506102f96108033660046122d9565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610838575f80fd5b506102b8610847366004612188565b6112c3565b348015610857575f80fd5b5061049c7f000000000000000000000000000000000000000000000000000000000000000081565b6005546001600160a01b03163314806108a7575060085461010090046001600160a01b031633145b6108f05760405162461bcd60e51b815260206004820152601560248201527411549493d48e88139bdd08185d5d1a1bdc9a5e9959605a1b60448201526064015b60405180910390fd5b6001600160a01b038116610938576005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610934573d5f803e3d5ffd5b5050565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa15801561097e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612305565b9050816001600160a01b031663a9059cbb6109c56005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a33919061231c565b50505050565b606060038054610a4890612337565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490612337565b8015610abf5780601f10610a9657610100808354040283529160200191610abf565b820191905f5260205f20905b815481529060010190602001808311610aa257829003601f168201915b5050505050905090565b5f33610ad6818585611339565b60019150505b92915050565b610aea61134b565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527fa54714518c5d275fdcd3d2a461e4858e4e8cb04fb93cd0bca9d6d34115f2644091015b60405180910390a25050565b610b5161134b565b6001600160a01b038116610bb95760405162461bcd60e51b815260206004820152602960248201527f4552524f523a205f6e65775465616d57616c6c6574206164647265737320636160448201526806e6e6f7420626520360bc1b60648201526084016108e7565b60088054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517f1e5bdddae24cc63e4aaf28b4e4279d10e883849a89747761a427c245905c4240905f90a250565b335f9081526013602052604090205460ff16610c385760405162461bcd60e51b81526004016108e79061236f565b600654610c50826a06a1743b1143caf20000006123ae565b1115610cb45760405162461bcd60e51b815260206004820152602d60248201527f4d617820737570706c79206f72206d617820706572206d6f6e7468206861732060448201526c3132b2b7103932b0b1b432b21760991b60648201526084016108e7565b61093482826113a5565b5f33610ccb8582856113d9565b610cd685858561144e565b506001949350505050565b610ce961134b565b6103e8610cf560025490565b610d009060016123c1565b610d0a91906123d8565b811015610d725760405162461bcd60e51b815260206004820152603060248201527f4552524f523a2043616e6e6f7420736574206d61782062757920616d6f756e7460448201526f206c6f776572207468616e20302e312560801b60648201526084016108e7565b60098190556040518181527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b335f9081526013602052604090205460ff16610ddc5760405162461bcd60e51b81526004016108e79061236f565b600655565b610de961134b565b610df25f611c51565b565b610dfc61134b565b6008805460ff60a81b191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b610e3b61134b565b5f610e4e6005546001600160a01b031690565b6001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610e95576040519150601f19603f3d011682016040523d82523d5f602084013e610e9a565b606091505b5050905080610eeb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a206661696c656420746f2077697468647261772066756e64730060448201526064016108e7565b50565b335f9081526013602052604090205460ff16610f1c5760405162461bcd60e51b81526004016108e79061236f565b6001600160a01b03165f908152601360205260409020805460ff19166001179055565b606060048054610a4890612337565b5f33610ad681858561144e565b610f6361134b565b600d91909155600e55565b610f7661134b565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610b3d565b610fd561134b565b6103e8610fe160025490565b610fec9060036123c1565b610ff691906123d8565b8110156110615760405162461bcd60e51b815260206004820152603360248201527f4552524f523a2043616e6e6f7420736574206d61782077616c6c657420616d6f604482015272756e74206c6f776572207468616e20302e332560681b60648201526084016108e7565b600b8190556040518181527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610da3565b61109e61134b565b600754156110fa5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b60648201526084016108e7565b436007556008805461010160b01b61ffff60b01b199091161790819055604051600160b01b90910460ff16151581527fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe520899060200160405180910390a1565b61116061134b565b620186a061116d60025490565b6111789060016123c1565b61118291906123d8565b8110156111f75760405162461bcd60e51b815260206004820152603c60248201527f4552524f523a205377617020616d6f756e742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e3030312520746f74616c20737570706c792e0000000060648201526084016108e7565b600c55565b61120461134b565b6103e861121060025490565b61121b9060016123c1565b61122591906123d8565b81101561128e5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2043616e6e6f7420736574206d61782073656c6c20616d6f756e60448201527074206c6f776572207468616e20302e312560781b60648201526084016108e7565b600a8190556040518181527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610da3565b6112cb61134b565b6001600160a01b0381166113305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e7565b610eeb81611c51565b6113468383836001611ca2565b505050565b6005546001600160a01b03163314610df25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e7565b6001600160a01b0382166113ce5760405163ec442f0560e01b81525f60048201526024016108e7565b6109345f8383611d74565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a33578181101561144057604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016108e7565b610a3384848484035f611ca2565b6001600160a01b0383166114b25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108e7565b6001600160a01b0382166115145760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108e7565b5f81116115635760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016108e7565b6001600160a01b0383165f9081526012602052604090205460ff16806115a057506001600160a01b0382165f9081526012602052604090205460ff165b156115b057611346838383611e9a565b600854600160a81b900460ff16156119d7576005546001600160a01b038481169116148015906115ee57506005546001600160a01b03838116911614155b801561160257506001600160a01b03821615155b801561161957506001600160a01b03821661dead14155b156119d757600854600160b01b900460ff16611715576001600160a01b0383165f9081526011602052604090205460ff168061166c57506001600160a01b0382165f9081526011602052604090205460ff165b6116b85760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e00000060448201526064016108e7565b6005546001600160a01b038481169116146117155760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c65640000000000000060448201526064016108e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561176e57506001600160a01b0382165f9081526011602052604090205460ff16155b15611855576009548111156117dd5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b60648201526084016108e7565b600b546001600160a01b0383165f9081526020819052604090205461180290836123ae565b11156118505760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016108e7565b6119d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156118ae57506001600160a01b0383165f9081526011602052604090205460ff16155b1561191f57600a548111156118505760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b60648201526084016108e7565b6001600160a01b0382165f9081526011602052604090205460ff1615801561195f57506001600160a01b0383165f9081526011602052604090205460ff16155b156119d757600b546001600160a01b0383165f9081526020819052604090205461198990836123ae565b11156119d75760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016108e7565b305f90815260208190526040902054600c5481108015908190611a035750600854600160b81b900460ff165b8015611a12575060085460ff16155b8015611a5057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611a7457506001600160a01b0385165f9081526010602052604090205460ff16155b8015611a9857506001600160a01b0384165f9081526010602052604090205460ff16155b15611abd576008805460ff19166001179055611ab2611ef7565b6008805460ff191690555b6001600160a01b0385165f9081526010602052604090205460019060ff1680611afd57506001600160a01b0385165f9081526010602052604090205460ff165b15611b0557505f5b5f8115611c3d57600854600160c01b900460ff1615611b2657611b26611f92565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316148015611b6857505f600e54115b15611ba5576064600e5486611b7d91906123c1565b611b8791906123d8565b905080600f5f828254611b9a91906123ae565b90915550611c1f9050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316148015611be757505f600d54115b15611c1f576064600d5486611bfc91906123c1565b611c0691906123d8565b905080600f5f828254611c1991906123ae565b90915550505b8015611c3057611c30873083611e9a565b611c3a81866123f7565b94505b611c48878787611e9a565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038416611ccb5760405163e602df0560e01b81525f60048201526024016108e7565b6001600160a01b038316611cf457604051634a1406b160e11b81525f60048201526024016108e7565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610a3357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d6691815260200190565b60405180910390a350505050565b6001600160a01b038316611d9e578060025f828254611d9391906123ae565b90915550611e0e9050565b6001600160a01b0383165f9081526020819052604090205481811015611df05760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016108e7565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216611e2a57600280548290039055611e48565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e8d91815260200190565b60405180910390a3505050565b6001600160a01b038316611ec357604051634b637e8f60e11b81525f60048201526024016108e7565b6001600160a01b038216611eec5760405163ec442f0560e01b81525f60048201526024016108e7565b611346838383611d74565b305f90815260208190526040902054600f54811580611f14575080155b15611f1d575050565b600c54821115611f2d57600c5491505b5f611f378361201a565b6008546040516101009091046001600160a01b03169047905f81818185875af1925050503d805f8114611f85576040519150601f19603f3d011682016040523d82523d5f602084013e611f8a565b606091505b505050505050565b5f60075411611fd65760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b60448201526064016108e7565b60075443905f90611fe890601e6123ae565b9050808211611fff576001600d819055600e555050565b6001600d819055600e556008805460ff60c01b191690555050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061204d5761204d61240a565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e1919061241e565b816001815181106120f4576120f461240a565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061214b9085905f90869030904290600401612439565b5f604051808303815f87803b158015612162575f80fd5b505af1158015611f8a573d5f803e3d5ffd5b6001600160a01b0381168114610eeb575f80fd5b5f60208284031215612198575f80fd5b81356121a381612174565b9392505050565b5f602080835283518060208501525f5b818110156121d6578581018301518582016040015282016121ba565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612207575f80fd5b823561221281612174565b946020939093013593505050565b8015158114610eeb575f80fd5b5f806040838503121561223e575f80fd5b823561224981612174565b9150602083013561225981612220565b809150509250929050565b5f805f60608486031215612276575f80fd5b833561228181612174565b9250602084013561229181612174565b929592945050506040919091013590565b5f602082840312156122b2575f80fd5b5035919050565b5f80604083850312156122ca575f80fd5b50508035926020909101359150565b5f80604083850312156122ea575f80fd5b82356122f581612174565b9150602083013561225981612174565b5f60208284031215612315575f80fd5b5051919050565b5f6020828403121561232c575f80fd5b81516121a381612220565b600181811c9082168061234b57607f821691505b60208210810361236957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601190820152702737ba10309031b7b73a3937b63632b91760791b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610adc57610adc61239a565b8082028115828204841417610adc57610adc61239a565b5f826123f257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610adc57610adc61239a565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561242e575f80fd5b81516121a381612174565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156124895784516001600160a01b031683529383019391830191600101612464565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122089788b658df335c80279a41e045f1229e45ea3910ca9878700db941cd797819464736f6c63430008180033