[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "address", "name": "_reflectionToken", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "AccountExcludeFromFee", "type": "event" }, { "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": "address", "name": "pair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "AutomatedMarketMakerPairUpdated", "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": "amount", "type": "uint256" } ], "name": "SwapTokensAmountUpdated", "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": "TOKEN_COUNT", "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": "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": [], "name": "disableReflections", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "distributionEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributorGas", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "excludeFromFee", "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": "isAutomatedMarketMakerPairs", "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": "joePair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "joeRouter", "outputs": [ { "internalType": "contract IJoeRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitLiftTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "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": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "reflectionFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reflectionToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reflectionsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeMaxTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "removeMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "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": "bool", "name": "status", "type": "bool" } ], "name": "setDistributionStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "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" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040516200351838038062003518833981016040819052620000349162000630565b816040518060400160405280600481526020016312185a5b60e21b815250604051806040016040528060048152602001631210525360e21b81525081600390816200008091906200070e565b5060046200008f82826200070e565b5050506001600160a01b038116620000c257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000cd81620004c9565b50620000dc42610e10620007f0565b601455600e80546001600160a01b03199081166001600160a01b03841617909155600c80547360ae616a2155ee3d9a68541ba4544862310933d49216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000158573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017e91906200080c565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020791906200080c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b91906200080c565b600d80546001600160a01b0319166001600160a01b03929092169190911790556040518190620002ab9062000605565b6001600160a01b039091168152602001604051809103906000f080158015620002d8573d6000803e3d6000fd5b50601080546001600160a01b039283166001600160a01b03199182168117909255600f8054909116909117905560088054600181810183556101f47ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee392830181905583548083018555830181905583548083019094559290910191909155336000908152601260209081526040808320805460ff199081168617909155308085528285208054831687179055600d80548816865260118552838620805484168817905590855282852080548316871790557f97847ee99463795296047093514439c3127772df3715e628aa85601cf854171680548316871790557f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b780548316871790555490951683526013909152902080549092161790556200042b60646d027786de11141c13dae3d600000062000831565b6009908155620493e0600a556103e89062000456906d027786de11141c13dae3d60000009062000854565b62000462919062000831565b6006556103e8620004836d027786de11141c13dae3d6000000600962000854565b6200048f919062000831565b6007556010805461ffff60a81b191661010160a81b179055620004c1336d027786de11141c13dae3d60000006200051b565b50506200086e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620005735760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620000b9565b8060026000828254620005879190620007f0565b90915550506001600160a01b03821660009081526020819052604081208054839290620005b6908490620007f0565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b610cb7806200286183390190565b80516001600160a01b03811681146200062b57600080fd5b919050565b600080604083850312156200064457600080fd5b6200064f8362000613565b91506200065f6020840162000613565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200069357607f821691505b602082108103620006b457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000600576000816000526020600020601f850160051c81016020861015620006e55750805b601f850160051c820191505b818110156200070657828155600101620006f1565b505050505050565b81516001600160401b038111156200072a576200072a62000668565b62000742816200073b84546200067e565b84620006ba565b602080601f8311600181146200077a5760008415620007615750858301515b600019600386901b1c1916600185901b17855562000706565b600085815260208120601f198616915b82811015620007ab578886015182559484019460019091019084016200078a565b5085821015620007ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008065762000806620007da565b92915050565b6000602082840312156200081f57600080fd5b6200082a8262000613565b9392505050565b6000826200084f57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417620008065762000806620007da565b611fe3806200087e6000396000f3fe6080604052600436106102345760003560e01c8063866083261161012e578063dc07b617116100ab578063f2fde38b1161006f578063f2fde38b14610687578063f708a64f146106a7578063f8b45b05146106c7578063fc7f562a146106dd578063fcef8867146106ff57600080fd5b8063dc07b61714610607578063dd62ed3e1461061c578063df8408fe1461063c578063e2f456051461065c578063eb41ed581461067257600080fd5b8063a51af4c5116100f2578063a51af4c514610566578063a9059cbb14610586578063afa4f3b2146105a6578063bc6a9e01146105c6578063dbb108b7146105e657600080fd5b806386608326146104d25780638da5cb5b146104f357806395d89b41146105115780639a7a23d614610526578063a457c2d71461054657600080fd5b8063313ce567116101bc57806360e719621161018057806360e719621461043b5780636bca89cb1461045157806370a0823114610471578063715018a6146104a75780637437681e146104bc57600080fd5b8063313ce56714610381578063395093511461039d5780634acd82f4146103bd5780635342acb4146103d357806359f571e81461040357600080fd5b806323b872dd1161020357806323b872dd146102dc578063244ce7db146102fc578063255fe8471461031c5780632be1dee71461034c5780632d48e8961461036157600080fd5b806306fdde0314610240578063095ea7b31461026b5780630a2d140c1461029b57806318160ddd146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561071f565b6040516102629190611c1d565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611c81565b6107b1565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004611cbb565b6107cb565b005b3480156102c957600080fd5b506002545b604051908152602001610262565b3480156102e857600080fd5b5061028b6102f7366004611cdf565b6107f1565b34801561030857600080fd5b506102bb610317366004611d20565b610815565b34801561032857600080fd5b5061028b610337366004611d39565b60136020526000908152604090205460ff1681565b34801561035857600080fd5b506102bb610879565b34801561036d57600080fd5b506102bb61037c366004611d56565b610895565b34801561038d57600080fd5b5060405160128152602001610262565b3480156103a957600080fd5b5061028b6103b8366004611c81565b610907565b3480156103c957600080fd5b506102ce60145481565b3480156103df57600080fd5b5061028b6103ee366004611d39565b60126020526000908152604090205460ff1681565b34801561040f57600080fd5b50600c54610423906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b34801561044757600080fd5b506102ce600a5481565b34801561045d57600080fd5b50600d54610423906001600160a01b031681565b34801561047d57600080fd5b506102ce61048c366004611d39565b6001600160a01b031660009081526020819052604090205490565b3480156104b357600080fd5b506102bb610929565b3480156104c857600080fd5b506102ce60065481565b3480156104de57600080fd5b5060105461028b90600160a81b900460ff1681565b3480156104ff57600080fd5b506005546001600160a01b0316610423565b34801561051d57600080fd5b5061025561093d565b34801561053257600080fd5b506102bb610541366004611d78565b61094c565b34801561055257600080fd5b5061028b610561366004611c81565b6109fd565b34801561057257600080fd5b50600f54610423906001600160a01b031681565b34801561059257600080fd5b5061028b6105a1366004611c81565b610a78565b3480156105b257600080fd5b506102bb6105c1366004611d20565b610a86565b3480156105d257600080fd5b50600e54610423906001600160a01b031681565b3480156105f257600080fd5b5060105461028b90600160b01b900460ff1681565b34801561061357600080fd5b506102bb610b91565b34801561062857600080fd5b506102ce610637366004611db1565b610bad565b34801561064857600080fd5b506102bb610657366004611d78565b610bd8565b34801561066857600080fd5b506102ce60095481565b34801561067e57600080fd5b506102bb610cbd565b34801561069357600080fd5b506102bb6106a2366004611d39565b610cff565b3480156106b357600080fd5b506102bb6106c2366004611d78565b610d3d565b3480156106d357600080fd5b506102ce60075481565b3480156106e957600080fd5b506102ce6d027786de11141c13dae3d600000081565b34801561070b57600080fd5b506102ce61071a366004611d20565b610e0d565b60606003805461072e90611ddf565b80601f016020809104026020016040519081016040528092919081815260200182805461075a90611ddf565b80156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b5050505050905090565b6000336107bf818585610e2e565b60019150505b92915050565b6107d3610f52565b60108054911515600160a81b0260ff60a81b19909216919091179055565b6000336107ff858285610f7f565b61080a858585610ff9565b506001949350505050565b61081d610f52565b620b71b081106108745760405162461bcd60e51b815260206004820152601960248201527f4761732069732067726561746572207468616e206c696d69740000000000000060448201526064015b60405180910390fd5b600a55565b610881610f52565b6d027786de11141c13dae3d6000000600655565b61089d610f52565b6010546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b1580156108eb57600080fd5b505af11580156108ff573d6000803e3d6000fd5b505050505050565b6000336107bf81858561091a8383610bad565b6109249190611e2f565b610e2e565b610931610f52565b61093b60006116ed565b565b60606004805461072e90611ddf565b610954610f52565b6001600160a01b0382166109995760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015260640161086b565b6001600160a01b038216600081815260136020908152604091829020805460ff19168515159081179091558251938452908301527fef0b71f3a695ce5a89064cc2745d0c503cf766ed985e781607660be6010b8e9091015b60405180910390a15050565b60003381610a0b8286610bad565b905083811015610a6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161086b565b61080a8286868403610e2e565b6000336107bf818585610ff9565b610a8e610f52565b600254811115610af05760405162461bcd60e51b815260206004820152602760248201527f416d6f756e742063616e6e6f74206265206f7665722074686520746f74616c2060448201526639bab838363c9760c91b606482015260840161086b565b670de0b6b3a7640000811015610b565760405162461bcd60e51b815260206004820152602560248201527f4d696e696d756d20603530306020746f6b656e207065722073776170207265716044820152641d5a5c995960da1b606482015260840161086b565b60098190556040518181527f28ea3a80049e637c2f1bf658d47a07f688bea6e931f3c1930cf4a4daf97b18609060200160405180910390a150565b610b99610f52565b6d027786de11141c13dae3d6000000600755565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610be0610f52565b6001600160a01b03821660009081526012602052604090205481151560ff909116151503610c615760405162461bcd60e51b815260206004820152602860248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015267277374617475732760c01b606482015260840161086b565b6001600160a01b038216600081815260126020908152604091829020805460ff19168515159081179091558251938452908301527ff1bf6e8d74573725f529c5a07fb53656b9c97a10602a75631f57c1be07769e2b91016109f1565b610cc5610f52565b601054600160b01b900460ff161515600103610cea576010805460ff60b01b19169055565b6010805460ff60b01b1916600160b01b179055565b610d07610f52565b6001600160a01b038116610d3157604051631e4fbdf760e01b81526000600482015260240161086b565b610d3a816116ed565b50565b610d45610f52565b6001600160a01b0382166000908152601160205260409020805460ff19168215801591909117909155610dab57601054604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044016108d1565b6010546001600160a01b03166314b6ca9683610ddc816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016108d1565b60088181548110610e1d57600080fd5b600091825260209091200154905081565b6001600160a01b038316610e905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086b565b6001600160a01b038216610ef15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b0316331461093b5760405163118cdaa760e01b815233600482015260240161086b565b6000610f8b8484610bad565b90506000198114610ff35781811015610fe65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161086b565b610ff38484848403610e2e565b50505050565b6001600160a01b03821660009081526011602052604090205460ff166110e7576006548111156110775760405162461bcd60e51b815260206004820152602360248201527f416d6f756e74206f766572206d6178207472616e73616374696f6e20616c6c6f6044820152621dd95960ea1b606482015260840161086b565b6007548161109a846001600160a01b031660009081526020819052604090205490565b6110a49190611e2f565b11156110e75760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161086b565b6014544210801561110657506005546001600160a01b03848116911614155b801561112057506005546001600160a01b03838116911614155b1561120a57600c546001600160a01b0383811691161480159061115c57506001600160a01b03821660009081526013602052604090205460ff16155b1561120a573260009081526015602052604090205443116111f75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161086b565b3260009081526015602052604090204390555b3060009081526020819052604090205460095481101560018114801561123a5750601054600160a01b900460ff16155b801561126357506001600160a01b03841660009081526013602052604090205460ff1615156001145b801561127d5750601054600160b01b900460ff1615156001145b1561144557600b5460095481908110611442576010805460ff60a01b1916600160a01b1790556009546112af9061173f565b47808015611432576112c081611863565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d9190611e42565b600e54600f5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af1158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a89190611e5b565b5060105460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b5050505083856009546114169190611e78565b6114209190611e8f565b600b5461142d9190611eb1565b600b55505b50506010805460ff60a01b191690555b50505b6001600160a01b03851660009081526012602052604090205460ff168061148457506001600160a01b03841660009081526012602052604090205460ff165b15611499576114948585856119b1565b61151f565b6001600160a01b0380851660009081526013602052604080822054928816825281205490916114f691869160ff90811691161580156114f157506001600160a01b03881660009081526013602052604090205460ff16155b611b7f565b90508015611509576115098630836119b1565b61151d86866115188488611eb1565b6119b1565b505b6001600160a01b03851660009081526011602052604090205460ff166115c9576010546001600160a01b03166314b6ca9686611570816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156115b657600080fd5b505af19250505080156115c7575060015b505b6001600160a01b03841660009081526011602052604090205460ff16611673576010546001600160a01b03166314b6ca968561161a816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561166057600080fd5b505af1925050508015611671575060015b505b601054600160a81b900460ff16156116e657601054600a546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116bd9160040190815260200190565b600060405180830381600087803b1580156116d757600080fd5b505af19250505080156108ff57505b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061177457611774611ec4565b6001600160a01b03928316602091820292909201810191909152600c54604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa1580156117cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f19190611eda565b8160018151811061180457611804611ec4565b6001600160a01b039283166020918202929092010152600c5461182a9130911684610e2e565b600c54604051633b158ab160e11b81526001600160a01b039091169063762b1562906108d1908590600090869030904290600401611f3c565b6040805160028082526060820183526000926020830190803683375050600c54604080516339d94ae160e11b815290519394506001600160a01b03909116926373b295c2925060048083019260209291908290030181865afa1580156118cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f19190611eda565b8160008151811061190457611904611ec4565b6001600160a01b039283166020918202929092010152600e5482519116908290600190811061193557611935611ec4565b6001600160a01b039283166020918202929092010152600c5460405163a2a1623d60e01b815291169063a2a1623d90849061197b90600090869030904290600401611f78565b6000604051808303818588803b15801561199457600080fd5b505af11580156119a8573d6000803e3d6000fd5b50505050505050565b6001600160a01b038316611a155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086b565b6001600160a01b038216611a775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086b565b6001600160a01b03831660009081526020819052604090205481811015611aef5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161086b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611b26908490611e2f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b7291815260200190565b60405180910390a3610ff3565b60008061271083611bc75784611bb3576008600081548110611ba357611ba3611ec4565b9060005260206000200154611be7565b6008600181548110611ba357611ba3611ec4565b6008600281548110611bdb57611bdb611ec4565b90600052602060002001545b611bf19087611e78565b611bfb9190611e8f565b905080600b6000828254611c0f9190611e2f565b909155509095945050505050565b60006020808352835180602085015260005b81811015611c4b57858101830151858201604001528201611c2f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d3a57600080fd5b60008060408385031215611c9457600080fd5b8235611c9f81611c6c565b946020939093013593505050565b8015158114610d3a57600080fd5b600060208284031215611ccd57600080fd5b8135611cd881611cad565b9392505050565b600080600060608486031215611cf457600080fd5b8335611cff81611c6c565b92506020840135611d0f81611c6c565b929592945050506040919091013590565b600060208284031215611d3257600080fd5b5035919050565b600060208284031215611d4b57600080fd5b8135611cd881611c6c565b60008060408385031215611d6957600080fd5b50508035926020909101359150565b60008060408385031215611d8b57600080fd5b8235611d9681611c6c565b91506020830135611da681611cad565b809150509250929050565b60008060408385031215611dc457600080fd5b8235611dcf81611c6c565b91506020830135611da681611c6c565b600181811c90821680611df357607f821691505b602082108103611e1357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107c5576107c5611e19565b600060208284031215611e5457600080fd5b5051919050565b600060208284031215611e6d57600080fd5b8151611cd881611cad565b80820281158282048414176107c5576107c5611e19565b600082611eac57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107c5576107c5611e19565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611eec57600080fd5b8151611cd881611c6c565b60008151808452602080850194506020840160005b83811015611f315781516001600160a01b031687529582019590820190600101611f0c565b509495945050505050565b85815284602082015260a060408201526000611f5b60a0830186611ef7565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000611f916080830186611ef7565b6001600160a01b0394909416604083015250606001529291505056fea26469706673582212207c09386d27e482ec0278bec4730ed47baf3ac8f246e12706f311d9fe8c1169a064736f6c634300081800336080604052610708600a556001600b5534801561001b57600080fd5b50604051610cb7380380610cb783398101604081905261003a9161006d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b039290921691909117905561009d565b60006020828403121561007f57600080fd5b81516001600160a01b038116811461009657600080fd5b9392505050565b610c0b806100ac6000396000f3fe6080604052600436106100f75760003560e01c8063997664d71161008a578063e2d2e21911610059578063e2d2e219146102c3578063efca2eed146102d9578063ffb2c479146102ef578063ffd49c841461030f57600080fd5b8063997664d714610209578063b6b55f251461021f578063ce7c2ac21461023f578063d4fda1f21461029657600080fd5b806337563293116100c6578063375632931461019b5780633a98ef39146101b05780634fab0ae8146101c657806366817df5146101dc57600080fd5b806311ce023d1461010357806314b6ca961461013957806328fd31981461015b5780632d48e8961461017b57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b506101266ec097ce7bc90715b34b9f100000000081565b6040519081526020015b60405180910390f35b34801561014557600080fd5b50610159610154366004610a52565b610325565b005b34801561016757600080fd5b50610126610176366004610a7c565b6104b9565b34801561018757600080fd5b50610159610196366004610a9e565b610544565b3480156101a757600080fd5b506101596105b5565b3480156101bc57600080fd5b5061012660065481565b3480156101d257600080fd5b50610126600b5481565b3480156101e857600080fd5b506101266101f7366004610a7c565b60046020526000908152604090205481565b34801561021557600080fd5b5061012660075481565b34801561022b57600080fd5b5061015961023a366004610ac0565b6105ce565b34801561024b57600080fd5b5061027b61025a366004610a7c565b60056020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610130565b3480156102a257600080fd5b506101266102b1366004610a7c565b60036020526000908152604090205481565b3480156102cf57600080fd5b5061012660095481565b3480156102e557600080fd5b5061012660085481565b3480156102fb57600080fd5b5061015961030a366004610ac0565b610675565b34801561031b57600080fd5b50610126600a5481565b6000546001600160a01b031633146103585760405162461bcd60e51b815260040161034f90610ad9565b60405180910390fd5b6001600160a01b0382166000908152600560205260409020541561037f5761037f8261078c565b6000811180156103a557506001600160a01b038216600090815260056020526040902054155b1561040b57600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561043e565b8015801561043057506001600160a01b03821660009081526005602052604090205415155b1561043e5761043e826108ac565b6001600160a01b038216600090815260056020526040902054600654829161046591610b0f565b61046f9190610b22565b6006556001600160a01b0382166000908152600560205260409020819055610496816109c1565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b03811660009081526005602052604081205481036104e057506000919050565b6001600160a01b038216600090815260056020526040812054610502906109c1565b6001600160a01b038416600090815260056020526040902060010154909150808211610532575060009392505050565b61053c8183610b0f565b949350505050565b6000546001600160a01b0316331461056e5760405162461bcd60e51b815260040161034f90610ad9565b600a829055600b81905560408051838152602081018390527f7d38de579bb682aa05ace7e32d15f88df69a3a53f6f89fcd0236f93fcc7e6362910160405180910390a15050565b6105be336109f1565b156105cc576105cc3361078c565b565b6000546001600160a01b031633146105f85760405162461bcd60e51b815260040161034f90610ad9565b806007546106069190610b22565b600755600654610625826ec097ce7bc90715b34b9f1000000000610b35565b61062f9190610b4c565b60095461063c9190610b22565b6009556040518181527f6a464fbfd2428ef7edab93930e64042148498d37c64c5122c4ab37843d6a3d119060200160405180910390a150565b6000546001600160a01b0316331461069f5760405162461bcd60e51b815260040161034f90610ad9565b60025460008190036106af575050565b6000805a905060005b84831080156106c657508381105b156107855783600c54106106da576000600c555b61070c6002600c54815481106106f2576106f2610b6e565b6000918252602090912001546001600160a01b03166109f1565b15610743576107436002600c548154811061072957610729610b6e565b6000918252602090912001546001600160a01b031661078c565b5a61074e8385610b22565b6107589190610b0f565b92505a600c8054919350600061076d83610b84565b9190505550808061077d90610b84565b9150506106b8565b5050505050565b6001600160a01b03811660009081526005602052604081205490036107ae5750565b60006107b9826104b9565b905080156108a85760015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610b9d565b50806008546108479190610b22565b6008556001600160a01b0382166000908152600460209081526040808320429055600590915290206002015461087e908290610b22565b6001600160a01b0383166000908152600560205260409020600281019190915554610496906109c1565b5050565b600280546108bc90600190610b0f565b815481106108cc576108cc610b6e565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061090a5761090a610b6e565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161095690600190610b0f565b8154811061096657610966610b6e565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280548061099c5761099c610bbf565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006ec097ce7bc90715b34b9f1000000000600954836109e19190610b35565b6109eb9190610b4c565b92915050565b600a546001600160a01b03821660009081526004602052604081205490914291610a1b9190610b22565b1080156109eb5750600b54610a2f836104b9565b1192915050565b80356001600160a01b0381168114610a4d57600080fd5b919050565b60008060408385031215610a6557600080fd5b610a6e83610a36565b946020939093013593505050565b600060208284031215610a8e57600080fd5b610a9782610a36565b9392505050565b60008060408385031215610ab157600080fd5b50508035926020909101359150565b600060208284031215610ad257600080fd5b5035919050565b60208082526006908201526510aa37b5b2b760d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109eb576109eb610af9565b808201808211156109eb576109eb610af9565b80820281158282048414176109eb576109eb610af9565b600082610b6957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201610b9657610b96610af9565b5060010190565b600060208284031215610baf57600080fd5b81518015158114610a9757600080fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220275cd08c2b19c5616aec611e284f95b54ccfdc95789e4a60a7302b2150b1338164736f6c634300081800330000000000000000000000002227e5a5d05dacab0c62f91da57bf764cba955be00000000000000000000000065378b697853568da9ff8eab60c13e1ee9f4a654