[ { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "address", "name": "_marketer", "type": "address" }, { "internalType": "address", "name": "_distributor", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "uint256", "name": "_amountETHLiquidity", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_amountToLiquify", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "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" }, { "inputs": [], "name": "Collect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "EP", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WETH", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_black", "type": "address" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_distributor", "type": "address" } ], "name": "changeDistributor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "developerFeeReciver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableTransferDelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract INetswapRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "routerAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_ep", "type": "address" } ], "name": "setEPContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsRewardExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_black", "type": "address" } ], "name": "unblacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawEther", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052620000126012600a62000668565b6200002290633b9aca0062000680565b6002819055600580546001600160a01b031990811661dead179091556006805482169055600780548216905560088054821673deaddeaddeaddeaddeaddeaddeaddeaddead00001790556207a120600e556011805460ff1990811660019081179092556102586012556127106013819055606460148190556101f46015556000601681905560178190556018556019805486169055601a805486169055601b80549095169094556103e8601c55601d8490556a7c13bc4b2c133c56000000601e819055601f5560c8602655602793909355610708602855602a80548216905560318054909116909117905562000118916200069a565b6032553480156200012857600080fd5b50604051620030f2380380620030f28339810160408190526200014b91620006da565b620001563362000497565b336000818152600160208181526040808420805460ff191690931790925560078054306001600160a01b03199182161790915560198054821686179055601a805482166001600160a01b0389811691909117909155601b80548316909617909555600a8054821695891695861790556009805490911685179055815163c45a015560e01b8152915192939263c45a01559260048082019392918290030181865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f919062000724565b9050806001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663be159a6e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba919062000724565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000724565b600b80546001600160a01b039283166001600160a01b03199182161782553060008181526004602090815260408083208b88168452825280832060001990819055600c80548b8a169088168117909155600d8054881690911790553380855260238452828520805460ff199081166001908117909255858052848720805482168317905560218652848720805482168317905598548a1686526022855283862080548a1682179055958552828520805489168717905560055490981684528184208054881686179055878452602b90925290912080549094169091179092556019805490911690921790915562000426908590620004e7565b50600b5462000441906001600160a01b0316600019620004e7565b5060025433600081815260036020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505062000742565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620005439086815260200190565b60405180910390a35060015b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005ac57816000190482111562000590576200059062000555565b808516156200059e57918102915b93841c939080029062000570565b509250929050565b600082620005c5575060016200054f565b81620005d4575060006200054f565b8160018114620005ed5760028114620005f85762000618565b60019150506200054f565b60ff8411156200060c576200060c62000555565b50506001821b6200054f565b5060208310610133831016604e8410600b84101617156200063d575081810a6200054f565b6200064983836200056b565b806000190482111562000660576200066062000555565b029392505050565b60006200067960ff841683620005b4565b9392505050565b80820281158282048414176200054f576200054f62000555565b600082620006b857634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160a01b0381168114620006d557600080fd5b919050565b600080600060608486031215620006f057600080fd5b620006fb84620006bd565b92506200070b60208501620006bd565b91506200071b60408501620006bd565b90509250925092565b6000602082840312156200073757600080fd5b6200067982620006bd565b6129a080620007526000396000f3fe6080604052600436106103d25760003560e01c8063802cd15f116101fd578063c1826d7811610118578063e91f214e116100ab578063f84ba65d1161007a578063f84ba65d14610b70578063f887ea4014610b90578063f9f92be414610bb0578063fe575a8714610bd0578063fe9fbb8014610c0957600080fd5b8063e91f214e14610aec578063e96fada214610b10578063f0b37c0414610b30578063f2fde38b14610b5057600080fd5b8063d51ed1c8116100e7578063d51ed1c814610a51578063dd62ed3e14610a71578063df20fd4914610ab7578063e884f26014610ad757600080fd5b8063c1826d78146109ec578063c6d2577d14610a01578063c876d0b914610a17578063ca33e64c14610a3157600080fd5b8063a8aa1b3111610190578063b10abe441161015f578063b10abe4414610981578063b210b06d146109a1578063b6a5d7de146109b6578063bf56b371146109d657600080fd5b8063a8aa1b31146108f1578063a9059cbb14610911578063ace1178314610931578063ad5c46481461096157600080fd5b806395d89b41116101cc57806395d89b41146108625780639d1944f514610891578063a4b45c00146108b1578063a51af4c5146108d157600080fd5b8063802cd15f146107ee57806382247ec01461080e57806389ef69f6146108245780638da5cb5b1461084457600080fd5b80633268cc56116102ed5780635d0044ca11610280578063715018a61161024f578063715018a61461078e57806375e3661e146107a35780637ae316d0146107c35780637d1db4a5146107d857600080fd5b80635d0044ca146106fe578063658d4b7f1461071e5780636ddd17131461073e57806370a082311461075857600080fd5b80634f7821f9116102bc5780634f7821f91461067e578063522f68151461069e578063571ac8b0146106be5780635c85974f146106de57600080fd5b80633268cc56146106045780633425c0011461062457806335ddf3a7146106445780633bb8a8d41461066457600080fd5b806318160ddd1161036557806323b872dd1161033457806323b872dd146105935780632b112e49146105b35780632d48e896146105c8578063313ce567146105e857600080fd5b806318160ddd14610506578063201e79911461051b5780632119fd5a1461053b5780632375ce401461057357600080fd5b806306fdde03116103a157806306fdde031461045e57806307c89fe814610496578063095ea7b3146104c65780631161ae39146104e657600080fd5b806301339c21146103de5780630445b667146103f5578063048c7baf1461041e57806304a66b481461043e57600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f3610c29565b005b34801561040157600080fd5b5061040b60325481565b6040519081526020015b60405180910390f35b34801561042a57600080fd5b506103f3610439366004612585565b610ca4565b34801561044a57600080fd5b506103f36104593660046125be565b610cf2565b34801561046a57600080fd5b506040805180820190915260068152652a32b9ba191960d11b60208201525b60405161041591906125f9565b3480156104a257600080fd5b506104b66104b136600461265c565b610d68565b6040519015158152602001610415565b3480156104d257600080fd5b506104b66104e1366004612679565b610d95565b3480156104f257600080fd5b506104b66105013660046126a5565b610e02565b34801561051257600080fd5b5060025461040b565b34801561052757600080fd5b506103f36105363660046126a5565b610e16565b34801561054757600080fd5b50601b5461055b906001600160a01b031681565b6040516001600160a01b039091168152602001610415565b34801561057f57600080fd5b506103f361058e3660046126c7565b610e46565b34801561059f57600080fd5b506104b66105ae3660046126f3565b610e9b565b3480156105bf57600080fd5b5061040b610f5f565b3480156105d457600080fd5b506103f36105e33660046126a5565b610fb1565b3480156105f457600080fd5b5060405160128152602001610415565b34801561061057600080fd5b50600a5461055b906001600160a01b031681565b34801561063057600080fd5b506103f361063f36600461265c565b611040565b34801561065057600080fd5b506103f361065f366004612734565b611069565b34801561067057600080fd5b50602a546104b69060ff1681565b34801561068a57600080fd5b506103f361069936600461265c565b611171565b3480156106aa57600080fd5b506103f36106b9366004612679565b61119b565b3480156106ca57600080fd5b506104b66106d936600461265c565b61128e565b3480156106ea57600080fd5b506103f36106f9366004612769565b61129c565b34801561070a57600080fd5b506103f3610719366004612769565b6112e2565b34801561072a57600080fd5b506103f3610739366004612734565b611328565b34801561074a57600080fd5b506031546104b69060ff1681565b34801561076457600080fd5b5061040b61077336600461265c565b6001600160a01b031660009081526003602052604090205490565b34801561079a57600080fd5b506103f3611377565b3480156107af57600080fd5b506103f36107be36600461265c565b61138b565b3480156107cf57600080fd5b5060125461040b565b3480156107e457600080fd5b5061040b601e5481565b3480156107fa57600080fd5b506103f361080936600461265c565b6113b4565b34801561081a57600080fd5b5061040b601f5481565b34801561083057600080fd5b506103f361083f36600461265c565b6113e8565b34801561085057600080fd5b506000546001600160a01b031661055b565b34801561086e57600080fd5b5060408051808201909152600681526554657374333360d01b6020820152610489565b34801561089d57600080fd5b506103f36108ac366004612769565b611414565b3480156108bd57600080fd5b506103f36108cc366004612782565b61144d565b3480156108dd57600080fd5b50600d5461055b906001600160a01b031681565b3480156108fd57600080fd5b50600b5461055b906001600160a01b031681565b34801561091d57600080fd5b506104b661092c366004612679565b6114a0565b34801561093d57600080fd5b506104b661094c36600461265c565b60236020526000908152604090205460ff1681565b34801561096d57600080fd5b5060085461055b906001600160a01b031681565b34801561098d57600080fd5b5060075461055b906001600160a01b031681565b3480156109ad57600080fd5b506103f36114ad565b3480156109c257600080fd5b506103f36109d136600461265c565b6114d9565b3480156109e257600080fd5b5061040b60245481565b3480156109f857600080fd5b506103f3611508565b348015610a0d57600080fd5b5061040b60255481565b348015610a2357600080fd5b506011546104b69060ff1681565b348015610a3d57600080fd5b5060195461055b906001600160a01b031681565b348015610a5d57600080fd5b5061040b610a6c366004612769565b61153f565b348015610a7d57600080fd5b5061040b610a8c366004612782565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610ac357600080fd5b506103f3610ad23660046127bb565b611583565b348015610ae357600080fd5b506104b66115bf565b348015610af857600080fd5b5061040b6fffffffffffffffffffffffffffffffff81565b348015610b1c57600080fd5b50601a5461055b906001600160a01b031681565b348015610b3c57600080fd5b506103f3610b4b36600461265c565b6115d9565b348015610b5c57600080fd5b506103f3610b6b36600461265c565b611602565b348015610b7c57600080fd5b506103f3610b8b366004612734565b6116a1565b348015610b9c57600080fd5b5060095461055b906001600160a01b031681565b348015610bbc57600080fd5b506103f3610bcb36600461265c565b6116f1565b348015610bdc57600080fd5b506104b6610beb36600461265c565b6001600160a01b031660009081526010602052604090205460ff1690565b348015610c1557600080fd5b506104b6610c2436600461265c565b61171d565b610c323361171d565b610c575760405162461bcd60e51b8152600401610c4e906127d7565b60405180910390fd5b60245415610c9a5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610c4e565b4360245542602555565b610cad3361171d565b610cc95760405162461bcd60e51b8152600401610c4e906127d7565b602a805460ff191694151594909417909355602c919091556000602d55602e55602f5543603055565b610cfb3361171d565b610d175760405162461bcd60e51b8152600401610c4e906127d7565b6014859055601884905560158390556016829055610d4182610d3b8581898961173b565b9061173b565b6012556013819055610d54600482612812565b60125410610d6157600080fd5b5050505050565b6000610d72611747565b506001600160a01b03811660009081526023602052604090205460ff165b919050565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610df09086815260200190565b60405180910390a35060015b92915050565b600082610e0e8361153f565b119392505050565b610e1f3361171d565b610e3b5760405162461bcd60e51b8152600401610c4e906127d7565b601c91909155601d55565b610e4f3361171d565b610e6b5760405162461bcd60e51b8152600401610c4e906127d7565b6002610e778385612812565b11158015610e8457508183115b610e8d57600080fd5b602692909255602755602855565b6002546001600160a01b0384166000908152600460209081526040808320338452909152812054909114610f4a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610f259184906117a1565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610f558484846117cd565b90505b9392505050565b6006546001600160a01b0316600090815260036020526040812054610fac906005546001600160a01b0316600090815260036020526040902054610fa69060025490611d64565b90611d64565b905090565b610fba3361171d565b610fd65760405162461bcd60e51b8152600401610c4e906127d7565b600c546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b15801561102457600080fd5b505af1158015611038573d6000803e3d6000fd5b505050505050565b611048611747565b6001600160a01b03166000908152602360205260409020805460ff19169055565b6110723361171d565b61108e5760405162461bcd60e51b8152600401610c4e906127d7565b6001600160a01b03821630148015906110b55750600b546001600160a01b03838116911614155b6110be57600080fd5b6001600160a01b0382166000908152602260205260409020805460ff1916821580159190911790915561112457600c54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca969060440161100a565b600c546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440161100a565b5050565b611179611747565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6111a3611747565b804710156111f35760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742062616c616e636520696e20636f6e74726163746044820152606401610c4e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611240576040519150601f19603f3d011682016040523d82523d6000602084013e611245565b606091505b50509050806112895760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606401610c4e565b505050565b6000610dfc82600254610d95565b6112a53361171d565b6112c15760405162461bcd60e51b8152600401610c4e906127d7565b6103e86002546112d19190612812565b8110156112dd57600080fd5b601e55565b6112eb3361171d565b6113075760405162461bcd60e51b8152600401610c4e906127d7565b6103e86002546113179190612812565b81101561132357600080fd5b601f55565b6113313361171d565b61134d5760405162461bcd60e51b8152600401610c4e906127d7565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b61137f611747565b6113896000611d70565b565b611393611747565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6113bc611747565b600c80546001600160a01b039092166001600160a01b03199283168117909155600d8054909216179055565b6113f0611747565b6001600160a01b03166000908152602360205260409020805460ff19166001179055565b61141d3361171d565b6114395760405162461bcd60e51b8152600401610c4e906127d7565b620b71b0811061144857600080fd5b600e55565b6114563361171d565b6114725760405162461bcd60e51b8152600401610c4e906127d7565b601980546001600160a01b039384166001600160a01b031991821617909155601a8054929093169116179055565b6000610f583384846117cd565b6114b63361171d565b6114d25760405162461bcd60e51b8152600401610c4e906127d7565b6000602955565b6114e1611747565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b611510611747565b6040514790339082156108fc029083906000818181858888f1935050505015801561116d573d6000803e3d6000fd5b6000610dfc61154c610f5f565b600b546001600160a01b031660009081526003602052604090205461157d90611576906002611dc0565b8590611dc0565b90611dcc565b61158c3361171d565b6115a85760405162461bcd60e51b8152600401610c4e906127d7565b6031805460ff191692151592909217909155603255565b60006115c9611747565b506011805460ff19169055600190565b6115e1611747565b6001600160a01b03166000908152600160205260409020805460ff19169055565b61160a611747565b6001600160a01b03811661166f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c4e565b6001600160a01b0381166000908152600160208190526040909120805460ff1916909117905561169e81611d70565b50565b6116aa3361171d565b6116c65760405162461bcd60e51b8152600401610c4e906127d7565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6116f9611747565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610f588284612834565b6000546001600160a01b031633146113895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c4e565b600081848411156117c55760405162461bcd60e51b8152600401610c4e91906125f9565b505050900390565b6001600160a01b03831660009081526010602052604081205460ff161561182b5760405162461bcd60e51b815260206004820152601260248201527114d95b99195c88189b1858dadb1a5cdd195960721b6044820152606401610c4e565b6001600160a01b03831660009081526010602052604090205460ff161561188b5760405162461bcd60e51b8152602060048201526014602482015273149958d95a5d995c88189b1858dadb1a5cdd195960621b6044820152606401610c4e565b60335460ff16156118a8576118a1848484611dd8565b9050610f58565b60115460ff16156119b8576000546001600160a01b038481169116148015906118df5750600a546001600160a01b03848116911614155b80156118f95750600b546001600160a01b03848116911614155b156119b857326000908152600f6020526040902054439061191b906001612834565b106119a55760405162461bcd60e51b815260206004820152604e60248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260648201526d3637b1b5b99030b63637bbb2b21760911b608482015260a401610c4e565b326000908152600f602052604090204390555b600b546000906001600160a01b03858116911614806119e45750600a546001600160a01b038581169116145b90506119f08584611e7b565b80158015611a1757506001600160a01b03841660009081526023602052604090205460ff16155b15611a9057601f546001600160a01b038516600090815260036020526040902054611a43908590612834565b10611a905760405162461bcd60e51b815260206004820152601d60248201527f4d61782077616c6c657420686173206265656e207472696767657265640000006044820152606401610c4e565b8015611ac057611a9e611ee4565b15611aab57611aab611f33565b611ab36122d3565b15611ac057611ac061232e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260039091529190912054611b129185906117a1565b6001600160a01b038616600090815260036020526040812091909155611b388686612374565b611b425783611b4c565b611b4c86856123c6565b6001600160a01b038616600090815260036020526040902054909150611b72908261173b565b6001600160a01b0380871660009081526003602090815260408083209490945591891681526022909152205460ff16611c1657600c546001600160a01b0387811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611c0357600080fd5b505af1925050508015611c14575060015b505b6001600160a01b03851660009081526022602052604090205460ff16611ca757600c546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611c9457600080fd5b505af1925050508015611ca5575060015b505b600c54600e546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991611cdf9160040190815260200190565b600060405180830381600087803b158015611cf957600080fd5b505af1925050508015611d0a575060015b50846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d5091815260200190565b60405180910390a350600195945050505050565b6000610f588284612847565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610f58828461285a565b6000610f588284612812565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611e299184906117a1565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611e58908361173b565b6001600160a01b0384166000908152600360205260409020555060019392505050565b601e5481111580611ea457506001600160a01b03821660009081526021602052604090205460ff165b61116d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c4e565b600b546000906001600160a01b03163314801590611f05575060335460ff16155b8015611f13575060315460ff165b8015610fac57505060325430600090815260036020526040902054101590565b6033805460ff19166001179055601c54601d54600091611f5291610e02565b611f5e57601454611f61565b60005b90506000611f85600261157d60125461157d86603254611dc090919063ffffffff16565b3060009081526003602052604081205491925090611fa39083611d64565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611fdd57611fdd612871565b6001600160a01b03928316602091820292909201015260085482519116908290600190811061200e5761200e612871565b6001600160a01b03928316602091820292909201015260095460405163744dd49160e01b815291169063744dd491906120549086906000908690309042906004016128cb565b600060405180830381600087803b15801561206e57600080fd5b505af1158015612082573d6000803e3d6000fd5b50505050600061209b8347611d6490919063ffffffff16565b905060006120b66120ad886002611dcc565b60125490611d64565b905060006120cb600261157d8481878d611dc0565b905060006120e88361157d60155487611dc090919063ffffffff16565b905060006121058461157d60165488611dc090919063ffffffff16565b9050600c60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561215757600080fd5b505af115801561216b573d6000803e3d6000fd5b5050601a546040516001600160a01b03909116935084156108fc0292508491506000818181858888f193505050501580156121aa573d6000803e3d6000fd5b50881561228357600954601954604051636e64478b60e11b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063dcc88f1690859060c40160606040518083038185885af1158015612221573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122469190612907565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601b546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156122bc573d6000803e3d6000fd5b50506033805460ff19169055505050505050505050565b600b546000906001600160a01b031633148015906122f4575060335460ff16155b80156123025750602a5460ff165b801561231d575043602f5460305461231a9190612834565b11155b8015610fac575050602e5447101590565b602e5460055461234791906001600160a01b031661246c565b43603055602e54602d5461235a9161173b565b602d819055602c54101561138957602a805460ff19169055565b6001600160a01b038216600090815260208052604081205460ff16158015610f5857600b546001600160a01b0385811691161480610f555750600b546001600160a01b03848116911614949350505050565b6000806123e460135461157d60125486611dc090919063ffffffff16565b30600090815260036020526040902054909150612401908261173b565b30600081815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124529085815260200190565b60405180910390a36124648382611d64565b949350505050565b6033805460ff19166001179055604080516002808252606082018352600092602083019080368337505060085482519293506001600160a01b0316918391506000906124ba576124ba612871565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106124ee576124ee612871565b6001600160a01b03928316602091820292909201015260095460405163248164a360e11b8152911690634902c94690859061253490600090869088904290600401612935565b6000604051808303818588803b15801561254d57600080fd5b505af1158015612561573d6000803e3d6000fd5b50506033805460ff19169055505050505050565b80358015158114610d9057600080fd5b6000806000806080858703121561259b57600080fd5b6125a485612575565b966020860135965060408601359560600135945092505050565b600080600080600060a086880312156125d657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156126265785810183015185820160400152820161260a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461169e57600080fd5b60006020828403121561266e57600080fd5b8135610f5881612647565b6000806040838503121561268c57600080fd5b823561269781612647565b946020939093013593505050565b600080604083850312156126b857600080fd5b50508035926020909101359150565b6000806000606084860312156126dc57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561270857600080fd5b833561271381612647565b9250602084013561272381612647565b929592945050506040919091013590565b6000806040838503121561274757600080fd5b823561275281612647565b915061276060208401612575565b90509250929050565b60006020828403121561277b57600080fd5b5035919050565b6000806040838503121561279557600080fd5b82356127a081612647565b915060208301356127b081612647565b809150509250929050565b600080604083850312156127ce57600080fd5b61269783612575565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261282f57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610dfc57610dfc6127fc565b81810381811115610dfc57610dfc6127fc565b8082028115828204841417610dfc57610dfc6127fc565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156128c05781516001600160a01b03168752958201959082019060010161289b565b509495945050505050565b85815284602082015260a0604082015260006128ea60a0830186612887565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561291c57600080fd5b8351925060208401519150604084015190509250925092565b84815260806020820152600061294e6080830186612887565b6001600160a01b0394909416604083015250606001529291505056fea26469706673582212208042860c1ecdd63f0fa20c1336fe269662f5049cbedef9f0f4d2a3266be81cde64736f6c634300081300330000000000000000000000001e876cce41b7b844fde09e38fa1cf00f213bff5600000000000000000000000080fa5c08751a01dad395c4b666b7b84e6419ecf30000000000000000000000008ff0e17e7c776bcadd0a13497170b02e579959f3