ETH Price: $2,261.32 (-5.14%)
Gas: 1.04 Gwei

Token

SWAMPY (SWAMPY)
 

Overview

Max Total Supply

1,000,000,000 SWAMPY

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: SWAMPY 2
Balance
695,052,779.155128838452010365 SWAMPY

Value
$0.00
0x0a936cc91a854dad987091455e4702fb176f1893
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:
SWAMPY

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-16
*/

// SPDX-License-Identifier: MIT
/*
SWAMPY HAS COME TO REUNITE WITH PEPE!
https://swampyerc.vip/
https://t.me/swampyerc
https://twitter.com/SWAMPYeth
*/

pragma solidity 0.8.2;

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



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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}


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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

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


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

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

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

    uint256 private liquidityFee    = 5;
    uint256 private marketingFee    = 5;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 1000;

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

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

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

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

   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x799a8523E62cA0a4F5bF8136ad2A3c13f4DfAf47;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

        checkTxLimit(sender, amount);  

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

   function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
     function startTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 500; // How much percentages the original taxes increase.
        sellpercent = 3000;  // How much percentages the original taxes increase.
        transferpercent = 100;
                              
    }

      function reduceFee() public onlyOwner {
       
        buypercent = 100; // How much percentages the original taxes increase.
        sellpercent = 100;
        transferpercent = 100;
                              
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

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

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

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

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

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

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


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","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":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","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"}]

