ETH Price: $3,111.28 (+0.14%)

Token

HotHoneyBun (HHB)
 

Overview

Max Total Supply

690,000,000,000 HHB

Holders

220

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.43741837099963933 HHB

Value
$0.00
0x4d5b6f9581d16841ffe2b3f108621fc25bb1035b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HotHoneyBun

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : HotHoneyBun.sol
/**
 *Submitted for verification at Etherscan.io on 2023-03-16
*/
//website: hothoneybun.com
//Telegram: https://t.me/HotHoneyBun
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.9.0;

import "./SafeMath.sol";

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract HotHoneyBun is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromFees;

    mapping (address => bool) public isBot;
   
    uint256 constant private startingSupply = 690_000_000_000;
    string constant private _name = "HotHoneyBun";
    string constant private _symbol = "HHB";
    uint8 constant private _decimals = 18;

    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    uint256 public tradingEnabledAt;
    using SafeMath for uint256;
    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct Ratios {
        uint16 marketing;
        uint16 jackpot;
        uint16 totalSwap;
    }

    Fees public _taxRates = Fees({
        buyFee: 0,
        sellFee: 2000,
        transferFee: 0
        });
		
    Ratios public _ratios = Ratios({
        jackpot: 0,
        marketing: 2000,
        totalSwap: 2000
        });

    uint256 constant public maxBuyTaxes = 2000;
    uint256 constant public maxSellTaxes = 2000;
    uint256 constant public maxTransferTaxes = 2000;
    uint256 constant public maxRoundtripTax = 3000;
    uint256 constant masterTaxDivisor = 10000;
    uint256 public maxWallet = 10350000000000000000000000000;
    uint256 public maxTransactionAmount = 10350000000000000000000000000;
    
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {
       address payable marketing;
       address payable jackpot;
    }
	
    TaxWallets public _taxWallets = TaxWallets({
        marketing: payable(0x60C526E97C8464313daCa553D9d82cBA01ccc225),
        jackpot: payable(0x60C526E97C8464313daCa553D9d82cBA01ccc225)
    });
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent;
    
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Caller =/= owner.");
        _;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;

        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);

        if (block.chainid == 56) {
            dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D
        } else if (block.chainid == 43114) {
            dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
        } else if (block.chainid == 250) {
            dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        } else {
            revert();
        }

        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;

        _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock
        _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH)
        _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH)
    }
	
    address private _owner;

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
		
		_isExcludedFromFees[_owner] = false;
		_isExcludedFromFees[newOwner] = true;
        
        if(balanceOf(_owner) > 0) {
            _finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
		_isExcludedFromFees[_owner] = false;
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }
	
    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() public onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) public onlyOwner {
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function addRemoveBots(address[] memory accounts, bool[] memory value) public onlyOwner {
        require(accounts.length == value.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            isBot[accounts[i]] = value[i];
        }        
    }
	
    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        require(buyFee + sellFee <= maxRoundtripTax, "Cannot exceed roundtrip maximum.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setRatios(uint16 marketing, uint16 jackpot) external onlyOwner {
        _ratios.jackpot = jackpot;
        _ratios.marketing = marketing;
        _ratios.totalSwap = jackpot + marketing;
        uint256 total = _taxRates.buyFee + _taxRates.sellFee;
        require(_ratios.totalSwap <= total, "Cannot exceed sum of buy and sell fees.");
    }

    function setWallets(address payable marketing, address payable jackpot) external onlyOwner {
        _taxWallets.marketing = payable(marketing);
        _taxWallets.jackpot = payable(jackpot);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= _tTotal / 1_000_000, "Cannot set maxTransactionAmount lower than 0.00001%");
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= _tTotal / 1_000_000, "Cannot set maxWallet lower than 0.00001%");
        maxWallet = newNum * (10**18);
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

	function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
        require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 200, "Cannot set above 2%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
		
        tradingEnabled = true;
        tradingEnabledAt = block.timestamp;
        swapThreshold = (balanceOf(lpPair) * 15) / 10000;
        swapAmount = (balanceOf(lpPair) * 30) / 10000;
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if(_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }
            if(tradingEnabled && block.timestamp <= tradingEnabledAt.add(900) && !isBot[to]) {
                revert("Cannot buy yet");
            }
        }
        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return _finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function contractSwap(uint256 contractTokenBalance) internal lockTheSwap {
        Ratios memory ratios = _ratios;
        if (ratios.totalSwap == 0) {
            return;
        }

        if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 amtBalance = address(this).balance;
        bool success;
        uint256 jackpotBalance = (amtBalance * ratios.jackpot) / ratios.totalSwap;
        uint256 marketingBalance = amtBalance - jackpotBalance;
        if (ratios.marketing > 0) {
            (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 35000}("");
        }
        if (ratios.jackpot > 0) {
            (success,) = _taxWallets.jackpot.call{value: jackpotBalance, gas: 35000}("");
        }
    }    

    function _contractSwap(uint256 contractTokenBalance) external {
        Ratios memory ratios = _ratios;
        if (ratios.totalSwap == 0) {
            return;
        }

        if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amtBalance = address(this).balance;
        bool success;
        uint256 jackpotBalance = (amtBalance * ratios.jackpot) / ratios.totalSwap;
        uint256 marketingBalance = amtBalance - jackpotBalance;
        if (ratios.marketing > 0) {
            (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 35000}("");
        }
        if (ratios.jackpot > 0) {
            (success,) = _taxWallets.jackpot.call{value: jackpotBalance, gas: 35000}("");
        }
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
			
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }
    

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]);
            _finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }
		
        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        else if(!_isExcludedFromFees[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }
	
    function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (buy) 
		{
            currentFee = _taxRates.buyFee;
        } 
		else if (sell) 
		{
            currentFee = _taxRates.sellFee;
        } 
		else 
		{
            currentFee = _taxRates.transferFee;
        }
		
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        uint256 swapAmt = feeAmount;

        _tOwned[address(this)] += swapAmt;
        emit Transfer(from, address(this), swapAmt);

        return amount - feeAmount;
    }
}

File 2 of 2 : SafeMath.sol
pragma solidity 0.8.20;

// SPDX-License-Identifier: MIT

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/OpenZeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"contractTokenBalance","type":"uint256"}],"name":"_contractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"jackpot","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"jackpot","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool[]","name":"value","type":"bool[]"}],"name":"addRemoveBots","outputs":[],"stateMutability":"nonpayable","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":[],"name":"approveContractContingency","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoundtripTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","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":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"jackpot","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"jackpot","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledAt","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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

