ETH Price: $3,453.70 (-0.12%)
Gas: 14 Gwei

Token

HOKKAIDO KEN (DOKEN)
 

Overview

Max Total Supply

420,690,000,000 DOKEN

Holders

397

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
834,927,166.194248185 DOKEN

Value
$0.00
0x3a111a3be1d941438d7c8ea8fcaa02fa03815f90
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
HOKKAIDOKEN

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-17
*/

/**
https://t.me/HokkaidoKenETH
https://x.com/HokkaidoKenETH
https://HokkaidoKenETH.vip/
*/



// SPDX-License-Identifier: MIT


pragma solidity 0.8.24;

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 HOKKAIDOKEN is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "HOKKAIDO KEN";
    string constant _symbol = "DOKEN";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  420690000000 * 10**_decimals; 

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

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) islaunched;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

       
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 65 / 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;

        isexemptfromfees[msg.sender] = true;            
        islaunched[msg.sender] = true;
        islaunched[pair] = true;
        islaunched[marketingFeeReceiver] = true;
        islaunched[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xfeD9FA3ac08E86dd421cdbE5bEC6fD0940BAfa1e;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = 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_MaxWallet(_maxWalletToken);
                
    }

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

    function setLaunch(address holder, bool exempt) external onlyOwner {
             islaunched[holder] = exempt;
    }
  
      
    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 && !islaunched[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount);  

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

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[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 || islaunched[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        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
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

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

   function clearStuckToken(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 ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setPercentages(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function openTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 600;
        sellpercent = 1000;
        transferpercent = 1000;
                              
    }

               
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }
    
    function setTaxBreakdown(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
        set_fees();
    }

   
    function setReceiverAddresses(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }


    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }

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

    function showBacking(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":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","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":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setLaunch","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":"setPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setReceiverAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000659565b62000023906461f313f88062000669565b600381905562000045906103e8906200003e90600c62000436565b90620004c9565b60045560035462000061906103e8906200003e90600c62000436565b6005556001600a556002600b555f600c556001600d555f600e55600e54600c54600a54600b54600d5462000096919062000683565b620000a2919062000683565b620000ae919062000683565b620000ba919062000683565b600f5560646010819055601181905560128190556013819055601e601955601a55601d805461ffff60a01b1916600160a81b1790556003546103e8906200010390604162000669565b6200010f919062000699565b601e553480156200011e575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001db573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002019190620006b9565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200025e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002849190620006b9565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f99190620006b9565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560158054909916855282852080548916821790559484528184208054909716909417909555601480548516841790558554841673fed9fa3ac08e86dd421cdbe5bec6fd0940bafa1e1790955560168054841683179055601780548416831790556018805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200072f565b5f825f036200044757505f620004c3565b5f62000454838562000669565b90508262000463858362000699565b14620004c05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200051260201b60201c565b5f8183620005355760405162461bcd60e51b8152600401620004b79190620006e1565b505f62000543848662000699565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005a057815f19048211156200058457620005846200054c565b808516156200059257918102915b93841c939080029062000565565b509250929050565b5f82620005b857506001620004c3565b81620005c657505f620004c3565b8160018114620005df5760028114620005ea576200060a565b6001915050620004c3565b60ff841115620005fe57620005fe6200054c565b50506001821b620004c3565b5060208310610133831016604e8410600b84101617156200062f575081810a620004c3565b6200063b838362000560565b805f19048211156200065157620006516200054c565b029392505050565b5f620004c060ff841683620005a8565b8082028115828204841417620004c357620004c36200054c565b80820180821115620004c357620004c36200054c565b5f82620006b457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006ca575f80fd5b81516001600160a01b0381168114620004c0575f80fd5b5f602080835283518060208501525f5b818110156200070f57858101830151858201604001528201620006f1565b505f604082860101526040601f19601f8301168501019250505092915050565b61207d806200073d5f395ff3fe60806040526004361061020a575f3560e01c806378109e5411610113578063b2bdfa7b1161009d578063df20fd491161006d578063df20fd4914610602578063e2477ccf14610621578063e4d4ee6d14610640578063f2fde38b1461065f578063f887ea401461067e575f80fd5b8063b2bdfa7b1461056d578063c9567bf91461058b578063dd62ed3e1461059f578063ded1e438146105e3575f80fd5b80638da5cb5b116100e35780638da5cb5b146104c757806395d89b41146104e3578063a8aa1b3114610510578063a9059cbb1461052f578063a9d3ce991461054e575f80fd5b806378109e54146104595780637d1db4a51461046e578063893d20e8146104835780638a4068dd146104b3575f80fd5b8063552656691161019457806370a082311161016457806370a08231146103bf578063715018a6146103f357806374bbd5d314610407578063751039fc1461042657806377b54bad1461043a575f80fd5b8063552656691461034b578063571ac8b01461035f5780635d0044ca1461037e5780636ddd17131461039f575f80fd5b806318160ddd116101da57806318160ddd146102c95780631df4ccfc146102dd57806323b872dd146102f257806330c9a6a014610311578063313ce56714610330575f80fd5b80630445b6671461021557806306fdde031461023d57806308fd3d051461027a578063095ea7b3146102aa575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061022a601e5481565b6040519081526020015b60405180910390f35b348015610248575f80fd5b5060408051808201909152600c81526b2427a5a5a0a4a2279025a2a760a11b60208201525b6040516102349190611c30565b348015610285575f80fd5b50601d5461029a90600160a01b900460ff1681565b6040519015158152602001610234565b3480156102b5575f80fd5b5061029a6102c4366004611c97565b61069d565b3480156102d4575f80fd5b5060035461022a565b3480156102e8575f80fd5b5061022a600f5481565b3480156102fd575f80fd5b5061029a61030c366004611cbf565b610709565b34801561031c575f80fd5b5061022a61032b366004611cf8565b6107c7565b34801561033b575f80fd5b5060405160098152602001610234565b348015610356575f80fd5b5061022a61080c565b34801561036a575f80fd5b5061029a610379366004611d0f565b61087c565b348015610389575f80fd5b5061039d610398366004611cf8565b610888565b005b3480156103aa575f80fd5b50601d5461029a90600160a81b900460ff1681565b3480156103ca575f80fd5b5061022a6103d9366004611d0f565b6001600160a01b03165f9081526006602052604090205490565b3480156103fe575f80fd5b5061039d61091d565b348015610412575f80fd5b5061039d610421366004611d28565b61098e565b348015610431575f80fd5b5061039d610a5b565b348015610445575f80fd5b5061029a610454366004611c97565b610a91565b348015610464575f80fd5b5061022a60055481565b348015610479575f80fd5b5061022a60045481565b34801561048e575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610234565b3480156104be575f80fd5b5061039d610c21565b3480156104d2575f80fd5b505f546001600160a01b031661049b565b3480156104ee575f80fd5b506040805180820190915260058152642227a5a2a760d91b602082015261026d565b34801561051b575f80fd5b50601d5461049b906001600160a01b031681565b34801561053a575f80fd5b5061029a610549366004611c97565b610c5a565b348015610559575f80fd5b5061039d610568366004611d67565b610c66565b348015610578575f80fd5b505f5461049b906001600160a01b031681565b348015610596575f80fd5b5061039d610ca0565b3480156105aa575f80fd5b5061022a6105b9366004611d90565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105ee575f80fd5b5061029a6105fd366004611dc1565b610cef565b34801561060d575f80fd5b5061039d61061c366004611dee565b610d02565b34801561062c575f80fd5b5061039d61063b366004611e0a565b610d94565b34801561064b575f80fd5b5061039d61065a366004611e6b565b610e6b565b34801561066a575f80fd5b5061039d610679366004611d0f565b610ebe565b348015610689575f80fd5b50601b5461049b906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f79086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146107b2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260078252838120338252909152919091205461078e918490610fa5565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6107bd848484610fdd565b90505b9392505050565b5f6107036107d361080c565b601d546001600160a01b03165f90815260066020526040902054610806906107ff906002905b90611334565b8590611334565b906113b2565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261087792909161087191906113f3565b906113f3565b905090565b5f610703825f1961069d565b5f546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b190611ea0565b60405180910390fd5b60018110156108c7575f80fd5b6103e8816003546108d89190611ee9565b6108e29190611f00565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b031633146109465760405162461bcd60e51b81526004016108b190611ea0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109b75760405162461bcd60e51b81526004016108b190611ea0565b600a869055600d859055600b849055600c839055600e8290556109e8826109e2858188818c8c611434565b90611434565b600f5560108190556109fb600282611f00565b600f5410610a4b5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016108b1565b610a53611492565b505050505050565b5f546001600160a01b03163314610a845760405162461bcd60e51b81526004016108b190611ea0565b6003546004819055600555565b5f306001600160a01b03841603610afb5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016108b1565b815f03610b6b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b689190611f1f565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610bfd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c09190611f36565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610c57573d5f803e3d5ffd5b50565b5f6107c0338484610fdd565b5f546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016108b190611ea0565b601191909155601291909155601355565b5f546001600160a01b03163314610cc95760405162461bcd60e51b81526004016108b190611ea0565b601d805460ff60a01b1916600160a01b1790556102586012556103e86011819055601355565b5f82610cfa836107c7565b119392505050565b5f546001600160a01b03163314610d2b5760405162461bcd60e51b81526004016108b190611ea0565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610dbd5760405162461bcd60e51b81526004016108b190611ea0565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b5f546001600160a01b03163314610e945760405162461bcd60e51b81526004016108b190611ea0565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ee75760405162461bcd60e51b81526004016108b190611ea0565b6001600160a01b038116610f4c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610fc85760405162461bcd60e51b81526004016108b19190611c30565b505f610fd48486611f51565b95945050505050565b601f545f9060ff1615610ffc57610ff584848461152d565b90506107c0565b6001600160a01b0384165f9081526001602052604090205460ff1615801561103c57506001600160a01b0383165f9081526001602052604090205460ff16155b1561109157601d54600160a01b900460ff166110915760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b1565b6001600160a01b0384165f9081526001602052604090205460ff161580156110c257506001600160a01b0383163014155b80156110d957506001600160a01b03831661dead14155b80156110f35750601d546001600160a01b03848116911614155b801561110d57506018546001600160a01b03848116911614155b801561112757506015546001600160a01b03848116911614155b801561114b57506001600160a01b0383165f9081526009602052604090205460ff16155b156111eb576001600160a01b0383165f908152600660205260409020546005546111758483611f64565b11156111e95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b1565b505b6111f584836115fd565b6111fd611669565b1561120a5761120a6116bd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461125b918490610fa5565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806112a657506001600160a01b0384165f9081526008602052604090205460ff165b6112ba576112b5858486611a85565b6112bc565b825b6001600160a01b0385165f908152600660205260409020549091506112e19082611434565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612028833981519152906113219085815260200190565b60405180910390a3506001949350505050565b5f825f0361134357505f610703565b5f61134e8385611ee9565b90508261135b8583611f00565b146107c05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b1565b5f6107c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c04565b5f6107c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fa5565b5f806114408385611f64565b9050838110156107c05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b1565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006114cf6064610806601254600f5461133490919063ffffffff16565b6114eb6064610806601154600f5461133490919063ffffffff16565b6115076064610806601354600f5461133490919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461157d918490610fa5565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546115ab9083611434565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612028833981519152906115eb9086815260200190565b60405180910390a35060019392505050565b6004548111158061162557506001600160a01b0382165f9081526009602052604090205460ff165b6116655760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b1565b5050565b601d545f906001600160a01b031633148015906116895750601f5460ff16155b801561169e5750601d54600160a81b900460ff165b8015610877575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f916116db91610cef565b6116e757600a546116e9565b5f5b90505f61170c6002610806600f5461080686601e5461133490919063ffffffff16565b90505f61172482601e546113f390919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061175c5761175c611f77565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061178d5761178d611f77565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906117d69086905f90879030904290600401611f8b565b5f604051808303815f87803b1580156117ed575f80fd5b505af11580156117ff573d5f803e3d5ffd5b505050505f61181782476113f390919063ffffffff16565b90505f6118316118288860026113b2565b600f54906113f3565b90505f61184560026108068481878d611334565b90505f61186183610806600b548761133490919063ffffffff16565b90505f61187d84610806600d548861133490919063ffffffff16565b90505f61189985610806600c548961133490919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146118e8576040519150601f19603f3d011682016040523d82523d5f602084013e6118ed565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461193a576040519150601f19603f3d011682016040523d82523d5f602084013e61193f565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f811461198c576040519150601f19603f3d011682016040523d82523d5f602084013e611991565b606091505b505f9250508b159050611a6d57601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a0b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a309190611ffc565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611aaa5750601154611ac5565b601d546001600160a01b0390811690861603611ac557506012545b5f611af16010546064611ad89190611ee9565b610806846107f9600f548a61133490919063ffffffff16565b90505f611b0f600f54610806600e548561133490919063ffffffff16565b90505f611b1c83836113f3565b305f90815260066020526040902054909150611b389082611434565b305f90815260066020526040808220929092556018546001600160a01b031681522054611b659083611434565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612028833981519152910160405180910390a38115611bee57600354611bbd90836113f3565b6003556040518281525f906001600160a01b038a16905f805160206120288339815191529060200160405180910390a35b611bf887846113f3565b98975050505050505050565b5f8183611c245760405162461bcd60e51b81526004016108b19190611c30565b505f610fd48486611f00565b5f602080835283518060208501525f5b81811015611c5c57858101830151858201604001528201611c40565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c92575f80fd5b919050565b5f8060408385031215611ca8575f80fd5b611cb183611c7c565b946020939093013593505050565b5f805f60608486031215611cd1575f80fd5b611cda84611c7c565b9250611ce860208501611c7c565b9150604084013590509250925092565b5f60208284031215611d08575f80fd5b5035919050565b5f60208284031215611d1f575f80fd5b6107c082611c7c565b5f805f805f8060c08789031215611d3d575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d79575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611da1575f80fd5b611daa83611c7c565b9150611db860208401611c7c565b90509250929050565b5f8060408385031215611dd2575f80fd5b50508035926020909101359150565b8015158114610c57575f80fd5b5f8060408385031215611dff575f80fd5b8235611cb181611de1565b5f805f805f60a08688031215611e1e575f80fd5b611e2786611c7c565b9450611e3560208701611c7c565b9350611e4360408701611c7c565b9250611e5160608701611c7c565b9150611e5f60808701611c7c565b90509295509295909350565b5f8060408385031215611e7c575f80fd5b611e8583611c7c565b91506020830135611e9581611de1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761070357610703611ed5565b5f82611f1a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f2f575f80fd5b5051919050565b5f60208284031215611f46575f80fd5b81516107c081611de1565b8181038181111561070357610703611ed5565b8082018082111561070357610703611ed5565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fdb5784516001600160a01b031683529383019391830191600101611fb6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561200e575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d9c524ee6e88405b962b09bae126c91bbf291c4cc2825fcd0e6b8660a048102564736f6c63430008180033

Deployed Bytecode

0x60806040526004361061020a575f3560e01c806378109e5411610113578063b2bdfa7b1161009d578063df20fd491161006d578063df20fd4914610602578063e2477ccf14610621578063e4d4ee6d14610640578063f2fde38b1461065f578063f887ea401461067e575f80fd5b8063b2bdfa7b1461056d578063c9567bf91461058b578063dd62ed3e1461059f578063ded1e438146105e3575f80fd5b80638da5cb5b116100e35780638da5cb5b146104c757806395d89b41146104e3578063a8aa1b3114610510578063a9059cbb1461052f578063a9d3ce991461054e575f80fd5b806378109e54146104595780637d1db4a51461046e578063893d20e8146104835780638a4068dd146104b3575f80fd5b8063552656691161019457806370a082311161016457806370a08231146103bf578063715018a6146103f357806374bbd5d314610407578063751039fc1461042657806377b54bad1461043a575f80fd5b8063552656691461034b578063571ac8b01461035f5780635d0044ca1461037e5780636ddd17131461039f575f80fd5b806318160ddd116101da57806318160ddd146102c95780631df4ccfc146102dd57806323b872dd146102f257806330c9a6a014610311578063313ce56714610330575f80fd5b80630445b6671461021557806306fdde031461023d57806308fd3d051461027a578063095ea7b3146102aa575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061022a601e5481565b6040519081526020015b60405180910390f35b348015610248575f80fd5b5060408051808201909152600c81526b2427a5a5a0a4a2279025a2a760a11b60208201525b6040516102349190611c30565b348015610285575f80fd5b50601d5461029a90600160a01b900460ff1681565b6040519015158152602001610234565b3480156102b5575f80fd5b5061029a6102c4366004611c97565b61069d565b3480156102d4575f80fd5b5060035461022a565b3480156102e8575f80fd5b5061022a600f5481565b3480156102fd575f80fd5b5061029a61030c366004611cbf565b610709565b34801561031c575f80fd5b5061022a61032b366004611cf8565b6107c7565b34801561033b575f80fd5b5060405160098152602001610234565b348015610356575f80fd5b5061022a61080c565b34801561036a575f80fd5b5061029a610379366004611d0f565b61087c565b348015610389575f80fd5b5061039d610398366004611cf8565b610888565b005b3480156103aa575f80fd5b50601d5461029a90600160a81b900460ff1681565b3480156103ca575f80fd5b5061022a6103d9366004611d0f565b6001600160a01b03165f9081526006602052604090205490565b3480156103fe575f80fd5b5061039d61091d565b348015610412575f80fd5b5061039d610421366004611d28565b61098e565b348015610431575f80fd5b5061039d610a5b565b348015610445575f80fd5b5061029a610454366004611c97565b610a91565b348015610464575f80fd5b5061022a60055481565b348015610479575f80fd5b5061022a60045481565b34801561048e575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610234565b3480156104be575f80fd5b5061039d610c21565b3480156104d2575f80fd5b505f546001600160a01b031661049b565b3480156104ee575f80fd5b506040805180820190915260058152642227a5a2a760d91b602082015261026d565b34801561051b575f80fd5b50601d5461049b906001600160a01b031681565b34801561053a575f80fd5b5061029a610549366004611c97565b610c5a565b348015610559575f80fd5b5061039d610568366004611d67565b610c66565b348015610578575f80fd5b505f5461049b906001600160a01b031681565b348015610596575f80fd5b5061039d610ca0565b3480156105aa575f80fd5b5061022a6105b9366004611d90565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105ee575f80fd5b5061029a6105fd366004611dc1565b610cef565b34801561060d575f80fd5b5061039d61061c366004611dee565b610d02565b34801561062c575f80fd5b5061039d61063b366004611e0a565b610d94565b34801561064b575f80fd5b5061039d61065a366004611e6b565b610e6b565b34801561066a575f80fd5b5061039d610679366004611d0f565b610ebe565b348015610689575f80fd5b50601b5461049b906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f79086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146107b2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260078252838120338252909152919091205461078e918490610fa5565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6107bd848484610fdd565b90505b9392505050565b5f6107036107d361080c565b601d546001600160a01b03165f90815260066020526040902054610806906107ff906002905b90611334565b8590611334565b906113b2565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261087792909161087191906113f3565b906113f3565b905090565b5f610703825f1961069d565b5f546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b190611ea0565b60405180910390fd5b60018110156108c7575f80fd5b6103e8816003546108d89190611ee9565b6108e29190611f00565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b031633146109465760405162461bcd60e51b81526004016108b190611ea0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109b75760405162461bcd60e51b81526004016108b190611ea0565b600a869055600d859055600b849055600c839055600e8290556109e8826109e2858188818c8c611434565b90611434565b600f5560108190556109fb600282611f00565b600f5410610a4b5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016108b1565b610a53611492565b505050505050565b5f546001600160a01b03163314610a845760405162461bcd60e51b81526004016108b190611ea0565b6003546004819055600555565b5f306001600160a01b03841603610afb5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016108b1565b815f03610b6b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b689190611f1f565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610bfd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c09190611f36565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610c57573d5f803e3d5ffd5b50565b5f6107c0338484610fdd565b5f546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016108b190611ea0565b601191909155601291909155601355565b5f546001600160a01b03163314610cc95760405162461bcd60e51b81526004016108b190611ea0565b601d805460ff60a01b1916600160a01b1790556102586012556103e86011819055601355565b5f82610cfa836107c7565b119392505050565b5f546001600160a01b03163314610d2b5760405162461bcd60e51b81526004016108b190611ea0565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610dbd5760405162461bcd60e51b81526004016108b190611ea0565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b5f546001600160a01b03163314610e945760405162461bcd60e51b81526004016108b190611ea0565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ee75760405162461bcd60e51b81526004016108b190611ea0565b6001600160a01b038116610f4c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610fc85760405162461bcd60e51b81526004016108b19190611c30565b505f610fd48486611f51565b95945050505050565b601f545f9060ff1615610ffc57610ff584848461152d565b90506107c0565b6001600160a01b0384165f9081526001602052604090205460ff1615801561103c57506001600160a01b0383165f9081526001602052604090205460ff16155b1561109157601d54600160a01b900460ff166110915760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b1565b6001600160a01b0384165f9081526001602052604090205460ff161580156110c257506001600160a01b0383163014155b80156110d957506001600160a01b03831661dead14155b80156110f35750601d546001600160a01b03848116911614155b801561110d57506018546001600160a01b03848116911614155b801561112757506015546001600160a01b03848116911614155b801561114b57506001600160a01b0383165f9081526009602052604090205460ff16155b156111eb576001600160a01b0383165f908152600660205260409020546005546111758483611f64565b11156111e95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b1565b505b6111f584836115fd565b6111fd611669565b1561120a5761120a6116bd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461125b918490610fa5565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806112a657506001600160a01b0384165f9081526008602052604090205460ff165b6112ba576112b5858486611a85565b6112bc565b825b6001600160a01b0385165f908152600660205260409020549091506112e19082611434565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612028833981519152906113219085815260200190565b60405180910390a3506001949350505050565b5f825f0361134357505f610703565b5f61134e8385611ee9565b90508261135b8583611f00565b146107c05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b1565b5f6107c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c04565b5f6107c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fa5565b5f806114408385611f64565b9050838110156107c05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b1565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006114cf6064610806601254600f5461133490919063ffffffff16565b6114eb6064610806601154600f5461133490919063ffffffff16565b6115076064610806601354600f5461133490919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461157d918490610fa5565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546115ab9083611434565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612028833981519152906115eb9086815260200190565b60405180910390a35060019392505050565b6004548111158061162557506001600160a01b0382165f9081526009602052604090205460ff165b6116655760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b1565b5050565b601d545f906001600160a01b031633148015906116895750601f5460ff16155b801561169e5750601d54600160a81b900460ff165b8015610877575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f916116db91610cef565b6116e757600a546116e9565b5f5b90505f61170c6002610806600f5461080686601e5461133490919063ffffffff16565b90505f61172482601e546113f390919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061175c5761175c611f77565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061178d5761178d611f77565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906117d69086905f90879030904290600401611f8b565b5f604051808303815f87803b1580156117ed575f80fd5b505af11580156117ff573d5f803e3d5ffd5b505050505f61181782476113f390919063ffffffff16565b90505f6118316118288860026113b2565b600f54906113f3565b90505f61184560026108068481878d611334565b90505f61186183610806600b548761133490919063ffffffff16565b90505f61187d84610806600d548861133490919063ffffffff16565b90505f61189985610806600c548961133490919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146118e8576040519150601f19603f3d011682016040523d82523d5f602084013e6118ed565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461193a576040519150601f19603f3d011682016040523d82523d5f602084013e61193f565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f811461198c576040519150601f19603f3d011682016040523d82523d5f602084013e611991565b606091505b505f9250508b159050611a6d57601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a0b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a309190611ffc565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611aaa5750601154611ac5565b601d546001600160a01b0390811690861603611ac557506012545b5f611af16010546064611ad89190611ee9565b610806846107f9600f548a61133490919063ffffffff16565b90505f611b0f600f54610806600e548561133490919063ffffffff16565b90505f611b1c83836113f3565b305f90815260066020526040902054909150611b389082611434565b305f90815260066020526040808220929092556018546001600160a01b031681522054611b659083611434565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612028833981519152910160405180910390a38115611bee57600354611bbd90836113f3565b6003556040518281525f906001600160a01b038a16905f805160206120288339815191529060200160405180910390a35b611bf887846113f3565b98975050505050505050565b5f8183611c245760405162461bcd60e51b81526004016108b19190611c30565b505f610fd48486611f00565b5f602080835283518060208501525f5b81811015611c5c57858101830151858201604001528201611c40565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c92575f80fd5b919050565b5f8060408385031215611ca8575f80fd5b611cb183611c7c565b946020939093013593505050565b5f805f60608486031215611cd1575f80fd5b611cda84611c7c565b9250611ce860208501611c7c565b9150604084013590509250925092565b5f60208284031215611d08575f80fd5b5035919050565b5f60208284031215611d1f575f80fd5b6107c082611c7c565b5f805f805f8060c08789031215611d3d575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d79575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611da1575f80fd5b611daa83611c7c565b9150611db860208401611c7c565b90509250929050565b5f8060408385031215611dd2575f80fd5b50508035926020909101359150565b8015158114610c57575f80fd5b5f8060408385031215611dff575f80fd5b8235611cb181611de1565b5f805f805f60a08688031215611e1e575f80fd5b611e2786611c7c565b9450611e3560208701611c7c565b9350611e4360408701611c7c565b9250611e5160608701611c7c565b9150611e5f60808701611c7c565b90509295509295909350565b5f8060408385031215611e7c575f80fd5b611e8583611c7c565b91506020830135611e9581611de1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761070357610703611ed5565b5f82611f1a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f2f575f80fd5b5051919050565b5f60208284031215611f46575f80fd5b81516107c081611de1565b8181038181111561070357610703611ed5565b8082018082111561070357610703611ed5565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fdb5784516001600160a01b031683529383019391830191600101611fb6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561200e575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d9c524ee6e88405b962b09bae126c91bbf291c4cc2825fcd0e6b8660a048102564736f6c63430008180033

Deployed Bytecode Sourcemap

5082:13701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7419:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7419:55:0;;;;;;;;8813:80;;;;;;;;;;-1:-1:-1;8885:5:0;;;;;;;;;;;;-1:-1:-1;;;8885:5:0;;;;8813:80;;;;;;;:::i;7332:31::-;;;;;;;;;;-1:-1:-1;7332:31:0;;;;-1:-1:-1;;;7332:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7332:31:0;749:187:1;9235:216:0;;;;;;;;;;-1:-1:-1;9235:216:0;;;;;:::i;:::-;;:::i;8543:88::-;;;;;;;;;;-1:-1:-1;8616:12:0;;8543:88;;6701:93;;;;;;;;;;;;;;;;9753:370;;;;;;;;;;-1:-1:-1;9753:370:0;;;;;:::i;:::-;;:::i;18483:149::-;;;;;;;;;;-1:-1:-1;18483:149:0;;;;;:::i;:::-;;:::i;8637:80::-;;;;;;;;;;-1:-1:-1;8637:80:0;;5448:1;2038:36:1;;2026:2;2011:18;8637:80:0;1896:184:1;18644:132:0;;;;;;;;;;;;;:::i;9459:122::-;;;;;;;;;;-1:-1:-1;9459:122:0;;;;;:::i;:::-;;:::i;10135:246::-;;;;;;;;;;-1:-1:-1;10135:246:0;;;;;:::i;:::-;;:::i;:::-;;7382:30;;;;;;;;;;-1:-1:-1;7382:30:0;;;;-1:-1:-1;;;7382:30:0;;;;;;8983:105;;;;;;;;;;-1:-1:-1;8983:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9067:18:0;9049:7;9067:18;;;:9;:18;;;;;;;8983:105;1996:148;;;;;;;;;;;;;:::i;16948:593::-;;;;;;;;;;-1:-1:-1;16948:593:0;;;;;:::i;:::-;;:::i;10391:139::-;;;;;;;;;;;;;:::i;13885:435::-;;;;;;;;;;-1:-1:-1;13885:435:0;;;;;:::i;:::-;;:::i;6209:63::-;;;;;;;;;;;;;;;;6142:60;;;;;;;;;;;;;;;;8899:78;;;;;;;;;;-1:-1:-1;8951:7:0;1847:6;-1:-1:-1;;;;;1847:6:0;8899:78;;;-1:-1:-1;;;;;2968:32:1;;;2950:51;;2938:2;2923:18;8899:78:0;2804:203:1;13748:130:0;;;;;;;;;;;;;:::i;1782:79::-;;;;;;;;;;-1:-1:-1;1820:7:0;1847:6;-1:-1:-1;;;;;1847:6:0;1782:79;;8723:84;;;;;;;;;;-1:-1:-1;8797:7:0;;;;;;;;;;;;-1:-1:-1;;;8797:7:0;;;;8723:84;;7300:19;;;;;;;;;;-1:-1:-1;7300:19:0;;;;-1:-1:-1;;;;;7300:19:0;;;9589:156;;;;;;;;;;-1:-1:-1;9589:156:0;;;;;:::i;:::-;;:::i;14328:259::-;;;;;;;;;;-1:-1:-1;14328:259:0;;;;;:::i;:::-;;:::i;1402:21::-;;;;;;;;;;-1:-1:-1;1402:21:0;;;;-1:-1:-1;;;;;1402:21:0;;;14602:198;;;;;;;;;;;;;:::i;9094:133::-;;;;;;;;;;-1:-1:-1;9094:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9196:19:0;;;9178:7;9196:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9094:133;18340:135;;;;;;;;;;-1:-1:-1;18340:135:0;;;;;:::i;:::-;;:::i;18121:211::-;;;;;;;;;;-1:-1:-1;18121:211:0;;;;;:::i;:::-;;:::i;17554:557::-;;;;;;;;;;-1:-1:-1;17554:557:0;;;;;:::i;:::-;;:::i;10538:118::-;;;;;;;;;;-1:-1:-1;10538:118:0;;;;;:::i;:::-;;:::i;2152:244::-;;;;;;;;;;-1:-1:-1;2152:244:0;;;;;:::i;:::-;;:::i;7230:24::-;;;;;;;;;;-1:-1:-1;7230:24:0;;;;-1:-1:-1;;;;;7230:24:0;;;9235:216;9339:10;9310:4;9327:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9327:32:0;;;;;;;;;;:41;;;9384:37;9310:4;;9327:32;;9384:37;;;;9362:6;160:25:1;;148:2;133:18;;14:177;9384:37:0;;;;;;;;-1:-1:-1;9439:4:0;9235:216;;;;;:::o;9753:370::-;-1:-1:-1;;;;;9873:19:0;;9853:4;9873:19;;;:11;:19;;;;;;;;9893:10;9873:31;;;;;;;;-1:-1:-1;;9873:52:0;9870:186;;9975:69;;;;;;;;;;;-1:-1:-1;;;9975:69:0;;;;;;;;-1:-1:-1;;;;;9975:19:0;;-1:-1:-1;9975:19:0;;;:11;:19;;;;;9995:10;9975:31;;;;;;;;;;:69;;10011:6;;9975:35;:69::i;:::-;-1:-1:-1;;;;;9941:19:0;;;;;;:11;:19;;;;;;;;9961:10;9941:31;;;;;;;:103;9870:186;10075:40;10089:6;10097:9;10108:6;10075:13;:40::i;:::-;10068:47;;9753:370;;;;;;:::o;18483:149::-;18543:7;18570:54;18611:12;:10;:12::i;:::-;18593:4;;-1:-1:-1;;;;;18593:4:0;9049:7;9067:18;;;:9;:18;;;;;;18570:36;;18583:22;;18603:1;;18583:15;:19;;:22::i;:::-;18570:8;;:12;:36::i;:::-;:40;;:54::i;18644:132::-;9067:9;:18;;;;5206:42;18687:7;9067:18;;;;;18714:12;;18687:7;;18714:54;;9067:18;;18714:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;18707:61;;18644:132;:::o;9459:122::-;9514:4;9538:35;9546:7;-1:-1:-1;;9538:7:0;:35::i;10135:246::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;;;;;;;;;10238:1:::1;10220:14;:19;;10212:28;;;::::0;::::1;;10305:4;10286:14;10271:12;;:29;;;;:::i;:::-;10270:39;;;;:::i;:::-;10252:15;:57:::0;;;10325:30:::1;::::0;160:25:1;;;10325:30:0::1;::::0;148:2:1;133:18;10325:30:0::1;;;;;;;10135:246:::0;:::o;1996:148::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;2103:1:::1;2087:6:::0;;2066:40:::1;::::0;-1:-1:-1;;;;;2087:6:0;;::::1;::::0;2066:40:::1;::::0;2103:1;;2066:40:::1;2134:1;2117:19:::0;;-1:-1:-1;;;;;;2117:19:0::1;::::0;;1996:148::o;16948:593::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;17130:12:::1;:28:::0;;;17169:10:::1;:24:::0;;;17204:12:::1;:28:::0;;;17243:6:::1;:16:::0;;;17270:7:::1;:18:::0;;;17310:76:::1;17280:8:::0;17310:62:::1;17252:7:::0;17310:62;17219:13;17310:62;17145:13;17182:11;17310:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17299:8;:87:::0;17397:14:::1;:32:::0;;;17459:18:::1;17476:1;17414:15:::0;17459:18:::1;:::i;:::-;17448:8;;:29;17440:71;;;::::0;-1:-1:-1;;;17440:71:0;;6413:2:1;17440:71:0::1;::::0;::::1;6395:21:1::0;6452:2;6432:18;;;6425:30;6491:31;6471:18;;;6464:59;6540:18;;17440:71:0::1;6211:353:1::0;17440:71:0::1;17523:10;:8;:10::i;:::-;16948:593:::0;;;;;;:::o;10391:139::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;10465:12:::1;::::0;10450::::1;:27:::0;;;10492:15:::1;:30:::0;10391:139::o;13885:435::-;13966:12;14027:4;-1:-1:-1;;;;;14003:29:0;;;13995:82;;;;-1:-1:-1;;;13995:82:0;;6771:2:1;13995:82:0;;;6753:21:1;6810:2;6790:18;;;6783:30;6849:34;6829:18;;;6822:62;-1:-1:-1;;;6900:18:1;;;6893:38;6948:19;;13995:82:0;6569:404:1;13995:82:0;14096:6;14106:1;14096:11;14093:95;;14132:44;;-1:-1:-1;;;14132:44:0;;14170:4;14132:44;;;2950:51:1;-1:-1:-1;;;;;14132:29:0;;;;;2923:18:1;;14132:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14123:53;;14093:95;14203:32;;;-1:-1:-1;;;;;7359:32:1;;7341:51;;7423:2;7408:18;;7401:34;;;14203:32:0;;7314:18:1;14203:32:0;;;;;;;14282:21;;14253:59;;-1:-1:-1;;;14253:59:0;;-1:-1:-1;;;;;14282:21:0;;;14253:59;;;7341:51:1;7408:18;;;7401:34;;;14253:28:0;;;;;;7314:18:1;;14253:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13748:130::-;13802:21;;13794:62;;-1:-1:-1;;;;;13802:21:0;;;;13834;13794:62;;;;;13802:21;13794:62;13802:21;13794:62;13834:21;13802;13794:62;;;;;;;;;;;;;;;;;;;;;13748:130::o;9589:156::-;9669:4;9693:44;9707:10;9719:9;9730:6;9693:13;:44::i;14328:259::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;14454:11:::1;:28:::0;;;;14493:10:::1;:26:::0;;;;14530:15:::1;:33:::0;14328:259::o;14602:198::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;14653:11:::1;:18:::0;;-1:-1:-1;;;;14653:18:0::1;-1:-1:-1::0;;;14653:18:0::1;::::0;;14695:3:::1;14682:10;:16:::0;14723:4:::1;14709:11;:18:::0;;;14738:15:::1;:22:::0;14602:198::o;18340:135::-;18414:4;18462:5;18438:21;18450:8;18438:11;:21::i;:::-;:29;;18340:135;-1:-1:-1;;;18340:135:0:o;18121:211::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;18212:11:::1;:22:::0;;-1:-1:-1;;;;18212:22:0::1;-1:-1:-1::0;;;18212:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;18245:13:::1;:23:::0;;;18284:40:::1;::::0;;7864:25:1;;;18212:22:0::1;18312:11:::0;;;::::1;::::0;;;::::1;7932:14:1::0;7925:22;7920:2;7905:18;;7898:50;18284:40:0::1;::::0;7837:18:1;18284:40:0::1;;;;;;;18121:211:::0;;:::o;17554:557::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;17757:21:::1;:46:::0;;-1:-1:-1;;;;;17757:46:0;;::::1;-1:-1:-1::0;;;;;;17757:46:0;;::::1;;::::0;;;17814:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17869:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17912:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17957:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;18015:88:::1;::::0;;8228:34:1;;;8293:2;8278:18;;8271:43;;;;8330:18;;;8323:43;;;;8397:2;8382:18;;8375:43;;;;18015:88:0::1;::::0;8177:3:1;8162:19;18015:88:0::1;;;;;;;17554:557:::0;;;;;:::o;10538:118::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10621:18:0;;;::::1;;::::0;;;:10:::1;:18;::::0;;;;:27;;-1:-1:-1;;10621:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10538:118::o;2152:244::-;1909:6;;-1:-1:-1;;;;;1909:6:0;1219:10;1909:22;1901:67;;;;-1:-1:-1;;;1901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2241:22:0;::::1;2233:73;;;::::0;-1:-1:-1;;;2233:73:0;;8631:2:1;2233:73:0::1;::::0;::::1;8613:21:1::0;8670:2;8650:18;;;8643:30;8709:34;8689:18;;;8682:62;-1:-1:-1;;;8760:18:1;;;8753:36;8806:19;;2233:73:0::1;8429:402:1::0;2233:73:0::1;2343:6;::::0;;2322:38:::1;::::0;-1:-1:-1;;;;;2322:38:0;;::::1;::::0;2343:6;::::1;::::0;2322:38:::1;::::0;::::1;2371:6;:17:::0;;-1:-1:-1;;;;;;2371:17:0::1;-1:-1:-1::0;;;;;2371:17:0;;;::::1;::::0;;;::::1;::::0;;2152:244::o;4294:192::-;4380:7;4416:12;4408:6;;;;4400:29;;;;-1:-1:-1;;;4400:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4440:9:0;4452:5;4456:1;4452;:5;:::i;:::-;4440:17;4294:192;-1:-1:-1;;;;;4294:192:0:o;10674:1231::-;10786:6;;10766:4;;10786:6;;10783:63;;;10802:41;10817:6;10825:9;10836:6;10802:14;:41::i;:::-;10795:48;;;;10783:63;-1:-1:-1;;;;;10862:22:0;;;;;;:14;:22;;;;;;;;10861:23;:53;;;;-1:-1:-1;;;;;;10889:25:0;;;;;;:14;:25;;;;;;;;10888:26;10861:53;10858:139;;;10938:11;;-1:-1:-1;;;10938:11:0;;;;10930:43;;;;-1:-1:-1;;;10930:43:0;;9171:2:1;10930:43:0;;;9153:21:1;9210:2;9190:18;;;9183:30;-1:-1:-1;;;9229:18:1;;;9222:50;9289:18;;10930:43:0;8969:344:1;10930:43:0;-1:-1:-1;;;;;11039:22:0;;;;;;:14;:22;;;;;;;;11038:23;:53;;;;-1:-1:-1;;;;;;11065:26:0;;11086:4;11065:26;;11038:53;:84;;;;-1:-1:-1;;;;;;11096:26:0;;5206:42;11096:26;;11038:84;:105;;;;-1:-1:-1;11139:4:0;;-1:-1:-1;;;;;11126:17:0;;;11139:4;;11126:17;;11038:105;:137;;;;-1:-1:-1;11160:15:0;;-1:-1:-1;;;;;11147:28:0;;;11160:15;;11147:28;;11038:137;:174;;;;-1:-1:-1;11192:20:0;;-1:-1:-1;;;;;11179:33:0;;;11192:20;;11179:33;;11038:174;:200;;;;-1:-1:-1;;;;;;11217:21:0;;;;;;:10;:21;;;;;;;;11216:22;11038:200;11034:392;;;-1:-1:-1;;;;;9067:18:0;;11254;9067;;;:9;:18;;;;;;11343:15;;11319:19;11332:6;9067:18;11319:19;:::i;:::-;11318:40;;11310:114;;;;-1:-1:-1;;;11310:114:0;;9650:2:1;11310:114:0;;;9632:21:1;9689:2;9669:18;;;9662:30;9728:34;9708:18;;;9701:62;9799:32;9779:18;;;9772:60;9849:19;;11310:114:0;9448:426:1;11310:114:0;11239:187;11034:392;11438:28;11451:6;11459;11438:12;:28::i;:::-;11484:16;:14;:16::i;:::-;11481:35;;;11503:10;:8;:10::i;:::-;11546:53;;;;;;;;;;;-1:-1:-1;;;11546:53:0;;;;;;;;-1:-1:-1;;;;;11546:17:0;;-1:-1:-1;11546:17:0;;;:9;:17;;;;;;;;:53;;11568:6;;11546:21;:53::i;:::-;-1:-1:-1;;;;;11526:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11638:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11666:27:0;;;;;;:16;:27;;;;;;;;11638:55;11637:103;;11706:34;11714:6;11722;11730:9;11706:7;:34::i;:::-;11637:103;;;11697:6;11637:103;-1:-1:-1;;;;;11774:20:0;;;;;;:9;:20;;;;;;11612:128;;-1:-1:-1;11774:40:0;;11612:128;11774:24;:40::i;:::-;-1:-1:-1;;;;;11751:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11832:43;;;;;;-1:-1:-1;;;;;;;;;;;11832:43:0;;;11860:14;160:25:1;;148:2;133:18;;14:177;11832:43:0;;;;;;;;-1:-1:-1;11893:4:0;;10674:1231;-1:-1:-1;;;;10674:1231:0:o;4492:250::-;4550:7;4574:1;4579;4574:6;4570:47;;-1:-1:-1;4604:1:0;4597:8;;4570:47;4629:9;4641:5;4645:1;4641;:5;:::i;:::-;4629:17;-1:-1:-1;4674:1:0;4665:5;4669:1;4629:17;4665:5;:::i;:::-;:10;4657:56;;;;-1:-1:-1;;;4657:56:0;;10081:2:1;4657:56:0;;;10063:21:1;10120:2;10100:18;;;10093:30;10159:34;10139:18;;;10132:62;-1:-1:-1;;;10210:18:1;;;10203:31;10251:19;;4657:56:0;9879:397:1;4748:132:0;4806:7;4833:39;4837:1;4840;4833:39;;;;;;;;;;;;;;;;;:3;:39::i;4152:136::-;4210:7;4237:43;4241:1;4244;4237:43;;;;;;;;;;;;;;;;;:3;:43::i;3965:181::-;4023:7;;4055:5;4059:1;4055;:5;:::i;:::-;4043:17;;4084:1;4079;:6;;4071:46;;;;-1:-1:-1;;;4071:46:0;;10483:2:1;4071:46:0;;;10465:21:1;10522:2;10502:18;;;10495:30;10561:29;10541:18;;;10534:57;10608:18;;4071:46:0;10281:351:1;16695:241:0;16748:180;16763:33;16792:3;16763:24;16776:10;;16763:8;;:12;;:24;;;;:::i;:33::-;16818:34;16848:3;16818:25;16831:11;;16818:8;;:12;;:25;;;;:::i;:34::-;16874:38;16908:3;16874:29;16887:15;;16874:8;;:12;;:29;;;;:::i;:38::-;16748:180;;;10857:4:1;10845:17;;;10827:36;;10899:17;;;10894:2;10879:18;;10872:45;10953:17;;10933:18;;;10926:45;16748:180:0;;;;;;10815:2:1;16748:180:0;;;16695:241::o;11914:330::-;12044:53;;;;;;;;;;;-1:-1:-1;;;12044:53:0;;;;;;;;-1:-1:-1;;;;;12044:17:0;;12007:4;12044:17;;;:9;:17;;;;;;;:53;;12066:6;;12044:21;:53::i;:::-;-1:-1:-1;;;;;12024:17:0;;;;;;;:9;:17;;;;;;:73;;;;12131:20;;;;;;;:32;;12156:6;12131:24;:32::i;:::-;-1:-1:-1;;;;;12108:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12179:35;;;;;;-1:-1:-1;;;;;;;;;;;12179:35:0;;;12207:6;160:25:1;;148:2;133:18;;14:177;12179:35:0;;;;;;;;-1:-1:-1;12232:4:0;11914:330;;;;;:::o;12252:161::-;12349:12;;12339:6;:22;;:44;;;-1:-1:-1;;;;;;12365:18:0;;;;;;:10;:18;;;;;;;;12339:44;12331:74;;;;-1:-1:-1;;;12331:74:0;;11184:2:1;12331:74:0;;;11166:21:1;11223:2;11203:18;;;11196:30;-1:-1:-1;;;11242:18:1;;;11235:47;11299:18;;12331:74:0;10982:341:1;12331:74:0;12252:161;;:::o;13538:197::-;13625:4;;13587;;-1:-1:-1;;;;;13625:4:0;13611:10;:18;;;;:38;;-1:-1:-1;13643:6:0;;;;13642:7;13611:38;:62;;;;-1:-1:-1;13662:11:0;;-1:-1:-1;;;13662:11:0;;;;13611:62;:116;;;;-1:-1:-1;;13714:13:0;;13704:4;13686:24;;;;:9;:24;;;;;;:41;;;13538:197::o;14825:1854::-;7522:6;:13;;-1:-1:-1;;7522:13:0;7531:4;7522:13;;;14915:8:::1;::::0;14925:19:::1;::::0;7522:6;;14904:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14952:12;;14904:60;;;14948:1;14904:60;14874:90;;14975:23;15001:59;15058:1;15001:52;15044:8;;15001:38;15019:19;15001:13;;:17;;:38;;;;:::i;:59::-;14975:85;;15071:20;15094:34;15112:15;15094:13;;:17;;:34;;;;:::i;:::-;15165:16;::::0;;15179:1:::1;15165:16:::0;;;;;::::1;::::0;;15071:57;;-1:-1:-1;15141:21:0::1;::::0;15165:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15165:16:0::1;15141:40;;15210:4;15192;15197:1;15192:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15192:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15236:4:::1;::::0;15226:7;;15236:4;::::1;::::0;15226;;15236;;15226:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15226:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15311:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15311:188:0;;15277:21:::1;::::0;15311:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15383:12;;15253:21:::1;::::0;15426:4;;15453::::1;::::0;15473:15:::1;::::0;15311:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15512:17;15532:40;15558:13;15532:21;:25;;:40;;;;:::i;:::-;15512:60:::0;-1:-1:-1;15585:19:0::1;15607:40;15620:26;:19:::0;15644:1:::1;15620:23;:26::i;:::-;15607:8;::::0;;:12:::1;:40::i;:::-;15585:62:::0;-1:-1:-1;15668:26:0::1;15697:58;15753:1;15697:51;15585:62:::0;15697:51;:9;15711:19;15697:13:::1;:34::i;:58::-;15668:87;;15766:26;15795:44;15827:11;15795:27;15809:12;;15795:9;:13;;:27;;;;:::i;:44::-;15766:73;;15850:24;15877:42;15907:11;15877:25;15891:10;;15877:9;:13;;:25;;;;:::i;:42::-;15850:69;;15930:20;15953:38;15979:11;15953:21;15967:6;;15953:9;:13;;:21;;;;:::i;:38::-;16033:20;::::0;16025:65:::1;::::0;15930:61;;-1:-1:-1;16005:15:0::1;::::0;-1:-1:-1;;;;;16033:20:0;;::::1;::::0;16067:18;;16005:15;16025:65;16005:15;16025:65;16067:18;16033:20;16025:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16125:14:0::1;::::0;16117:53:::1;::::0;16004:86;;-1:-1:-1;;;;;;16125:14:0::1;::::0;16153:12;;16117:53:::1;::::0;;;16153:12;16125:14;16117:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16205:18:0::1;::::0;16197:61:::1;::::0;16101:69;;-1:-1:-1;;;;;;16205:18:0::1;::::0;16237:16;;16197:61:::1;::::0;;;16237:16;16205:18;16197:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16292:5:0::1;::::0;-1:-1:-1;;16313:19:0;;;-1:-1:-1;16310:362:0::1;;16348:6;::::0;16522:21:::1;::::0;16348:244:::1;::::0;-1:-1:-1;;;16348:244:0;;16424:4:::1;16348:244;::::0;::::1;13128:34:1::0;13178:18;;;13171:34;;;16348:6:0::1;13221:18:1::0;;;13214:34;;;13264:18;;;13257:34;-1:-1:-1;;;;;16522:21:0;;::::1;13307:19:1::0;;;13300:44;16562:15:0::1;13360:19:1::0;;;13353:35;16348:6:0;::::1;::::0;:22:::1;::::0;16378:18;;13062:19:1;;16348:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16612:48:0::1;::::0;;13884:25:1;;;13940:2;13925:18;;13918:34;;;16612:48:0::1;::::0;-1:-1:-1;13857:18:1;16612:48:0::1;;;;;;;16310:362;-1:-1:-1::0;;7540:6:0;:14;;-1:-1:-1;;7540:14:0;;;-1:-1:-1;;;;;;;;;;14825:1854:0:o;12548:982::-;12682:15;;12724:4;;12634:7;;12682:15;-1:-1:-1;;;;;12724:4:0;;;12711:17;;;;12708:142;;-1:-1:-1;12755:11:0;;12708:142;;;12797:4;;-1:-1:-1;;;;;12797:4:0;;;12787:14;;;;12784:66;;-1:-1:-1;12828:10:0;;12784:66;12862:17;12882:59;12920:14;;12937:3;12920:20;;;;:::i;:::-;12882:33;12907:7;12882:20;12893:8;;12882:6;:10;;:20;;;;:::i;:59::-;12862:79;;12952:18;12973:36;13000:8;;12973:22;12987:7;;12973:9;:13;;:22;;;;:::i;:36::-;12952:57;-1:-1:-1;13020:22:0;13045:25;:9;12952:57;13045:13;:25::i;:::-;13126:4;13108:24;;;;:9;:24;;;;;;13020:50;;-1:-1:-1;13108:44:0;;13020:50;13108:28;:44::i;:::-;13099:4;13081:24;;;;:9;:24;;;;;;:71;;;;13202:15;;-1:-1:-1;;;;;13202:15:0;13192:26;;;;:42;;13223:10;13192:30;:42::i;:::-;13173:15;;-1:-1:-1;;;;;13173:15:0;;;13163:26;;;;:9;:26;;;;;;;;;:71;;;;13250:47;160:25:1;;;13275:4:0;;13250:47;;;;-1:-1:-1;;;;;;;;;;;13250:47:0;133:18:1;13250:47:0;;;;;;;13331:14;;13328:154;;13376:12;;:28;;13393:10;13376:16;:28::i;:::-;13361:12;:43;13424:34;;160:25:1;;;5279:42:0;;-1:-1:-1;;;;;13424:34:0;;;-1:-1:-1;;;;;;;;;;;13424:34:0;148:2:1;133:18;13424:34:0;;;;;;;13328:154;13501:21;:6;13512:9;13501:10;:21::i;:::-;13494:28;12548:982;-1:-1:-1;;;;;;;;12548:982:0:o;4886:189::-;4972:7;5007:12;5000:5;4992:28;;;;-1:-1:-1;;;4992:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5031:9:0;5043:5;5047:1;5043;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:180::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;-1:-1:-1;1862:23:1;;1711:180;-1:-1:-1;1711:180:1:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;2276:523::-;2380:6;2388;2396;2404;2412;2420;2473:3;2461:9;2452:7;2448:23;2444:33;2441:53;;;2490:1;2487;2480:12;2441:53;-1:-1:-1;;2513:23:1;;;2583:2;2568:18;;2555:32;;-1:-1:-1;2634:2:1;2619:18;;2606:32;;2685:2;2670:18;;2657:32;;-1:-1:-1;2736:3:1;2721:19;;2708:33;;-1:-1:-1;2788:3:1;2773:19;2760:33;;-1:-1:-1;2276:523:1;-1:-1:-1;2276:523:1:o;3012:316::-;3089:6;3097;3105;3158:2;3146:9;3137:7;3133:23;3129:32;3126:52;;;3174:1;3171;3164:12;3126:52;-1:-1:-1;;3197:23:1;;;3267:2;3252:18;;3239:32;;-1:-1:-1;3318:2:1;3303:18;;;3290:32;;3012:316;-1:-1:-1;3012:316:1:o;3333:260::-;3401:6;3409;3462:2;3450:9;3441:7;3437:23;3433:32;3430:52;;;3478:1;3475;3468:12;3430:52;3501:29;3520:9;3501:29;:::i;:::-;3491:39;;3549:38;3583:2;3572:9;3568:18;3549:38;:::i;:::-;3539:48;;3333:260;;;;;:::o;3598:248::-;3666:6;3674;3727:2;3715:9;3706:7;3702:23;3698:32;3695:52;;;3743:1;3740;3733:12;3695:52;-1:-1:-1;;3766:23:1;;;3836:2;3821:18;;;3808:32;;-1:-1:-1;3598:248:1:o;3851:118::-;3937:5;3930:13;3923:21;3916:5;3913:32;3903:60;;3959:1;3956;3949:12;3974:309;4039:6;4047;4100:2;4088:9;4079:7;4075:23;4071:32;4068:52;;;4116:1;4113;4106:12;4068:52;4155:9;4142:23;4174:28;4196:5;4174:28;:::i;4288:484::-;4383:6;4391;4399;4407;4415;4468:3;4456:9;4447:7;4443:23;4439:33;4436:53;;;4485:1;4482;4475:12;4436:53;4508:29;4527:9;4508:29;:::i;:::-;4498:39;;4556:38;4590:2;4579:9;4575:18;4556:38;:::i;:::-;4546:48;;4613:38;4647:2;4636:9;4632:18;4613:38;:::i;:::-;4603:48;;4670:38;4704:2;4693:9;4689:18;4670:38;:::i;:::-;4660:48;;4727:39;4761:3;4750:9;4746:19;4727:39;:::i;:::-;4717:49;;4288:484;;;;;;;;:::o;4777:315::-;4842:6;4850;4903:2;4891:9;4882:7;4878:23;4874:32;4871:52;;;4919:1;4916;4909:12;4871:52;4942:29;4961:9;4942:29;:::i;:::-;4932:39;;5021:2;5010:9;5006:18;4993:32;5034:28;5056:5;5034:28;:::i;:::-;5081:5;5071:15;;;4777:315;;;;;:::o;5323:356::-;5525:2;5507:21;;;5544:18;;;5537:30;5603:34;5598:2;5583:18;;5576:62;5670:2;5655:18;;5323:356::o;5684:127::-;5745:10;5740:3;5736:20;5733:1;5726:31;5776:4;5773:1;5766:15;5800:4;5797:1;5790:15;5816:168;5889:9;;;5920;;5937:15;;;5931:22;;5917:37;5907:71;;5958:18;;:::i;5989:217::-;6029:1;6055;6045:132;;6099:10;6094:3;6090:20;6087:1;6080:31;6134:4;6131:1;6124:15;6162:4;6159:1;6152:15;6045:132;-1:-1:-1;6191:9:1;;5989:217::o;6978:184::-;7048:6;7101:2;7089:9;7080:7;7076:23;7072:32;7069:52;;;7117:1;7114;7107:12;7069:52;-1:-1:-1;7140:16:1;;6978:184;-1:-1:-1;6978:184:1:o;7446:245::-;7513:6;7566:2;7554:9;7545:7;7541:23;7537:32;7534:52;;;7582:1;7579;7572:12;7534:52;7614:9;7608:16;7633:28;7655:5;7633:28;:::i;8836:128::-;8903:9;;;8924:11;;;8921:37;;;8938:18;;:::i;9318:125::-;9383:9;;;9404:10;;;9401:36;;;9417:18;;:::i;11460:127::-;11521:10;11516:3;11512:20;11509:1;11502:31;11552:4;11549:1;11542:15;11576:4;11573:1;11566:15;11592:980;11854:4;11902:3;11891:9;11887:19;11933:6;11922:9;11915:25;11959:2;11997:6;11992:2;11981:9;11977:18;11970:34;12040:3;12035:2;12024:9;12020:18;12013:31;12064:6;12099;12093:13;12130:6;12122;12115:22;12168:3;12157:9;12153:19;12146:26;;12207:2;12199:6;12195:15;12181:29;;12228:1;12238:195;12252:6;12249:1;12246:13;12238:195;;;12317:13;;-1:-1:-1;;;;;12313:39:1;12301:52;;12408:15;;;;12373:12;;;;12349:1;12267:9;12238:195;;;-1:-1:-1;;;;;;;12489:32:1;;;;12484:2;12469:18;;12462:60;-1:-1:-1;;;12553:3:1;12538:19;12531:35;12450:3;11592:980;-1:-1:-1;;;11592:980:1:o;13399:306::-;13487:6;13495;13503;13556:2;13544:9;13535:7;13531:23;13527:32;13524:52;;;13572:1;13569;13562:12;13524:52;13601:9;13595:16;13585:26;;13651:2;13640:9;13636:18;13630:25;13620:35;;13695:2;13684:9;13680:18;13674:25;13664:35;;13399:306;;;;;:::o

Swarm Source

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