60806040526012600a62000014919062000e58565b633b9aca0062000025919062000f95565b6003556200005f60646200004b600260035462000aa960201b62001c951790919060201c565b62000b2d60201b62001d101790919060201c565b60045562000099606462000085600260035462000aa960201b62001c951790919060201c565b62000b2d60201b62001d101790919060201c565b6005556005600a556005600b556000600c556000600d556000600e55600e54600c54600a54600b54600d54620000d0919062000d68565b620000dc919062000d68565b620000e8919062000d68565b620000f4919062000d68565b600f556103e8601055606460115560646012556064601355601e6019556064601a556000601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e8600260035462000160919062000f95565b6200016c919062000dc5565b601e553480156200017c57600080fd5b5060006200018f62000b7f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036357600080fd5b505afa15801562000378573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039e919062000c06565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044757600080fd5b505afa1580156200045c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000482919062000c06565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004e092919062000cbc565b602060405180830381600087803b158015620004fb57600080fd5b505af115801562000510573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000536919062000c06565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073799a8523e62ca0a4f5bf8136ad2a3c13f4dfaf47601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a9b919062000d2f565b60405180910390a36200115c565b60008083141562000abe576000905062000b27565b6000828462000ace919062000f95565b905082848262000adf919062000dc5565b1462000b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b199062000d0d565b60405180910390fd5b809150505b92915050565b600062000b7783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b8760201b60201c565b905092915050565b600033905090565b6000808311829062000bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bc8919062000ce9565b60405180910390fd5b506000838562000be2919062000dc5565b9050809150509392505050565b60008151905062000c008162001142565b92915050565b60006020828403121562000c1957600080fd5b600062000c298482850162000bef565b91505092915050565b62000c3d8162000ff6565b82525050565b600062000c508262000d4c565b62000c5c818562000d57565b935062000c6e81856020860162001041565b62000c7981620010d5565b840191505092915050565b600062000c9360218362000d57565b915062000ca082620010f3565b604082019050919050565b62000cb6816200102a565b82525050565b600060408201905062000cd3600083018562000c32565b62000ce2602083018462000c32565b9392505050565b6000602082019050818103600083015262000d05818462000c43565b905092915050565b6000602082019050818103600083015262000d288162000c84565b9050919050565b600060208201905062000d46600083018462000cab565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000d75826200102a565b915062000d82836200102a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000dba5762000db962001077565b5b828201905092915050565b600062000dd2826200102a565b915062000ddf836200102a565b92508262000df25762000df1620010a6565b5b828204905092915050565b6000808291508390505b600185111562000e4f5780860481111562000e275762000e2662001077565b5b600185161562000e375780820291505b808102905062000e4785620010e6565b945062000e07565b94509492505050565b600062000e65826200102a565b915062000e728362001034565b925062000ea17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ea9565b905092915050565b60008262000ebb576001905062000f8e565b8162000ecb576000905062000f8e565b816001811462000ee4576002811462000eef5762000f25565b600191505062000f8e565b60ff84111562000f045762000f0362001077565b5b8360020a91508482111562000f1e5762000f1d62001077565b5b5062000f8e565b5060208310610133831016604e8410600b841016171562000f5f5782820a90508381111562000f595762000f5862001077565b5b62000f8e565b62000f6e848484600162000dfd565b9250905081840481111562000f885762000f8762001077565b5b81810290505b9392505050565b600062000fa2826200102a565b915062000faf836200102a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000feb5762000fea62001077565b5b828202905092915050565b600062001003826200100a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200106157808201518184015260208101905062001044565b8381111562001071576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200114d8162000ff6565b81146200115957600080fd5b50565b614229806200116c6000396000f3fe6080604052600436106102135760003560e01c806377b54bad11610118578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461078c578063df20fd49146107c9578063f2fde38b146107f2578063f42938901461081b578063f887ea40146108325761021a565b8063a9059cbb146106be578063b2bdfa7b146106fb578063c0cbdea414610726578063dd62ed3e1461074f5761021a565b8063893d20e8116100e7578063893d20e8146105fb5780638da5cb5b1461062657806395d89b4114610651578063a70419d21461067c578063a8aa1b31146106935761021a565b806377b54bad1461053f57806378109e541461057c5780637d1db4a5146105a757806382528791146105d25761021a565b806330c9a6a01161019b5780635d83e1d51161016a5780635d83e1d5146104805780636ddd1713146104a957806370a08231146104d4578063715018a614610511578063751039fc146105285761021a565b806330c9a6a0146103b0578063313ce567146103ed5780635526566914610418578063571ac8b0146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631df4ccfc1461030857806323b872dd14610333578063282c874914610370578063293230b8146103995761021a565b80630445b6671461021f57806306fdde031461024a57806308fd3d0514610275578063095ea7b3146102a05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461085d565b6040516102419190613c36565b60405180910390f35b34801561025657600080fd5b5061025f610863565b60405161026c9190613b14565b60405180910390f35b34801561028157600080fd5b5061028a6108a0565b6040516102979190613ade565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c29190613536565b6108b3565b6040516102d49190613ade565b60405180910390f35b3480156102e957600080fd5b506102f26109a5565b6040516102ff9190613c36565b60405180910390f35b34801561031457600080fd5b5061031d6109af565b60405161032a9190613c36565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906134e7565b6109b5565b6040516103679190613ade565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613703565b610bb5565b005b3480156103a557600080fd5b506103ae610d25565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906135d7565b610df1565b6040516103e49190613c36565b60405180910390f35b3480156103f957600080fd5b50610402610e63565b60405161040f9190613cfd565b60405180910390f35b34801561042457600080fd5b5061042d610e6c565b60405161043a9190613c36565b60405180910390f35b34801561044f57600080fd5b5061046a6004803603810190610465919061340b565b610ead565b6040516104779190613ade565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a291906135d7565b610ee0565b005b3480156104b557600080fd5b506104be610fe0565b6040516104cb9190613ade565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f6919061340b565b610ff3565b6040516105089190613c36565b60405180910390f35b34801561051d57600080fd5b5061052661103c565b005b34801561053457600080fd5b5061053d61118f565b005b34801561054b57600080fd5b5061056660048036038101906105619190613536565b611238565b6040516105739190613ade565b60405180910390f35b34801561058857600080fd5b506105916113be565b60405161059e9190613c36565b60405180910390f35b3480156105b357600080fd5b506105bc6113c4565b6040516105c99190613c36565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190613470565b6113ca565b005b34801561060757600080fd5b50610610611670565b60405161061d91906139f4565b60405180910390f35b34801561063257600080fd5b5061063b61167f565b60405161064891906139f4565b60405180910390f35b34801561065d57600080fd5b506106666116a8565b6040516106739190613b14565b60405180910390f35b34801561068857600080fd5b506106916116e5565b005b34801561069f57600080fd5b506106a8611794565b6040516106b591906139f4565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190613536565b6117ba565b6040516106f29190613ade565b60405180910390f35b34801561070757600080fd5b506107106117cf565b60405161071d91906139f4565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190613665565b6117f3565b005b34801561075b57600080fd5b5061077660048036038101906107719190613434565b6118a2565b6040516107839190613c36565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190613629565b611929565b6040516107c09190613ade565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb919061359b565b61193e565b005b3480156107fe57600080fd5b506108196004803603810190610814919061340b565b611a42565b005b34801561082757600080fd5b50610830611c04565b005b34801561083e57600080fd5b50610847611c6f565b6040516108549190613af9565b60405180910390f35b601e5481565b60606040518060400160405280600681526020017f5357414d50590000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109939190613c36565b60405180910390a36001905092915050565b6000600354905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba157610b20826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bac848484611dbe565b90509392505050565b610bbd612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613bf6565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610cb682610ca885610c9a88610c8c8b8d61241e90919063ffffffff16565b61241e90919063ffffffff16565b61241e90919063ffffffff16565b61241e90919063ffffffff16565b600f81905550806010819055506002601054610cd29190613e05565b600f5410610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613bd6565b60405180910390fd5b610d1d61247c565b505050505050565b610d2d612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613bf6565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506101f4601281905550610bb86011819055506064601381905550565b6000610e5c610dfe610e6c565b610e4e610e3f6002610e31601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ff3565b611c9590919063ffffffff16565b85611c9590919063ffffffff16565b611d1090919063ffffffff16565b9050919050565b60006012905090565b6000610ea8610e7b6000610ff3565b610e9a610e8961dead610ff3565b60035461253490919063ffffffff16565b61253490919063ffffffff16565b905090565b6000610ed9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b3565b9050919050565b610ee8612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613bf6565b60405180910390fd5b6001811015610f8357600080fd5b6103e881600354610f949190613e36565b610f9e9190613e05565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610fd59190613c36565b60405180910390a150565b601d60159054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611044612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611197612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90613bf6565b60405180910390fd5b600354600481905550600354600581905550565b6000808214156112ce578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161127b91906139f4565b60206040518083038186803b15801561129357600080fd5b505afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613600565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112ff929190613a54565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611364929190613a54565b602060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b69190613572565b905092915050565b60055481565b60045481565b6113d2612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690613bf6565b60405180910390fd5b84601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516116619493929190613a0f565b60405180910390a15050505050565b600061167a61167f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5357414d50590000000000000000000000000000000000000000000000000000815250905090565b6116ed612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613bf6565b60405180910390fd5b606460128190555060646011819055506064601381905550565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c7338484611dbe565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117fb612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f90613bf6565b60405180910390fd5b816011819055508260128190555080601381905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261193583610df1565b11905092915050565b611946612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca90613bf6565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611a36929190613c51565b60405180910390a15050565b611a4a612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90613bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613b56565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c6c573d6000803e3d6000fd5b50565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611ca85760009050611d0a565b60008284611cb69190613e36565b9050828482611cc59190613e05565b14611d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfc90613bb6565b60405180910390fd5b809150505b92915050565b6000611d5283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061257e565b905092915050565b6000838311158290611da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d999190613b14565b60405180910390fd5b5060008385611db19190613e90565b9050809150509392505050565b6000601f60009054906101000a900460ff1615611de757611de08484846125e1565b905061240f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e8b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee057601d60149054906101000a900460ff16611edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed690613b96565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ffa5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120545750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120ae5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121045750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216857600061211484610ff3565b905060055483826121259190613daf565b1115612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d90613c16565b60405180910390fd5b505b61217284836127b4565b61217a612851565b1561218857612187612928565b5b612211826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f75750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61230b57612306858486612fd0565b61230d565b825b905061236181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124019190613c36565b60405180910390a360019150505b9392505050565b600033905090565b600080828461242d9190613daf565b905083811015612472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246990613b76565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124c760646124b9601254600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b6124f160646124e3601154600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b61251b606461250d601354600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b60405161252a93929190613d18565b60405180910390a1565b600061257683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5a565b905092915050565b600080831182906125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc9190613b14565b60405180910390fd5b50600083856125d49190613e05565b9050809150509392505050565b600061266c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127a19190613c36565b60405180910390a3600190509392505050565b6004548111158061280e5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61284d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284490613b36565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128be5750601f60009054906101000a900460ff16155b80156128d65750601d60159054906101000a900460ff165b80156129235750601e54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60006101000a81548160ff0219169083151502179055506000612953601954601a54611929565b61295f57600a54612962565b60005b905060006129a26002612994600f5461298686601e54611c9590919063ffffffff16565b611d1090919063ffffffff16565b611d1090919063ffffffff16565b905060006129bb82601e5461253490919063ffffffff16565b90506000600267ffffffffffffffff811115612a00577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a2e5781602001602082028036833780820191505090505b5090503081600081518110612a6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ba6959493929190613c7a565b600060405180830381600087803b158015612bc057600080fd5b505af1158015612bd4573d6000803e3d6000fd5b505050506000612bed824761253490919063ffffffff16565b90506000612c19612c08600289611d1090919063ffffffff16565b600f5461253490919063ffffffff16565b90506000612c556002612c4784612c398c88611c9590919063ffffffff16565b611d1090919063ffffffff16565b611d1090919063ffffffff16565b90506000612c8083612c72600b5487611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000612cab84612c9d600d5488611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000612cd685612cc8600c5489611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612d20906139df565b60006040518083038185875af1925050503d8060008114612d5d576040519150601f19603f3d011682016040523d82523d6000602084013e612d62565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612dac906139df565b60006040518083038185875af1925050503d8060008114612de9576040519150601f19603f3d011682016040523d82523d6000602084013e612dee565b606091505b505080915050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e3a906139df565b60006040518083038185875af1925050503d8060008114612e77576040519150601f19603f3d011682016040523d82523d6000602084013e612e7c565b606091505b5050809150506000905060008b1115612fa757601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f1896959493929190613a7d565b6060604051808303818588803b158015612f3157600080fd5b505af1158015612f45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f6a91906136b4565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f9e929190613cd4565b60405180910390a15b5050505050505050505050506000601f60006101000a81548160ff021916908315150217905550565b6000806013549050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613038576011549050613095565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156130945760125490505b5b60006130de60646010546130a99190613e36565b6130d0846130c2600f548a611c9590919063ffffffff16565b611c9590919063ffffffff16565b611d1090919063ffffffff16565b9050600061310b600f546130fd600e5485611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000613122828461253490919063ffffffff16565b905061317681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322d8260066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b60066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132ef9190613c36565b60405180910390a36000821115613382576133158260035461253490919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133799190613c36565b60405180910390a35b613395838861253490919063ffffffff16565b9450505050509392505050565b6000813590506133b1816141ae565b92915050565b6000813590506133c6816141c5565b92915050565b6000815190506133db816141c5565b92915050565b6000813590506133f0816141dc565b92915050565b600081519050613405816141dc565b92915050565b60006020828403121561341d57600080fd5b600061342b848285016133a2565b91505092915050565b6000806040838503121561344757600080fd5b6000613455858286016133a2565b9250506020613466858286016133a2565b9150509250929050565b600080600080600060a0868803121561348857600080fd5b6000613496888289016133a2565b95505060206134a7888289016133a2565b94505060406134b8888289016133a2565b93505060606134c9888289016133a2565b92505060806134da888289016133a2565b9150509295509295909350565b6000806000606084860312156134fc57600080fd5b600061350a868287016133a2565b935050602061351b868287016133a2565b925050604061352c868287016133e1565b9150509250925092565b6000806040838503121561354957600080fd5b6000613557858286016133a2565b9250506020613568858286016133e1565b9150509250929050565b60006020828403121561358457600080fd5b6000613592848285016133cc565b91505092915050565b600080604083850312156135ae57600080fd5b60006135bc858286016133b7565b92505060206135cd858286016133e1565b9150509250929050565b6000602082840312156135e957600080fd5b60006135f7848285016133e1565b91505092915050565b60006020828403121561361257600080fd5b6000613620848285016133f6565b91505092915050565b6000806040838503121561363c57600080fd5b600061364a858286016133e1565b925050602061365b858286016133e1565b9150509250929050565b60008060006060848603121561367a57600080fd5b6000613688868287016133e1565b9350506020613699868287016133e1565b92505060406136aa868287016133e1565b9150509250925092565b6000806000606084860312156136c957600080fd5b60006136d7868287016133f6565b93505060206136e8868287016133f6565b92505060406136f9868287016133f6565b9150509250925092565b60008060008060008060c0878903121561371c57600080fd5b600061372a89828a016133e1565b965050602061373b89828a016133e1565b955050604061374c89828a016133e1565b945050606061375d89828a016133e1565b935050608061376e89828a016133e1565b92505060a061377f89828a016133e1565b9150509295509295509295565b600061379883836137a4565b60208301905092915050565b6137ad81613ec4565b82525050565b6137bc81613ec4565b82525050565b60006137cd82613d5f565b6137d78185613d82565b93506137e283613d4f565b8060005b838110156138135781516137fa888261378c565b975061380583613d75565b9250506001810190506137e6565b5085935050505092915050565b61382981613ed6565b82525050565b61383881613f19565b82525050565b61384781613f3d565b82525050565b600061385882613d6a565b6138628185613d9e565b9350613872818560208601613f4f565b61387b81613fe0565b840191505092915050565b6000613893601183613d9e565b915061389e82613ff1565b602082019050919050565b60006138b6602683613d9e565b91506138c18261401a565b604082019050919050565b60006138d9601b83613d9e565b91506138e482614069565b602082019050919050565b60006138fc601483613d9e565b915061390782614092565b602082019050919050565b600061391f602183613d9e565b915061392a826140bb565b604082019050919050565b6000613942601d83613d9e565b915061394d8261410a565b602082019050919050565b6000613965602083613d9e565b915061397082614133565b602082019050919050565b6000613988603e83613d9e565b91506139938261415c565b604082019050919050565b60006139ab600083613d93565b91506139b6826141ab565b600082019050919050565b6139ca81613f02565b82525050565b6139d981613f0c565b82525050565b60006139ea8261399e565b9150819050919050565b6000602082019050613a0960008301846137b3565b92915050565b6000608082019050613a2460008301876137b3565b613a3160208301866137b3565b613a3e60408301856137b3565b613a4b60608301846137b3565b95945050505050565b6000604082019050613a6960008301856137b3565b613a7660208301846139c1565b9392505050565b600060c082019050613a9260008301896137b3565b613a9f60208301886139c1565b613aac604083018761383e565b613ab9606083018661383e565b613ac660808301856137b3565b613ad360a08301846139c1565b979650505050505050565b6000602082019050613af36000830184613820565b92915050565b6000602082019050613b0e600083018461382f565b92915050565b60006020820190508181036000830152613b2e818461384d565b905092915050565b60006020820190508181036000830152613b4f81613886565b9050919050565b60006020820190508181036000830152613b6f816138a9565b9050919050565b60006020820190508181036000830152613b8f816138cc565b9050919050565b60006020820190508181036000830152613baf816138ef565b9050919050565b60006020820190508181036000830152613bcf81613912565b9050919050565b60006020820190508181036000830152613bef81613935565b9050919050565b60006020820190508181036000830152613c0f81613958565b9050919050565b60006020820190508181036000830152613c2f8161397b565b9050919050565b6000602082019050613c4b60008301846139c1565b92915050565b6000604082019050613c6660008301856139c1565b613c736020830184613820565b9392505050565b600060a082019050613c8f60008301886139c1565b613c9c602083018761383e565b8181036040830152613cae81866137c2565b9050613cbd60608301856137b3565b613cca60808301846139c1565b9695505050505050565b6000604082019050613ce960008301856139c1565b613cf660208301846139c1565b9392505050565b6000602082019050613d1260008301846139d0565b92915050565b6000606082019050613d2d60008301866139d0565b613d3a60208301856139d0565b613d4760408301846139d0565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613dba82613f02565b9150613dc583613f02565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dfa57613df9613f82565b5b828201905092915050565b6000613e1082613f02565b9150613e1b83613f02565b925082613e2b57613e2a613fb1565b5b828204905092915050565b6000613e4182613f02565b9150613e4c83613f02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8557613e84613f82565b5b828202905092915050565b6000613e9b82613f02565b9150613ea683613f02565b925082821015613eb957613eb8613f82565b5b828203905092915050565b6000613ecf82613ee2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613f2482613f2b565b9050919050565b6000613f3682613ee2565b9050919050565b6000613f4882613f02565b9050919050565b60005b83811015613f6d578082015181840152602081019050613f52565b83811115613f7c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f466565732063616e206e6f74206265206d6f7265207468616e20353025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b6141b781613ec4565b81146141c257600080fd5b50565b6141ce81613ed6565b81146141d957600080fd5b50565b6141e581613f02565b81146141f057600080fd5b5056fea2646970667358221220ed8c61c3793b5110a025489730951b62d4b05ce7df77364505680ebf0089d4f064736f6c63430008020033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806377b54bad11610118578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461078c578063df20fd49146107c9578063f2fde38b146107f2578063f42938901461081b578063f887ea40146108325761021a565b8063a9059cbb146106be578063b2bdfa7b146106fb578063c0cbdea414610726578063dd62ed3e1461074f5761021a565b8063893d20e8116100e7578063893d20e8146105fb5780638da5cb5b1461062657806395d89b4114610651578063a70419d21461067c578063a8aa1b31146106935761021a565b806377b54bad1461053f57806378109e541461057c5780637d1db4a5146105a757806382528791146105d25761021a565b806330c9a6a01161019b5780635d83e1d51161016a5780635d83e1d5146104805780636ddd1713146104a957806370a08231146104d4578063715018a614610511578063751039fc146105285761021a565b806330c9a6a0146103b0578063313ce567146103ed5780635526566914610418578063571ac8b0146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631df4ccfc1461030857806323b872dd14610333578063282c874914610370578063293230b8146103995761021a565b80630445b6671461021f57806306fdde031461024a57806308fd3d0514610275578063095ea7b3146102a05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461085d565b6040516102419190613c36565b60405180910390f35b34801561025657600080fd5b5061025f610863565b60405161026c9190613b14565b60405180910390f35b34801561028157600080fd5b5061028a6108a0565b6040516102979190613ade565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c29190613536565b6108b3565b6040516102d49190613ade565b60405180910390f35b3480156102e957600080fd5b506102f26109a5565b6040516102ff9190613c36565b60405180910390f35b34801561031457600080fd5b5061031d6109af565b60405161032a9190613c36565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906134e7565b6109b5565b6040516103679190613ade565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613703565b610bb5565b005b3480156103a557600080fd5b506103ae610d25565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906135d7565b610df1565b6040516103e49190613c36565b60405180910390f35b3480156103f957600080fd5b50610402610e63565b60405161040f9190613cfd565b60405180910390f35b34801561042457600080fd5b5061042d610e6c565b60405161043a9190613c36565b60405180910390f35b34801561044f57600080fd5b5061046a6004803603810190610465919061340b565b610ead565b6040516104779190613ade565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a291906135d7565b610ee0565b005b3480156104b557600080fd5b506104be610fe0565b6040516104cb9190613ade565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f6919061340b565b610ff3565b6040516105089190613c36565b60405180910390f35b34801561051d57600080fd5b5061052661103c565b005b34801561053457600080fd5b5061053d61118f565b005b34801561054b57600080fd5b5061056660048036038101906105619190613536565b611238565b6040516105739190613ade565b60405180910390f35b34801561058857600080fd5b506105916113be565b60405161059e9190613c36565b60405180910390f35b3480156105b357600080fd5b506105bc6113c4565b6040516105c99190613c36565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190613470565b6113ca565b005b34801561060757600080fd5b50610610611670565b60405161061d91906139f4565b60405180910390f35b34801561063257600080fd5b5061063b61167f565b60405161064891906139f4565b60405180910390f35b34801561065d57600080fd5b506106666116a8565b6040516106739190613b14565b60405180910390f35b34801561068857600080fd5b506106916116e5565b005b34801561069f57600080fd5b506106a8611794565b6040516106b591906139f4565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190613536565b6117ba565b6040516106f29190613ade565b60405180910390f35b34801561070757600080fd5b506107106117cf565b60405161071d91906139f4565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190613665565b6117f3565b005b34801561075b57600080fd5b5061077660048036038101906107719190613434565b6118a2565b6040516107839190613c36565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190613629565b611929565b6040516107c09190613ade565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb919061359b565b61193e565b005b3480156107fe57600080fd5b506108196004803603810190610814919061340b565b611a42565b005b34801561082757600080fd5b50610830611c04565b005b34801561083e57600080fd5b50610847611c6f565b6040516108549190613af9565b60405180910390f35b601e5481565b60606040518060400160405280600681526020017f5357414d50590000000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109939190613c36565b60405180910390a36001905092915050565b6000600354905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba157610b20826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bac848484611dbe565b90509392505050565b610bbd612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613bf6565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610cb682610ca885610c9a88610c8c8b8d61241e90919063ffffffff16565b61241e90919063ffffffff16565b61241e90919063ffffffff16565b61241e90919063ffffffff16565b600f81905550806010819055506002601054610cd29190613e05565b600f5410610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613bd6565b60405180910390fd5b610d1d61247c565b505050505050565b610d2d612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613bf6565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506101f4601281905550610bb86011819055506064601381905550565b6000610e5c610dfe610e6c565b610e4e610e3f6002610e31601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ff3565b611c9590919063ffffffff16565b85611c9590919063ffffffff16565b611d1090919063ffffffff16565b9050919050565b60006012905090565b6000610ea8610e7b6000610ff3565b610e9a610e8961dead610ff3565b60035461253490919063ffffffff16565b61253490919063ffffffff16565b905090565b6000610ed9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b3565b9050919050565b610ee8612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613bf6565b60405180910390fd5b6001811015610f8357600080fd5b6103e881600354610f949190613e36565b610f9e9190613e05565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610fd59190613c36565b60405180910390a150565b601d60159054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611044612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611197612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90613bf6565b60405180910390fd5b600354600481905550600354600581905550565b6000808214156112ce578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161127b91906139f4565b60206040518083038186803b15801561129357600080fd5b505afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613600565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112ff929190613a54565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611364929190613a54565b602060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b69190613572565b905092915050565b60055481565b60045481565b6113d2612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690613bf6565b60405180910390fd5b84601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516116619493929190613a0f565b60405180910390a15050505050565b600061167a61167f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5357414d50590000000000000000000000000000000000000000000000000000815250905090565b6116ed612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613bf6565b60405180910390fd5b606460128190555060646011819055506064601381905550565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c7338484611dbe565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117fb612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f90613bf6565b60405180910390fd5b816011819055508260128190555080601381905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261193583610df1565b11905092915050565b611946612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca90613bf6565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611a36929190613c51565b60405180910390a15050565b611a4a612416565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90613bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613b56565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c6c573d6000803e3d6000fd5b50565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611ca85760009050611d0a565b60008284611cb69190613e36565b9050828482611cc59190613e05565b14611d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfc90613bb6565b60405180910390fd5b809150505b92915050565b6000611d5283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061257e565b905092915050565b6000838311158290611da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d999190613b14565b60405180910390fd5b5060008385611db19190613e90565b9050809150509392505050565b6000601f60009054906101000a900460ff1615611de757611de08484846125e1565b905061240f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e8b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee057601d60149054906101000a900460ff16611edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed690613b96565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ffa5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120545750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120ae5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121045750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216857600061211484610ff3565b905060055483826121259190613daf565b1115612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d90613c16565b60405180910390fd5b505b61217284836127b4565b61217a612851565b1561218857612187612928565b5b612211826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f75750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61230b57612306858486612fd0565b61230d565b825b905061236181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124019190613c36565b60405180910390a360019150505b9392505050565b600033905090565b600080828461242d9190613daf565b905083811015612472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246990613b76565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124c760646124b9601254600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b6124f160646124e3601154600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b61251b606461250d601354600f54611c9590919063ffffffff16565b611d1090919063ffffffff16565b60405161252a93929190613d18565b60405180910390a1565b600061257683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5a565b905092915050565b600080831182906125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc9190613b14565b60405180910390fd5b50600083856125d49190613e05565b9050809150509392505050565b600061266c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127a19190613c36565b60405180910390a3600190509392505050565b6004548111158061280e5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61284d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284490613b36565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128be5750601f60009054906101000a900460ff16155b80156128d65750601d60159054906101000a900460ff165b80156129235750601e54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60006101000a81548160ff0219169083151502179055506000612953601954601a54611929565b61295f57600a54612962565b60005b905060006129a26002612994600f5461298686601e54611c9590919063ffffffff16565b611d1090919063ffffffff16565b611d1090919063ffffffff16565b905060006129bb82601e5461253490919063ffffffff16565b90506000600267ffffffffffffffff811115612a00577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a2e5781602001602082028036833780820191505090505b5090503081600081518110612a6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ba6959493929190613c7a565b600060405180830381600087803b158015612bc057600080fd5b505af1158015612bd4573d6000803e3d6000fd5b505050506000612bed824761253490919063ffffffff16565b90506000612c19612c08600289611d1090919063ffffffff16565b600f5461253490919063ffffffff16565b90506000612c556002612c4784612c398c88611c9590919063ffffffff16565b611d1090919063ffffffff16565b611d1090919063ffffffff16565b90506000612c8083612c72600b5487611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000612cab84612c9d600d5488611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000612cd685612cc8600c5489611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612d20906139df565b60006040518083038185875af1925050503d8060008114612d5d576040519150601f19603f3d011682016040523d82523d6000602084013e612d62565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612dac906139df565b60006040518083038185875af1925050503d8060008114612de9576040519150601f19603f3d011682016040523d82523d6000602084013e612dee565b606091505b505080915050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e3a906139df565b60006040518083038185875af1925050503d8060008114612e77576040519150601f19603f3d011682016040523d82523d6000602084013e612e7c565b606091505b5050809150506000905060008b1115612fa757601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f1896959493929190613a7d565b6060604051808303818588803b158015612f3157600080fd5b505af1158015612f45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f6a91906136b4565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f9e929190613cd4565b60405180910390a15b5050505050505050505050506000601f60006101000a81548160ff021916908315150217905550565b6000806013549050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613038576011549050613095565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156130945760125490505b5b60006130de60646010546130a99190613e36565b6130d0846130c2600f548a611c9590919063ffffffff16565b611c9590919063ffffffff16565b611d1090919063ffffffff16565b9050600061310b600f546130fd600e5485611c9590919063ffffffff16565b611d1090919063ffffffff16565b90506000613122828461253490919063ffffffff16565b905061317681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322d8260066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241e90919063ffffffff16565b60066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132ef9190613c36565b60405180910390a36000821115613382576133158260035461253490919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133799190613c36565b60405180910390a35b613395838861253490919063ffffffff16565b9450505050509392505050565b6000813590506133b1816141ae565b92915050565b6000813590506133c6816141c5565b92915050565b6000815190506133db816141c5565b92915050565b6000813590506133f0816141dc565b92915050565b600081519050613405816141dc565b92915050565b60006020828403121561341d57600080fd5b600061342b848285016133a2565b91505092915050565b6000806040838503121561344757600080fd5b6000613455858286016133a2565b9250506020613466858286016133a2565b9150509250929050565b600080600080600060a0868803121561348857600080fd5b6000613496888289016133a2565b95505060206134a7888289016133a2565b94505060406134b8888289016133a2565b93505060606134c9888289016133a2565b92505060806134da888289016133a2565b9150509295509295909350565b6000806000606084860312156134fc57600080fd5b600061350a868287016133a2565b935050602061351b868287016133a2565b925050604061352c868287016133e1565b9150509250925092565b6000806040838503121561354957600080fd5b6000613557858286016133a2565b9250506020613568858286016133e1565b9150509250929050565b60006020828403121561358457600080fd5b6000613592848285016133cc565b91505092915050565b600080604083850312156135ae57600080fd5b60006135bc858286016133b7565b92505060206135cd858286016133e1565b9150509250929050565b6000602082840312156135e957600080fd5b60006135f7848285016133e1565b91505092915050565b60006020828403121561361257600080fd5b6000613620848285016133f6565b91505092915050565b6000806040838503121561363c57600080fd5b600061364a858286016133e1565b925050602061365b858286016133e1565b9150509250929050565b60008060006060848603121561367a57600080fd5b6000613688868287016133e1565b9350506020613699868287016133e1565b92505060406136aa868287016133e1565b9150509250925092565b6000806000606084860312156136c957600080fd5b60006136d7868287016133f6565b93505060206136e8868287016133f6565b92505060406136f9868287016133f6565b9150509250925092565b60008060008060008060c0878903121561371c57600080fd5b600061372a89828a016133e1565b965050602061373b89828a016133e1565b955050604061374c89828a016133e1565b945050606061375d89828a016133e1565b935050608061376e89828a016133e1565b92505060a061377f89828a016133e1565b9150509295509295509295565b600061379883836137a4565b60208301905092915050565b6137ad81613ec4565b82525050565b6137bc81613ec4565b82525050565b60006137cd82613d5f565b6137d78185613d82565b93506137e283613d4f565b8060005b838110156138135781516137fa888261378c565b975061380583613d75565b9250506001810190506137e6565b5085935050505092915050565b61382981613ed6565b82525050565b61383881613f19565b82525050565b61384781613f3d565b82525050565b600061385882613d6a565b6138628185613d9e565b9350613872818560208601613f4f565b61387b81613fe0565b840191505092915050565b6000613893601183613d9e565b915061389e82613ff1565b602082019050919050565b60006138b6602683613d9e565b91506138c18261401a565b604082019050919050565b60006138d9601b83613d9e565b91506138e482614069565b602082019050919050565b60006138fc601483613d9e565b915061390782614092565b602082019050919050565b600061391f602183613d9e565b915061392a826140bb565b604082019050919050565b6000613942601d83613d9e565b915061394d8261410a565b602082019050919050565b6000613965602083613d9e565b915061397082614133565b602082019050919050565b6000613988603e83613d9e565b91506139938261415c565b604082019050919050565b60006139ab600083613d93565b91506139b6826141ab565b600082019050919050565b6139ca81613f02565b82525050565b6139d981613f0c565b82525050565b60006139ea8261399e565b9150819050919050565b6000602082019050613a0960008301846137b3565b92915050565b6000608082019050613a2460008301876137b3565b613a3160208301866137b3565b613a3e60408301856137b3565b613a4b60608301846137b3565b95945050505050565b6000604082019050613a6960008301856137b3565b613a7660208301846139c1565b9392505050565b600060c082019050613a9260008301896137b3565b613a9f60208301886139c1565b613aac604083018761383e565b613ab9606083018661383e565b613ac660808301856137b3565b613ad360a08301846139c1565b979650505050505050565b6000602082019050613af36000830184613820565b92915050565b6000602082019050613b0e600083018461382f565b92915050565b60006020820190508181036000830152613b2e818461384d565b905092915050565b60006020820190508181036000830152613b4f81613886565b9050919050565b60006020820190508181036000830152613b6f816138a9565b9050919050565b60006020820190508181036000830152613b8f816138cc565b9050919050565b60006020820190508181036000830152613baf816138ef565b9050919050565b60006020820190508181036000830152613bcf81613912565b9050919050565b60006020820190508181036000830152613bef81613935565b9050919050565b60006020820190508181036000830152613c0f81613958565b9050919050565b60006020820190508181036000830152613c2f8161397b565b9050919050565b6000602082019050613c4b60008301846139c1565b92915050565b6000604082019050613c6660008301856139c1565b613c736020830184613820565b9392505050565b600060a082019050613c8f60008301886139c1565b613c9c602083018761383e565b8181036040830152613cae81866137c2565b9050613cbd60608301856137b3565b613cca60808301846139c1565b9695505050505050565b6000604082019050613ce960008301856139c1565b613cf660208301846139c1565b9392505050565b6000602082019050613d1260008301846139d0565b92915050565b6000606082019050613d2d60008301866139d0565b613d3a60208301856139d0565b613d4760408301846139d0565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613dba82613f02565b9150613dc583613f02565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dfa57613df9613f82565b5b828201905092915050565b6000613e1082613f02565b9150613e1b83613f02565b925082613e2b57613e2a613fb1565b5b828204905092915050565b6000613e4182613f02565b9150613e4c83613f02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8557613e84613f82565b5b828202905092915050565b6000613e9b82613f02565b9150613ea683613f02565b925082821015613eb957613eb8613f82565b5b828203905092915050565b6000613ecf82613ee2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613f2482613f2b565b9050919050565b6000613f3682613ee2565b9050919050565b6000613f4882613f02565b9050919050565b60005b83811015613f6d578082015181840152602081019050613f52565b83811115613f7c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f466565732063616e206e6f74206265206d6f7265207468616e20353025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b6141b781613ec4565b81146141c257600080fd5b50565b6141ce81613ed6565b81146141d957600080fd5b50565b6141e581613f02565b81146141f057600080fd5b5056fea2646970667358221220ed8c61c3793b5110a025489730951b62d4b05ce7df77364505680ebf0089d4f064736f6c63430008020033