5f600281905560808190526107d060a081905260c0829052600880546307d0000065ffffffffffff199182161790915560e08290526101009290925261012052600980549091166507d0000007d01790556b217151c042e12f432e000000600a818155600b919091556101806040527360c526e97c8464313daca553d9d82cba01ccc225610140819052610160819052600e80546001600160a01b03199081168317909155600f805490911690911790556010805461ff0019169055601580546001600160b01b031916620100003302179055620000e090601290620007b1565b620000f19064a0a7347400620007c8565b601580546001600160a01b03620100009182900481165f9081526020819052604081209490945591540416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200014c6012600a620007b1565b6200015d9064a0a7347400620007c8565b60405190815260200160405180910390a346603803620001a357600c80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620002a1565b46606103620001d857600c80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d1179055620002a1565b4660011480620001e85750466004145b80620001f45750466003145b80620002005750466005145b156200023257600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620002a1565b4661a86a036200026857600c80546001600160a01b0319167360ae616a2155ee3d9a68541ba4544862310933d4179055620002a1565b4660fa036200029d57600c80546001600160a01b03191673f491e7b69e4244ad4002bc14e878a34207e38c29179055620002a1565b5f80fd5b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003189190620007e2565b6001600160a01b031663c9c65396600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000377573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039d9190620007e2565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015620003e7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200040d9190620007e2565b600d80546001600160a01b0319166001600160a01b039283169081179091555f908152600160208190526040909120805460ff19169091179055601554600c54620004659262010000909204821691165f19620005a2565b600c54620004809030906001600160a01b03165f19620005a2565b601580546001600160a01b03620100009182900481165f908152600560208181526040808420805460ff19908116600190811790925530865282862080548216831790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805482168317905597549690960490941683526004815292822080548616851790559091527f7e99e1e5c40ec22aa71ab68cea1ae3bb6f232576acb26d0b4e86f2583f2d4e3c80548416831790557f3b88920f3cdb6a2d8f52fb772e91e6e89cd00cd610f4b9dfb804ff1eafb41e59805484168317905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527f5ded1e7b8c25e3df69e401c18bf55e92f7343717ed383d2e5c8e4004d4de223f80549092161790556200080a565b6001600160a01b038316620005f45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006425760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005eb565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006f657815f1904821115620006da57620006da620006a2565b80851615620006e857918102915b93841c9390800290620006bb565b509250929050565b5f826200070e57506001620007ab565b816200071c57505f620007ab565b8160018114620007355760028114620007405762000760565b6001915050620007ab565b60ff841115620007545762000754620006a2565b50506001821b620007ab565b5060208310610133831016604e8410600b841016171562000785575081810a620007ab565b620007918383620006b6565b805f1904821115620007a757620007a7620006a2565b0290505b92915050565b5f620007c160ff841683620006fe565b9392505050565b8082028115828204841417620007ab57620007ab620006a2565b5f60208284031215620007f3575f80fd5b81516001600160a01b0381168114620007c1575f80fd5b61339d80620008185f395ff3fe6080604052600436106102dc575f3560e01c806370a0823111610189578063bfc2fc35116100d8578063dd62ed3e11610092578063f8b45b051161006d578063f8b45b05146108bd578063f94aa1b4146108d2578063fb78680d14610918578063fdb78c0e14610937575f80fd5b8063dd62ed3e14610846578063eafb5a3c1461088a578063ee5d9c2d146108a9575f80fd5b8063bfc2fc3514610790578063c18bc195146107af578063c31fe80a146107ce578063c8c8ebe4146107e3578063cf847706146107f8578063d3f6a15714610827575f80fd5b806394b954d611610143578063b1b08f711161011e578063b1b08f71146104a2578063b3d514fb146104a2578063b7df8b3614610758578063bcd96a2514610771575f80fd5b806394b954d6146106ef57806395d89b411461070e578063a9059cbb14610739575f80fd5b806370a0823114610652578063715018a61461067157806380c581d114610685578063893d20e8146106a45780638a63bd9b146106c75780638a8c523c146106db575f80fd5b80632e8fa821116102455780634ada218b116101ff5780634fbee193116101da5780634fbee193146105bf57806350a8e016146105f6578063590ffdce146106145780636492048014610633575f80fd5b80634ada218b146105685780634e718e48146105815780634fb2e45d146105a0575f80fd5b80632e8fa821146104b7578063313ce567146104cc57806332cde664146104e75780633bbac57914610506578063452ed4f11461053457806346ea7ac814610553575f80fd5b806318160ddd1161029657806318160ddd1461041a578063203e727e1461042e57806323b872dd1461044f5780632610eaca1461046e578063285777511461048d5780632b28fc7a146104a2575f80fd5b806303fd2a45146102e75780630445b66714610319578063069d955f1461033c57806306fdde03146103905780630758d924146103cc578063095ea7b3146103eb575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fc61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610324575f80fd5b5061032e60115481565b604051908152602001610310565b348015610347575f80fd5b5060085461036b9061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610310565b34801561039b575f80fd5b5060408051808201909152600b81526a2437ba2437b732bca13ab760a91b60208201525b6040516103109190612be1565b3480156103d7575f80fd5b50600c546102fc906001600160a01b031681565b3480156103f6575f80fd5b5061040a610405366004612c40565b610955565b6040519015158152602001610310565b348015610425575f80fd5b5061032e61096b565b348015610439575f80fd5b5061044d610448366004612c6a565b61098c565b005b34801561045a575f80fd5b5061040a610469366004612c81565b610a71565b348015610479575f80fd5b5061044d610488366004612d98565b610ae6565b348015610498575f80fd5b5061032e60145481565b3480156104ad575f80fd5b5061032e6107d081565b3480156104c2575f80fd5b5061032e60125481565b3480156104d7575f80fd5b5060405160128152602001610310565b3480156104f2575f80fd5b5061044d610501366004612e63565b610c14565b348015610511575f80fd5b5061040a610520366004612ea3565b60066020525f908152604090205460ff1681565b34801561053f575f80fd5b50600d546102fc906001600160a01b031681565b34801561055e575f80fd5b5061032e610bb881565b348015610573575f80fd5b5060155461040a9060ff1681565b34801561058c575f80fd5b5061044d61059b366004612c6a565b610d5b565b3480156105ab575f80fd5b5061044d6105ba366004612ea3565b610dd8565b3480156105ca575f80fd5b5061040a6105d9366004612ea3565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610601575f80fd5b5060155461040a90610100900460ff1681565b34801561061f575f80fd5b5061044d61062e366004612ecd565b610f2b565b34801561063e575f80fd5b5061044d61064d366004612c6a565b610f85565b34801561065d575f80fd5b5061032e61066c366004612ea3565b61125c565b34801561067c575f80fd5b5061044d611276565b348015610690575f80fd5b5061044d61069f366004612ecd565b611316565b3480156106af575f80fd5b506015546201000090046001600160a01b03166102fc565b3480156106d2575f80fd5b5061040a6113f8565b3480156106e6575f80fd5b5061044d611449565b3480156106fa575f80fd5b5061044d610709366004612f00565b611598565b348015610719575f80fd5b5060408051808201909152600381526224242160e91b60208201526103bf565b348015610744575f80fd5b5061040a610753366004612c40565b611697565b348015610763575f80fd5b5060135461040a9060ff1681565b34801561077c575f80fd5b5061044d61078b366004612fad565b6116ad565b34801561079b575f80fd5b5061044d6107aa366004612fd5565b6117b5565b3480156107ba575f80fd5b5061044d6107c9366004612c6a565b611844565b3480156107d9575f80fd5b5061032e60075481565b3480156107ee575f80fd5b5061032e600b5481565b348015610803575f80fd5b5060095461036b9061ffff80821691620100008104821691600160201b9091041683565b348015610832575f80fd5b5061044d610841366004612fef565b611915565b348015610851575f80fd5b5061032e610860366004612fef565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610895575f80fd5b5061044d6108a4366004612ea3565b611973565b3480156108b4575f80fd5b5061044d611c9d565b3480156108c8575f80fd5b5061032e600a5481565b3480156108dd575f80fd5b50600e54600f546108f8916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610310565b348015610923575f80fd5b5061044d610932366004613026565b611d66565b348015610942575f80fd5b5060105461040a90610100900460ff1681565b5f610961338484611f80565b5060015b92915050565b5f6109786012600a613149565b6109879064a0a7347400613157565b905090565b6015546201000090046001600160a01b031633146109c55760405162461bcd60e51b81526004016109bc9061316e565b60405180910390fd5b620f42406109d56012600a613149565b6109e49064a0a7347400613157565b6109ee9190613199565b811015610a595760405162461bcd60e51b815260206004820152603360248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74206044820152726c6f776572207468616e20302e30303030312560681b60648201526084016109bc565b610a6b81670de0b6b3a7640000613157565b600b5550565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610ad3576001600160a01b0384165f90815260036020908152604080832033845290915281208054849290610acd9084906131b8565b90915550505b610ade848484612078565b949350505050565b6015546201000090046001600160a01b03163314610b165760405162461bcd60e51b81526004016109bc9061316e565b8051825114610b5f5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016109bc565b5f5b82518160ff161015610c0f57818160ff1681518110610b8257610b826131cb565b6020026020010151610b933361125c565b1015610b9d575f80fd5b610bfc33848360ff1681518110610bb657610bb66131cb565b60200260200101516012600a610bcc9190613149565b858560ff1681518110610be157610be16131cb565b6020026020010151610bf39190613157565b5f806001612385565b5080610c07816131df565b915050610b61565b505050565b6015546201000090046001600160a01b03163314610c445760405162461bcd60e51b81526004016109bc9061316e565b6107d08361ffff1611158015610c6057506107d08261ffff1611155b8015610c7257506107d08161ffff1611155b610cbe5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016109bc565b610bb8610ccb83856131fd565b61ffff161115610d1d5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e60448201526064016109bc565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b6015546201000090046001600160a01b03163314610d8b5760405162461bcd60e51b81526004016109bc9061316e565b60c8811115610dd35760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba1039b2ba1030b137bb329019129760611b60448201526064016109bc565b601455565b6015546201000090046001600160a01b03163314610e085760405162461bcd60e51b81526004016109bc9061316e565b6001600160a01b038116610e2e5760405162461bcd60e51b81526004016109bc9061321f565b61deac196001600160a01b03821601610e595760405162461bcd60e51b81526004016109bc9061321f565b601580546001600160a01b03620100009182900481165f90815260056020526040808220805460ff199081169091558684168352908220805490911660011790559254610ea89290041661125c565b1115610ed057601554610ece906201000090046001600160a01b031682610bf38261125c565b505b601580546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6015546201000090046001600160a01b03163314610f5b5760405162461bcd60e51b81526004016109bc9061316e565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b6040805160608101825260095461ffff808216835262010000820481166020840152600160201b90910416918101829052905f03610fc1575050565b305f908152600360209081526040808320600c546001600160a01b031684529091529020545f191461101657305f908152600360209081526040808320600c546001600160a01b0316845290915290205f1990555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611049576110496131cb565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c4919061327c565b816001815181106110d7576110d76131cb565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac9479061111c9086905f90869030904290600401613297565b5f604051808303815f87803b158015611133575f80fd5b505af1158015611145573d5f803e3d5ffd5b505050505f4790505f80846040015161ffff16856020015161ffff168461116c9190613157565b6111769190613199565b90505f61118382856131b8565b865190915061ffff16156111eb57600e546040516001600160a01b03909116906188b89083905f818181858888f193505050503d805f81146111e0576040519150601f19603f3d011682016040523d82523d5f602084013e6111e5565b606091505b50909350505b602086015161ffff161561125357600f546040516001600160a01b03909116906188b89084905f818181858888f193505050503d805f8114611248576040519150601f19603f3d011682016040523d82523d5f602084013e61124d565b606091505b50909350505b50505050505050565b6001600160a01b03165f9081526020819052604090205490565b6015546201000090046001600160a01b031633146112a65760405162461bcd60e51b81526004016109bc9061316e565b601580546001600160a01b03620100009182900481165f90815260056020526040808220805460ff19169055845462010000600160b01b03198116909555519290930416919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546201000090046001600160a01b031633146113465760405162461bcd60e51b81526004016109bc9061316e565b8015155f0361137057506001600160a01b03165f908152600160205260409020805460ff19169055565b600254156113ca576203f4806002544261138a91906131b8565b116113ca5760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b60448201526064016109bc565b6001600160a01b0382165f908152600160208190526040909120805460ff19169091179055426002555b5050565b6015545f906201000090046001600160a01b0316331461142a5760405162461bcd60e51b81526004016109bc9061316e565b600c546114439030906001600160a01b03165f19611f80565b50600190565b6015546201000090046001600160a01b031633146114795760405162461bcd60e51b81526004016109bc9061316e565b60155460ff16156114cc5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109bc565b601554610100900460ff166115235760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109bc565b6015805460ff1916600117905542600755600d546127109061154d906001600160a01b031661125c565b61155890600f613157565b6115629190613199565b601155600d546127109061157e906001600160a01b031661125c565b61158990601e613157565b6115939190613199565b601255565b6015546201000090046001600160a01b031633146115c85760405162461bcd60e51b81526004016109bc9061316e565b80518251146116115760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016109bc565b5f5b82518160ff161015610c0f57818160ff1681518110611634576116346131cb565b602002602001015160065f858460ff1681518110611654576116546131cb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061168f816131df565b915050611613565b5f6116a3338484612078565b5060019392505050565b6015546201000090046001600160a01b031633146116dd5760405162461bcd60e51b81526004016109bc9061316e565b6009805463ffffffff19166201000061ffff8481169190910261ffff19169190911790841617905561170f82826131fd565b6009805465ffff000000001916600160201b61ffff938416021790556008545f9161174391620100008104821691166131fd565b60095461ffff9182169250600160201b900416811015610c0f5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b60648201526084016109bc565b6015546201000090046001600160a01b031633146117e55760405162461bcd60e51b81526004016109bc9061316e565b6010805461ff001916610100841515908102919091179091556013805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546201000090046001600160a01b031633146118745760405162461bcd60e51b81526004016109bc9061316e565b620f42406118846012600a613149565b6118939064a0a7347400613157565b61189d9190613199565b8110156118fd5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015267302e30303030312560c01b60648201526084016109bc565b61190f81670de0b6b3a7640000613157565b600a5550565b6015546201000090046001600160a01b031633146119455760405162461bcd60e51b81526004016109bc9061316e565b600e80546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6015546201000090046001600160a01b031633146119a35760405162461bcd60e51b81526004016109bc9061316e565b5f8190505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a08919061327c565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a77919061327c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae4919061327c565b90506001600160a01b038116611c5657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b54919061327c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc3919061327c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611c0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c31919061327c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055611c72565b600d80546001600160a01b0319166001600160a01b0383161790555b600c80546001600160a01b0319166001600160a01b038416908117909155610c0f9030905f19611f80565b6015546201000090046001600160a01b03163314611ccd5760405162461bcd60e51b81526004016109bc9061316e565b601554610100900460ff1615611d255760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109bc565b6015546040516001600160a01b036201000090920491909116904780156108fc02915f818181858888f19350505050158015611d63573d5f803e3d5ffd5b50565b6015546201000090046001600160a01b03163314611d965760405162461bcd60e51b81526004016109bc9061316e565b8284611da46012600a613149565b611db39064a0a7347400613157565b611dbd9190613157565b611dc79190613199565b6011558082611dd86012600a613149565b611de79064a0a7347400613157565b611df19190613157565b611dfb9190613199565b60128190556011541115611e5b5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109bc565b600d5461271090611e74906001600160a01b031661125c565b611e7f906096613157565b611e899190613199565b6012541115611ee65760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109bc565b620f4240611ef66012600a613149565b611f059064a0a7347400613157565b611f0f9190613199565b6012541015611f305760405162461bcd60e51b81526004016109bc90613306565b620f4240611f406012600a613149565b611f4f9064a0a7347400613157565b611f599190613199565b6011541015611f7a5760405162461bcd60e51b81526004016109bc90613306565b50505050565b6001600160a01b038316611fcc5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109bc565b6001600160a01b0382166120185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109bc565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166120dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109bc565b6001600160a01b03831661213f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109bc565b5f82116121a05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109bc565b6001600160a01b0384165f908152600160205260408120548190819060ff16156121cd57600192506121fa565b6001600160a01b0386165f9081526001602052604090205460ff16156121f657600191506121fa565b5060015b61220487876125bf565b156122dd5760155460ff1661225b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109bc565b60155460ff16801561227b5750600754612277906103846126a5565b4211155b801561229f57506001600160a01b0386165f9081526006602052604090205460ff16155b156122dd5760405162461bcd60e51b815260206004820152600e60248201526d10d85b9b9bdd08189d5e481e595d60921b60448201526064016109bc565b811561236c5760105460ff1661236c57601054610100900460ff161561236c575f6123073061125c565b9050601154811061236a5760125460135460ff161561235457601454600d54612710919061233d906001600160a01b031661125c565b6123479190613157565b6123519190613199565b90505b80821061235f578091505b61236882612703565b505b505b61237a878787868686612385565b979650505050505050565b6015545f90610100900460ff1661241f576123a087876129fa565b601554610100900460ff161580156123bd57506123bd87876125bf565b80156123c7575081155b1561241f5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109bc565b6001600160a01b0387165f9081526005602052604090205460019060ff168061245f57506001600160a01b0387165f9081526005602052604090205460ff165b1561246b57505f6124e4565b6001600160a01b0387165f9081526005602052604090205460ff166124e457600a546124968861125c565b6124a09088613354565b11156124e45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109bc565b6001600160a01b0388165f908152602081905260408120805488929061250b9084906131b8565b909155505f90508161251d5786612529565b6125298987878a612b0d565b9050805f808a6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461255c9190613354565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125a891815260200190565b60405180910390a350600198975050505050505050565b6015545f906001600160a01b038481166201000090920416148015906125f957506015546001600160a01b03838116620100009092041614155b801561261657506015546201000090046001600160a01b03163214155b801561263a57506001600160a01b0382165f9081526004602052604090205460ff16155b801561265e57506001600160a01b0383165f9081526004602052604090205460ff16155b801561267557506001600160a01b03821661dead14155b801561268957506001600160a01b03821615155b801561269e57506001600160a01b0383163014155b9392505050565b5f806126b18385613354565b90508381101561269e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bc565b6010805460ff191660011790556040805160608101825260095461ffff808216835262010000820481166020840152600160201b90910416918101829052905f0361274e57506129ed565b305f908152600360209081526040808320600c546001600160a01b031684529091529020545f19146127a357305f908152600360209081526040808320600c546001600160a01b0316845290915290205f1990555b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106127d6576127d66131cb565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561282d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612851919061327c565b81600181518110612864576128646131cb565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906128a99086905f90869030904290600401613297565b5f604051808303815f87803b1580156128c0575f80fd5b505af19250505080156128d1575060015b6128dc5750506129ed565b5f4790505f80846040015161ffff16856020015161ffff16846128ff9190613157565b6129099190613199565b90505f61291682856131b8565b865190915061ffff161561297e57600e546040516001600160a01b03909116906188b89083905f818181858888f193505050503d805f8114612973576040519150601f19603f3d011682016040523d82523d5f602084013e612978565b606091505b50909350505b602086015161ffff16156129e657600f546040516001600160a01b03909116906188b89084905f818181858888f193505050503d805f81146129db576040519150601f19603f3d011682016040523d82523d5f602084013e6129e0565b606091505b50909350505b5050505050505b506010805460ff19169055565b601554610100900460ff1615612a5e5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109bc565b612a6882826125bf565b158015612a825750600d546001600160a01b038281169116145b156113f4576001600160a01b0382165f9081526004602090815260408083208054600160ff1991821681179092556005845293829020805490941681179093556015805461010061ff00199182168117909255601080549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611838565b5f808415612b22575060085461ffff16612b4b565b8315612b3b575060085462010000900461ffff16612b4b565b50600854600160201b900461ffff165b5f612710612b598386613157565b612b639190613199565b305f90815260208190526040812080549293508392839290612b86908490613354565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612bd582866131b8565b98975050505050505050565b5f6020808352835180828501525f5b81811015612c0c57858101830151858201604001528201612bf0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611d63575f80fd5b5f8060408385031215612c51575f80fd5b8235612c5c81612c2c565b946020939093013593505050565b5f60208284031215612c7a575f80fd5b5035919050565b5f805f60608486031215612c93575f80fd5b8335612c9e81612c2c565b92506020840135612cae81612c2c565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612cfc57612cfc612cbf565b604052919050565b5f67ffffffffffffffff821115612d1d57612d1d612cbf565b5060051b60200190565b5f82601f830112612d36575f80fd5b81356020612d4b612d4683612d04565b612cd3565b82815260059290921b84018101918181019086841115612d69575f80fd5b8286015b84811015612d8d578035612d8081612c2c565b8352918301918301612d6d565b509695505050505050565b5f8060408385031215612da9575f80fd5b823567ffffffffffffffff80821115612dc0575f80fd5b612dcc86838701612d27565b9350602091508185013581811115612de2575f80fd5b85019050601f81018613612df4575f80fd5b8035612e02612d4682612d04565b81815260059190911b82018301908381019088831115612e20575f80fd5b928401925b82841015612e3e57833582529284019290840190612e25565b80955050505050509250929050565b803561ffff81168114612e5e575f80fd5b919050565b5f805f60608486031215612e75575f80fd5b612e7e84612e4d565b9250612e8c60208501612e4d565b9150612e9a60408501612e4d565b90509250925092565b5f60208284031215612eb3575f80fd5b813561269e81612c2c565b80358015158114612e5e575f80fd5b5f8060408385031215612ede575f80fd5b8235612ee981612c2c565b9150612ef760208401612ebe565b90509250929050565b5f8060408385031215612f11575f80fd5b823567ffffffffffffffff80821115612f28575f80fd5b612f3486838701612d27565b9350602091508185013581811115612f4a575f80fd5b85019050601f81018613612f5c575f80fd5b8035612f6a612d4682612d04565b81815260059190911b82018301908381019088831115612f88575f80fd5b928401925b82841015612e3e57612f9e84612ebe565b82529284019290840190612f8d565b5f8060408385031215612fbe575f80fd5b612fc783612e4d565b9150612ef760208401612e4d565b5f8060408385031215612fe6575f80fd5b612ee983612ebe565b5f8060408385031215613000575f80fd5b823561300b81612c2c565b9150602083013561301b81612c2c565b809150509250929050565b5f805f8060808587031215613039575f80fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156130a357815f190482111561308957613089613055565b8085161561309657918102915b93841c939080029061306e565b509250929050565b5f826130b957506001610965565b816130c557505f610965565b81600181146130db57600281146130e557613101565b6001915050610965565b60ff8411156130f6576130f6613055565b50506001821b610965565b5060208310610133831016604e8410600b8410161715613124575081810a610965565b61312e8383613069565b805f190482111561314157613141613055565b029392505050565b5f61269e60ff8416836130ab565b808202811582820484141761096557610965613055565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b5f826131b357634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561096557610965613055565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff81036131f4576131f4613055565b60010192915050565b61ffff81811683821601908082111561321857613218613055565b5092915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b5f6020828403121561328c575f80fd5b815161269e81612c2c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156132e55784516001600160a01b0316835293830193918301916001016132c0565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b808201808211156109655761096561305556fea26469706673582212205e45732616da51155c997ad27c5e0b98c0c355f3d2a9b0851ebb936c52785bcd64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102dc575f3560e01c806370a0823111610189578063bfc2fc35116100d8578063dd62ed3e11610092578063f8b45b051161006d578063f8b45b05146108bd578063f94aa1b4146108d2578063fb78680d14610918578063fdb78c0e14610937575f80fd5b8063dd62ed3e14610846578063eafb5a3c1461088a578063ee5d9c2d146108a9575f80fd5b8063bfc2fc3514610790578063c18bc195146107af578063c31fe80a146107ce578063c8c8ebe4146107e3578063cf847706146107f8578063d3f6a15714610827575f80fd5b806394b954d611610143578063b1b08f711161011e578063b1b08f71146104a2578063b3d514fb146104a2578063b7df8b3614610758578063bcd96a2514610771575f80fd5b806394b954d6146106ef57806395d89b411461070e578063a9059cbb14610739575f80fd5b806370a0823114610652578063715018a61461067157806380c581d114610685578063893d20e8146106a45780638a63bd9b146106c75780638a8c523c146106db575f80fd5b80632e8fa821116102455780634ada218b116101ff5780634fbee193116101da5780634fbee193146105bf57806350a8e016146105f6578063590ffdce146106145780636492048014610633575f80fd5b80634ada218b146105685780634e718e48146105815780634fb2e45d146105a0575f80fd5b80632e8fa821146104b7578063313ce567146104cc57806332cde664146104e75780633bbac57914610506578063452ed4f11461053457806346ea7ac814610553575f80fd5b806318160ddd1161029657806318160ddd1461041a578063203e727e1461042e57806323b872dd1461044f5780632610eaca1461046e578063285777511461048d5780632b28fc7a146104a2575f80fd5b806303fd2a45146102e75780630445b66714610319578063069d955f1461033c57806306fdde03146103905780630758d924146103cc578063095ea7b3146103eb575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fc61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610324575f80fd5b5061032e60115481565b604051908152602001610310565b348015610347575f80fd5b5060085461036b9061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610310565b34801561039b575f80fd5b5060408051808201909152600b81526a2437ba2437b732bca13ab760a91b60208201525b6040516103109190612be1565b3480156103d7575f80fd5b50600c546102fc906001600160a01b031681565b3480156103f6575f80fd5b5061040a610405366004612c40565b610955565b6040519015158152602001610310565b348015610425575f80fd5b5061032e61096b565b348015610439575f80fd5b5061044d610448366004612c6a565b61098c565b005b34801561045a575f80fd5b5061040a610469366004612c81565b610a71565b348015610479575f80fd5b5061044d610488366004612d98565b610ae6565b348015610498575f80fd5b5061032e60145481565b3480156104ad575f80fd5b5061032e6107d081565b3480156104c2575f80fd5b5061032e60125481565b3480156104d7575f80fd5b5060405160128152602001610310565b3480156104f2575f80fd5b5061044d610501366004612e63565b610c14565b348015610511575f80fd5b5061040a610520366004612ea3565b60066020525f908152604090205460ff1681565b34801561053f575f80fd5b50600d546102fc906001600160a01b031681565b34801561055e575f80fd5b5061032e610bb881565b348015610573575f80fd5b5060155461040a9060ff1681565b34801561058c575f80fd5b5061044d61059b366004612c6a565b610d5b565b3480156105ab575f80fd5b5061044d6105ba366004612ea3565b610dd8565b3480156105ca575f80fd5b5061040a6105d9366004612ea3565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610601575f80fd5b5060155461040a90610100900460ff1681565b34801561061f575f80fd5b5061044d61062e366004612ecd565b610f2b565b34801561063e575f80fd5b5061044d61064d366004612c6a565b610f85565b34801561065d575f80fd5b5061032e61066c366004612ea3565b61125c565b34801561067c575f80fd5b5061044d611276565b348015610690575f80fd5b5061044d61069f366004612ecd565b611316565b3480156106af575f80fd5b506015546201000090046001600160a01b03166102fc565b3480156106d2575f80fd5b5061040a6113f8565b3480156106e6575f80fd5b5061044d611449565b3480156106fa575f80fd5b5061044d610709366004612f00565b611598565b348015610719575f80fd5b5060408051808201909152600381526224242160e91b60208201526103bf565b348015610744575f80fd5b5061040a610753366004612c40565b611697565b348015610763575f80fd5b5060135461040a9060ff1681565b34801561077c575f80fd5b5061044d61078b366004612fad565b6116ad565b34801561079b575f80fd5b5061044d6107aa366004612fd5565b6117b5565b3480156107ba575f80fd5b5061044d6107c9366004612c6a565b611844565b3480156107d9575f80fd5b5061032e60075481565b3480156107ee575f80fd5b5061032e600b5481565b348015610803575f80fd5b5060095461036b9061ffff80821691620100008104821691600160201b9091041683565b348015610832575f80fd5b5061044d610841366004612fef565b611915565b348015610851575f80fd5b5061032e610860366004612fef565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610895575f80fd5b5061044d6108a4366004612ea3565b611973565b3480156108b4575f80fd5b5061044d611c9d565b3480156108c8575f80fd5b5061032e600a5481565b3480156108dd575f80fd5b50600e54600f546108f8916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610310565b348015610923575f80fd5b5061044d610932366004613026565b611d66565b348015610942575f80fd5b5060105461040a90610100900460ff1681565b5f610961338484611f80565b5060015b92915050565b5f6109786012600a613149565b6109879064a0a7347400613157565b905090565b6015546201000090046001600160a01b031633146109c55760405162461bcd60e51b81526004016109bc9061316e565b60405180910390fd5b620f42406109d56012600a613149565b6109e49064a0a7347400613157565b6109ee9190613199565b811015610a595760405162461bcd60e51b815260206004820152603360248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74206044820152726c6f776572207468616e20302e30303030312560681b60648201526084016109bc565b610a6b81670de0b6b3a7640000613157565b600b5550565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610ad3576001600160a01b0384165f90815260036020908152604080832033845290915281208054849290610acd9084906131b8565b90915550505b610ade848484612078565b949350505050565b6015546201000090046001600160a01b03163314610b165760405162461bcd60e51b81526004016109bc9061316e565b8051825114610b5f5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016109bc565b5f5b82518160ff161015610c0f57818160ff1681518110610b8257610b826131cb565b6020026020010151610b933361125c565b1015610b9d575f80fd5b610bfc33848360ff1681518110610bb657610bb66131cb565b60200260200101516012600a610bcc9190613149565b858560ff1681518110610be157610be16131cb565b6020026020010151610bf39190613157565b5f806001612385565b5080610c07816131df565b915050610b61565b505050565b6015546201000090046001600160a01b03163314610c445760405162461bcd60e51b81526004016109bc9061316e565b6107d08361ffff1611158015610c6057506107d08261ffff1611155b8015610c7257506107d08161ffff1611155b610cbe5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016109bc565b610bb8610ccb83856131fd565b61ffff161115610d1d5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e60448201526064016109bc565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b6015546201000090046001600160a01b03163314610d8b5760405162461bcd60e51b81526004016109bc9061316e565b60c8811115610dd35760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba1039b2ba1030b137bb329019129760611b60448201526064016109bc565b601455565b6015546201000090046001600160a01b03163314610e085760405162461bcd60e51b81526004016109bc9061316e565b6001600160a01b038116610e2e5760405162461bcd60e51b81526004016109bc9061321f565b61deac196001600160a01b03821601610e595760405162461bcd60e51b81526004016109bc9061321f565b601580546001600160a01b03620100009182900481165f90815260056020526040808220805460ff199081169091558684168352908220805490911660011790559254610ea89290041661125c565b1115610ed057601554610ece906201000090046001600160a01b031682610bf38261125c565b505b601580546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6015546201000090046001600160a01b03163314610f5b5760405162461bcd60e51b81526004016109bc9061316e565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b6040805160608101825260095461ffff808216835262010000820481166020840152600160201b90910416918101829052905f03610fc1575050565b305f908152600360209081526040808320600c546001600160a01b031684529091529020545f191461101657305f908152600360209081526040808320600c546001600160a01b0316845290915290205f1990555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611049576110496131cb565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c4919061327c565b816001815181106110d7576110d76131cb565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac9479061111c9086905f90869030904290600401613297565b5f604051808303815f87803b158015611133575f80fd5b505af1158015611145573d5f803e3d5ffd5b505050505f4790505f80846040015161ffff16856020015161ffff168461116c9190613157565b6111769190613199565b90505f61118382856131b8565b865190915061ffff16156111eb57600e546040516001600160a01b03909116906188b89083905f818181858888f193505050503d805f81146111e0576040519150601f19603f3d011682016040523d82523d5f602084013e6111e5565b606091505b50909350505b602086015161ffff161561125357600f546040516001600160a01b03909116906188b89084905f818181858888f193505050503d805f8114611248576040519150601f19603f3d011682016040523d82523d5f602084013e61124d565b606091505b50909350505b50505050505050565b6001600160a01b03165f9081526020819052604090205490565b6015546201000090046001600160a01b031633146112a65760405162461bcd60e51b81526004016109bc9061316e565b601580546001600160a01b03620100009182900481165f90815260056020526040808220805460ff19169055845462010000600160b01b03198116909555519290930416919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546201000090046001600160a01b031633146113465760405162461bcd60e51b81526004016109bc9061316e565b8015155f0361137057506001600160a01b03165f908152600160205260409020805460ff19169055565b600254156113ca576203f4806002544261138a91906131b8565b116113ca5760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b60448201526064016109bc565b6001600160a01b0382165f908152600160208190526040909120805460ff19169091179055426002555b5050565b6015545f906201000090046001600160a01b0316331461142a5760405162461bcd60e51b81526004016109bc9061316e565b600c546114439030906001600160a01b03165f19611f80565b50600190565b6015546201000090046001600160a01b031633146114795760405162461bcd60e51b81526004016109bc9061316e565b60155460ff16156114cc5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109bc565b601554610100900460ff166115235760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109bc565b6015805460ff1916600117905542600755600d546127109061154d906001600160a01b031661125c565b61155890600f613157565b6115629190613199565b601155600d546127109061157e906001600160a01b031661125c565b61158990601e613157565b6115939190613199565b601255565b6015546201000090046001600160a01b031633146115c85760405162461bcd60e51b81526004016109bc9061316e565b80518251146116115760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016109bc565b5f5b82518160ff161015610c0f57818160ff1681518110611634576116346131cb565b602002602001015160065f858460ff1681518110611654576116546131cb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061168f816131df565b915050611613565b5f6116a3338484612078565b5060019392505050565b6015546201000090046001600160a01b031633146116dd5760405162461bcd60e51b81526004016109bc9061316e565b6009805463ffffffff19166201000061ffff8481169190910261ffff19169190911790841617905561170f82826131fd565b6009805465ffff000000001916600160201b61ffff938416021790556008545f9161174391620100008104821691166131fd565b60095461ffff9182169250600160201b900416811015610c0f5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b60648201526084016109bc565b6015546201000090046001600160a01b031633146117e55760405162461bcd60e51b81526004016109bc9061316e565b6010805461ff001916610100841515908102919091179091556013805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546201000090046001600160a01b031633146118745760405162461bcd60e51b81526004016109bc9061316e565b620f42406118846012600a613149565b6118939064a0a7347400613157565b61189d9190613199565b8110156118fd5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015267302e30303030312560c01b60648201526084016109bc565b61190f81670de0b6b3a7640000613157565b600a5550565b6015546201000090046001600160a01b031633146119455760405162461bcd60e51b81526004016109bc9061316e565b600e80546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6015546201000090046001600160a01b031633146119a35760405162461bcd60e51b81526004016109bc9061316e565b5f8190505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a08919061327c565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a77919061327c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae4919061327c565b90506001600160a01b038116611c5657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b54919061327c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc3919061327c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611c0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c31919061327c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055611c72565b600d80546001600160a01b0319166001600160a01b0383161790555b600c80546001600160a01b0319166001600160a01b038416908117909155610c0f9030905f19611f80565b6015546201000090046001600160a01b03163314611ccd5760405162461bcd60e51b81526004016109bc9061316e565b601554610100900460ff1615611d255760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109bc565b6015546040516001600160a01b036201000090920491909116904780156108fc02915f818181858888f19350505050158015611d63573d5f803e3d5ffd5b50565b6015546201000090046001600160a01b03163314611d965760405162461bcd60e51b81526004016109bc9061316e565b8284611da46012600a613149565b611db39064a0a7347400613157565b611dbd9190613157565b611dc79190613199565b6011558082611dd86012600a613149565b611de79064a0a7347400613157565b611df19190613157565b611dfb9190613199565b60128190556011541115611e5b5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109bc565b600d5461271090611e74906001600160a01b031661125c565b611e7f906096613157565b611e899190613199565b6012541115611ee65760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109bc565b620f4240611ef66012600a613149565b611f059064a0a7347400613157565b611f0f9190613199565b6012541015611f305760405162461bcd60e51b81526004016109bc90613306565b620f4240611f406012600a613149565b611f4f9064a0a7347400613157565b611f599190613199565b6011541015611f7a5760405162461bcd60e51b81526004016109bc90613306565b50505050565b6001600160a01b038316611fcc5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109bc565b6001600160a01b0382166120185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109bc565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166120dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109bc565b6001600160a01b03831661213f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109bc565b5f82116121a05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109bc565b6001600160a01b0384165f908152600160205260408120548190819060ff16156121cd57600192506121fa565b6001600160a01b0386165f9081526001602052604090205460ff16156121f657600191506121fa565b5060015b61220487876125bf565b156122dd5760155460ff1661225b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109bc565b60155460ff16801561227b5750600754612277906103846126a5565b4211155b801561229f57506001600160a01b0386165f9081526006602052604090205460ff16155b156122dd5760405162461bcd60e51b815260206004820152600e60248201526d10d85b9b9bdd08189d5e481e595d60921b60448201526064016109bc565b811561236c5760105460ff1661236c57601054610100900460ff161561236c575f6123073061125c565b9050601154811061236a5760125460135460ff161561235457601454600d54612710919061233d906001600160a01b031661125c565b6123479190613157565b6123519190613199565b90505b80821061235f578091505b61236882612703565b505b505b61237a878787868686612385565b979650505050505050565b6015545f90610100900460ff1661241f576123a087876129fa565b601554610100900460ff161580156123bd57506123bd87876125bf565b80156123c7575081155b1561241f5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109bc565b6001600160a01b0387165f9081526005602052604090205460019060ff168061245f57506001600160a01b0387165f9081526005602052604090205460ff165b1561246b57505f6124e4565b6001600160a01b0387165f9081526005602052604090205460ff166124e457600a546124968861125c565b6124a09088613354565b11156124e45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109bc565b6001600160a01b0388165f908152602081905260408120805488929061250b9084906131b8565b909155505f90508161251d5786612529565b6125298987878a612b0d565b9050805f808a6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461255c9190613354565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125a891815260200190565b60405180910390a350600198975050505050505050565b6015545f906001600160a01b038481166201000090920416148015906125f957506015546001600160a01b03838116620100009092041614155b801561261657506015546201000090046001600160a01b03163214155b801561263a57506001600160a01b0382165f9081526004602052604090205460ff16155b801561265e57506001600160a01b0383165f9081526004602052604090205460ff16155b801561267557506001600160a01b03821661dead14155b801561268957506001600160a01b03821615155b801561269e57506001600160a01b0383163014155b9392505050565b5f806126b18385613354565b90508381101561269e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bc565b6010805460ff191660011790556040805160608101825260095461ffff808216835262010000820481166020840152600160201b90910416918101829052905f0361274e57506129ed565b305f908152600360209081526040808320600c546001600160a01b031684529091529020545f19146127a357305f908152600360209081526040808320600c546001600160a01b0316845290915290205f1990555b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106127d6576127d66131cb565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561282d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612851919061327c565b81600181518110612864576128646131cb565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906128a99086905f90869030904290600401613297565b5f604051808303815f87803b1580156128c0575f80fd5b505af19250505080156128d1575060015b6128dc5750506129ed565b5f4790505f80846040015161ffff16856020015161ffff16846128ff9190613157565b6129099190613199565b90505f61291682856131b8565b865190915061ffff161561297e57600e546040516001600160a01b03909116906188b89083905f818181858888f193505050503d805f8114612973576040519150601f19603f3d011682016040523d82523d5f602084013e612978565b606091505b50909350505b602086015161ffff16156129e657600f546040516001600160a01b03909116906188b89084905f818181858888f193505050503d805f81146129db576040519150601f19603f3d011682016040523d82523d5f602084013e6129e0565b606091505b50909350505b5050505050505b506010805460ff19169055565b601554610100900460ff1615612a5e5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109bc565b612a6882826125bf565b158015612a825750600d546001600160a01b038281169116145b156113f4576001600160a01b0382165f9081526004602090815260408083208054600160ff1991821681179092556005845293829020805490941681179093556015805461010061ff00199182168117909255601080549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611838565b5f808415612b22575060085461ffff16612b4b565b8315612b3b575060085462010000900461ffff16612b4b565b50600854600160201b900461ffff165b5f612710612b598386613157565b612b639190613199565b305f90815260208190526040812080549293508392839290612b86908490613354565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612bd582866131b8565b98975050505050505050565b5f6020808352835180828501525f5b81811015612c0c57858101830151858201604001528201612bf0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611d63575f80fd5b5f8060408385031215612c51575f80fd5b8235612c5c81612c2c565b946020939093013593505050565b5f60208284031215612c7a575f80fd5b5035919050565b5f805f60608486031215612c93575f80fd5b8335612c9e81612c2c565b92506020840135612cae81612c2c565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612cfc57612cfc612cbf565b604052919050565b5f67ffffffffffffffff821115612d1d57612d1d612cbf565b5060051b60200190565b5f82601f830112612d36575f80fd5b81356020612d4b612d4683612d04565b612cd3565b82815260059290921b84018101918181019086841115612d69575f80fd5b8286015b84811015612d8d578035612d8081612c2c565b8352918301918301612d6d565b509695505050505050565b5f8060408385031215612da9575f80fd5b823567ffffffffffffffff80821115612dc0575f80fd5b612dcc86838701612d27565b9350602091508185013581811115612de2575f80fd5b85019050601f81018613612df4575f80fd5b8035612e02612d4682612d04565b81815260059190911b82018301908381019088831115612e20575f80fd5b928401925b82841015612e3e57833582529284019290840190612e25565b80955050505050509250929050565b803561ffff81168114612e5e575f80fd5b919050565b5f805f60608486031215612e75575f80fd5b612e7e84612e4d565b9250612e8c60208501612e4d565b9150612e9a60408501612e4d565b90509250925092565b5f60208284031215612eb3575f80fd5b813561269e81612c2c565b80358015158114612e5e575f80fd5b5f8060408385031215612ede575f80fd5b8235612ee981612c2c565b9150612ef760208401612ebe565b90509250929050565b5f8060408385031215612f11575f80fd5b823567ffffffffffffffff80821115612f28575f80fd5b612f3486838701612d27565b9350602091508185013581811115612f4a575f80fd5b85019050601f81018613612f5c575f80fd5b8035612f6a612d4682612d04565b81815260059190911b82018301908381019088831115612f88575f80fd5b928401925b82841015612e3e57612f9e84612ebe565b82529284019290840190612f8d565b5f8060408385031215612fbe575f80fd5b612fc783612e4d565b9150612ef760208401612e4d565b5f8060408385031215612fe6575f80fd5b612ee983612ebe565b5f8060408385031215613000575f80fd5b823561300b81612c2c565b9150602083013561301b81612c2c565b809150509250929050565b5f805f8060808587031215613039575f80fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156130a357815f190482111561308957613089613055565b8085161561309657918102915b93841c939080029061306e565b509250929050565b5f826130b957506001610965565b816130c557505f610965565b81600181146130db57600281146130e557613101565b6001915050610965565b60ff8411156130f6576130f6613055565b50506001821b610965565b5060208310610133831016604e8410600b8410161715613124575081810a610965565b61312e8383613069565b805f190482111561314157613141613055565b029392505050565b5f61269e60ff8416836130ab565b808202811582820484141761096557610965613055565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b5f826131b357634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561096557610965613055565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff81036131f4576131f4613055565b60010192915050565b61ffff81811683821601908082111561321857613218613055565b5092915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b5f6020828403121561328c575f80fd5b815161269e81612c2c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156132e55784516001600160a01b0316835293830193918301916001016132c0565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b808201808211156109655761096561305556fea26469706673582212205e45732616da51155c997ad27c5e0b98c0c355f3d2a9b0851ebb936c52785bcd64736f6c63430008140033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.