[ { "inputs": [], "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": 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": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "RewardLiquidityProviders", "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": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapETHForTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "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": "IsOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyMarketFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyTaxFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isBook", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellMarketFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellTaxFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "amount", "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": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" } ], "name": "deliver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "bools", "type": "bool" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getEthAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getUnlockTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inSwapAndLiquify", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isBuy", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "time", "type": "uint256" } ], "name": "lock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minimumTokensBeforeSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minimumTokensBeforeSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" }, { "internalType": "bool", "name": "deductTransferFee", "type": "bool" } ], "name": "reflectionFromToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "bool", "name": "bools", "type": "bool" } ], "name": "setIsAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "bools", "type": "bool" } ], "name": "setIsAllBool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "bool", "name": "bools", "type": "bool" } ], "name": "setIsBook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "bools", "type": "bool" } ], "name": "setIsOpen", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyLiquidityFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellLiquidityFeea", "type": "uint256" } ], "name": "setLiquidityFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyLiquidityFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellLiquidityFeea", "type": "uint256" } ], "name": "setLiquidityFeePercentOwn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyMarketFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellMarketFeea", "type": "uint256" } ], "name": "setMarketFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyMarketFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellMarketFeea", "type": "uint256" } ], "name": "setMarketFeePercentOwn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_marketingAddress", "type": "address" } ], "name": "setMarketingAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minimumTokensBeforeSwap", "type": "uint256" } ], "name": "setNumTokensSellToAddToLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyTaxFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellTaxFeea", "type": "uint256" } ], "name": "setTaxFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyTaxFeea", "type": "uint256" }, { "internalType": "uint256", "name": "sellTaxFeea", "type": "uint256" } ], "name": "setTaxFeePercentOwn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "rAmount", "type": "uint256" } ], "name": "tokenFromReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAllBuyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAllSellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unlock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e0604052600580546001600160a01b031916732475eb100428b74f316f2941f2797acfebb6da261790556ddead0000000000000000000000006080526c7e37be2022c0914b2680000000600d8190556200005d906000196200064f565b6200006b90600019620005f8565b600e55604080518082019091526008808252672227a3a2a6a7a7a760c11b60209092019182526200009f916010916200050e565b50604080518082019091526008808252672227a3a2a6a7a7a760c11b6020909201918252620000d1916011916200050e565b506012805460ff191681179055600060138190556014819055600160158190556016819055601782905560188290556200013391906200011f908290620004a1602090811b62001ac417901c565b620004a160201b62001ac41790919060201c565b6019556000601a55601a54601b55601e601c55601c54601d556000601e55601e54601f556200017c601e546200011f601c54601a54620004a160201b62001ac41790919060201c565b6020556b204fce5e3e25026110000000602155602280546001600160a01b031916736380f9f40abb9c771299189b017d40ea8d0c06c7179055348015620001c257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e543360009081526006602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a01559260048083019392829003018186803b1580156200026657600080fd5b505afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a19190620005b4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ea57600080fd5b505afa158015620002ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003259190620005b4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200036e57600080fd5b505af115801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a99190620005b4565b6001600160601b0319606091821b811660c0529082901b1660a0526005546001600160a01b031660009081526009602081905260408220805460ff1916600190811790915591620004026000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260099092529020805490911660011790556200044a3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516200049291815260200190565b60405180910390a35062000686565b600080620004b08385620005dd565b905083811015620005075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b8280546200051c9062000612565b90600052602060002090601f0160209004810192826200054057600085556200058b565b82601f106200055b57805160ff19168380011785556200058b565b828001600101855582156200058b579182015b828111156200058b5782518255916020019190600101906200056e565b50620005999291506200059d565b5090565b5b808211156200059957600081556001016200059e565b600060208284031215620005c6578081fd5b81516001600160a01b038116811462000507578182fd5b60008219821115620005f357620005f362000670565b500190565b6000828210156200060d576200060d62000670565b500390565b600181811c908216806200062757607f821691505b602082108114156200064957634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200066b57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c60c05160601c613279620006e26000396000818161070801528181611ed60152611fcb01526000818161049a0152818161260f015281816126e50152612721015260006105b201526132796000f3fe6080604052600436106103a65760003560e01c8063701456bc116101e7578063a457c2d71161010d578063d2d7ad83116100a0578063efcc52de1161006f578063efcc52de14610b20578063f0f165af14610b36578063f2d58c2314610b56578063f2fde38b14610b7657600080fd5b8063d2d7ad8314610a8e578063dc44b6a014610aa4578063dd46706414610aba578063dd62ed3e14610ada57600080fd5b8063a9aefd35116100dc578063a9aefd3514610a18578063c4d259ad14610a38578063c69f3b1314610a58578063cb85f76f14610a7857600080fd5b8063a457c2d7146109a3578063a5ece941146109c3578063a69df4b5146109e3578063a9059cbb146109f857600080fd5b806388790a681161018557806395d89b411161015457806395d89b41146109445780639847b14f14610959578063a073d37f1461096e578063a37a68211461098357600080fd5b806388790a68146108b757806388f82020146108cd5780638da5cb5b14610906578063906e9dd01461092457600080fd5b8063715018a6116101c1578063715018a614610838578063768dc7101461084d57806379fa21031461087d5780637d315a2e1461089757600080fd5b8063701456bc146107e2578063701cf6f41461080257806370a082311461081857600080fd5b80632d838119116102cc5780634549b0391161026a5780635342acb4116102395780635342acb41461076b578063557ed1ba146107a4578063602bc62b146107b7578063678fc4e6146107cc57600080fd5b80634549b039146106d657806349bd5a5e146106f65780634fb908481461072a57806352390c021461074b57600080fd5b806332580ca7116102a657806332580ca7146106565780633685d4191461067657806339509351146106965780633bd5d173146106b657600080fd5b80632d838119146105f457806330b263ba14610614578063313ce5671461063457600080fd5b806318160ddd1161034457806323c9c2ff1161031357806323c9c2ff1461054057806324d7806c1461057057806327c8f835146105a057806328875c16146105d457600080fd5b806318160ddd146104d4578063200a692d146104e9578063220f6696146104ff57806323b872dd1461052057600080fd5b8063095ea7b311610380578063095ea7b31461041f5780630fda33491461044f57806313114a9d146104735780631694505e1461048857600080fd5b806303311d82146103b257806306fdde03146103d4578063085a10cf146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103d26103cd366004612f58565b610b96565b005b3480156103e057600080fd5b506103e9610c5c565b6040516103f69190612fbc565b60405180910390f35b34801561040b57600080fd5b506103d261041a366004612f04565b610cee565b34801561042b57600080fd5b5061043f61043a366004612e00565b610d2b565b60405190151581526020016103f6565b34801561045b57600080fd5b5061046560155481565b6040519081526020016103f6565b34801561047f57600080fd5b50600f54610465565b34801561049457600080fd5b506104bc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103f6565b3480156104e057600080fd5b50600d54610465565b3480156104f557600080fd5b50610465601a5481565b34801561050b57600080fd5b5060225461043f90600160a01b900460ff1681565b34801561052c57600080fd5b5061043f61053b366004612d8c565b610d42565b34801561054c57600080fd5b5061043f61055b366004612d1c565b600a6020526000908152604090205460ff1681565b34801561057c57600080fd5b5061043f61058b366004612d1c565b60046020526000908152604090205460ff1681565b3480156105ac57600080fd5b506104bc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e057600080fd5b506103d26105ef366004612e2b565b610dab565b34801561060057600080fd5b5061046561060f366004612f1e565b610e4f565b34801561062057600080fd5b506103d261062f366004612f58565b610ed3565b34801561064057600080fd5b5060125460405160ff90911681526020016103f6565b34801561066257600080fd5b506103d2610671366004612f58565b610f27565b34801561068257600080fd5b506103d2610691366004612d1c565b610fbc565b3480156106a257600080fd5b5061043f6106b1366004612e00565b6111ab565b3480156106c257600080fd5b506103d26106d1366004612f1e565b6111e1565b3480156106e257600080fd5b506104656106f1366004612f36565b6112cd565b34801561070257600080fd5b506104bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561073657600080fd5b5060225461043f90600160b01b900460ff1681565b34801561075757600080fd5b506103d2610766366004612d1c565b61135c565b34801561077757600080fd5b5061043f610786366004612d1c565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156107b057600080fd5b5042610465565b3480156107c357600080fd5b50600254610465565b3480156107d857600080fd5b5061046560205481565b3480156107ee57600080fd5b506022546104bc906001600160a01b031681565b34801561080e57600080fd5b50610465601c5481565b34801561082457600080fd5b50610465610833366004612d1c565b6114af565b34801561084457600080fd5b506103d261150e565b34801561085957600080fd5b5061043f610868366004612d1c565b60096020526000908152604090205460ff1681565b34801561088957600080fd5b5060035461043f9060ff1681565b3480156108a357600080fd5b506103d26108b2366004612f58565b611570565b3480156108c357600080fd5b50610465601e5481565b3480156108d957600080fd5b5061043f6108e8366004612d1c565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561091257600080fd5b506000546001600160a01b03166104bc565b34801561093057600080fd5b506103d261093f366004612d1c565b61159a565b34801561095057600080fd5b506103e96115e6565b34801561096557600080fd5b506103d26115f5565b34801561097a57600080fd5b50602154610465565b34801561098f57600080fd5b506103d261099e366004612f58565b61164e565b3480156109af57600080fd5b5061043f6109be366004612e00565b6116ba565b3480156109cf57600080fd5b506005546104bc906001600160a01b031681565b3480156109ef57600080fd5b506103d2611709565b348015610a0457600080fd5b5061043f610a13366004612e00565b61180f565b348015610a2457600080fd5b506103d2610a33366004612f04565b61181c565b348015610a4457600080fd5b506103d2610a53366004612dcc565b611864565b348015610a6457600080fd5b506103d2610a73366004612dcc565b6118b9565b348015610a8457600080fd5b5061046560195481565b348015610a9a57600080fd5b5061046560215481565b348015610ab057600080fd5b5061046560175481565b348015610ac657600080fd5b506103d2610ad5366004612f1e565b61190e565b348015610ae657600080fd5b50610465610af5366004612d54565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610b2c57600080fd5b5061046560135481565b348015610b4257600080fd5b506103d2610b51366004612f1e565b611993565b348015610b6257600080fd5b506103d2610b71366004612f58565b6119c2565b348015610b8257600080fd5b506103d2610b91366004612d1c565b6119ec565b6022546001600160a01b03163314610bc95760405162461bcd60e51b8152600401610bc09061303f565b60405180910390fd5b6015548210610bea5760405162461bcd60e51b8152600401610bc09061300f565b601c548110610c0b5760405162461bcd60e51b8152600401610bc09061300f565b6015829055601c8190556016829055601d819055601754601354610c3a9190610c349085611ac4565b90611ac4565b601955601e54601c54601a54610c559291610c349190611ac4565b6020555050565b606060108054610c6b9061313f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c979061313f565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b5050505050905090565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bc09061303f565b6003805460ff1916911515919091179055565b6000610d38338484611b23565b5060015b92915050565b6000610d4f848484611c47565b610da18433610d9c856040518060600160405280602881526020016131d7602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190612016565b611b23565b5060019392505050565b6000546001600160a01b03163314610dd55760405162461bcd60e51b8152600401610bc09061303f565b60005b8251811015610e4a578160096000858481518110610e0657634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e428161317a565b915050610dd8565b505050565b6000600e54821115610eb65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610bc0565b6000610ec0612050565b9050610ecc8382612073565b9392505050565b6000546001600160a01b03163314610efd5760405162461bcd60e51b8152600401610bc09061303f565b6013829055601a8190556014829055601b819055601754601554610c3a9190610c34908590611ac4565b6022546001600160a01b03163314610f515760405162461bcd60e51b8152600401610bc09061303f565b6017548210610f725760405162461bcd60e51b8152600401610bc09061300f565b601e548110610f935760405162461bcd60e51b8152600401610bc09061300f565b6017829055601e8190556018829055601f819055601554601354610c3a918491610c3491611ac4565b6000546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610bc09061303f565b6001600160a01b0381166000908152600b602052604090205460ff1661104e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bc0565b60005b600c548110156111a757816001600160a01b0316600c828154811061108657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561119557600c80546110b190600190613128565b815481106110cf57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600c80546001600160a01b03909216918390811061110957634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600782526040808220829055600b90925220805460ff19169055600c80548061116f57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061119f8161317a565b915050611051565b5050565b3360008181526008602090815260408083206001600160a01b03871684529091528120549091610d38918590610d9c9086611ac4565b336000818152600b602052604090205460ff16156112565760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610bc0565b6000611261836120b5565b5050506001600160a01b03861660009081526006602052604090205493945061128f93925084915050612110565b6001600160a01b038316600090815260066020526040902055600e546112b59082612110565b600e55600f546112c59084611ac4565b600f55505050565b6000600d548311156113215760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610bc0565b81611341576000611331846120b5565b50949650610d3c95505050505050565b600061134c846120b5565b50939650610d3c95505050505050565b6000546001600160a01b031633146113865760405162461bcd60e51b8152600401610bc09061303f565b6001600160a01b0381166000908152600b602052604090205460ff16156113ef5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bc0565b6001600160a01b03811660009081526006602052604090205415611449576001600160a01b03811660009081526006602052604090205461142f90610e4f565b6001600160a01b0382166000908152600760205260409020555b6001600160a01b03166000818152600b60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6001600160a01b0381166000908152600b602052604081205460ff16156114ec57506001600160a01b031660009081526007602052604090205490565b6001600160a01b038216600090815260066020526040902054610d3c90610e4f565b6000546001600160a01b031633146115385760405162461bcd60e51b8152600401610bc09061303f565b600080546040516001600160a01b03909116906000805160206131ff833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c0b5760405162461bcd60e51b8152600401610bc09061303f565b6000546001600160a01b031633146115c45760405162461bcd60e51b8152600401610bc09061303f565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b606060118054610c6b9061313f565b6000546001600160a01b0316331461161f5760405162461bcd60e51b8152600401610bc09061303f565b60405133904780156108fc02916000818181858888f1935050505015801561164b573d6000803e3d6000fd5b50565b6022546001600160a01b031633146116785760405162461bcd60e51b8152600401610bc09061303f565b60135482106116995760405162461bcd60e51b8152600401610bc09061300f565b601a548110610efd5760405162461bcd60e51b8152600401610bc09061300f565b6000610d383384610d9c8560405180606001604052806025815260200161321f602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190612016565b6001546001600160a01b0316331461176f5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610bc0565b60025442116117c05760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610bc0565b600154600080546040516001600160a01b0393841693909116916000805160206131ff83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610d38338484611c47565b6000546001600160a01b031633146118465760405162461bcd60e51b8152600401610bc09061303f565b60228054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b0316331461188e5760405162461bcd60e51b8152600401610bc09061303f565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118e35760405162461bcd60e51b8152600401610bc09061303f565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119385760405162461bcd60e51b8152600401610bc09061303f565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561196781426130d1565b600255600080546040516001600160a01b03909116906000805160206131ff833981519152908390a350565b6000546001600160a01b031633146119bd5760405162461bcd60e51b8152600401610bc09061303f565b602155565b6000546001600160a01b03163314610f935760405162461bcd60e51b8152600401610bc09061303f565b6000546001600160a01b03163314611a165760405162461bcd60e51b8152600401610bc09061303f565b6001600160a01b038116611a7b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bc0565b600080546040516001600160a01b03808516939216916000805160206131ff83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080611ad183856130d1565b905083811015610ecc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bc0565b6001600160a01b038316611b855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bc0565b6001600160a01b038216611be65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bc0565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bc0565b6001600160a01b038216611d0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bc0565b60008111611d6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bc0565b6001600160a01b0383166000908152600a602052604090205460ff16158015611db157506001600160a01b0382166000908152600a602052604090205460ff16155b611dea5760405162461bcd60e51b815260206004820152600a602482015269497320696e20626f6f6b60b01b6044820152606401610bc0565b60035460ff16158015611e0b57506000546001600160a01b03848116911614155b8015611e2557506000546001600160a01b03838116911614155b8015611e4a57506001600160a01b03831660009081526004602052604090205460ff16155b8015611e6f57506001600160a01b03821660009081526004602052604090205460ff16155b15611eaa5760405162461bcd60e51b815260206004820152600b60248201526a24b9903737ba1037b832b760a91b6044820152606401610bc0565b6000611eb5306114af565b60215460225491925082101590600160a01b900460ff16158015611f0a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015611f2457506000546001600160a01b03868116911614155b8015611f3e57506000546001600160a01b03858116911614155b15611f60578015611f6057600554611f609083906001600160a01b0316612152565b6001600160a01b03851660009081526009602052604090205460019060ff1680611fa257506001600160a01b03851660009081526009602052604090205460ff165b15611fab575060005b6022805460ff60b01b1916600160b01b1790556001600160a01b038581167f0000000000000000000000000000000000000000000000000000000000000000919091161415612002576022805460ff60b01b191690555b61200e8686868461218a565b505050505050565b6000818484111561203a5760405162461bcd60e51b8152600401610bc09190612fbc565b5060006120478486613128565b95945050505050565b600080600061205d61230b565b909250905061206c8282612073565b9250505090565b6000610ecc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124c5565b60008060008060008060008060008060006120cf8c6124f3565b935093509350935060008060006120f08f8787876120eb612050565b612548565b919f509d509b509599509397509195509350505050919395979092949650565b6000610ecc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612016565b6022805460ff60a01b1916600160a01b1790558161216f57612179565b61217982826125aa565b50506022805460ff60a01b19169055565b806121d5576121d5601380546014556017805460185560158054601655601a8054601b55601e8054601f55601c8054601d556000908190559081905590819055928390559082905555565b6001600160a01b0384166000908152600b602052604090205460ff16801561221657506001600160a01b0383166000908152600b602052604090205460ff16155b1561222b576122268484846127cf565b6122d7565b6001600160a01b0384166000908152600b602052604090205460ff1615801561226c57506001600160a01b0383166000908152600b602052604090205460ff165b1561227c57612226848484612915565b6001600160a01b0384166000908152600b602052604090205460ff1680156122bc57506001600160a01b0383166000908152600b602052604090205460ff165b156122cc576122268484846129d4565b6122d7848484612a5d565b8061230557612305601454601355601854601755601654601555601b54601a55601f54601e55601d54601c55565b50505050565b600e54600d546000918291825b600c54811015612495578260066000600c848154811061234857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806123c157508160076000600c848154811061239a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156123d757600e54600d54945094505050509091565b61242b60066000600c84815481106123ff57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612110565b925061248160076000600c848154811061245557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612110565b91508061248d8161317a565b915050612318565b50600d54600e546124a591612073565b8210156124bc57600e54600d549350935050509091565b90939092509050565b600081836124e65760405162461bcd60e51b8152600401610bc09190612fbc565b50600061204784866130e9565b600080600080600061250486612ab7565b9050600061251187612af1565b9050600061251e88612b24565b905060006125388261253285818d89612110565b90612110565b9993985091965094509092505050565b60008080806125578986612b53565b905060006125658987612b53565b905060006125738988612b53565b905060006125818989612b53565b905060006125958261253285818989612110565b949d949c50929a509298505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125ed57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561266657600080fd5b505afa15801561267a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269e9190612d38565b816001815181106126bf57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505061270a307f000000000000000000000000000000000000000000000000000000000000000085611b23565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061275f908690600090869088904290600401613095565b600060405180830381600087803b15801561277957600080fd5b505af115801561278d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a783826040516127c2929190613074565b60405180910390a1505050565b60008060008060008060006127e3886120b5565b965096509650965096509650965061282988600760008d6001600160a01b03166001600160a01b031681526020019081526020016000205461211090919063ffffffff16565b6001600160a01b038b166000908152600760209081526040808320939093556006905220546128589088612110565b6001600160a01b03808c1660009081526006602052604080822093909355908b16815220546128879087611ac4565b6001600160a01b038a166000908152600660205260409020556128a982612bd2565b6128b281612bd2565b6128bc8584612c5a565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161290191815260200190565b60405180910390a350505050505050505050565b6000806000806000806000612929886120b5565b965096509650965096509650965061296f87600660008d6001600160a01b03166001600160a01b031681526020019081526020016000205461211090919063ffffffff16565b6001600160a01b03808c16600090815260066020908152604080832094909455918c168152600790915220546129a59085611ac4565b6001600160a01b038a166000908152600760209081526040808320939093556006905220546128879087611ac4565b60008060008060008060006129e8886120b5565b9650965096509650965096509650612a2e88600760008d6001600160a01b03166001600160a01b031681526020019081526020016000205461211090919063ffffffff16565b6001600160a01b038b1660009081526007602090815260408083209390935560069052205461296f9088612110565b6000806000806000806000612a71886120b5565b965096509650965096509650965061285887600660008d6001600160a01b03166001600160a01b031681526020019081526020016000205461211090919063ffffffff16565b6022546000908190600160b01b900460ff1615612ad75750601354612adc565b50601a545b610ecc6064612aeb8584612b53565b90612073565b6022546000908190600160b01b900460ff1615612b115750601754612adc565b50601e54610ecc6064612aeb8584612b53565b6022546000908190600160b01b900460ff1615612b445750601554612adc565b50601c54610ecc6064612aeb85845b600082612b6257506000610d3c565b6000612b6e8385613109565b905082612b7b85836130e9565b14610ecc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bc0565b6000612bdc612050565b90506000612bea8383612b53565b30600090815260066020526040902054909150612c079082611ac4565b30600090815260066020908152604080832093909355600b9052205460ff1615610e4a5730600090815260076020526040902054612c459084611ac4565b30600090815260076020526040902055505050565b602254600160a81b900460ff1615612c9057600e54612c799083612110565b600e55600f54612c899082611ac4565b600f555050565b30600090815260066020526040902054612caa9083611ac4565b30600090815260066020908152604080832093909355600b9052205460ff16156111a75730600090815260076020526040902054612ce89082611ac4565b306000908152600760205260409020555050565b8035612d07816131c1565b919050565b80358015158114612d0757600080fd5b600060208284031215612d2d578081fd5b8135610ecc816131c1565b600060208284031215612d49578081fd5b8151610ecc816131c1565b60008060408385031215612d66578081fd5b8235612d71816131c1565b91506020830135612d81816131c1565b809150509250929050565b600080600060608486031215612da0578081fd5b8335612dab816131c1565b92506020840135612dbb816131c1565b929592945050506040919091013590565b60008060408385031215612dde578182fd5b8235612de9816131c1565b9150612df760208401612d0c565b90509250929050565b60008060408385031215612e12578182fd5b8235612e1d816131c1565b946020939093013593505050565b60008060408385031215612e3d578182fd5b823567ffffffffffffffff80821115612e54578384fd5b818501915085601f830112612e67578384fd5b8135602082821115612e7b57612e7b6131ab565b8160051b604051601f19603f83011681018181108682111715612ea057612ea06131ab565b604052838152828101945085830182870184018b1015612ebe578889fd5b8896505b84871015612ee757612ed381612cfc565b865260019690960195948301948301612ec2565b509650612ef79050878201612d0c565b9450505050509250929050565b600060208284031215612f15578081fd5b610ecc82612d0c565b600060208284031215612f2f578081fd5b5035919050565b60008060408385031215612f48578182fd5b82359150612df760208401612d0c565b60008060408385031215612f6a578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015612fb15781516001600160a01b031687529582019590820190600101612f8c565b509495945050505050565b6000602080835283518082850152825b81811015612fe857858101830151858201604001528201612fcc565b81811115612ff95783604083870101525b50601f01601f1916929092016040019392505050565b60208082526016908201527513585e1a5b5d5b481b1a5b5a5d08195e18d95959195960521b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061308d6040830184612f79565b949350505050565b85815284602082015260a0604082015260006130b460a0830186612f79565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156130e4576130e4613195565b500190565b60008261310457634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561312357613123613195565b500290565b60008282101561313a5761313a613195565b500390565b600181811c9082168061315357607f821691505b6020821081141561317457634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561318e5761318e613195565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461164b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220549c19cf90969215955b33d43c2bb64a38e0da349ac28e942dca7186ad4a1ffc64736f6c63430008040033