ETH Price: $3,360.83 (+2.62%)
Gas: 4 Gwei

Token

SHARK (SHARK)
 

Overview

Max Total Supply

1,000,000,000,000 SHARK

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,800,000,000 SHARK

Value
$0.00
0x8d1a1b8d53778cef457198e62583cff348922711
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:
SHARK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : SHARK.sol
/*
\x53\x68\x69\x62\x61\x20\x74\x68\x65\x6e\x20\x53\x68\x69\x6e\x61\x20\x6e\x6f\x77\x20\x53\x68\x69\x6c\x61\x20\x2d\x20\x74\x68\x65\x20\x6f\x66\x66\x73\x70\x72\x69\x6e\x67\x20\x6f\x66\x20\x62\x6f\x74\x68



*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.11;

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;
    }
}

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;
}

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

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

    string constant _name = "SHARK";
    string constant _symbol = "SHARK";
    uint8 constant _decimals = 18; 

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    bool public blacklistMode = true;
    mapping (address => bool) public isblacklisted;


    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

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

    uint256 sellpercent = 1600;
    uint256 buypercent = 1300;
    uint256 transferpercent = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private ecosystemFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 30 / 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;
        isFeeExempt[devFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xeC66B2744A61A754f7Ca7F464Ff297490a91eaF1;
        devFeeReceiver = msg.sender;
        ecosystemFeeReceiver = 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 setMaxBag(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTransaction(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

  
    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(blacklistMode){
            require(!isblacklisted[sender],"blacklisted");    
        }

        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.");}

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _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 = 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){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualSwapBack() external onlyOwner {
           swapBack();
    
    }

    function removelimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function manualsend() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(devFeeReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setPercentFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
    }

        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 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 amountETHecosystem = amountETH.mul(ecosystemFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function boolblacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

   
    function add_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isblacklisted[addresses[i]] = status;
        }
    }
    
    function setTXandFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

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

    function setTaxAllocation(uint256 _liquidityFee, uint256 _ecosystemFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        ecosystemFee = _ecosystemFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_ecosystemFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); 
    }

    function setReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _ecosystemFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        ecosystemFeeReceiver = _ecosystemFeeReceiver;
    }

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

    function setTargetRatio(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"add_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"boolblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxBag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setPercentFees","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":"_ecosystemFeeReceiver","type":"address"}],"name":"setReceivers","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXandFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","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":"setTaxAllocation","outputs":[],"stateMutability":"nonpayable","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":[{"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"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062000efb565b64e8d4a51000620000ab919062000f4c565b600555620000db6064620000cc600160055462000c1c60201b90919060201c565b62000c9f60201b90919060201c565b6006556200010b6064620000fc600160055462000c1c60201b90919060201c565b62000c9f60201b90919060201c565b6007556001600a60006101000a81548160ff0219169083151502179055506001600e556002600f55600060105560016011556000601255601254601054600e54600f546011546200015d919062000f97565b62000169919062000f97565b62000175919062000f97565b62000181919062000f97565b60135560646014556106406015556105146016556103e8601755601e601d556064601e556000602160146101000a81548160ff0219169083151502179055506001602160156101000a81548160ff0219169083151502179055506103e8601e600554620001ef919062000f4c565b620001fb919062001001565b6022553480156200020b57600080fd5b5060006200021e62000cf160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041d9190620010a3565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f19190620010a3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200054f929190620010e6565b6020604051808303816000875af11580156200056f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005959190620010a3565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ec66b2744a61a754f7ca7f464ff297490a91eaf1601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c0e919062001124565b60405180910390a362001297565b600080830362000c30576000905062000c99565b6000828462000c40919062000f4c565b905082848262000c51919062001001565b1462000c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8b90620011c8565b60405180910390fd5b809150505b92915050565b600062000ce983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cf960201b60201c565b905092915050565b600033905090565b6000808311829062000d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d3a919062001273565b60405180910390fd5b506000838562000d54919062001001565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000def5780860481111562000dc75762000dc662000d61565b5b600185161562000dd75780820291505b808102905062000de78562000d90565b945062000da7565b94509492505050565b60008262000e0a576001905062000edd565b8162000e1a576000905062000edd565b816001811462000e33576002811462000e3e5762000e74565b600191505062000edd565b60ff84111562000e535762000e5262000d61565b5b8360020a91508482111562000e6d5762000e6c62000d61565b5b5062000edd565b5060208310610133831016604e8410600b841016171562000eae5782820a90508381111562000ea85762000ea762000d61565b5b62000edd565b62000ebd848484600162000d9d565b9250905081840481111562000ed75762000ed662000d61565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f088262000ee4565b915062000f158362000eee565b925062000f447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000df8565b905092915050565b600062000f598262000ee4565b915062000f668362000ee4565b925082820262000f768162000ee4565b9150828204841483151762000f905762000f8f62000d61565b5b5092915050565b600062000fa48262000ee4565b915062000fb18362000ee4565b925082820190508082111562000fcc5762000fcb62000d61565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200100e8262000ee4565b91506200101b8362000ee4565b9250826200102e576200102d62000fd2565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200106b826200103e565b9050919050565b6200107d816200105e565b81146200108957600080fd5b50565b6000815190506200109d8162001072565b92915050565b600060208284031215620010bc57620010bb62001039565b5b6000620010cc848285016200108c565b91505092915050565b620010e0816200105e565b82525050565b6000604082019050620010fd6000830185620010d5565b6200110c6020830184620010d5565b9392505050565b6200111e8162000ee4565b82525050565b60006020820190506200113b600083018462001113565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011b060218362001141565b9150620011bd8262001152565b604082019050919050565b60006020820190508181036000830152620011e381620011a1565b9050919050565b600081519050919050565b60005b8381101562001215578082015181840152602081019050620011f8565b60008484015250505050565b6000601f19601f8301169050919050565b60006200123f82620011ea565b6200124b818562001141565b93506200125d818560208601620011f5565b620012688162001221565b840191505092915050565b600060208201905081810360008301526200128f818462001232565b905092915050565b614ae480620012a76000396000f3fe6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd4914610927578063ed6a596514610950578063ed716b2a1461098d578063f0a9e365146109b6578063f2fde38b146109f3578063f887ea4014610a1c5761027d565b8063c35e30501461081b578063c4e7e81914610844578063c9567bf91461086d578063d51ed1c814610884578063d78e139d146108c1578063dd62ed3e146108ea5761027d565b80639acb773e116101135780639acb773e1461070d578063a55200d214610736578063a8aa1b311461075f578063a9059cbb1461078a578063ab5a1887146107c7578063b2bdfa7b146107f05761027d565b80637d1db4a514610636578063893d20e814610661578063896648c11461068c5780638da5cb5b146106b757806395d89b41146106e25761027d565b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461054c5780636fc3eaec1461057757806370a082311461058e578063715018a6146105cb57806372a2f352146105e257806378109e541461060b5761027d565b80633554dd3c1461048f578063395bf982146104b8578063571ac8b0146104e15780635e4ae81b1461051e57806366eb3785146105355761027d565b806318160ddd1161023a57806318160ddd1461037d5780631df4ccfc146103a857806323b872dd146103d35780632782b5b7146104105780632b112e4914610439578063313ce567146104645761027d565b80630445b6671461028257806306fdde03146102ad57806308fd3d05146102d8578063095ea7b3146103035780631161ae39146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a47565b6040516102a49190613a96565b60405180910390f35b3480156102b957600080fd5b506102c2610a4d565b6040516102cf9190613b41565b60405180910390f35b3480156102e457600080fd5b506102ed610a8a565b6040516102fa9190613b7e565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190613c2d565b610a9d565b6040516103379190613b7e565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613c6d565b610b8f565b6040516103749190613b7e565b60405180910390f35b34801561038957600080fd5b50610392610ba4565b60405161039f9190613a96565b60405180910390f35b3480156103b457600080fd5b506103bd610bae565b6040516103ca9190613a96565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190613cad565b610bb4565b6040516104079190613b7e565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613d2c565b610db4565b005b34801561044557600080fd5b5061044e610e66565b60405161045b9190613a96565b60405180910390f35b34801561047057600080fd5b50610479610ee8565b6040516104869190613d75565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190613d90565b610ef1565b005b3480156104c457600080fd5b506104df60048036038101906104da9190613e0b565b6110d2565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613e5e565b611181565b6040516105159190613b7e565b60405180910390f35b34801561052a57600080fd5b506105336111b4565b005b34801561054157600080fd5b5061054a61125d565b005b34801561055857600080fd5b506105616112fc565b60405161056e9190613b7e565b60405180910390f35b34801561058357600080fd5b5061058c61130f565b005b34801561059a57600080fd5b506105b560048036038101906105b09190613e5e565b6113d0565b6040516105c29190613a96565b60405180910390f35b3480156105d757600080fd5b506105e0611419565b005b3480156105ee57600080fd5b5061060960048036038101906106049190613e8b565b61156c565b005b34801561061757600080fd5b50610620611643565b60405161062d9190613a96565b60405180910390f35b34801561064257600080fd5b5061064b611649565b6040516106589190613a96565b60405180910390f35b34801561066d57600080fd5b5061067661164f565b6040516106839190613ec7565b60405180910390f35b34801561069857600080fd5b506106a161165e565b6040516106ae9190613b7e565b60405180910390f35b3480156106c357600080fd5b506106cc611671565b6040516106d99190613ec7565b60405180910390f35b3480156106ee57600080fd5b506106f761169a565b6040516107049190613b41565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190613ee2565b6116d7565b005b34801561074257600080fd5b5061075d60048036038101906107589190613ee2565b6117c7565b005b34801561076b57600080fd5b5061077461190e565b6040516107819190613ec7565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190613c2d565b611934565b6040516107be9190613b7e565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190613e8b565b611949565b005b3480156107fc57600080fd5b50610805611a20565b6040516108129190613ec7565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190613f22565b611a44565b005b34801561085057600080fd5b5061086b60048036038101906108669190614014565b611bac565b005b34801561087957600080fd5b50610882611ce4565b005b34801561089057600080fd5b506108ab60048036038101906108a69190613e8b565b611d96565b6040516108b89190613a96565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613e8b565b611e08565b005b3480156108f657600080fd5b50610911600480360381019061090c9190614074565b611e91565b60405161091e9190613a96565b60405180910390f35b34801561093357600080fd5b5061094e600480360381019061094991906140b4565b611f18565b005b34801561095c57600080fd5b5061097760048036038101906109729190613e5e565b611fd2565b6040516109849190613b7e565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613c6d565b611ff2565b005b3480156109c257600080fd5b506109dd60048036038101906109d89190613c2d565b612099565b6040516109ea9190613b7e565b60405180910390f35b3480156109ff57600080fd5b50610a1a6004803603810190610a159190613e5e565b6121fc565b005b348015610a2857600080fd5b50610a316123bd565b604051610a3e9190614153565b60405180910390f35b60225481565b60606040518060400160405280600581526020017f534841524b000000000000000000000000000000000000000000000000000000815250905090565b602160149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b7d9190613a96565b60405180910390a36001905092915050565b600082610b9b83611d96565b11905092915050565b6000600554905090565b60135481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610da057610d1f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dab848484612447565b90509392505050565b610dbc612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e40906141ba565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000610ee3610e96600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b610ed5610ec4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b600554612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b905090565b60006012905090565b610ef9612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d906141ba565b60405180910390fd5b84601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6110da612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e906141ba565b60405180910390fd5b816015819055508260168190555080601781905550505050565b60006111ad827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a9d565b9050919050565b6111bc612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611240906141ba565b60405180910390fd5b600554600781905550600554600681905550565b611265612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e9906141ba565b60405180910390fd5b6112fa612bb4565b565b602160159054906101000a900460ff1681565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661136557600080fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113cd573d6000803e3d6000fd5b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611421612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a5906141ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611574612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906141ba565b60405180910390fd5b6103e86005546116119190614238565b600754101561161f57600080fd5b6103e8816005546116309190614269565b61163a9190614238565b60078190555050565b60075481565b60065481565b6000611659611671565b905090565b600a60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534841524b000000000000000000000000000000000000000000000000000000815250905090565b6116df612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611763906141ba565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117cf612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611853906141ba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611941338484612447565b905092915050565b611951612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906141ba565b60405180910390fd5b6103e86005546119ee9190614238565b60065410156119fc57600080fd5b6103e881600554611a0d9190614269565b611a179190614238565b60068190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a4c612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906141ba565b60405180910390fd5b85600e819055508460118190555083600f819055508260108190555081601281905550611b4582611b3785611b2988611b1b8b8d6131db90919063ffffffff16565b6131db90919063ffffffff16565b6131db90919063ffffffff16565b6131db90919063ffffffff16565b601381905550806014819055506002601454611b619190614238565b60135410611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b906142f7565b60405180910390fd5b505050505050565b611bb4612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906141ba565b60405180910390fd5b60005b83839050811015611cde5781600b6000868685818110611c6757611c66614317565b5b9050602002016020810190611c7c9190613e5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611cd790614346565b9050611c44565b50505050565b611cec612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d70906141ba565b60405180910390fd5b6001602160146101000a81548160ff021916908315150217905550565b6000611e01611da3610e66565b611df3611de46002611dd6602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b61323990919063ffffffff16565b8561323990919063ffffffff16565b6132b390919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611e579190614269565b611e619190614238565b9081150290604051600060405180830381858888f19350505050158015611e8c573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f20612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906141ba565b60405180910390fd5b81602160156101000a81548160ff021916908315150217905550806022819055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611ffa612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e906141ba565b60405180910390fd5b81601d8190555080601e819055505050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120f157600080fd5b60008203612176578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121329190613ec7565b602060405180830381865afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217391906143a3565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016121b19291906143d0565b6020604051808303816000875af11580156121d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f4919061440e565b905092915050565b612204612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288906141ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906144ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061242b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124229190613b41565b60405180910390fd5b506000838561243a91906144cd565b9050809150509392505050565b6000602360009054906101000a900460ff1615612470576124698484846132fd565b9050612b5b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125145750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561256957602160149054906101000a900460ff16612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9061454d565b60405180910390fd5b5b600a60009054906101000a900460ff161561260c57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561260b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612602906145b9565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561269257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126ec5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127465750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127a05750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127fa5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128505750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128b4576000612860846113d0565b9050600754838261287191906145d9565b11156128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99061467f565b60405180910390fd5b505b6128be84836134d0565b6128c661356d565b156128d4576128d3612bb4565b5b61295d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a435750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a5757612a52858486613644565b612a59565b825b9050612aad81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b4d9190613a96565b60405180910390a360019150505b9392505050565b600033905090565b6000612bac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e3565b905092915050565b6001602360006101000a81548160ff0219169083151502179055506000612bdf601d54601e54610b8f565b612beb57600e54612bee565b60005b90506000612c2e6002612c20601354612c128660225461323990919063ffffffff16565b6132b390919063ffffffff16565b6132b390919063ffffffff16565b90506000612c4782602254612b6a90919063ffffffff16565b90506000600267ffffffffffffffff811115612c6657612c6561469f565b5b604051908082528060200260200182016040528015612c945781602001602082028036833780820191505090505b5090503081600081518110612cac57612cab614317565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d1d57612d1c614317565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dc09594939291906147c7565b600060405180830381600087803b158015612dda57600080fd5b505af1158015612dee573d6000803e3d6000fd5b505050506000612e078247612b6a90919063ffffffff16565b90506000612e33612e226002896132b390919063ffffffff16565b601354612b6a90919063ffffffff16565b90506000612e6f6002612e6184612e538c8861323990919063ffffffff16565b6132b390919063ffffffff16565b6132b390919063ffffffff16565b90506000612e9a83612e8c600f548761323990919063ffffffff16565b6132b390919063ffffffff16565b90506000612ec584612eb76011548861323990919063ffffffff16565b6132b390919063ffffffff16565b90506000612ef085612ee26010548961323990919063ffffffff16565b6132b390919063ffffffff16565b90506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612f3a90614852565b60006040518083038185875af1925050503d8060008114612f77576040519150601f19603f3d011682016040523d82523d6000602084013e612f7c565b606091505b50509050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612fc690614852565b60006040518083038185875af1925050503d8060008114613003576040519150601f19603f3d011682016040523d82523d6000602084013e613008565b606091505b505080915050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161305490614852565b60006040518083038185875af1925050503d8060008114613091576040519150601f19603f3d011682016040523d82523d6000602084013e613096565b606091505b5050809150506000905060008b11156131b257601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161313296959493929190614867565b60606040518083038185885af1158015613150573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317591906148c8565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516131a992919061491b565b60405180910390a15b5050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b60008082846131ea91906145d9565b90508381101561322f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322690614990565b60405180910390fd5b8091505092915050565b600080830361324b57600090506132ad565b600082846132599190614269565b90508284826132689190614238565b146132a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329f90614a22565b60405180910390fd5b809150505b92915050565b60006132f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a1a565b905092915050565b6000613388826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341d82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134bd9190613a96565b60405180910390a3600190509392505050565b6006548111158061352a5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356090614a8e565b60405180910390fd5b5050565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135da5750602360009054906101000a900460ff16155b80156135f25750602160159054906101000a900460ff165b801561363f5750602254600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806017549050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136ab576015549050613707565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137065760165490505b5b6000613750606460145461371b9190614269565b613742846137346013548a61323990919063ffffffff16565b61323990919063ffffffff16565b6132b390919063ffffffff16565b9050600061377d60135461376f6012548561323990919063ffffffff16565b6132b390919063ffffffff16565b905060006137948284612b6a90919063ffffffff16565b90506137e881600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389f8260086000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b60086000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139619190613a96565b60405180910390a360008211156139fa57601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139f19190613a96565b60405180910390a35b613a0d8388612b6a90919063ffffffff16565b9450505050509392505050565b60008083118290613a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a589190613b41565b60405180910390fd5b5060008385613a709190614238565b9050809150509392505050565b6000819050919050565b613a9081613a7d565b82525050565b6000602082019050613aab6000830184613a87565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613aeb578082015181840152602081019050613ad0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b1382613ab1565b613b1d8185613abc565b9350613b2d818560208601613acd565b613b3681613af7565b840191505092915050565b60006020820190508181036000830152613b5b8184613b08565b905092915050565b60008115159050919050565b613b7881613b63565b82525050565b6000602082019050613b936000830184613b6f565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bce82613ba3565b9050919050565b613bde81613bc3565b8114613be957600080fd5b50565b600081359050613bfb81613bd5565b92915050565b613c0a81613a7d565b8114613c1557600080fd5b50565b600081359050613c2781613c01565b92915050565b60008060408385031215613c4457613c43613b99565b5b6000613c5285828601613bec565b9250506020613c6385828601613c18565b9150509250929050565b60008060408385031215613c8457613c83613b99565b5b6000613c9285828601613c18565b9250506020613ca385828601613c18565b9150509250929050565b600080600060608486031215613cc657613cc5613b99565b5b6000613cd486828701613bec565b9350506020613ce586828701613bec565b9250506040613cf686828701613c18565b9150509250925092565b613d0981613b63565b8114613d1457600080fd5b50565b600081359050613d2681613d00565b92915050565b600060208284031215613d4257613d41613b99565b5b6000613d5084828501613d17565b91505092915050565b600060ff82169050919050565b613d6f81613d59565b82525050565b6000602082019050613d8a6000830184613d66565b92915050565b600080600080600060a08688031215613dac57613dab613b99565b5b6000613dba88828901613bec565b9550506020613dcb88828901613bec565b9450506040613ddc88828901613bec565b9350506060613ded88828901613bec565b9250506080613dfe88828901613bec565b9150509295509295909350565b600080600060608486031215613e2457613e23613b99565b5b6000613e3286828701613c18565b9350506020613e4386828701613c18565b9250506040613e5486828701613c18565b9150509250925092565b600060208284031215613e7457613e73613b99565b5b6000613e8284828501613bec565b91505092915050565b600060208284031215613ea157613ea0613b99565b5b6000613eaf84828501613c18565b91505092915050565b613ec181613bc3565b82525050565b6000602082019050613edc6000830184613eb8565b92915050565b60008060408385031215613ef957613ef8613b99565b5b6000613f0785828601613bec565b9250506020613f1885828601613d17565b9150509250929050565b60008060008060008060c08789031215613f3f57613f3e613b99565b5b6000613f4d89828a01613c18565b9650506020613f5e89828a01613c18565b9550506040613f6f89828a01613c18565b9450506060613f8089828a01613c18565b9350506080613f9189828a01613c18565b92505060a0613fa289828a01613c18565b9150509295509295509295565b600080fd5b600080fd5b600080fd5b60008083601f840112613fd457613fd3613faf565b5b8235905067ffffffffffffffff811115613ff157613ff0613fb4565b5b60208301915083602082028301111561400d5761400c613fb9565b5b9250929050565b60008060006040848603121561402d5761402c613b99565b5b600084013567ffffffffffffffff81111561404b5761404a613b9e565b5b61405786828701613fbe565b9350935050602061406a86828701613d17565b9150509250925092565b6000806040838503121561408b5761408a613b99565b5b600061409985828601613bec565b92505060206140aa85828601613bec565b9150509250929050565b600080604083850312156140cb576140ca613b99565b5b60006140d985828601613d17565b92505060206140ea85828601613c18565b9150509250929050565b6000819050919050565b600061411961411461410f84613ba3565b6140f4565b613ba3565b9050919050565b600061412b826140fe565b9050919050565b600061413d82614120565b9050919050565b61414d81614132565b82525050565b60006020820190506141686000830184614144565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141a4602083613abc565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061424382613a7d565b915061424e83613a7d565b92508261425e5761425d6141da565b5b828204905092915050565b600061427482613a7d565b915061427f83613a7d565b925082820261428d81613a7d565b915082820484148315176142a4576142a3614209565b5b5092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b60006142e1601c83613abc565b91506142ec826142ab565b602082019050919050565b60006020820190508181036000830152614310816142d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061435182613a7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361438357614382614209565b5b600182019050919050565b60008151905061439d81613c01565b92915050565b6000602082840312156143b9576143b8613b99565b5b60006143c78482850161438e565b91505092915050565b60006040820190506143e56000830185613eb8565b6143f26020830184613a87565b9392505050565b60008151905061440881613d00565b92915050565b60006020828403121561442457614423613b99565b5b6000614432848285016143f9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614497602683613abc565b91506144a28261443b565b604082019050919050565b600060208201905081810360008301526144c68161448a565b9050919050565b60006144d882613a7d565b91506144e383613a7d565b92508282039050818111156144fb576144fa614209565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614537601483613abc565b915061454282614501565b602082019050919050565b600060208201905081810360008301526145668161452a565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006145a3600b83613abc565b91506145ae8261456d565b602082019050919050565b600060208201905081810360008301526145d281614596565b9050919050565b60006145e482613a7d565b91506145ef83613a7d565b925082820190508082111561460757614606614209565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614669603e83613abc565b91506146748261460d565b604082019050919050565b600060208201905081810360008301526146988161465c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006146f36146ee6146e9846146ce565b6140f4565b613a7d565b9050919050565b614703816146d8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61473e81613bc3565b82525050565b60006147508383614735565b60208301905092915050565b6000602082019050919050565b600061477482614709565b61477e8185614714565b935061478983614725565b8060005b838110156147ba5781516147a18882614744565b97506147ac8361475c565b92505060018101905061478d565b5085935050505092915050565b600060a0820190506147dc6000830188613a87565b6147e960208301876146fa565b81810360408301526147fb8186614769565b905061480a6060830185613eb8565b6148176080830184613a87565b9695505050505050565b600081905092915050565b50565b600061483c600083614821565b91506148478261482c565b600082019050919050565b600061485d8261482f565b9150819050919050565b600060c08201905061487c6000830189613eb8565b6148896020830188613a87565b61489660408301876146fa565b6148a360608301866146fa565b6148b06080830185613eb8565b6148bd60a0830184613a87565b979650505050505050565b6000806000606084860312156148e1576148e0613b99565b5b60006148ef8682870161438e565b93505060206149008682870161438e565b92505060406149118682870161438e565b9150509250925092565b60006040820190506149306000830185613a87565b61493d6020830184613a87565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061497a601b83613abc565b915061498582614944565b602082019050919050565b600060208201905081810360008301526149a98161496d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a0c602183613abc565b9150614a17826149b0565b604082019050919050565b60006020820190508181036000830152614a3b816149ff565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614a78601183613abc565b9150614a8382614a42565b602082019050919050565b60006020820190508181036000830152614aa781614a6b565b905091905056fea2646970667358221220575c2a28aa064e68d6ea59bb9fa7ac3e2d0c84cc43b38b8d6389d10b87c4ec4364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd4914610927578063ed6a596514610950578063ed716b2a1461098d578063f0a9e365146109b6578063f2fde38b146109f3578063f887ea4014610a1c5761027d565b8063c35e30501461081b578063c4e7e81914610844578063c9567bf91461086d578063d51ed1c814610884578063d78e139d146108c1578063dd62ed3e146108ea5761027d565b80639acb773e116101135780639acb773e1461070d578063a55200d214610736578063a8aa1b311461075f578063a9059cbb1461078a578063ab5a1887146107c7578063b2bdfa7b146107f05761027d565b80637d1db4a514610636578063893d20e814610661578063896648c11461068c5780638da5cb5b146106b757806395d89b41146106e25761027d565b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461054c5780636fc3eaec1461057757806370a082311461058e578063715018a6146105cb57806372a2f352146105e257806378109e541461060b5761027d565b80633554dd3c1461048f578063395bf982146104b8578063571ac8b0146104e15780635e4ae81b1461051e57806366eb3785146105355761027d565b806318160ddd1161023a57806318160ddd1461037d5780631df4ccfc146103a857806323b872dd146103d35780632782b5b7146104105780632b112e4914610439578063313ce567146104645761027d565b80630445b6671461028257806306fdde03146102ad57806308fd3d05146102d8578063095ea7b3146103035780631161ae39146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a47565b6040516102a49190613a96565b60405180910390f35b3480156102b957600080fd5b506102c2610a4d565b6040516102cf9190613b41565b60405180910390f35b3480156102e457600080fd5b506102ed610a8a565b6040516102fa9190613b7e565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190613c2d565b610a9d565b6040516103379190613b7e565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613c6d565b610b8f565b6040516103749190613b7e565b60405180910390f35b34801561038957600080fd5b50610392610ba4565b60405161039f9190613a96565b60405180910390f35b3480156103b457600080fd5b506103bd610bae565b6040516103ca9190613a96565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190613cad565b610bb4565b6040516104079190613b7e565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613d2c565b610db4565b005b34801561044557600080fd5b5061044e610e66565b60405161045b9190613a96565b60405180910390f35b34801561047057600080fd5b50610479610ee8565b6040516104869190613d75565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190613d90565b610ef1565b005b3480156104c457600080fd5b506104df60048036038101906104da9190613e0b565b6110d2565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613e5e565b611181565b6040516105159190613b7e565b60405180910390f35b34801561052a57600080fd5b506105336111b4565b005b34801561054157600080fd5b5061054a61125d565b005b34801561055857600080fd5b506105616112fc565b60405161056e9190613b7e565b60405180910390f35b34801561058357600080fd5b5061058c61130f565b005b34801561059a57600080fd5b506105b560048036038101906105b09190613e5e565b6113d0565b6040516105c29190613a96565b60405180910390f35b3480156105d757600080fd5b506105e0611419565b005b3480156105ee57600080fd5b5061060960048036038101906106049190613e8b565b61156c565b005b34801561061757600080fd5b50610620611643565b60405161062d9190613a96565b60405180910390f35b34801561064257600080fd5b5061064b611649565b6040516106589190613a96565b60405180910390f35b34801561066d57600080fd5b5061067661164f565b6040516106839190613ec7565b60405180910390f35b34801561069857600080fd5b506106a161165e565b6040516106ae9190613b7e565b60405180910390f35b3480156106c357600080fd5b506106cc611671565b6040516106d99190613ec7565b60405180910390f35b3480156106ee57600080fd5b506106f761169a565b6040516107049190613b41565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190613ee2565b6116d7565b005b34801561074257600080fd5b5061075d60048036038101906107589190613ee2565b6117c7565b005b34801561076b57600080fd5b5061077461190e565b6040516107819190613ec7565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190613c2d565b611934565b6040516107be9190613b7e565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190613e8b565b611949565b005b3480156107fc57600080fd5b50610805611a20565b6040516108129190613ec7565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190613f22565b611a44565b005b34801561085057600080fd5b5061086b60048036038101906108669190614014565b611bac565b005b34801561087957600080fd5b50610882611ce4565b005b34801561089057600080fd5b506108ab60048036038101906108a69190613e8b565b611d96565b6040516108b89190613a96565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613e8b565b611e08565b005b3480156108f657600080fd5b50610911600480360381019061090c9190614074565b611e91565b60405161091e9190613a96565b60405180910390f35b34801561093357600080fd5b5061094e600480360381019061094991906140b4565b611f18565b005b34801561095c57600080fd5b5061097760048036038101906109729190613e5e565b611fd2565b6040516109849190613b7e565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613c6d565b611ff2565b005b3480156109c257600080fd5b506109dd60048036038101906109d89190613c2d565b612099565b6040516109ea9190613b7e565b60405180910390f35b3480156109ff57600080fd5b50610a1a6004803603810190610a159190613e5e565b6121fc565b005b348015610a2857600080fd5b50610a316123bd565b604051610a3e9190614153565b60405180910390f35b60225481565b60606040518060400160405280600581526020017f534841524b000000000000000000000000000000000000000000000000000000815250905090565b602160149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b7d9190613a96565b60405180910390a36001905092915050565b600082610b9b83611d96565b11905092915050565b6000600554905090565b60135481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610da057610d1f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dab848484612447565b90509392505050565b610dbc612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e40906141ba565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000610ee3610e96600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b610ed5610ec4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b600554612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b905090565b60006012905090565b610ef9612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d906141ba565b60405180910390fd5b84601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6110da612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e906141ba565b60405180910390fd5b816015819055508260168190555080601781905550505050565b60006111ad827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a9d565b9050919050565b6111bc612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611240906141ba565b60405180910390fd5b600554600781905550600554600681905550565b611265612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e9906141ba565b60405180910390fd5b6112fa612bb4565b565b602160159054906101000a900460ff1681565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661136557600080fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113cd573d6000803e3d6000fd5b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611421612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a5906141ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611574612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906141ba565b60405180910390fd5b6103e86005546116119190614238565b600754101561161f57600080fd5b6103e8816005546116309190614269565b61163a9190614238565b60078190555050565b60075481565b60065481565b6000611659611671565b905090565b600a60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534841524b000000000000000000000000000000000000000000000000000000815250905090565b6116df612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611763906141ba565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117cf612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611853906141ba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611941338484612447565b905092915050565b611951612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906141ba565b60405180910390fd5b6103e86005546119ee9190614238565b60065410156119fc57600080fd5b6103e881600554611a0d9190614269565b611a179190614238565b60068190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a4c612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906141ba565b60405180910390fd5b85600e819055508460118190555083600f819055508260108190555081601281905550611b4582611b3785611b2988611b1b8b8d6131db90919063ffffffff16565b6131db90919063ffffffff16565b6131db90919063ffffffff16565b6131db90919063ffffffff16565b601381905550806014819055506002601454611b619190614238565b60135410611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b906142f7565b60405180910390fd5b505050505050565b611bb4612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906141ba565b60405180910390fd5b60005b83839050811015611cde5781600b6000868685818110611c6757611c66614317565b5b9050602002016020810190611c7c9190613e5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611cd790614346565b9050611c44565b50505050565b611cec612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d70906141ba565b60405180910390fd5b6001602160146101000a81548160ff021916908315150217905550565b6000611e01611da3610e66565b611df3611de46002611dd6602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b61323990919063ffffffff16565b8561323990919063ffffffff16565b6132b390919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611e579190614269565b611e619190614238565b9081150290604051600060405180830381858888f19350505050158015611e8c573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f20612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906141ba565b60405180910390fd5b81602160156101000a81548160ff021916908315150217905550806022819055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611ffa612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e906141ba565b60405180910390fd5b81601d8190555080601e819055505050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120f157600080fd5b60008203612176578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121329190613ec7565b602060405180830381865afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217391906143a3565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016121b19291906143d0565b6020604051808303816000875af11580156121d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f4919061440e565b905092915050565b612204612b62565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288906141ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906144ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061242b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124229190613b41565b60405180910390fd5b506000838561243a91906144cd565b9050809150509392505050565b6000602360009054906101000a900460ff1615612470576124698484846132fd565b9050612b5b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125145750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561256957602160149054906101000a900460ff16612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9061454d565b60405180910390fd5b5b600a60009054906101000a900460ff161561260c57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561260b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612602906145b9565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561269257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126ec5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127465750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127a05750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127fa5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128505750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128b4576000612860846113d0565b9050600754838261287191906145d9565b11156128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99061467f565b60405180910390fd5b505b6128be84836134d0565b6128c661356d565b156128d4576128d3612bb4565b5b61295d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a435750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a5757612a52858486613644565b612a59565b825b9050612aad81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b4d9190613a96565b60405180910390a360019150505b9392505050565b600033905090565b6000612bac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e3565b905092915050565b6001602360006101000a81548160ff0219169083151502179055506000612bdf601d54601e54610b8f565b612beb57600e54612bee565b60005b90506000612c2e6002612c20601354612c128660225461323990919063ffffffff16565b6132b390919063ffffffff16565b6132b390919063ffffffff16565b90506000612c4782602254612b6a90919063ffffffff16565b90506000600267ffffffffffffffff811115612c6657612c6561469f565b5b604051908082528060200260200182016040528015612c945781602001602082028036833780820191505090505b5090503081600081518110612cac57612cab614317565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d1d57612d1c614317565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dc09594939291906147c7565b600060405180830381600087803b158015612dda57600080fd5b505af1158015612dee573d6000803e3d6000fd5b505050506000612e078247612b6a90919063ffffffff16565b90506000612e33612e226002896132b390919063ffffffff16565b601354612b6a90919063ffffffff16565b90506000612e6f6002612e6184612e538c8861323990919063ffffffff16565b6132b390919063ffffffff16565b6132b390919063ffffffff16565b90506000612e9a83612e8c600f548761323990919063ffffffff16565b6132b390919063ffffffff16565b90506000612ec584612eb76011548861323990919063ffffffff16565b6132b390919063ffffffff16565b90506000612ef085612ee26010548961323990919063ffffffff16565b6132b390919063ffffffff16565b90506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612f3a90614852565b60006040518083038185875af1925050503d8060008114612f77576040519150601f19603f3d011682016040523d82523d6000602084013e612f7c565b606091505b50509050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612fc690614852565b60006040518083038185875af1925050503d8060008114613003576040519150601f19603f3d011682016040523d82523d6000602084013e613008565b606091505b505080915050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161305490614852565b60006040518083038185875af1925050503d8060008114613091576040519150601f19603f3d011682016040523d82523d6000602084013e613096565b606091505b5050809150506000905060008b11156131b257601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161313296959493929190614867565b60606040518083038185885af1158015613150573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317591906148c8565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516131a992919061491b565b60405180910390a15b5050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b60008082846131ea91906145d9565b90508381101561322f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322690614990565b60405180910390fd5b8091505092915050565b600080830361324b57600090506132ad565b600082846132599190614269565b90508284826132689190614238565b146132a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329f90614a22565b60405180910390fd5b809150505b92915050565b60006132f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a1a565b905092915050565b6000613388826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341d82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134bd9190613a96565b60405180910390a3600190509392505050565b6006548111158061352a5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356090614a8e565b60405180910390fd5b5050565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135da5750602360009054906101000a900460ff16155b80156135f25750602160159054906101000a900460ff165b801561363f5750602254600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806017549050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136ab576015549050613707565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137065760165490505b5b6000613750606460145461371b9190614269565b613742846137346013548a61323990919063ffffffff16565b61323990919063ffffffff16565b6132b390919063ffffffff16565b9050600061377d60135461376f6012548561323990919063ffffffff16565b6132b390919063ffffffff16565b905060006137948284612b6a90919063ffffffff16565b90506137e881600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389f8260086000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131db90919063ffffffff16565b60086000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139619190613a96565b60405180910390a360008211156139fa57601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139f19190613a96565b60405180910390a35b613a0d8388612b6a90919063ffffffff16565b9450505050509392505050565b60008083118290613a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a589190613b41565b60405180910390fd5b5060008385613a709190614238565b9050809150509392505050565b6000819050919050565b613a9081613a7d565b82525050565b6000602082019050613aab6000830184613a87565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613aeb578082015181840152602081019050613ad0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b1382613ab1565b613b1d8185613abc565b9350613b2d818560208601613acd565b613b3681613af7565b840191505092915050565b60006020820190508181036000830152613b5b8184613b08565b905092915050565b60008115159050919050565b613b7881613b63565b82525050565b6000602082019050613b936000830184613b6f565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bce82613ba3565b9050919050565b613bde81613bc3565b8114613be957600080fd5b50565b600081359050613bfb81613bd5565b92915050565b613c0a81613a7d565b8114613c1557600080fd5b50565b600081359050613c2781613c01565b92915050565b60008060408385031215613c4457613c43613b99565b5b6000613c5285828601613bec565b9250506020613c6385828601613c18565b9150509250929050565b60008060408385031215613c8457613c83613b99565b5b6000613c9285828601613c18565b9250506020613ca385828601613c18565b9150509250929050565b600080600060608486031215613cc657613cc5613b99565b5b6000613cd486828701613bec565b9350506020613ce586828701613bec565b9250506040613cf686828701613c18565b9150509250925092565b613d0981613b63565b8114613d1457600080fd5b50565b600081359050613d2681613d00565b92915050565b600060208284031215613d4257613d41613b99565b5b6000613d5084828501613d17565b91505092915050565b600060ff82169050919050565b613d6f81613d59565b82525050565b6000602082019050613d8a6000830184613d66565b92915050565b600080600080600060a08688031215613dac57613dab613b99565b5b6000613dba88828901613bec565b9550506020613dcb88828901613bec565b9450506040613ddc88828901613bec565b9350506060613ded88828901613bec565b9250506080613dfe88828901613bec565b9150509295509295909350565b600080600060608486031215613e2457613e23613b99565b5b6000613e3286828701613c18565b9350506020613e4386828701613c18565b9250506040613e5486828701613c18565b9150509250925092565b600060208284031215613e7457613e73613b99565b5b6000613e8284828501613bec565b91505092915050565b600060208284031215613ea157613ea0613b99565b5b6000613eaf84828501613c18565b91505092915050565b613ec181613bc3565b82525050565b6000602082019050613edc6000830184613eb8565b92915050565b60008060408385031215613ef957613ef8613b99565b5b6000613f0785828601613bec565b9250506020613f1885828601613d17565b9150509250929050565b60008060008060008060c08789031215613f3f57613f3e613b99565b5b6000613f4d89828a01613c18565b9650506020613f5e89828a01613c18565b9550506040613f6f89828a01613c18565b9450506060613f8089828a01613c18565b9350506080613f9189828a01613c18565b92505060a0613fa289828a01613c18565b9150509295509295509295565b600080fd5b600080fd5b600080fd5b60008083601f840112613fd457613fd3613faf565b5b8235905067ffffffffffffffff811115613ff157613ff0613fb4565b5b60208301915083602082028301111561400d5761400c613fb9565b5b9250929050565b60008060006040848603121561402d5761402c613b99565b5b600084013567ffffffffffffffff81111561404b5761404a613b9e565b5b61405786828701613fbe565b9350935050602061406a86828701613d17565b9150509250925092565b6000806040838503121561408b5761408a613b99565b5b600061409985828601613bec565b92505060206140aa85828601613bec565b9150509250929050565b600080604083850312156140cb576140ca613b99565b5b60006140d985828601613d17565b92505060206140ea85828601613c18565b9150509250929050565b6000819050919050565b600061411961411461410f84613ba3565b6140f4565b613ba3565b9050919050565b600061412b826140fe565b9050919050565b600061413d82614120565b9050919050565b61414d81614132565b82525050565b60006020820190506141686000830184614144565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141a4602083613abc565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061424382613a7d565b915061424e83613a7d565b92508261425e5761425d6141da565b5b828204905092915050565b600061427482613a7d565b915061427f83613a7d565b925082820261428d81613a7d565b915082820484148315176142a4576142a3614209565b5b5092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b60006142e1601c83613abc565b91506142ec826142ab565b602082019050919050565b60006020820190508181036000830152614310816142d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061435182613a7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361438357614382614209565b5b600182019050919050565b60008151905061439d81613c01565b92915050565b6000602082840312156143b9576143b8613b99565b5b60006143c78482850161438e565b91505092915050565b60006040820190506143e56000830185613eb8565b6143f26020830184613a87565b9392505050565b60008151905061440881613d00565b92915050565b60006020828403121561442457614423613b99565b5b6000614432848285016143f9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614497602683613abc565b91506144a28261443b565b604082019050919050565b600060208201905081810360008301526144c68161448a565b9050919050565b60006144d882613a7d565b91506144e383613a7d565b92508282039050818111156144fb576144fa614209565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614537601483613abc565b915061454282614501565b602082019050919050565b600060208201905081810360008301526145668161452a565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006145a3600b83613abc565b91506145ae8261456d565b602082019050919050565b600060208201905081810360008301526145d281614596565b9050919050565b60006145e482613a7d565b91506145ef83613a7d565b925082820190508082111561460757614606614209565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614669603e83613abc565b91506146748261460d565b604082019050919050565b600060208201905081810360008301526146988161465c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006146f36146ee6146e9846146ce565b6140f4565b613a7d565b9050919050565b614703816146d8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61473e81613bc3565b82525050565b60006147508383614735565b60208301905092915050565b6000602082019050919050565b600061477482614709565b61477e8185614714565b935061478983614725565b8060005b838110156147ba5781516147a18882614744565b97506147ac8361475c565b92505060018101905061478d565b5085935050505092915050565b600060a0820190506147dc6000830188613a87565b6147e960208301876146fa565b81810360408301526147fb8186614769565b905061480a6060830185613eb8565b6148176080830184613a87565b9695505050505050565b600081905092915050565b50565b600061483c600083614821565b91506148478261482c565b600082019050919050565b600061485d8261482f565b9150819050919050565b600060c08201905061487c6000830189613eb8565b6148896020830188613a87565b61489660408301876146fa565b6148a360608301866146fa565b6148b06080830185613eb8565b6148bd60a0830184613a87565b979650505050505050565b6000806000606084860312156148e1576148e0613b99565b5b60006148ef8682870161438e565b93505060206149008682870161438e565b92505060406149118682870161438e565b9150509250925092565b60006040820190506149306000830185613a87565b61493d6020830184613a87565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061497a601b83613abc565b915061498582614944565b602082019050919050565b600060208201905081810360008301526149a98161496d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a0c602183613abc565b9150614a17826149b0565b604082019050919050565b60006020820190508181036000830152614a3b816149ff565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614a78601183613abc565b9150614a8382614a42565b602082019050919050565b60006020820190508181036000830152614aa781614a6b565b905091905056fea2646970667358221220575c2a28aa064e68d6ea59bb9fa7ac3e2d0c84cc43b38b8d6389d10b87c4ec4364736f6c63430008130033

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.