ETH Price: $3,089.21 (+0.10%)

Token

Mogged Pepe (MOPE)
 

Overview

Max Total Supply

420,690,000,000 MOPE

Holders

580 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 MOPE

Value
$0.00
0x61f705701d2207572cda7cf324995c5a1f600dc9
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Mog and Pepe hype comes the combined Mogged Pepe / MOPE , a meme token on the ethereum chain which has reached the millions already.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MoggedPepe

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-18
*/

/* 

https://t.me/MoggedPepeETH

https://twitter.com/moggedpepeeth

https://moggedpepe.xyz/

https://t.me/MopeMemes

The Frog That Stays Mogged

*/




// SPDX-License-Identifier: UNLICENSED


pragma solidity 0.8.26;

interface ERC20 {
    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);
}



abstract contract Context {
    
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}


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) {
        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;
        return c;
    }
}

contract MoggedPepe  is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Mogged Pepe";
    string constant _symbol = "MOPE";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event setFeeExempt(address Wallet, bool Exempt);
    event setTXExempt(address Wallet, bool Exempt);
    event clearERC(uint256 amount);
    event removeToken(address TokenAddressCleared, uint256 Amount);
    event set_Wallets(address marketingFeeReceiver, address utilityFeeReceiver,address burnfeeReceiver,address projectFeeReceiver);
    event set_MaxHolding(uint256 maxWallet);
    event set_TXLimit(uint256 maxTX);
    event set_ContractSells(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  420690000000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isfeeexempt;
    mapping (address => bool) istxLimitExempt;
    mapping (address => bool) isTimelockExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private projectFee      = 0;
    uint256 private utilityFee      = 1; 
    uint256 private burnfee         = 0;
    uint256 public totalFee         = utilityFee + marketingFee + liquidityFee + projectFee + burnfee;
    uint256 private feeDenominator  = 100;

    uint256 sellmultiplier = 100;
    uint256 buymultiplier = 100;
    uint256 wallettowalletmultiplier = 100; 

    address private uniLPReceiver;
    address private marketingFeeReceiver;
    address private projectFeeReceiver;
    address private utilityFeeReceiver;
    address private burnfeeReceiver;

    uint256 setproportion = 30;
    uint256 setproportionDenominator = 100;
    
    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;
   
    bool public contractSellEnabled = true;
    uint256 public contractsellthreshold = _totalSupply * 20 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isfeeexempt[msg.sender] = true;            
        istxLimitExempt[msg.sender] = true;
        istxLimitExempt[pair] = true;
        istxLimitExempt[marketingFeeReceiver] = true;
        istxLimitExempt[address(this)] = true;
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;
        
        uniLPReceiver = msg.sender;
        marketingFeeReceiver = 0x4f9CF24353c3EE82d22E93df24Da9A04dBDBf943;
        projectFeeReceiver = msg.sender;
        utilityFeeReceiver = msg.sender;
        burnfeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxHolding(_maxWalletToken);
                
    }

     
    function disableCooldown() public onlyOwner {
        buyCooldownEnabled = false;    
    }

    function cooldownSettings(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }


    function setIsTimelockExempt(address holder, bool exempt) external onlyOwner {
        isTimelockExempt[holder] = exempt;
    }

    function zeroTax () external onlyOwner {
            buymultiplier = 0;
            sellmultiplier = 0;
            wallettowalletmultiplier = 0;
            contractsellthreshold = _totalSupply * 1 / 100;
            
            
    }
      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
          }
        
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnfeeReceiver && recipient != marketingFeeReceiver && !istxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        if (sender == pair && buyCooldownEnabled && !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

        checkTxLimit(sender, amount);  

        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isfeeexempt[sender] || isfeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || istxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isfeeexempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = wallettowalletmultiplier;
        if(recipient == pair) {
            percent = sellmultiplier;
        } else if(sender == pair) {
            percent = buymultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnfee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnfeeReceiver] = _balances[burnfeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && contractSellEnabled
        && _balances[address(this)] >= contractsellthreshold;
    }

  
     function clearStuckEther() external { 
             payable(projectFeeReceiver).transfer(address(this).balance);
            
    }

   function clearForeignERCToken(address tokenAddress, uint256 tokens) external returns (bool success) {
            require(tokenAddress != address(this), "tokenAddress can not be the native token");
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit removeToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(uniLPReceiver, tokens);
    }

    function setMultipliers(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellmultiplier = _percentonsell;
        buymultiplier = _percentonbuy;
        wallettowalletmultiplier = _wallettransfer;    
          
    }
       
    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buymultiplier = 500;
        sellmultiplier = 700;
        wallettowalletmultiplier = 1000;
                              
    }

      function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }

              
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkproportion(setproportion, setproportionDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = contractsellthreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractsellthreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(projectFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(projectFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                uniLPReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buymultiplier).div(100)),
            uint8(totalFee.mul(sellmultiplier).div(100)),
            uint8(totalFee.mul(wallettowalletmultiplier).div(100))
            );
    }
    
    function setFees(uint256 _liquidityFee, uint256 _utilityFee, uint256 _marketingFee, uint256 _projectFee, uint256 _burnfee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        utilityFee = _utilityFee;
        marketingFee = _marketingFee;
        projectFee = _projectFee;
        burnfee = _burnfee;
        totalFee = _liquidityFee.add(_utilityFee).add(_marketingFee).add(_projectFee).add(_burnfee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 4, "Fees can not be more than 25%"); 
        set_fees();
    }

   
    function setFeeReceivers(address _uniLPReceiver, address _marketingFeeReceiver, address _projectFeeReceiver, address _burnfeeReceiver, address _utilityFeeReceiver) external onlyOwner {
        uniLPReceiver = _uniLPReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        projectFeeReceiver = _projectFeeReceiver;
        burnfeeReceiver = _burnfeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;

        emit set_Wallets(marketingFeeReceiver, utilityFeeReceiver, burnfeeReceiver, projectFeeReceiver);
    }


    function setContractsells(bool _enabled, uint256 _amount) external onlyOwner {
        contractSellEnabled = _enabled;
        contractsellthreshold = _amount;
        emit set_ContractSells(contractsellthreshold, contractSellEnabled);
    }

    function checkproportion(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showthreshold(accuracy) > ratio;
    }

    function showthreshold(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clearERC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"removeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"setFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"setTXExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_ContractSells","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxHolding","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_TXLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"utilityFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnfeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"projectFeeReceiver","type":"address"}],"name":"set_Wallets","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkproportion","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignERCToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSellEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractsellthreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setContractsells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniLPReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_projectFeeReceiver","type":"address"},{"internalType":"address","name":"_burnfeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_projectFee","type":"uint256"},{"internalType":"uint256","name":"_burnfee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showthreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106009600a61066e565b61001f906461f313f88061067c565b600381905561003d906103e89061003790600f61046f565b906104fb565b600455600354610056906103e89061003790600f61046f565b6005556001600b556003600c555f600d556001600e555f600f55600f54600d54600b54600c54600e546100899190610693565b6100939190610693565b61009d9190610693565b6100a79190610693565b60105560646011819055601281905560138190556014818155601e601a819055601b92909255815462ffffff60a01b191661050160a81b179091556020805460ff191660011790556003546103e891610100919061067c565b61010a91906106a6565b602155348015610118575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f891906106c5565b600280546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610254573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027891906106c5565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea91906106c5565b601e80546001600160a01b039283166001600160a01b031991821681178355601d805483169091179055305f818152600760209081526040808320601c548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560168054909916855282852080548916821790558585528285208054891682179055818552600a845282852080548916821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb805489168217905594845281842080549097169094179095556015805485168417905585548416734f9cf24353c3ee82d22e93df24da9a04dbdbf9431790955560178054841683179055601880548416831790556019805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610720565b5f825f0361047e57505f6104f5565b5f610489838561067c565b90508261049685836106a6565b146104f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6104f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061054260201b60201c565b5f81836105625760405162461bcd60e51b81526004016104e991906106eb565b505f61056e84866106a6565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105c6578085048111156105aa576105aa610577565b60018416156105b857908102905b60019390931c92800261058f565b935093915050565b5f826105dc575060016104f5565b816105e857505f6104f5565b81600181146105fe576002811461060857610624565b60019150506104f5565b60ff84111561061957610619610577565b50506001821b6104f5565b5060208310610133831016604e8410600b8410161715610647575081810a6104f5565b6106535f19848461058b565b805f190482111561066657610666610577565b029392505050565b5f6104f260ff8416836105ce565b80820281158282048414176104f5576104f5610577565b808201808211156104f5576104f5610577565b5f826106c057634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156106d5575f80fd5b81516001600160a01b03811681146104f2575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6123108061072d5f395ff3fe608060405260043610610241575f3560e01c8063722b62ad11610134578063a8aa1b31116100b3578063cf4d094b11610078578063cf4d094b14610684578063cfd8d949146106a3578063dd62ed3e146106c2578063e0dca26e14610706578063f2fde38b1461071a578063f887ea4014610739575f80fd5b8063a8aa1b31146105f5578063a9059cbb14610614578063b2bdfa7b14610633578063b53d8d2914610651578063ca38b2d914610670575f80fd5b806386f6c3c1116100f957806386f6c3c11461054a578063893d20e8146105695780638a8c523c146105995780638da5cb5b146105ad57806395d89b41146105c9575f80fd5b8063722b62ad146104cd578063751039fc146104ed57806375e1a3131461050157806378109e54146105205780637d1db4a514610535575f80fd5b806348b98ef5116101c05780635fb9340c116101855780635fb9340c14610432578063617fe0ed146104465780636ce46bc31461046657806370a0823114610485578063715018a6146104b9575f80fd5b806348b98ef5146103a857806350db71fb146103c157806355265669146103e0578063571ac8b0146103f45780635d0044ca14610413575f80fd5b80631df4ccfc116102065780631df4ccfc1461031f57806323b872dd146103345780632e6ac10614610353578063308302d314610372578063313ce56714610387575f80fd5b806306fdde031461024c57806308fd3d0514610291578063095ea7b3146102c157806318160ddd146102e057806318abb635146102fe575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5060408051808201909152600b81526a4d6f67676564205065706560a81b60208201525b6040516102889190611ea9565b60405180910390f35b34801561029c575f80fd5b50601e546102b190600160a01b900460ff1681565b6040519015158152602001610288565b3480156102cc575f80fd5b506102b16102db366004611ef9565b610758565b3480156102eb575f80fd5b506003545b604051908152602001610288565b348015610309575f80fd5b5061031d610318366004611f21565b6107c4565b005b34801561032a575f80fd5b506102f060105481565b34801561033f575f80fd5b506102b161034e366004611f82565b6108a4565b34801561035e575f80fd5b506102b161036d366004611fbc565b610962565b34801561037d575f80fd5b506102f060215481565b348015610392575f80fd5b5060095b60405160ff9091168152602001610288565b3480156103b3575f80fd5b506020546102b19060ff1681565b3480156103cc575f80fd5b5061031d6103db366004611fe9565b610975565b3480156103eb575f80fd5b506102f06109c8565b3480156103ff575f80fd5b506102b161040e36600461201e565b610a38565b34801561041e575f80fd5b5061031d61042d366004612037565b610a44565b34801561043d575f80fd5b5061031d610ad0565b348015610451575f80fd5b50601e546102b190600160a81b900460ff1681565b348015610471575f80fd5b5061031d61048036600461204e565b610b08565b348015610490575f80fd5b506102f061049f36600461201e565b6001600160a01b03165f9081526006602052604090205490565b3480156104c4575f80fd5b5061031d610b42565b3480156104d8575f80fd5b50601e5461039690600160b01b900460ff1681565b3480156104f8575f80fd5b5061031d610bb3565b34801561050c575f80fd5b5061031d61051b366004612077565b610be9565b34801561052b575f80fd5b506102f060055481565b348015610540575f80fd5b506102f060045481565b348015610555575f80fd5b5061031d610564366004612093565b610c6b565b348015610574575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610288565b3480156105a4575f80fd5b5061031d610d38565b3480156105b8575f80fd5b505f546001600160a01b0316610581565b3480156105d4575f80fd5b506040805180820190915260048152634d4f504560e01b602082015261027b565b348015610600575f80fd5b50601e54610581906001600160a01b031681565b34801561061f575f80fd5b506102b161062e366004611ef9565b610d88565b34801561063e575f80fd5b505f54610581906001600160a01b031681565b34801561065c575f80fd5b506102b161066b366004611ef9565b610d94565b34801561067b575f80fd5b5061031d610f24565b34801561068f575f80fd5b506102f061069e366004612037565b610f5d565b3480156106ae575f80fd5b5061031d6106bd3660046120d2565b610fa2565b3480156106cd575f80fd5b506102f06106dc366004612103565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610711575f80fd5b5061031d611002565b348015610725575f80fd5b5061031d61073436600461201e565b611059565b348015610744575f80fd5b50601c54610581906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b29086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107f65760405162461bcd60e51b81526004016107ed90612134565b60405180910390fd5b601580546001600160a01b038781166001600160a01b031992831617909255601680548784169083168117909155601780548785169084168117909155601980548786169085168117909155601880549587169590941685179093556040805192835260208301949094529281019190915260608101919091527fd57a6cc80e12ea4e450dcae918d555702c8ad353993d8e23acc138382c6c7f649060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461094d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610929918490611140565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610958848484611178565b90505b9392505050565b5f8261096d83610f5d565b119392505050565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610a33929091610a2d91906115b4565b906115b4565b905090565b5f6107be825f19610758565b5f546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107ed90612134565b6001811015610a7a575f80fd5b6103e881600354610a8b919061217d565b610a959190612194565b60058190556040519081527f494fd99b13a8a3670e91a40af1b1ffec73968d010de2a178aa17556d7d353f339060200160405180910390a150565b5f546001600160a01b03163314610af95760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a81b19169055565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016107ed90612134565b601291909155601391909155601455565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b81526004016107ed90612134565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016107ed90612134565b6003546004819055600555565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016107ed90612134565b6020805460ff1916831515908117825560218390556040805184815260ff9092161515928201929092527f392f1d6148f51babec2021798dc4b53898c421ad141fcd1babe8ac1bff909f79910160405180910390a15050565b5f546001600160a01b03163314610c945760405162461bcd60e51b81526004016107ed90612134565b600b869055600e859055600c849055600d839055600f829055610cc582610cbf858188818c8c6115f5565b906115f5565b6010556011819055610cd8600482612194565b60105410610d285760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032352500000060448201526064016107ed565b610d30611653565b505050505050565b5f546001600160a01b03163314610d615760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a01b1916600160a01b1790556101f46013556102bc6012556103e8601455565b5f61095b338484611178565b5f306001600160a01b03841603610dfe5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016107ed565b815f03610e6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b91906121b3565b91505b604080516001600160a01b0385168152602081018490527f13baf1e647d68ca9451d9fc896ee1c75b4337b7804451971e549ca6d1e24287d910160405180910390a160155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b91906121ca565b6017546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f5a573d5f803e3d5ffd5b50565b5f6107be610f696109c8565b601e546001600160a01b03165f90815260066020526040902054610f9c90610f95906002905b906116ee565b85906116ee565b9061176c565b5f546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107ed90612134565b601e805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b0316331461102b5760405162461bcd60e51b81526004016107ed90612134565b5f6013819055601281905560145560035460649061104a90600161217d565b6110549190612194565b602155565b5f546001600160a01b031633146110825760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156111635760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f84866121e5565b95945050505050565b6022545f9060ff1615611197576111908484846117ad565b905061095b565b6001600160a01b0384165f9081526001602052604090205460ff161580156111d757506001600160a01b0383165f9081526001602052604090205460ff16155b1561122c57601e54600160a01b900460ff1661122c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ed565b6001600160a01b0384165f9081526001602052604090205460ff1615801561125d57506001600160a01b0383163014155b801561127457506001600160a01b03831661dead14155b801561128e5750601e546001600160a01b03848116911614155b80156112a857506019546001600160a01b03848116911614155b80156112c257506016546001600160a01b03848116911614155b80156112e657506001600160a01b0383165f9081526009602052604090205460ff16155b15611386576001600160a01b0383165f9081526006602052604090205460055461131084836121f8565b11156113845760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ed565b505b601e546001600160a01b0385811691161480156113ac5750601e54600160a81b900460ff165b80156113d057506001600160a01b0383165f908152600a602052604090205460ff16155b1561146b576001600160a01b0383165f908152601f6020526040902054421161143b5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107ed565b601e5461145290600160b01b900460ff16426121f8565b6001600160a01b0384165f908152601f60205260409020555b611475848361187d565b61147d6118e9565b1561148a5761148a611936565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546114db918490611140565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061152657506001600160a01b0384165f9081526008602052604090205460ff165b61153a57611535858486611cfe565b61153c565b825b6001600160a01b0385165f9081526006602052604090205490915061156190826115f5565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f805160206122bb833981519152906115a19085815260200190565b60405180910390a3506001949350505050565b5f61095b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611140565b5f8061160183856121f8565b90508381101561095b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ed565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116906064610f9c6013546010546116ee90919063ffffffff16565b6116ac6064610f9c6012546010546116ee90919063ffffffff16565b6116c86064610f9c6014546010546116ee90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036116fd57505f6107be565b5f611708838561217d565b9050826117158583612194565b1461095b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ed565b5f61095b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546117fd918490611140565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461182b90836115f5565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f805160206122bb8339815191529061186b9086815260200190565b60405180910390a35060019392505050565b600454811115806118a557506001600160a01b0382165f9081526009602052604090205460ff165b6118e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ed565b5050565b601e545f906001600160a01b03163314801590611909575060225460ff16155b8015611917575060205460ff165b8015610a33575050602154305f90815260066020526040902054101590565b6022805460ff19166001179055601a54601b545f9161195491610962565b61196057600b54611962565b5f5b90505f6119856002610f9c601054610f9c866021546116ee90919063ffffffff16565b90505f61199d826021546115b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d5576119d561220b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0657611a0661220b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4f9086905f9087903090429060040161221f565b5f604051808303815f87803b158015611a66575f80fd5b505af1158015611a78573d5f803e3d5ffd5b505050505f611a9082476115b490919063ffffffff16565b90505f611aaa611aa188600261176c565b601054906115b4565b90505f611abe6002610f9c8481878d6116ee565b90505f611ada83610f9c600c54876116ee90919063ffffffff16565b90505f611af684610f9c600e54886116ee90919063ffffffff16565b90505f611b1285610f9c600d54896116ee90919063ffffffff16565b6016546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b61576040519150601f19603f3d011682016040523d82523d5f602084013e611b66565b606091505b50506017546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb3576040519150601f19603f3d011682016040523d82523d5f602084013e611bb8565b606091505b50506018546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c05576040519150601f19603f3d011682016040523d82523d5f602084013e611c0a565b606091505b505f9250508b159050611ce657601c5460155460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca9919061228f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601454601e545f91906001600160a01b0390811690841603611d235750601254611d3e565b601e546001600160a01b0390811690861603611d3e57506013545b5f611d6a6011546064611d51919061217d565b610f9c84610f8f6010548a6116ee90919063ffffffff16565b90505f611d88601054610f9c600f54856116ee90919063ffffffff16565b90505f611d9583836115b4565b305f90815260066020526040902054909150611db190826115f5565b305f90815260066020526040808220929092556019546001600160a01b031681522054611dde90836115f5565b6019546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f805160206122bb833981519152910160405180910390a38115611e6757600354611e3690836115b4565b6003556040518281525f906001600160a01b038a16905f805160206122bb8339815191529060200160405180910390a35b611e7187846115b4565b98975050505050505050565b5f8183611e9d5760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f8486612194565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ef4575f80fd5b919050565b5f8060408385031215611f0a575f80fd5b611f1383611ede565b946020939093013593505050565b5f805f805f60a08688031215611f35575f80fd5b611f3e86611ede565b9450611f4c60208701611ede565b9350611f5a60408701611ede565b9250611f6860608701611ede565b9150611f7660808701611ede565b90509295509295909350565b5f805f60608486031215611f94575f80fd5b611f9d84611ede565b9250611fab60208501611ede565b929592945050506040919091013590565b5f8060408385031215611fcd575f80fd5b50508035926020909101359150565b8015158114610f5a575f80fd5b5f8060408385031215611ffa575f80fd5b61200383611ede565b9150602083013561201381611fdc565b809150509250929050565b5f6020828403121561202e575f80fd5b61095b82611ede565b5f60208284031215612047575f80fd5b5035919050565b5f805f60608486031215612060575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612088575f80fd5b8235611f1381611fdc565b5f805f805f8060c087890312156120a8575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f80604083850312156120e3575f80fd5b82356120ee81611fdc565b9150602083013560ff81168114612013575f80fd5b5f8060408385031215612114575f80fd5b61211d83611ede565b915061212b60208401611ede565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107be576107be612169565b5f826121ae57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156121c3575f80fd5b5051919050565b5f602082840312156121da575f80fd5b815161095b81611fdc565b818103818111156107be576107be612169565b808201808211156107be576107be612169565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561226f5783516001600160a01b0316835260209384019390920191600101612248565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122a1575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610241575f3560e01c8063722b62ad11610134578063a8aa1b31116100b3578063cf4d094b11610078578063cf4d094b14610684578063cfd8d949146106a3578063dd62ed3e146106c2578063e0dca26e14610706578063f2fde38b1461071a578063f887ea4014610739575f80fd5b8063a8aa1b31146105f5578063a9059cbb14610614578063b2bdfa7b14610633578063b53d8d2914610651578063ca38b2d914610670575f80fd5b806386f6c3c1116100f957806386f6c3c11461054a578063893d20e8146105695780638a8c523c146105995780638da5cb5b146105ad57806395d89b41146105c9575f80fd5b8063722b62ad146104cd578063751039fc146104ed57806375e1a3131461050157806378109e54146105205780637d1db4a514610535575f80fd5b806348b98ef5116101c05780635fb9340c116101855780635fb9340c14610432578063617fe0ed146104465780636ce46bc31461046657806370a0823114610485578063715018a6146104b9575f80fd5b806348b98ef5146103a857806350db71fb146103c157806355265669146103e0578063571ac8b0146103f45780635d0044ca14610413575f80fd5b80631df4ccfc116102065780631df4ccfc1461031f57806323b872dd146103345780632e6ac10614610353578063308302d314610372578063313ce56714610387575f80fd5b806306fdde031461024c57806308fd3d0514610291578063095ea7b3146102c157806318160ddd146102e057806318abb635146102fe575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5060408051808201909152600b81526a4d6f67676564205065706560a81b60208201525b6040516102889190611ea9565b60405180910390f35b34801561029c575f80fd5b50601e546102b190600160a01b900460ff1681565b6040519015158152602001610288565b3480156102cc575f80fd5b506102b16102db366004611ef9565b610758565b3480156102eb575f80fd5b506003545b604051908152602001610288565b348015610309575f80fd5b5061031d610318366004611f21565b6107c4565b005b34801561032a575f80fd5b506102f060105481565b34801561033f575f80fd5b506102b161034e366004611f82565b6108a4565b34801561035e575f80fd5b506102b161036d366004611fbc565b610962565b34801561037d575f80fd5b506102f060215481565b348015610392575f80fd5b5060095b60405160ff9091168152602001610288565b3480156103b3575f80fd5b506020546102b19060ff1681565b3480156103cc575f80fd5b5061031d6103db366004611fe9565b610975565b3480156103eb575f80fd5b506102f06109c8565b3480156103ff575f80fd5b506102b161040e36600461201e565b610a38565b34801561041e575f80fd5b5061031d61042d366004612037565b610a44565b34801561043d575f80fd5b5061031d610ad0565b348015610451575f80fd5b50601e546102b190600160a81b900460ff1681565b348015610471575f80fd5b5061031d61048036600461204e565b610b08565b348015610490575f80fd5b506102f061049f36600461201e565b6001600160a01b03165f9081526006602052604090205490565b3480156104c4575f80fd5b5061031d610b42565b3480156104d8575f80fd5b50601e5461039690600160b01b900460ff1681565b3480156104f8575f80fd5b5061031d610bb3565b34801561050c575f80fd5b5061031d61051b366004612077565b610be9565b34801561052b575f80fd5b506102f060055481565b348015610540575f80fd5b506102f060045481565b348015610555575f80fd5b5061031d610564366004612093565b610c6b565b348015610574575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610288565b3480156105a4575f80fd5b5061031d610d38565b3480156105b8575f80fd5b505f546001600160a01b0316610581565b3480156105d4575f80fd5b506040805180820190915260048152634d4f504560e01b602082015261027b565b348015610600575f80fd5b50601e54610581906001600160a01b031681565b34801561061f575f80fd5b506102b161062e366004611ef9565b610d88565b34801561063e575f80fd5b505f54610581906001600160a01b031681565b34801561065c575f80fd5b506102b161066b366004611ef9565b610d94565b34801561067b575f80fd5b5061031d610f24565b34801561068f575f80fd5b506102f061069e366004612037565b610f5d565b3480156106ae575f80fd5b5061031d6106bd3660046120d2565b610fa2565b3480156106cd575f80fd5b506102f06106dc366004612103565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610711575f80fd5b5061031d611002565b348015610725575f80fd5b5061031d61073436600461201e565b611059565b348015610744575f80fd5b50601c54610581906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b29086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107f65760405162461bcd60e51b81526004016107ed90612134565b60405180910390fd5b601580546001600160a01b038781166001600160a01b031992831617909255601680548784169083168117909155601780548785169084168117909155601980548786169085168117909155601880549587169590941685179093556040805192835260208301949094529281019190915260608101919091527fd57a6cc80e12ea4e450dcae918d555702c8ad353993d8e23acc138382c6c7f649060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461094d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610929918490611140565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610958848484611178565b90505b9392505050565b5f8261096d83610f5d565b119392505050565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610a33929091610a2d91906115b4565b906115b4565b905090565b5f6107be825f19610758565b5f546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107ed90612134565b6001811015610a7a575f80fd5b6103e881600354610a8b919061217d565b610a959190612194565b60058190556040519081527f494fd99b13a8a3670e91a40af1b1ffec73968d010de2a178aa17556d7d353f339060200160405180910390a150565b5f546001600160a01b03163314610af95760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a81b19169055565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016107ed90612134565b601291909155601391909155601455565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b81526004016107ed90612134565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016107ed90612134565b6003546004819055600555565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016107ed90612134565b6020805460ff1916831515908117825560218390556040805184815260ff9092161515928201929092527f392f1d6148f51babec2021798dc4b53898c421ad141fcd1babe8ac1bff909f79910160405180910390a15050565b5f546001600160a01b03163314610c945760405162461bcd60e51b81526004016107ed90612134565b600b869055600e859055600c849055600d839055600f829055610cc582610cbf858188818c8c6115f5565b906115f5565b6010556011819055610cd8600482612194565b60105410610d285760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032352500000060448201526064016107ed565b610d30611653565b505050505050565b5f546001600160a01b03163314610d615760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a01b1916600160a01b1790556101f46013556102bc6012556103e8601455565b5f61095b338484611178565b5f306001600160a01b03841603610dfe5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016107ed565b815f03610e6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b91906121b3565b91505b604080516001600160a01b0385168152602081018490527f13baf1e647d68ca9451d9fc896ee1c75b4337b7804451971e549ca6d1e24287d910160405180910390a160155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b91906121ca565b6017546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f5a573d5f803e3d5ffd5b50565b5f6107be610f696109c8565b601e546001600160a01b03165f90815260066020526040902054610f9c90610f95906002905b906116ee565b85906116ee565b9061176c565b5f546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107ed90612134565b601e805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b0316331461102b5760405162461bcd60e51b81526004016107ed90612134565b5f6013819055601281905560145560035460649061104a90600161217d565b6110549190612194565b602155565b5f546001600160a01b031633146110825760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156111635760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f84866121e5565b95945050505050565b6022545f9060ff1615611197576111908484846117ad565b905061095b565b6001600160a01b0384165f9081526001602052604090205460ff161580156111d757506001600160a01b0383165f9081526001602052604090205460ff16155b1561122c57601e54600160a01b900460ff1661122c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ed565b6001600160a01b0384165f9081526001602052604090205460ff1615801561125d57506001600160a01b0383163014155b801561127457506001600160a01b03831661dead14155b801561128e5750601e546001600160a01b03848116911614155b80156112a857506019546001600160a01b03848116911614155b80156112c257506016546001600160a01b03848116911614155b80156112e657506001600160a01b0383165f9081526009602052604090205460ff16155b15611386576001600160a01b0383165f9081526006602052604090205460055461131084836121f8565b11156113845760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ed565b505b601e546001600160a01b0385811691161480156113ac5750601e54600160a81b900460ff165b80156113d057506001600160a01b0383165f908152600a602052604090205460ff16155b1561146b576001600160a01b0383165f908152601f6020526040902054421161143b5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107ed565b601e5461145290600160b01b900460ff16426121f8565b6001600160a01b0384165f908152601f60205260409020555b611475848361187d565b61147d6118e9565b1561148a5761148a611936565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546114db918490611140565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061152657506001600160a01b0384165f9081526008602052604090205460ff165b61153a57611535858486611cfe565b61153c565b825b6001600160a01b0385165f9081526006602052604090205490915061156190826115f5565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f805160206122bb833981519152906115a19085815260200190565b60405180910390a3506001949350505050565b5f61095b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611140565b5f8061160183856121f8565b90508381101561095b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ed565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116906064610f9c6013546010546116ee90919063ffffffff16565b6116ac6064610f9c6012546010546116ee90919063ffffffff16565b6116c86064610f9c6014546010546116ee90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036116fd57505f6107be565b5f611708838561217d565b9050826117158583612194565b1461095b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ed565b5f61095b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546117fd918490611140565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461182b90836115f5565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f805160206122bb8339815191529061186b9086815260200190565b60405180910390a35060019392505050565b600454811115806118a557506001600160a01b0382165f9081526009602052604090205460ff165b6118e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ed565b5050565b601e545f906001600160a01b03163314801590611909575060225460ff16155b8015611917575060205460ff165b8015610a33575050602154305f90815260066020526040902054101590565b6022805460ff19166001179055601a54601b545f9161195491610962565b61196057600b54611962565b5f5b90505f6119856002610f9c601054610f9c866021546116ee90919063ffffffff16565b90505f61199d826021546115b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d5576119d561220b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0657611a0661220b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4f9086905f9087903090429060040161221f565b5f604051808303815f87803b158015611a66575f80fd5b505af1158015611a78573d5f803e3d5ffd5b505050505f611a9082476115b490919063ffffffff16565b90505f611aaa611aa188600261176c565b601054906115b4565b90505f611abe6002610f9c8481878d6116ee565b90505f611ada83610f9c600c54876116ee90919063ffffffff16565b90505f611af684610f9c600e54886116ee90919063ffffffff16565b90505f611b1285610f9c600d54896116ee90919063ffffffff16565b6016546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b61576040519150601f19603f3d011682016040523d82523d5f602084013e611b66565b606091505b50506017546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb3576040519150601f19603f3d011682016040523d82523d5f602084013e611bb8565b606091505b50506018546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c05576040519150601f19603f3d011682016040523d82523d5f602084013e611c0a565b606091505b505f9250508b159050611ce657601c5460155460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca9919061228f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601454601e545f91906001600160a01b0390811690841603611d235750601254611d3e565b601e546001600160a01b0390811690861603611d3e57506013545b5f611d6a6011546064611d51919061217d565b610f9c84610f8f6010548a6116ee90919063ffffffff16565b90505f611d88601054610f9c600f54856116ee90919063ffffffff16565b90505f611d9583836115b4565b305f90815260066020526040902054909150611db190826115f5565b305f90815260066020526040808220929092556019546001600160a01b031681522054611dde90836115f5565b6019546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f805160206122bb833981519152910160405180910390a38115611e6757600354611e3690836115b4565b6003556040518281525f906001600160a01b038a16905f805160206122bb8339815191529060200160405180910390a35b611e7187846115b4565b98975050505050505050565b5f8183611e9d5760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f8486612194565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ef4575f80fd5b919050565b5f8060408385031215611f0a575f80fd5b611f1383611ede565b946020939093013593505050565b5f805f805f60a08688031215611f35575f80fd5b611f3e86611ede565b9450611f4c60208701611ede565b9350611f5a60408701611ede565b9250611f6860608701611ede565b9150611f7660808701611ede565b90509295509295909350565b5f805f60608486031215611f94575f80fd5b611f9d84611ede565b9250611fab60208501611ede565b929592945050506040919091013590565b5f8060408385031215611fcd575f80fd5b50508035926020909101359150565b8015158114610f5a575f80fd5b5f8060408385031215611ffa575f80fd5b61200383611ede565b9150602083013561201381611fdc565b809150509250929050565b5f6020828403121561202e575f80fd5b61095b82611ede565b5f60208284031215612047575f80fd5b5035919050565b5f805f60608486031215612060575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612088575f80fd5b8235611f1381611fdc565b5f805f805f8060c087890312156120a8575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f80604083850312156120e3575f80fd5b82356120ee81611fdc565b9150602083013560ff81168114612013575f80fd5b5f8060408385031215612114575f80fd5b61211d83611ede565b915061212b60208401611ede565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107be576107be612169565b5f826121ae57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156121c3575f80fd5b5051919050565b5f602082840312156121da575f80fd5b815161095b81611fdc565b818103818111156107be576107be612169565b808201808211156107be576107be612169565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561226f5783516001600160a01b0316835260209384019390920191600101612248565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122a1575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c64736f6c634300081a0033

Deployed Bytecode Sourcemap

5155:15027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9257:80;;;;;;;;;;-1:-1:-1;9329:5:0;;;;;;;;;;;;-1:-1:-1;;;9329:5:0;;;;9257:80;;;;;;;:::i;:::-;;;;;;;;7475:31;;;;;;;;;;-1:-1:-1;7475:31:0;;;;-1:-1:-1;;;7475:31:0;;;;;;;;;602:14:1;;595:22;577:41;;565:2;550:18;7475:31:0;437:187:1;9679:216:0;;;;;;;;;;-1:-1:-1;9679:216:0;;;;;:::i;:::-;;:::i;8987:88::-;;;;;;;;;;-1:-1:-1;9060:12:0;;8987:88;;;1258:25:1;;;1246:2;1231:18;8987:88:0;1112:177:1;18925:542:0;;;;;;;;;;-1:-1:-1;18925:542:0;;;;;:::i;:::-;;:::i;:::-;;6821:97;;;;;;;;;;;;;;;;10197:370;;;;;;;;;;-1:-1:-1;10197:370:0;;;;;:::i;:::-;;:::i;19730:142::-;;;;;;;;;;-1:-1:-1;19730:142:0;;;;;:::i;:::-;;:::i;7709:63::-;;;;;;;;;;;;;;;;9081:80;;;;;;;;;;-1:-1:-1;5519:1:0;9081:80;;;2685:4:1;2673:17;;;2655:36;;2643:2;2628:18;9081:80:0;2513:184:1;7664:38:0;;;;;;;;;;-1:-1:-1;7664:38:0;;;;;;;;11117:129;;;;;;;;;;-1:-1:-1;11117:129:0;;;;;:::i;:::-;;:::i;20043:132::-;;;;;;;;;;;;;:::i;9903:122::-;;;;;;;;;;-1:-1:-1;9903:122:0;;;;;:::i;:::-;;:::i;10579:247::-;;;;;;;;;;-1:-1:-1;10579:247:0;;;;;:::i;:::-;;:::i;10841:93::-;;;;;;;;;;;;;:::i;7516:37::-;;;;;;;;;;-1:-1:-1;7516:37:0;;;;-1:-1:-1;;;7516:37:0;;;;;;15466:274;;;;;;;;;;-1:-1:-1;15466:274:0;;;;;:::i;:::-;;:::i;9427:105::-;;;;;;;;;;-1:-1:-1;9427:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9511:18:0;9493:7;9511:18;;;:9;:18;;;;;;;9427:105;2069:148;;;;;;;;;;;;;:::i;7560:38::-;;;;;;;;;;-1:-1:-1;7560:38:0;;;;-1:-1:-1;;;7560:38:0;;;;;;15979:139;;;;;;;;;;;;;:::i;19477:245::-;;;;;;;;;;-1:-1:-1;19477:245:0;;;;;:::i;:::-;;:::i;6280:63::-;;;;;;;;;;;;;;;;6213:60;;;;;;;;;;;;;;;;18311:601;;;;;;;;;;-1:-1:-1;18311:601:0;;;;;:::i;:::-;;:::i;9343:78::-;;;;;;;;;;-1:-1:-1;9395:7:0;1920:6;-1:-1:-1;;;;;1920:6:0;9343:78;;;-1:-1:-1;;;;;5402:32:1;;;5384:51;;5372:2;5357:18;9343:78:0;5238:203:1;15755:214:0;;;;;;;;;;;;;:::i;1855:79::-;;;;;;;;;;-1:-1:-1;1893:7:0;1920:6;-1:-1:-1;;;;;1920:6:0;1855:79;;9167:84;;;;;;;;;;-1:-1:-1;9241:7:0;;;;;;;;;;;;-1:-1:-1;;;9241:7:0;;;;9167:84;;7443:19;;;;;;;;;;-1:-1:-1;7443:19:0;;;;-1:-1:-1;;;;;7443:19:0;;;10033:156;;;;;;;;;;-1:-1:-1;10033:156:0;;;;;:::i;:::-;;:::i;1475:21::-;;;;;;;;;;-1:-1:-1;1475:21:0;;;;-1:-1:-1;;;;;1475:21:0;;;15025:433;;;;;;;;;;-1:-1:-1;15025:433:0;;;;;:::i;:::-;;:::i;14884:134::-;;;;;;;;;;;;;:::i;19880:151::-;;;;;;;;;;-1:-1:-1;19880:151:0;;;;;:::i;:::-;;:::i;10942:165::-;;;;;;;;;;-1:-1:-1;10942:165:0;;;;;:::i;:::-;;:::i;9538:133::-;;;;;;;;;;-1:-1:-1;9538:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9640:19:0;;;9622:7;9640:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9538:133;11254:244;;;;;;;;;;;;;:::i;2225:::-;;;;;;;;;;-1:-1:-1;2225:244:0;;;;;:::i;:::-;;:::i;7373:24::-;;;;;;;;;;-1:-1:-1;7373:24:0;;;;-1:-1:-1;;;;;7373:24:0;;;9679:216;9783:10;9754:4;9771:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9771:32:0;;;;;;;;;;:41;;;9828:37;9754:4;;9771:32;;9828:37;;;;9806:6;1258:25:1;;1246:2;1231:18;;1112:177;9828:37:0;;;;;;;;-1:-1:-1;9883:4:0;9679:216;;;;;:::o;18925:542::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;;;;;;;;;19119:13:::1;:30:::0;;-1:-1:-1;;;;;19119:30:0;;::::1;-1:-1:-1::0;;;;;;19119:30:0;;::::1;;::::0;;;19160:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19215:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19266:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19311:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;19369:90:::1;::::0;;6940:51:1;;;7022:2;7007:18;;7000:60;;;;7076:18;;;7069:60;;;;7160:2;7145:18;;7138:60;;;;19369:90:0::1;::::0;6927:3:1;6912:19;19369:90:0::1;;;;;;;18925:542:::0;;;;;:::o;10197:370::-;-1:-1:-1;;;;;10317:19:0;;10297:4;10317:19;;;:11;:19;;;;;;;;10337:10;10317:31;;;;;;;;-1:-1:-1;;10317:52:0;10314:186;;10419:69;;;;;;;;;;;-1:-1:-1;;;10419:69:0;;;;;;;;-1:-1:-1;;;;;10419:19:0;;-1:-1:-1;10419:19:0;;;:11;:19;;;;;10439:10;10419:31;;;;;;;;;;:69;;10455:6;;10419:35;:69::i;:::-;-1:-1:-1;;;;;10385:19:0;;;;;;:11;:19;;;;;;;;10405:10;10385:31;;;;;;;:103;10314:186;10519:40;10533:6;10541:9;10552:6;10519:13;:40::i;:::-;10512:47;;10197:370;;;;;;:::o;19730:142::-;19809:4;19859:5;19833:23;19847:8;19833:13;:23::i;:::-;:31;;19730:142;-1:-1:-1;;;19730:142:0:o;11117:129::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11205:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;11205:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11117:129::o;20043:132::-;9511:9;:18;;;;5279:42;20086:7;9511:18;;;;;20113:12;;20086:7;;20113:54;;9511:18;;20113:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;20106:61;;20043:132;:::o;9903:122::-;9958:4;9982:35;9990:7;-1:-1:-1;;9982:7:0;:35::i;10579:247::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;10682:1:::1;10664:14;:19;;10656:28;;;::::0;::::1;;10749:4;10730:14;10715:12;;:29;;;;:::i;:::-;10714:39;;;;:::i;:::-;10696:15;:57:::0;;;10769:31:::1;::::0;1258:25:1;;;10769:31:0::1;::::0;1246:2:1;1231:18;10769:31:0::1;;;;;;;10579:247:::0;:::o;10841:93::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;10896:18:::1;:26:::0;;-1:-1:-1;;;;10896:26:0::1;::::0;;10841:93::o;15466:274::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;15592:14:::1;:31:::0;;;;15634:13:::1;:29:::0;;;;15674:24:::1;:42:::0;15466:274::o;2069:148::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;2176:1:::1;2160:6:::0;;2139:40:::1;::::0;-1:-1:-1;;;;;2160:6:0;;::::1;::::0;2139:40:::1;::::0;2176:1;;2139:40:::1;2207:1;2190:19:::0;;-1:-1:-1;;;;;;2190:19:0::1;::::0;;2069:148::o;15979:139::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;16053:12:::1;::::0;16038::::1;:27:::0;;;16080:15:::1;:30:::0;15979:139::o;19477:245::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;19565:19:::1;:30:::0;;-1:-1:-1;;19565:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;19606:21:::1;:31:::0;;;19653:61:::1;::::0;;7904:25:1;;;19565:30:0::1;19694:19:::0;;;7972:14:1;7965:22;7945:18;;;7938:50;;;;19653:61:0::1;::::0;7877:18:1;19653:61:0::1;;;;;;;19477:245:::0;;:::o;18311:601::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;18489:12:::1;:28:::0;;;18528:10:::1;:24:::0;;;18563:12:::1;:28:::0;;;18602:10:::1;:24:::0;;;18637:7:::1;:18:::0;;;18677:80:::1;18647:8:::0;18677:66:::1;18615:11:::0;18677:66;18578:13;18677:66;18504:13;18541:11;18677:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:80::-;18666:8;:91:::0;18768:14:::1;:32:::0;;;18830:18:::1;18847:1;18785:15:::0;18830:18:::1;:::i;:::-;18819:8;;:29;18811:71;;;::::0;-1:-1:-1;;;18811:71:0;;8201:2:1;18811:71:0::1;::::0;::::1;8183:21:1::0;8240:2;8220:18;;;8213:30;8279:31;8259:18;;;8252:59;8328:18;;18811:71:0::1;7999:353:1::0;18811:71:0::1;18894:10;:8;:10::i;:::-;18311:601:::0;;;;;;:::o;15755:214::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;15808:11:::1;:18:::0;;-1:-1:-1;;;;15808:18:0::1;-1:-1:-1::0;;;15808:18:0::1;::::0;;15853:3:::1;15837:13;:19:::0;15884:3:::1;15867:14;:20:::0;15925:4:::1;15808:11;15898:31:::0;15755:214::o;10033:156::-;10113:4;10137:44;10151:10;10163:9;10174:6;10137:13;:44::i;15025:433::-;15111:12;15172:4;-1:-1:-1;;;;;15148:29:0;;;15140:82;;;;-1:-1:-1;;;15140:82:0;;8559:2:1;15140:82:0;;;8541:21:1;8598:2;8578:18;;;8571:30;8637:34;8617:18;;;8610:62;-1:-1:-1;;;8688:18:1;;;8681:38;8736:19;;15140:82:0;8357:404:1;15140:82:0;15241:6;15251:1;15241:11;15238:95;;15277:44;;-1:-1:-1;;;15277:44:0;;15315:4;15277:44;;;5384:51:1;-1:-1:-1;;;;;15277:29:0;;;;;5357:18:1;;15277:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15268:53;;15238:95;15348:33;;;-1:-1:-1;;;;;9193:32:1;;9175:51;;9257:2;9242:18;;9235:34;;;15348:33:0;;9148:18:1;15348:33:0;;;;;;;15428:13;;15399:51;;-1:-1:-1;;;15399:51:0;;-1:-1:-1;;;;;15428:13:0;;;15399:51;;;9175::1;9242:18;;;9235:34;;;15399:28:0;;;;;;9148:18:1;;15399:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14884:134::-;14945:18;;14937:59;;-1:-1:-1;;;;;14945:18:0;;;;14974:21;14937:59;;;;;14945:18;14937:59;14945:18;14937:59;14974:21;14945:18;14937:59;;;;;;;;;;;;;;;;;;;;;14884:134::o;19880:151::-;19942:7;19969:54;20010:12;:10;:12::i;:::-;19992:4;;-1:-1:-1;;;;;19992:4:0;9493:7;9511:18;;;:9;:18;;;;;;19969:36;;19982:22;;20002:1;;19982:15;:19;;:22::i;:::-;19969:8;;:12;:36::i;:::-;:40;;:54::i;10942:165::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;11027:18:::1;:28:::0;;-1:-1:-1;;;;11066:33:0;-1:-1:-1;;;11027:28:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;11066:33:0;;;;;-1:-1:-1;;;11027:28:0::1;11066:33:::0;;;::::1;::::0;;;::::1;;::::0;;10942:165::o;11254:244::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;11324:1:::1;11308:13;:17:::0;;;11340:14:::1;:18:::0;;;11373:24:::1;:28:::0;11440:12:::1;::::0;11459:3:::1;::::0;11440:16:::1;::::0;-1:-1:-1;11440:16:0::1;:::i;:::-;:22;;;;:::i;:::-;11416:21;:46:::0;11254:244::o;2225:::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2314:22:0;::::1;2306:73;;;::::0;-1:-1:-1;;;2306:73:0;;9732:2:1;2306:73:0::1;::::0;::::1;9714:21:1::0;9771:2;9751:18;;;9744:30;9810:34;9790:18;;;9783:62;-1:-1:-1;;;9861:18:1;;;9854:36;9907:19;;2306:73:0::1;9530:402:1::0;2306:73:0::1;2416:6;::::0;;2395:38:::1;::::0;-1:-1:-1;;;;;2395:38:0;;::::1;::::0;2416:6;::::1;::::0;2395:38:::1;::::0;::::1;2444:6;:17:::0;;-1:-1:-1;;;;;;2444:17:0::1;-1:-1:-1::0;;;;;2444:17:0;;;::::1;::::0;;;::::1;::::0;;2225:244::o;4367:192::-;4453:7;4489:12;4481:6;;;;4473:29;;;;-1:-1:-1;;;4473:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4513:9:0;4525:5;4529:1;4525;:5;:::i;:::-;4513:17;4367:192;-1:-1:-1;;;;;4367:192:0:o;11512:1498::-;11624:6;;11604:4;;11624:6;;11621:63;;;11640:41;11655:6;11663:9;11674:6;11640:14;:41::i;:::-;11633:48;;;;11621:63;-1:-1:-1;;;;;11700:22:0;;;;;;:14;:22;;;;;;;;11699:23;:53;;;;-1:-1:-1;;;;;;11727:25:0;;;;;;:14;:25;;;;;;;;11726:26;11699:53;11696:139;;;11776:11;;-1:-1:-1;;;11776:11:0;;;;11768:43;;;;-1:-1:-1;;;11768:43:0;;10272:2:1;11768:43:0;;;10254:21:1;10311:2;10291:18;;;10284:30;-1:-1:-1;;;10330:18:1;;;10323:50;10390:18;;11768:43:0;10070:344:1;11768:43:0;-1:-1:-1;;;;;11877:22:0;;;;;;:14;:22;;;;;;;;11876:23;:53;;;;-1:-1:-1;;;;;;11903:26:0;;11924:4;11903:26;;11876:53;:84;;;;-1:-1:-1;;;;;;11934:26:0;;5279:42;11934:26;;11876:84;:105;;;;-1:-1:-1;11977:4:0;;-1:-1:-1;;;;;11964:17:0;;;11977:4;;11964:17;;11876:105;:137;;;;-1:-1:-1;11998:15:0;;-1:-1:-1;;;;;11985:28:0;;;11998:15;;11985:28;;11876:137;:174;;;;-1:-1:-1;12030:20:0;;-1:-1:-1;;;;;12017:33:0;;;12030:20;;12017:33;;11876:174;:205;;;;-1:-1:-1;;;;;;12055:26:0;;;;;;:15;:26;;;;;;;;12054:27;11876:205;11872:397;;;-1:-1:-1;;;;;9511:18:0;;12097;9511;;;:9;:18;;;;;;12186:15;;12162:19;12175:6;9511:18;12162:19;:::i;:::-;12161:40;;12153:114;;;;-1:-1:-1;;;12153:114:0;;10751:2:1;12153:114:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:34;10809:18;;;10802:62;10900:32;10880:18;;;10873:60;10950:19;;12153:114:0;10549:426:1;12153:114:0;12082:187;11872:397;12295:4;;-1:-1:-1;;;;;12285:14:0;;;12295:4;;12285:14;:36;;;;-1:-1:-1;12303:18:0;;-1:-1:-1;;;12303:18:0;;;;12285:36;:68;;;;-1:-1:-1;;;;;;12326:27:0;;;;;;:16;:27;;;;;;;;12325:28;12285:68;12281:260;;;-1:-1:-1;;;;;12378:24:0;;;;;;:13;:24;;;;;;12405:15;-1:-1:-1;12370:78:0;;;;-1:-1:-1;;;12370:78:0;;11182:2:1;12370:78:0;;;11164:21:1;11221:2;11201:18;;;11194:30;11260:26;11240:18;;;11233:54;11304:18;;12370:78:0;10980:348:1;12370:78:0;12508:21;;12490:39;;-1:-1:-1;;;12508:21:0;;;;12490:15;:39;:::i;:::-;-1:-1:-1;;;;;12463:24:0;;;;;;:13;:24;;;;;:66;12281:260;12553:28;12566:6;12574;12553:12;:28::i;:::-;12599:16;:14;:16::i;:::-;12596:35;;;12618:10;:8;:10::i;:::-;12661:53;;;;;;;;;;;-1:-1:-1;;;12661:53:0;;;;;;;;-1:-1:-1;;;;;12661:17:0;;-1:-1:-1;12661:17:0;;;:9;:17;;;;;;;;:53;;12683:6;;12661:21;:53::i;:::-;-1:-1:-1;;;;;12641:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12753:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12776:22:0;;;;;;:11;:22;;;;;;;;12753:45;12752:93;;12811:34;12819:6;12827;12835:9;12811:7;:34::i;:::-;12752:93;;;12802:6;12752:93;-1:-1:-1;;;;;12879:20:0;;;;;;:9;:20;;;;;;12727:118;;-1:-1:-1;12879:40:0;;12727:118;12879:24;:40::i;:::-;-1:-1:-1;;;;;12856:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12937:43;;;;;;-1:-1:-1;;;;;;;;;;;12937:43:0;;;12965:14;1258:25:1;;1246:2;1231:18;;1112:177;12937:43:0;;;;;;;;-1:-1:-1;12998:4:0;;11512:1498;-1:-1:-1;;;;11512:1498:0:o;4225:136::-;4283:7;4310:43;4314:1;4317;4310:43;;;;;;;;;;;;;;;;;:3;:43::i;4038:181::-;4096:7;;4128:5;4132:1;4128;:5;:::i;:::-;4116:17;;4157:1;4152;:6;;4144:46;;;;-1:-1:-1;;;4144:46:0;;11535:2:1;4144:46:0;;;11517:21:1;11574:2;11554:18;;;11547:30;11613:29;11593:18;;;11586:57;11660:18;;4144:46:0;11333:351:1;18043:256:0;18096:195;18111:36;18143:3;18111:27;18124:13;;18111:8;;:12;;:27;;;;:::i;:36::-;18169:37;18202:3;18169:28;18182:14;;18169:8;;:12;;:28;;;;:::i;:37::-;18228:47;18271:3;18228:38;18241:24;;18228:8;;:12;;:38;;;;:::i;:47::-;18096:195;;;11909:4:1;11897:17;;;11879:36;;11951:17;;;11946:2;11931:18;;11924:45;12005:17;;11985:18;;;11978:45;18096:195:0;;;;;;11867:2:1;18096:195:0;;;18043:256::o;4565:250::-;4623:7;4647:1;4652;4647:6;4643:47;;-1:-1:-1;4677:1:0;4670:8;;4643:47;4702:9;4714:5;4718:1;4714;:5;:::i;:::-;4702:17;-1:-1:-1;4747:1:0;4738:5;4742:1;4702:17;4738:5;:::i;:::-;:10;4730:56;;;;-1:-1:-1;;;4730:56:0;;12236:2:1;4730:56:0;;;12218:21:1;12275:2;12255:18;;;12248:30;12314:34;12294:18;;;12287:62;-1:-1:-1;;;12365:18:1;;;12358:31;12406:19;;4730:56:0;12034:397:1;4821:132:0;4879:7;4906:39;4910:1;4913;4906:39;;;;;;;;;;;;;;;;;:3;:39::i;13019:330::-;13149:53;;;;;;;;;;;-1:-1:-1;;;13149:53:0;;;;;;;;-1:-1:-1;;;;;13149:17:0;;13112:4;13149:17;;;:9;:17;;;;;;;:53;;13171:6;;13149:21;:53::i;:::-;-1:-1:-1;;;;;13129:17:0;;;;;;;:9;:17;;;;;;:73;;;;13236:20;;;;;;;:32;;13261:6;13236:24;:32::i;:::-;-1:-1:-1;;;;;13213:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13284:35;;;;;;-1:-1:-1;;;;;;;;;;;13284:35:0;;;13312:6;1258:25:1;;1246:2;1231:18;;1112:177;13284:35:0;;;;;;;;-1:-1:-1;13337:4:0;13019:330;;;;;:::o;13357:166::-;13454:12;;13444:6;:22;;:49;;;-1:-1:-1;;;;;;13470:23:0;;;;;;:15;:23;;;;;;;;13444:49;13436:79;;;;-1:-1:-1;;;13436:79:0;;12638:2:1;13436:79:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:47;12753:18;;13436:79:0;12436:341:1;13436:79:0;13357:166;;:::o;14658:213::-;14745:4;;14707;;-1:-1:-1;;;;;14745:4:0;14731:10;:18;;;;:38;;-1:-1:-1;14763:6:0;;;;14762:7;14731:38;:70;;;;-1:-1:-1;14782:19:0;;;;14731:70;:132;;;;-1:-1:-1;;14842:21:0;;14832:4;14814:24;;;;:9;:24;;;;;;:49;;;14658:213::o;16142:1885::-;7820:6;:13;;-1:-1:-1;;7820:13:0;7829:4;7820:13;;;16237::::1;::::0;16252:24:::1;::::0;7820:6;;16221:56:::1;::::0;:15:::1;:56::i;:::-;:75;;16284:12;;16221:75;;;16280:1;16221:75;16191:105;;16307:23;16333:67;16398:1;16333:60;16384:8;;16333:46;16359:19;16333:21;;:25;;:46;;;;:::i;:67::-;16307:93;;16411:20;16434:42;16460:15;16434:21;;:25;;:42;;;;:::i;:::-;16513:16;::::0;;16527:1:::1;16513:16:::0;;;;;::::1;::::0;;16411:65;;-1:-1:-1;16489:21:0::1;::::0;16513:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16513:16:0::1;16489:40;;16558:4;16540;16545:1;16540:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16540:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16584:4:::1;::::0;16574:7;;16584:4;::::1;::::0;16574;;16584;;16574:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16574:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16659:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16659:188:0;;16625:21:::1;::::0;16659:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16731:12;;16601:21:::1;::::0;16774:4;;16801::::1;::::0;16821:15:::1;::::0;16659:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16860:17;16880:40;16906:13;16880:21;:25;;:40;;;;:::i;:::-;16860:60:::0;-1:-1:-1;16933:19:0::1;16955:40;16968:26;:19:::0;16992:1:::1;16968:23;:26::i;:::-;16955:8;::::0;;:12:::1;:40::i;:::-;16933:62:::0;-1:-1:-1;17016:26:0::1;17045:58;17101:1;17045:51;16933:62:::0;17045:51;:9;17059:19;17045:13:::1;:34::i;:58::-;17016:87;;17114:26;17143:44;17175:11;17143:27;17157:12;;17143:9;:13;;:27;;;;:::i;:44::-;17114:73;;17198:24;17225:42;17255:11;17225:25;17239:10;;17225:9;:13;;:25;;;;:::i;:42::-;17198:69;;17278:20;17301:42;17331:11;17301:25;17315:10;;17301:9;:13;;:25;;;;:::i;:42::-;17385:20;::::0;17377:65:::1;::::0;17278;;-1:-1:-1;17357:15:0::1;::::0;-1:-1:-1;;;;;17385:20:0;;::::1;::::0;17419:18;;17357:15;17377:65;17357:15;17377:65;17419:18;17385:20;17377:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17477:18:0::1;::::0;17469:57:::1;::::0;17356:86;;-1:-1:-1;;;;;;17477:18:0::1;::::0;17509:12;;17469:57:::1;::::0;;;17509:12;17477:18;17469:57:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17561:18:0::1;::::0;17553:61:::1;::::0;17453:73;;-1:-1:-1;;;;;;17561:18:0::1;::::0;17593:16;;17553:61:::1;::::0;;;17593:16;17561:18;17553:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17648:5:0::1;::::0;-1:-1:-1;;17669:19:0;;;-1:-1:-1;17666:354:0::1;;17704:6;::::0;17878:13:::1;::::0;17704:236:::1;::::0;-1:-1:-1;;;17704:236:0;;17780:4:::1;17704:236;::::0;::::1;14523:51:1::0;14590:18;;;14583:34;;;17704:6:0::1;14633:18:1::0;;;14626:34;;;14676:18;;;14669:34;-1:-1:-1;;;;;17878:13:0;;::::1;14719:19:1::0;;;14712:61;17910:15:0::1;14789:19:1::0;;;14782:35;17704:6:0;::::1;::::0;:22:::1;::::0;17734:18;;14495:19:1;;17704:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17960:48:0::1;::::0;;15463:25:1;;;15519:2;15504:18;;15497:34;;;17960:48:0::1;::::0;-1:-1:-1;15436:18:1;17960:48:0::1;;;;;;;17666:354;-1:-1:-1::0;;7838:6:0;:14;;-1:-1:-1;;7838:14:0;;;-1:-1:-1;;;;;;;;;;16142:1885:0:o;13653:997::-;13787:24;;13838:4;;13739:7;;13787:24;-1:-1:-1;;;;;13838:4:0;;;13825:17;;;;13822:148;;-1:-1:-1;13869:14:0;;13822:148;;;13914:4;;-1:-1:-1;;;;;13914:4:0;;;13904:14;;;;13901:69;;-1:-1:-1;13945:13:0;;13901:69;13982:17;14002:59;14040:14;;14057:3;14040:20;;;;:::i;:::-;14002:33;14027:7;14002:20;14013:8;;14002:6;:10;;:20;;;;:::i;:59::-;13982:79;;14072:18;14093:36;14120:8;;14093:22;14107:7;;14093:9;:13;;:22;;;;:::i;:36::-;14072:57;-1:-1:-1;14140:22:0;14165:25;:9;14072:57;14165:13;:25::i;:::-;14246:4;14228:24;;;;:9;:24;;;;;;14140:50;;-1:-1:-1;14228:44:0;;14140:50;14228:28;:44::i;:::-;14219:4;14201:24;;;;:9;:24;;;;;;:71;;;;14322:15;;-1:-1:-1;;;;;14322:15:0;14312:26;;;;:42;;14343:10;14312:30;:42::i;:::-;14293:15;;-1:-1:-1;;;;;14293:15:0;;;14283:26;;;;:9;:26;;;;;;;;;:71;;;;14370:47;1258:25:1;;;14395:4:0;;14370:47;;;;-1:-1:-1;;;;;;;;;;;14370:47:0;1231:18:1;14370:47:0;;;;;;;14451:14;;14448:154;;14496:12;;:28;;14513:10;14496:16;:28::i;:::-;14481:12;:43;14544:34;;1258:25:1;;;5352:42:0;;-1:-1:-1;;;;;14544:34:0;;;-1:-1:-1;;;;;;;;;;;14544:34:0;1246:2:1;1231:18;14544:34:0;;;;;;;14448:154;14621:21;:6;14632:9;14621:10;:21::i;:::-;14614:28;13653:997;-1:-1:-1;;;;;;;;13653:997:0:o;4959:189::-;5045:7;5080:12;5073:5;5065:28;;;;-1:-1:-1;;;5065:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5104:9:0;5116:5;5120:1;5116;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;629:173::-;697:20;;-1:-1:-1;;;;;746:31:1;;736:42;;726:70;;792:1;789;782:12;726:70;629:173;;;:::o;807:300::-;875:6;883;936:2;924:9;915:7;911:23;907:32;904:52;;;952:1;949;942:12;904:52;975:29;994:9;975:29;:::i;:::-;965:39;1073:2;1058:18;;;;1045:32;;-1:-1:-1;;;807:300:1:o;1294:484::-;1389:6;1397;1405;1413;1421;1474:3;1462:9;1453:7;1449:23;1445:33;1442:53;;;1491:1;1488;1481:12;1442:53;1514:29;1533:9;1514:29;:::i;:::-;1504:39;;1562:38;1596:2;1585:9;1581:18;1562:38;:::i;:::-;1552:48;;1619:38;1653:2;1642:9;1638:18;1619:38;:::i;:::-;1609:48;;1676:38;1710:2;1699:9;1695:18;1676:38;:::i;:::-;1666:48;;1733:39;1767:3;1756:9;1752:19;1733:39;:::i;:::-;1723:49;;1294:484;;;;;;;;:::o;1783:374::-;1860:6;1868;1876;1929:2;1917:9;1908:7;1904:23;1900:32;1897:52;;;1945:1;1942;1935:12;1897:52;1968:29;1987:9;1968:29;:::i;:::-;1958:39;;2016:38;2050:2;2039:9;2035:18;2016:38;:::i;:::-;1783:374;;2006:48;;-1:-1:-1;;;2123:2:1;2108:18;;;;2095:32;;1783:374::o;2162:346::-;2230:6;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;-1:-1:-1;;2352:23:1;;;2472:2;2457:18;;;2444:32;;-1:-1:-1;2162:346:1:o;2702:118::-;2788:5;2781:13;2774:21;2767:5;2764:32;2754:60;;2810:1;2807;2800:12;2825:315;2890:6;2898;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;2990:29;3009:9;2990:29;:::i;:::-;2980:39;;3069:2;3058:9;3054:18;3041:32;3082:28;3104:5;3082:28;:::i;:::-;3129:5;3119:15;;;2825:315;;;;;:::o;3145:186::-;3204:6;3257:2;3245:9;3236:7;3232:23;3228:32;3225:52;;;3273:1;3270;3263:12;3225:52;3296:29;3315:9;3296:29;:::i;3336:226::-;3395:6;3448:2;3436:9;3427:7;3423:23;3419:32;3416:52;;;3464:1;3461;3454:12;3416:52;-1:-1:-1;3509:23:1;;3336:226;-1:-1:-1;3336:226:1:o;3567:466::-;3644:6;3652;3660;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;;3774:23:1;;;3894:2;3879:18;;3866:32;;-1:-1:-1;3997:2:1;3982:18;;;3969:32;;3567:466;-1:-1:-1;3567:466:1:o;4038:361::-;4103:6;4111;4164:2;4152:9;4143:7;4139:23;4135:32;4132:52;;;4180:1;4177;4170:12;4132:52;4219:9;4206:23;4238:28;4260:5;4238:28;:::i;4404:829::-;4508:6;4516;4524;4532;4540;4548;4601:3;4589:9;4580:7;4576:23;4572:33;4569:53;;;4618:1;4615;4608:12;4569:53;-1:-1:-1;;4663:23:1;;;4783:2;4768:18;;4755:32;;-1:-1:-1;4886:2:1;4871:18;;4858:32;;4989:2;4974:18;;4961:32;;-1:-1:-1;5092:3:1;5077:19;;5064:33;;-1:-1:-1;5196:3:1;5181:19;5168:33;;-1:-1:-1;4404:829:1;-1:-1:-1;4404:829:1:o;5446:406::-;5509:6;5517;5570:2;5558:9;5549:7;5545:23;5541:32;5538:52;;;5586:1;5583;5576:12;5538:52;5625:9;5612:23;5644:28;5666:5;5644:28;:::i;:::-;5691:5;-1:-1:-1;5748:2:1;5733:18;;5720:32;5796:4;5783:18;;5771:31;;5761:59;;5816:1;5813;5806:12;5857:260;5925:6;5933;5986:2;5974:9;5965:7;5961:23;5957:32;5954:52;;;6002:1;5999;5992:12;5954:52;6025:29;6044:9;6025:29;:::i;:::-;6015:39;;6073:38;6107:2;6096:9;6092:18;6073:38;:::i;:::-;6063:48;;5857:260;;;;;:::o;6348:356::-;6550:2;6532:21;;;6569:18;;;6562:30;6628:34;6623:2;6608:18;;6601:62;6695:2;6680:18;;6348:356::o;7209:127::-;7270:10;7265:3;7261:20;7258:1;7251:31;7301:4;7298:1;7291:15;7325:4;7322:1;7315:15;7341:168;7414:9;;;7445;;7462:15;;;7456:22;;7442:37;7432:71;;7483:18;;:::i;7514:217::-;7554:1;7580;7570:132;;7624:10;7619:3;7615:20;7612:1;7605:31;7659:4;7656:1;7649:15;7687:4;7684:1;7677:15;7570:132;-1:-1:-1;7716:9:1;;7514:217::o;8766:230::-;8836:6;8889:2;8877:9;8868:7;8864:23;8860:32;8857:52;;;8905:1;8902;8895:12;8857:52;-1:-1:-1;8950:16:1;;8766:230;-1:-1:-1;8766:230:1:o;9280:245::-;9347:6;9400:2;9388:9;9379:7;9375:23;9371:32;9368:52;;;9416:1;9413;9406:12;9368:52;9448:9;9442:16;9467:28;9489:5;9467:28;:::i;9937:128::-;10004:9;;;10025:11;;;10022:37;;;10039:18;;:::i;10419:125::-;10484:9;;;10505:10;;;10502:36;;;10518:18;;:::i;12914:127::-;12975:10;12970:3;12966:20;12963:1;12956:31;13006:4;13003:1;12996:15;13030:4;13027:1;13020:15;13046:959;13308:4;13356:3;13345:9;13341:19;13387:6;13376:9;13369:25;13430:6;13425:2;13414:9;13410:18;13403:34;13473:3;13468:2;13457:9;13453:18;13446:31;13497:6;13532;13526:13;13563:6;13555;13548:22;13601:3;13590:9;13586:19;13579:26;;13640:2;13632:6;13628:15;13614:29;;13661:1;13671:195;13685:6;13682:1;13679:13;13671:195;;;13750:13;;-1:-1:-1;;;;;13746:39:1;13734:52;;13815:2;13841:15;;;;13806:12;;;;13782:1;13700:9;13671:195;;;-1:-1:-1;;;;;;;13922:32:1;;;;13917:2;13902:18;;13895:60;-1:-1:-1;;13986:3:1;13971:19;13964:35;13883:3;13046:959;-1:-1:-1;;;13046:959:1:o;14828:456::-;14916:6;14924;14932;14985:2;14973:9;14964:7;14960:23;14956:32;14953:52;;;15001:1;14998;14991:12;14953:52;-1:-1:-1;;15046:16:1;;15152:2;15137:18;;15131:25;15248:2;15233:18;;;15227:25;15046:16;;15131:25;;-1:-1:-1;15227:25:1;14828:456;-1:-1:-1;14828:456:1:o

Swarm Source

ipfs://b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c
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.