Deployed Bytecode Sourcemap

5102:13836:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7428:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8849:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7345:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9271:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8579:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6713:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9789:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17117:591;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14429:305;;;;;;;;;;;;;:::i;:::-;;18638:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8673:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18799:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9495:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10171:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7391:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9019:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2016:148;;;;;;;;;;;;;:::i;:::-;;10428:139;;;;;;;;;;;;;:::i;:::-;;13810:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6216:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6151:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17721:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8935:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1802:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8759:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14744:227;;;;;;;;;;;;;:::i;:::-;;7313:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9625:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1422:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14156:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9130:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18495:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18276:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2172:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13671:132;;;;;;;;;;;;;:::i;:::-;;7243:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7428:54;;;;:::o;8849:80::-;8897:13;8921:5;;;;;;;;;;;;;;;;;8914:12;;8849:80;:::o;7345:31::-;;;;;;;;;;;;;:::o;9271:216::-;9346:4;9398:6;9363:11;:23;9375:10;9363:23;;;;;;;;;;;;;;;:32;9387:7;9363:32;;;;;;;;;;;;;;;:41;;;;9441:7;9420:37;;9429:10;9420:37;;;9450:6;9420:37;;;;;;:::i;:::-;;;;;;;;9475:4;9468:11;;9271:216;;;;:::o;8579:88::-;8634:7;8652:12;;8645:19;;8579:88;:::o;6713:93::-;;;;:::o;9789:370::-;9889:4;9944:17;9909:11;:19;9921:6;9909:19;;;;;;;;;;;;;;;:31;9929:10;9909:31;;;;;;;;;;;;;;;;:52;9906:186;;10011:69;10047:6;10011:69;;;;;;;;;;;;;;;;;:11;:19;10023:6;10011:19;;;;;;;;;;;;;;;:31;10031:10;10011:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9977:11;:19;9989:6;9977:19;;;;;;;;;;;;;;;:31;9997:10;9977:31;;;;;;;;;;;;;;;:103;;;;9906:186;10111:40;10125:6;10133:9;10144:6;10111:13;:40::i;:::-;10104:47;;9789:370;;;;;:::o;17117:591::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17312:13:::1;17297:12;:28;;;;17349:11;17336:10;:24;;;;17386:13;17371:12;:28;;;;17419:7;17410:6;:16;;;;17447:8;17437:7;:18;;;;17477:76;17544:8;17477:62;17531:7;17477:49;17512:13;17477:30;17495:11;17477:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;17466:8;:87;;;;17581:15;17564:14;:32;;;;17643:1;17626:14;;:18;;;;:::i;:::-;17615:8;;:29;17607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17690:10;:8;:10::i;:::-;17117:591:::0;;;;;;:::o;14429:305::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14495:4:::1;14481:11;;:18;;;;;;;;;;;;;;;;;;14523:3;14510:10;:16;;;;14604:4;14590:11;:18;;;;14691:3;14673:15;:21;;;;14429:305::o:0;18638:149::-;18698:7;18725:54;18766:12;:10;:12::i;:::-;18725:36;18738:22;18758:1;18738:15;18748:4;;;;;;;;;;;18738:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18725:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;18718:61;;18638:149;;;:::o;8673:80::-;8725:5;5458:2;8734:16;;8673:80;:::o;18799:132::-;18842:7;18869:54;18907:15;5294:42;18907:9;:15::i;:::-;18869:33;18886:15;5221:42;18886:9;:15::i;:::-;18869:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18862:61;;18799:132;:::o;9495:122::-;9550:4;9574:35;9582:7;9591:17;9574:7;:35::i;:::-;9567:42;;9495:122;;;:::o;10171:247::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10275:1:::1;10257:14;:19;;10249:28;;;::::0;::::1;;10342:4;10323:14;10308:12;;:29;;;;:::i;:::-;10307:39;;;;:::i;:::-;10289:15;:57;;;;10362:30;10376:15;;10362:30;;;;;;:::i;:::-;;;;;;;;10171:247:::0;:::o;7391:30::-;;;;;;;;;;;;;:::o;9019:105::-;9085:7;9103:9;:18;9113:7;9103:18;;;;;;;;;;;;;;;;9096:25;;9019:105;;;:::o;2016:148::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2123:1:::1;2086:40;;2107:6;::::0;::::1;;;;;;;;2086:40;;;;;;;;;;;;2154:1;2137:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2016:148::o:0;10428:139::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10502:12:::1;;10487;:27;;;;10547:12;;10529:15;:30;;;;10428:139::o:0;13810:338::-;13891:12;13934:1;13924:6;:11;13921:95;;;13966:12;13960:29;;;13998:4;13960:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13951:53;;13921:95;14031:32;14042:12;14056:6;14031:32;;;;;;;:::i;:::-;;;;;;;;14087:12;14081:28;;;14110:21;;;;;;;;;;;14133:6;14081:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14074:66;;13810:338;;;;:::o;6216:61::-;;;;:::o;6151:58::-;;;;:::o;17721:547::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17938:22:::1;17914:21;;:46;;;;;;;;;;;;;;;;;;17994:21;17971:20;;:44;;;;;;;;;;;;;;;;;;18043:15;18026:14;;:32;;;;;;;;;;;;;;;;;;18087:16;18069:15;;:34;;;;;;;;;;;;;;;;;;18135:19;18114:18;;:40;;;;;;;;;;;;;;;;;;18172:88;18186:20;;;;;;;;;;;18208:18;;;;;;;;;;;18228:15;;;;;;;;;;;18245:14;;;;;;;;;;;18172:88;;;;;;;;;:::i;:::-;;;;;;;;17721:547:::0;;;;;:::o;8935:78::-;8987:7;9004;:5;:7::i;:::-;8997:14;;8935:78;:::o;1802:79::-;1840:7;1867:6;;;;;;;;;;;1860:13;;1802:79;:::o;8759:84::-;8809:13;8833:7;;;;;;;;;;;;;;;;;8826:14;;8759:84;:::o;14744:227::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14815:3:::1;14802:10;:16;;;;14896:3;14882:11;:17;;;;14928:3;14910:15;:21;;;;14744:227::o:0;7313:19::-;;;;;;;;;;;;;:::o;9625:156::-;9705:4;9729:44;9743:10;9755:9;9766:6;9729:13;:44::i;:::-;9722:51;;9625:156;;;;:::o;1422:21::-;;;;;;;;;;;;:::o;14156:257::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14294:14:::1;14280:11;:28;;;;14332:13;14319:10;:26;;;;14374:15;14356;:33;;;;14156:257:::0;;;:::o;9130:133::-;9214:7;9232:11;:19;9244:6;9232:19;;;;;;;;;;;;;;;:28;9252:7;9232:28;;;;;;;;;;;;;;;;9225:35;;9130:133;;;;:::o;18495:135::-;18569:4;18617:5;18593:21;18605:8;18593:11;:21::i;:::-;:29;18586:36;;18495:135;;;;:::o;18276:211::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18381:8:::1;18367:11;;:22;;;;;;;;;;;;;;;;;;18416:7;18400:13;:23;;;;18439:40;18452:13;;18467:11;;;;;;;;;;;18439:40;;;;;;;:::i;:::-;;;;;;;;18276:211:::0;;:::o;2172:244::-;1939:12;:10;:12::i;:::-;1929:22;;:6;;;;;;;;;;:22;;;1921:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2281:1:::1;2261:22;;:8;:22;;;;2253:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2371:8;2342:38;;2363:6;::::0;::::1;;;;;;;;2342:38;;;;;;;;;;;;2400:8;2391:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2172:244:::0;:::o;13671:132::-;13727:21;;;;;;;;;;;13719:39;;:62;13759:21;13719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13671:132::o;7243:24::-;;;;;;;;;;;;;:::o;4512:250::-;4570:7;4599:1;4594;:6;4590:47;;;4624:1;4617:8;;;;4590:47;4649:9;4665:1;4661;:5;;;;:::i;:::-;4649:17;;4694:1;4689;4685;:5;;;;:::i;:::-;:10;4677:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4753:1;4746:8;;;4512:250;;;;;:::o;4768:132::-;4826:7;4853:39;4857:1;4860;4853:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4846:46;;4768:132;;;;:::o;4314:192::-;4400:7;4433:1;4428;:6;;4436:12;4420:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4460:9;4476:1;4472;:5;;;;:::i;:::-;4460:17;;4497:1;4490:8;;;4314:192;;;;;:::o;10583:1238::-;10675:4;10695:6;;;;;;;;;;;10692:63;;;10711:41;10726:6;10734:9;10745:6;10711:14;:41::i;:::-;10704:48;;;;10692:63;10771:14;:22;10786:6;10771:22;;;;;;;;;;;;;;;;;;;;;;;;;10770:23;:53;;;;;10798:14;:25;10813:9;10798:25;;;;;;;;;;;;;;;;;;;;;;;;;10797:26;10770:53;10767:139;;;10847:11;;;;;;;;;;;10839:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10767:139;10948:14;:22;10963:6;10948:22;;;;;;;;;;;;;;;;;;;;;;;;;10947:23;:53;;;;;10995:4;10974:26;;:9;:26;;;;10947:53;:84;;;;;5221:42;11005:26;;:9;:26;;;;10947:84;:105;;;;;11048:4;;;;;;;;;;;11035:17;;:9;:17;;;;10947:105;:137;;;;;11069:15;;;;;;;;;;;11056:28;;:9;:28;;;;10947:137;:174;;;;;11101:20;;;;;;;;;;;11088:33;;:9;:33;;;;10947:174;:207;;;;;11126:17;:28;11144:9;11126:28;;;;;;;;;;;;;;;;;;;;;;;;;11125:29;10947:207;10943:399;;;11170:18;11191:20;11201:9;11191;:20::i;:::-;11170:41;;11259:15;;11248:6;11235:10;:19;;;;:::i;:::-;11234:40;;11226:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10943:399;;11354:28;11367:6;11375;11354:12;:28::i;:::-;11400:16;:14;:16::i;:::-;11397:35;;;11419:10;:8;:10::i;:::-;11397:35;11462:53;11484:6;11462:53;;;;;;;;;;;;;;;;;:9;:17;11472:6;11462:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11442:9;:17;11452:6;11442:17;;;;;;;;;;;;;;;:73;;;;11528:22;11554:16;:24;11571:6;11554:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11582:16;:27;11599:9;11582:27;;;;;;;;;;;;;;;;;;;;;;;;;11554:55;11553:103;;11622:34;11630:6;11638;11646:9;11622:7;:34::i;:::-;11553:103;;;11613:6;11553:103;11528:128;;11690:40;11715:14;11690:9;:20;11700:9;11690:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11667:9;:20;11677:9;11667:20;;;;;;;;;;;;;;;:63;;;;11765:9;11748:43;;11757:6;11748:43;;;11776:14;11748:43;;;;;;:::i;:::-;;;;;;;;11809:4;11802:11;;;10583:1238;;;;;;:::o;1143:115::-;1196:15;1239:10;1224:26;;1143:115;:::o;3985:181::-;4043:7;4063:9;4079:1;4075;:5;;;;:::i;:::-;4063:17;;4104:1;4099;:6;;4091:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4157:1;4150:8;;;3985:181;;;;:::o;16864:241::-;16917:180;16932:33;16961:3;16932:24;16945:10;;16932:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;16987:34;17017:3;16987:25;17000:11;;16987:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;17043:38;17077:3;17043:29;17056:15;;17043:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;16917:180;;;;;;;;:::i;:::-;;;;;;;;16864:241::o;4172:136::-;4230:7;4257:43;4261:1;4264;4257:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4250:50;;4172:136;;;;:::o;4906:189::-;4992:7;5024:1;5020;:5;5027:12;5012:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5051:9;5067:1;5063;:5;;;;:::i;:::-;5051:17;;5086:1;5079:8;;;4906:189;;;;;:::o;11830:330::-;11923:4;11960:53;11982:6;11960:53;;;;;;;;;;;;;;;;;:9;:17;11970:6;11960:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11940:9;:17;11950:6;11940:17;;;;;;;;;;;;;;;:73;;;;12047:32;12072:6;12047:9;:20;12057:9;12047:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12024:9;:20;12034:9;12024:20;;;;;;;;;;;;;;;:55;;;;12112:9;12095:35;;12104:6;12095:35;;;12123:6;12095:35;;;;;;:::i;:::-;;;;;;;;12148:4;12141:11;;11830:330;;;;;:::o;12168:168::-;12265:12;;12255:6;:22;;:51;;;;12281:17;:25;12299:6;12281:25;;;;;;;;;;;;;;;;;;;;;;;;;12255:51;12247:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12168:168;;:::o;13461:197::-;13510:4;13548;;;;;;;;;;;13534:18;;:10;:18;;;;:38;;;;;13566:6;;;;;;;;;;;13565:7;13534:38;:62;;;;;13585:11;;;;;;;;;;;13534:62;:116;;;;;13637:13;;13609:9;:24;13627:4;13609:24;;;;;;;;;;;;;;;;:41;;13534:116;13527:123;;13461:197;:::o;14994:1854::-;7539:4;7530:6;;:13;;;;;;;;;;;;;;;;;;15043:27:::1;15073:41;15084:8;;15094:19;;15073:10;:41::i;:::-;:60;;15121:12;;15073:60;;;15117:1;15073:60;15043:90;;15144:23;15170:59;15227:1;15170:52;15213:8;;15170:38;15188:19;15170:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15144:85;;15240:20;15263:34;15281:15;15263:13;;:17;;:34;;;;:::i;:::-;15240:57;;15310:21;15348:1;15334:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15310:40;;15379:4;15361;15366:1;15361:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15405:4;;;;;;;;;;;15395;15400:1;15395:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;15422:21;15446;15422:45;;15480:6;;;;;;;;;;;:57;;;15552:12;15579:1;15595:4;15622;15642:15;15480:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15681:17;15701:40;15727:13;15701:21;:25;;:40;;;;:::i;:::-;15681:60;;15754:19;15776:40;15789:26;15813:1;15789:19;:23;;:26;;;;:::i;:::-;15776:8;;:12;;:40;;;;:::i;:::-;15754:62;;15837:26;15866:58;15922:1;15866:51;15905:11;15866:34;15880:19;15866:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15837:87;;15935:26;15964:44;15996:11;15964:27;15978:12;;15964:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15935:73;;16019:24;16046:42;16076:11;16046:25;16060:10;;16046:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16019:69;;16099:20;16122:38;16148:11;16122:21;16136:6;;16122:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16099:61;;16174:15;16202:20;;;;;;;;;;;16194:34;;16236:18;16194:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16173:86;;;16294:14;;;;;;;;;;;16286:28;;16322:12;16286:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16270:69;;;;;16374:18;;;;;;;;;;;16366:32;;16406:16;16366:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16350:77;;;;;16461:5;16448:18;;16500:1;16482:15;:19;16479:362;;;16517:6;;;;;;;;;;;:22;;;16547:18;16593:4;16617:15;16651:1;16671::::0;16691:21:::1;;;;;;;;;;;16731:15;16517:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16781:48;16793:18;16813:15;16781:48;;;;;;;:::i;:::-;;;;;;;;16479:362;7545:1;;;;;;;;;;;;7557:5:::0;7548:6;;:14;;;;;;;;;;;;;;;;;;14994:1854::o;12471:982::-;12557:7;12587:15;12605;;12587:33;;12647:4;;;;;;;;;;;12634:17;;:9;:17;;;12631:142;;;12678:11;;12668:21;;12631:142;;;12720:4;;;;;;;;;;;12710:14;;:6;:14;;;12707:66;;;12751:10;;12741:20;;12707:66;12631:142;12785:17;12805:59;12860:3;12843:14;;:20;;;;:::i;:::-;12805:33;12830:7;12805:20;12816:8;;12805:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:59;;;;:::i;:::-;12785:79;;12875:18;12896:36;12923:8;;12896:22;12910:7;;12896:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12875:57;;12943:22;12968:25;12982:10;12968:9;:13;;:25;;;;:::i;:::-;12943:50;;13031:44;13060:14;13031:9;:24;13049:4;13031:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13004:9;:24;13022:4;13004:24;;;;;;;;;;;;;;;:71;;;;13115:42;13146:10;13115:9;:26;13125:15;;;;;;;;;;;13115:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13086:9;:26;13096:15;;;;;;;;;;;13086:26;;;;;;;;;;;;;;;:71;;;;13198:4;13173:47;;13182:6;13173:47;;;13205:14;13173:47;;;;;;:::i;:::-;;;;;;;;13267:1;13254:10;:14;13251:154;;;13299:28;13316:10;13299:12;;:16;;:28;;;;:::i;:::-;13284:12;:43;;;;5294:42;13347:34;;13356:6;13347:34;;;13370:10;13347:34;;;;;;:::i;:::-;;;;;;;;13251:154;13424:21;13435:9;13424:6;:10;;:21;;;;:::i;:::-;13417:28;;;;;;12471:982;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:407::-;;;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:53;1250:7;1241:6;1230:9;1226:22;1205:53;:::i;:::-;1195:63;;1151:117;1307:2;1333:53;1378:7;1369:6;1358:9;1354:22;1333:53;:::i;:::-;1323:63;;1278:118;1079:324;;;;;:::o;1409:844::-;;;;;;1585:3;1573:9;1564:7;1560:23;1556:33;1553:2;;;1602:1;1599;1592:12;1553:2;1645:1;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1616:117;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:2;2054:53;2099:7;2090:6;2079:9;2075:22;2054:53;:::i;:::-;2044:63;;1999:118;2156:3;2183:53;2228:7;2219:6;2208:9;2204:22;2183:53;:::i;:::-;2173:63;;2127:119;1543:710;;;;;;;;:::o;2259:552::-;;;;2401:2;2389:9;2380:7;2376:23;2372:32;2369:2;;;2417:1;2414;2407:12;2369:2;2460:1;2485:53;2530:7;2521:6;2510:9;2506:22;2485:53;:::i;:::-;2475:63;;2431:117;2587:2;2613:53;2658:7;2649:6;2638:9;2634:22;2613:53;:::i;:::-;2603:63;;2558:118;2715:2;2741:53;2786:7;2777:6;2766:9;2762:22;2741:53;:::i;:::-;2731:63;;2686:118;2359:452;;;;;:::o;2817:407::-;;;2942:2;2930:9;2921:7;2917:23;2913:32;2910:2;;;2958:1;2955;2948:12;2910:2;3001:1;3026:53;3071:7;3062:6;3051:9;3047:22;3026:53;:::i;:::-;3016:63;;2972:117;3128:2;3154:53;3199:7;3190:6;3179:9;3175:22;3154:53;:::i;:::-;3144:63;;3099:118;2900:324;;;;;:::o;3230:278::-;;3346:2;3334:9;3325:7;3321:23;3317:32;3314:2;;;3362:1;3359;3352:12;3314:2;3405:1;3430:61;3483:7;3474:6;3463:9;3459:22;3430:61;:::i;:::-;3420:71;;3376:125;3304:204;;;;:::o;3514:401::-;;;3636:2;3624:9;3615:7;3611:23;3607:32;3604:2;;;3652:1;3649;3642:12;3604:2;3695:1;3720:50;3762:7;3753:6;3742:9;3738:22;3720:50;:::i;:::-;3710:60;;3666:114;3819:2;3845:53;3890:7;3881:6;3870:9;3866:22;3845:53;:::i;:::-;3835:63;;3790:118;3594:321;;;;;:::o;3921:262::-;;4029:2;4017:9;4008:7;4004:23;4000:32;3997:2;;;4045:1;4042;4035:12;3997:2;4088:1;4113:53;4158:7;4149:6;4138:9;4134:22;4113:53;:::i;:::-;4103:63;;4059:117;3987:196;;;;:::o;4189:284::-;;4308:2;4296:9;4287:7;4283:23;4279:32;4276:2;;;4324:1;4321;4314:12;4276:2;4367:1;4392:64;4448:7;4439:6;4428:9;4424:22;4392:64;:::i;:::-;4382:74;;4338:128;4266:207;;;;:::o;4479:407::-;;;4604:2;4592:9;4583:7;4579:23;4575:32;4572:2;;;4620:1;4617;4610:12;4572:2;4663:1;4688:53;4733:7;4724:6;4713:9;4709:22;4688:53;:::i;:::-;4678:63;;4634:117;4790:2;4816:53;4861:7;4852:6;4841:9;4837:22;4816:53;:::i;:::-;4806:63;;4761:118;4562:324;;;;;:::o;4892:552::-;;;;5034:2;5022:9;5013:7;5009:23;5005:32;5002:2;;;5050:1;5047;5040:12;5002:2;5093:1;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5064:117;5220:2;5246:53;5291:7;5282:6;5271:9;5267:22;5246:53;:::i;:::-;5236:63;;5191:118;5348:2;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5319:118;4992:452;;;;;:::o;5450:596::-;;;;5603:2;5591:9;5582:7;5578:23;5574:32;5571:2;;;5619:1;5616;5609:12;5571:2;5662:1;5687:64;5743:7;5734:6;5723:9;5719:22;5687:64;:::i;:::-;5677:74;;5633:128;5800:2;5826:64;5882:7;5873:6;5862:9;5858:22;5826:64;:::i;:::-;5816:74;;5771:129;5939:2;5965:64;6021:7;6012:6;6001:9;5997:22;5965:64;:::i;:::-;5955:74;;5910:129;5561:485;;;;;:::o;6052:990::-;;;;;;;6245:3;6233:9;6224:7;6220:23;6216:33;6213:2;;;6262:1;6259;6252:12;6213:2;6305:1;6330:53;6375:7;6366:6;6355:9;6351:22;6330:53;:::i;:::-;6320:63;;6276:117;6432:2;6458:53;6503:7;6494:6;6483:9;6479:22;6458:53;:::i;:::-;6448:63;;6403:118;6560:2;6586:53;6631:7;6622:6;6611:9;6607:22;6586:53;:::i;:::-;6576:63;;6531:118;6688:2;6714:53;6759:7;6750:6;6739:9;6735:22;6714:53;:::i;:::-;6704:63;;6659:118;6816:3;6843:53;6888:7;6879:6;6868:9;6864:22;6843:53;:::i;:::-;6833:63;;6787:119;6945:3;6972:53;7017:7;7008:6;6997:9;6993:22;6972:53;:::i;:::-;6962:63;;6916:119;6203:839;;;;;;;;:::o;7048:179::-;;7138:46;7180:3;7172:6;7138:46;:::i;:::-;7216:4;7211:3;7207:14;7193:28;;7128:99;;;;:::o;7233:108::-;7310:24;7328:5;7310:24;:::i;:::-;7305:3;7298:37;7288:53;;:::o;7347:118::-;7434:24;7452:5;7434:24;:::i;:::-;7429:3;7422:37;7412:53;;:::o;7501:732::-;;7649:54;7697:5;7649:54;:::i;:::-;7719:86;7798:6;7793:3;7719:86;:::i;:::-;7712:93;;7829:56;7879:5;7829:56;:::i;:::-;7908:7;7939:1;7924:284;7949:6;7946:1;7943:13;7924:284;;;8025:6;8019:13;8052:63;8111:3;8096:13;8052:63;:::i;:::-;8045:70;;8138:60;8191:6;8138:60;:::i;:::-;8128:70;;7984:224;7971:1;7968;7964:9;7959:14;;7924:284;;;7928:14;8224:3;8217:10;;7625:608;;;;;;;:::o;8239:109::-;8320:21;8335:5;8320:21;:::i;:::-;8315:3;8308:34;8298:50;;:::o;8354:167::-;8459:55;8508:5;8459:55;:::i;:::-;8454:3;8447:68;8437:84;;:::o;8527:147::-;8622:45;8661:5;8622:45;:::i;:::-;8617:3;8610:58;8600:74;;:::o;8680:364::-;;8796:39;8829:5;8796:39;:::i;:::-;8851:71;8915:6;8910:3;8851:71;:::i;:::-;8844:78;;8931:52;8976:6;8971:3;8964:4;8957:5;8953:16;8931:52;:::i;:::-;9008:29;9030:6;9008:29;:::i;:::-;9003:3;8999:39;8992:46;;8772:272;;;;;:::o;9050:366::-;;9213:67;9277:2;9272:3;9213:67;:::i;:::-;9206:74;;9289:93;9378:3;9289:93;:::i;:::-;9407:2;9402:3;9398:12;9391:19;;9196:220;;;:::o;9422:366::-;;9585:67;9649:2;9644:3;9585:67;:::i;:::-;9578:74;;9661:93;9750:3;9661:93;:::i;:::-;9779:2;9774:3;9770:12;9763:19;;9568:220;;;:::o;9794:366::-;;9957:67;10021:2;10016:3;9957:67;:::i;:::-;9950:74;;10033:93;10122:3;10033:93;:::i;:::-;10151:2;10146:3;10142:12;10135:19;;9940:220;;;:::o;10166:366::-;;10329:67;10393:2;10388:3;10329:67;:::i;:::-;10322:74;;10405:93;10494:3;10405:93;:::i;:::-;10523:2;10518:3;10514:12;10507:19;;10312:220;;;:::o;10538:366::-;;10701:67;10765:2;10760:3;10701:67;:::i;:::-;10694:74;;10777:93;10866:3;10777:93;:::i;:::-;10895:2;10890:3;10886:12;10879:19;;10684:220;;;:::o;10910:366::-;;11073:67;11137:2;11132:3;11073:67;:::i;:::-;11066:74;;11149:93;11238:3;11149:93;:::i;:::-;11267:2;11262:3;11258:12;11251:19;;11056:220;;;:::o;11282:366::-;;11445:67;11509:2;11504:3;11445:67;:::i;:::-;11438:74;;11521:93;11610:3;11521:93;:::i;:::-;11639:2;11634:3;11630:12;11623:19;;11428:220;;;:::o;11654:366::-;;11817:67;11881:2;11876:3;11817:67;:::i;:::-;11810:74;;11893:93;11982:3;11893:93;:::i;:::-;12011:2;12006:3;12002:12;11995:19;;11800:220;;;:::o;12026:398::-;;12206:83;12287:1;12282:3;12206:83;:::i;:::-;12199:90;;12298:93;12387:3;12298:93;:::i;:::-;12416:1;12411:3;12407:11;12400:18;;12189:235;;;:::o;12430:118::-;12517:24;12535:5;12517:24;:::i;:::-;12512:3;12505:37;12495:53;;:::o;12554:112::-;12637:22;12653:5;12637:22;:::i;:::-;12632:3;12625:35;12615:51;;:::o;12672:379::-;;12878:147;13021:3;12878:147;:::i;:::-;12871:154;;13042:3;13035:10;;12860:191;;;:::o;13057:222::-;;13188:2;13177:9;13173:18;13165:26;;13201:71;13269:1;13258:9;13254:17;13245:6;13201:71;:::i;:::-;13155:124;;;;:::o;13285:553::-;;13500:3;13489:9;13485:19;13477:27;;13514:71;13582:1;13571:9;13567:17;13558:6;13514:71;:::i;:::-;13595:72;13663:2;13652:9;13648:18;13639:6;13595:72;:::i;:::-;13677;13745:2;13734:9;13730:18;13721:6;13677:72;:::i;:::-;13759;13827:2;13816:9;13812:18;13803:6;13759:72;:::i;:::-;13467:371;;;;;;;:::o;13844:332::-;;14003:2;13992:9;13988:18;13980:26;;14016:71;14084:1;14073:9;14069:17;14060:6;14016:71;:::i;:::-;14097:72;14165:2;14154:9;14150:18;14141:6;14097:72;:::i;:::-;13970:206;;;;;:::o;14182:807::-;;14469:3;14458:9;14454:19;14446:27;;14483:71;14551:1;14540:9;14536:17;14527:6;14483:71;:::i;:::-;14564:72;14632:2;14621:9;14617:18;14608:6;14564:72;:::i;:::-;14646:80;14722:2;14711:9;14707:18;14698:6;14646:80;:::i;:::-;14736;14812:2;14801:9;14797:18;14788:6;14736:80;:::i;:::-;14826:73;14894:3;14883:9;14879:19;14870:6;14826:73;:::i;:::-;14909;14977:3;14966:9;14962:19;14953:6;14909:73;:::i;:::-;14436:553;;;;;;;;;:::o;14995:210::-;;15120:2;15109:9;15105:18;15097:26;;15133:65;15195:1;15184:9;15180:17;15171:6;15133:65;:::i;:::-;15087:118;;;;:::o;15211:258::-;;15360:2;15349:9;15345:18;15337:26;;15373:89;15459:1;15448:9;15444:17;15435:6;15373:89;:::i;:::-;15327:142;;;;:::o;15475:313::-;;15626:2;15615:9;15611:18;15603:26;;15675:9;15669:4;15665:20;15661:1;15650:9;15646:17;15639:47;15703:78;15776:4;15767:6;15703:78;:::i;:::-;15695:86;;15593:195;;;;:::o;15794:419::-;;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:131;16201:4;16075:131;:::i;:::-;16067:139;;15965:248;;;:::o;16219:419::-;;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16390:248;;;:::o;16644:419::-;;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16815:248;;;:::o;17069:419::-;;17273:2;17262:9;17258:18;17250:26;;17322:9;17316:4;17312:20;17308:1;17297:9;17293:17;17286:47;17350:131;17476:4;17350:131;:::i;:::-;17342:139;;17240:248;;;:::o;17494:419::-;;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17665:248;;;:::o;17919:419::-;;18123:2;18112:9;18108:18;18100:26;;18172:9;18166:4;18162:20;18158:1;18147:9;18143:17;18136:47;18200:131;18326:4;18200:131;:::i;:::-;18192:139;;18090:248;;;:::o;18344:419::-;;18548:2;18537:9;18533:18;18525:26;;18597:9;18591:4;18587:20;18583:1;18572:9;18568:17;18561:47;18625:131;18751:4;18625:131;:::i;:::-;18617:139;;18515:248;;;:::o;18769:419::-;;18973:2;18962:9;18958:18;18950:26;;19022:9;19016:4;19012:20;19008:1;18997:9;18993:17;18986:47;19050:131;19176:4;19050:131;:::i;:::-;19042:139;;18940:248;;;:::o;19194:222::-;;19325:2;19314:9;19310:18;19302:26;;19338:71;19406:1;19395:9;19391:17;19382:6;19338:71;:::i;:::-;19292:124;;;;:::o;19422:320::-;;19575:2;19564:9;19560:18;19552:26;;19588:71;19656:1;19645:9;19641:17;19632:6;19588:71;:::i;:::-;19669:66;19731:2;19720:9;19716:18;19707:6;19669:66;:::i;:::-;19542:200;;;;;:::o;19748:831::-;;20049:3;20038:9;20034:19;20026:27;;20063:71;20131:1;20120:9;20116:17;20107:6;20063:71;:::i;:::-;20144:80;20220:2;20209:9;20205:18;20196:6;20144:80;:::i;:::-;20271:9;20265:4;20261:20;20256:2;20245:9;20241:18;20234:48;20299:108;20402:4;20393:6;20299:108;:::i;:::-;20291:116;;20417:72;20485:2;20474:9;20470:18;20461:6;20417:72;:::i;:::-;20499:73;20567:3;20556:9;20552:19;20543:6;20499:73;:::i;:::-;20016:563;;;;;;;;:::o;20585:332::-;;20744:2;20733:9;20729:18;20721:26;;20757:71;20825:1;20814:9;20810:17;20801:6;20757:71;:::i;:::-;20838:72;20906:2;20895:9;20891:18;20882:6;20838:72;:::i;:::-;20711:206;;;;;:::o;20923:214::-;;21050:2;21039:9;21035:18;21027:26;;21063:67;21127:1;21116:9;21112:17;21103:6;21063:67;:::i;:::-;21017:120;;;;:::o;21143:418::-;;21318:2;21307:9;21303:18;21295:26;;21331:67;21395:1;21384:9;21380:17;21371:6;21331:67;:::i;:::-;21408:68;21472:2;21461:9;21457:18;21448:6;21408:68;:::i;:::-;21486;21550:2;21539:9;21535:18;21526:6;21486:68;:::i;:::-;21285:276;;;;;;:::o;21567:132::-;;21657:3;21649:11;;21687:4;21682:3;21678:14;21670:22;;21639:60;;;:::o;21705:114::-;;21806:5;21800:12;21790:22;;21779:40;;;:::o;21825:99::-;;21911:5;21905:12;21895:22;;21884:40;;;:::o;21930:113::-;;22032:4;22027:3;22023:14;22015:22;;22005:38;;;:::o;22049:184::-;;22182:6;22177:3;22170:19;22222:4;22217:3;22213:14;22198:29;;22160:73;;;;:::o;22239:147::-;;22377:3;22362:18;;22352:34;;;;:::o;22392:169::-;;22510:6;22505:3;22498:19;22550:4;22545:3;22541:14;22526:29;;22488:73;;;;:::o;22567:305::-;;22626:20;22644:1;22626:20;:::i;:::-;22621:25;;22660:20;22678:1;22660:20;:::i;:::-;22655:25;;22814:1;22746:66;22742:74;22739:1;22736:81;22733:2;;;22820:18;;:::i;:::-;22733:2;22864:1;22861;22857:9;22850:16;;22611:261;;;;:::o;22878:185::-;;22935:20;22953:1;22935:20;:::i;:::-;22930:25;;22969:20;22987:1;22969:20;:::i;:::-;22964:25;;23008:1;22998:2;;23013:18;;:::i;:::-;22998:2;23055:1;23052;23048:9;23043:14;;22920:143;;;;:::o;23069:348::-;;23132:20;23150:1;23132:20;:::i;:::-;23127:25;;23166:20;23184:1;23166:20;:::i;:::-;23161:25;;23354:1;23286:66;23282:74;23279:1;23276:81;23271:1;23264:9;23257:17;23253:105;23250:2;;;23361:18;;:::i;:::-;23250:2;23409:1;23406;23402:9;23391:20;;23117:300;;;;:::o;23423:191::-;;23483:20;23501:1;23483:20;:::i;:::-;23478:25;;23517:20;23535:1;23517:20;:::i;:::-;23512:25;;23556:1;23553;23550:8;23547:2;;;23561:18;;:::i;:::-;23547:2;23606:1;23603;23599:9;23591:17;;23468:146;;;;:::o;23620:96::-;;23686:24;23704:5;23686:24;:::i;:::-;23675:35;;23665:51;;;:::o;23722:90::-;;23799:5;23792:13;23785:21;23774:32;;23764:48;;;:::o;23818:126::-;;23895:42;23888:5;23884:54;23873:65;;23863:81;;;:::o;23950:77::-;;24016:5;24005:16;;23995:32;;;:::o;24033:86::-;;24108:4;24101:5;24097:16;24086:27;;24076:43;;;:::o;24125:162::-;;24226:55;24275:5;24226:55;:::i;:::-;24213:68;;24203:84;;;:::o;24293:131::-;;24394:24;24412:5;24394:24;:::i;:::-;24381:37;;24371:53;;;:::o;24430:121::-;;24521:24;24539:5;24521:24;:::i;:::-;24508:37;;24498:53;;;:::o;24557:307::-;24625:1;24635:113;24649:6;24646:1;24643:13;24635:113;;;24734:1;24729:3;24725:11;24719:18;24715:1;24710:3;24706:11;24699:39;24671:2;24668:1;24664:10;24659:15;;24635:113;;;24766:6;24763:1;24760:13;24757:2;;;24846:1;24837:6;24832:3;24828:16;24821:27;24757:2;24606:258;;;;:::o;24870:180::-;24918:77;24915:1;24908:88;25015:4;25012:1;25005:15;25039:4;25036:1;25029:15;25056:180;25104:77;25101:1;25094:88;25201:4;25198:1;25191:15;25225:4;25222:1;25215:15;25242:102;;25334:2;25330:7;25325:2;25318:5;25314:14;25310:28;25300:38;;25290:54;;;:::o;25350:167::-;25490:19;25486:1;25478:6;25474:14;25467:43;25456:61;:::o;25523:225::-;25663:34;25659:1;25651:6;25647:14;25640:58;25732:8;25727:2;25719:6;25715:15;25708:33;25629:119;:::o;25754:177::-;25894:29;25890:1;25882:6;25878:14;25871:53;25860:71;:::o;25937:170::-;26077:22;26073:1;26065:6;26061:14;26054:46;26043:64;:::o;26113:220::-;26253:34;26249:1;26241:6;26237:14;26230:58;26322:3;26317:2;26309:6;26305:15;26298:28;26219:114;:::o;26339:179::-;26479:31;26475:1;26467:6;26463:14;26456:55;26445:73;:::o;26524:182::-;26664:34;26660:1;26652:6;26648:14;26641:58;26630:76;:::o;26712:249::-;26852:34;26848:1;26840:6;26836:14;26829:58;26921:32;26916:2;26908:6;26904:15;26897:57;26818:143;:::o;26967:114::-;27073:8;:::o;27087:122::-;27160:24;27178:5;27160:24;:::i;:::-;27153:5;27150:35;27140:2;;27199:1;27196;27189:12;27140:2;27130:79;:::o;27215:116::-;27285:21;27300:5;27285:21;:::i;:::-;27278:5;27275:32;27265:2;;27321:1;27318;27311:12;27265:2;27255:76;:::o;27337:122::-;27410:24;27428:5;27410:24;:::i;:::-;27403:5;27400:35;27390:2;;27449:1;27446;27439:12;27390:2;27380:79;:::o

Swarm Source

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