ETH Price: $2,714.01 (-9.20%)
 

Overview

Max Total Supply

1,000,000,000 OCISLY

Holders

2

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
OCISLY

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-25
*/

/**

0/0 tax like a meme coin should be. 

https://ocisly-erc.live/
https://t.me/ocislyoriginal
https://twitter.com/ocislyoriginal


*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "Ofcourse I Still Love You Original";
    string constant _symbol = "OCISLY";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**9 * 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) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private _isBlacklisted;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 6;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 4; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 0;
    uint256 buyMultiplier = 0;
    uint256 transferMultiplier = 0; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

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

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x2C17dC7717fa287137f041AE2529F5784098ce74;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = 0x2C17dC7717fa287137f041AE2529F5784098ce74;
        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 approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

       
        checkTxLimit(sender, amount); 

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).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 clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

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

    }

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

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }

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

    function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTradingOcisly(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner {
        TradingOpen = _open;
        buyMultiplier = _buyMultiplier;
        sellMultiplier = _sellMultiplier;
        transferMultiplier = _transferMultiplier;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

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

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"approveAll","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"},{"internalType":"uint256","name":"_transferMultiplier","type":"uint256"}],"name":"enableTradingOcisly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"removeMaxLimits","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000f04565b633b9aca00620000aa919062000f55565b600555620000e46064620000d0600260055462000c2560201b6200234d1790919060201c565b62000ca860201b620023c71790919060201c565b6006556200011e60646200010a600260055462000c2560201b6200234d1790919060201c565b62000ca860201b620023c71790919060201c565b6007556000600d556006600e556000600f5560046010556000601155601154600f54600d54600e5460105462000155919062000fa0565b62000161919062000fa0565b6200016d919062000fa0565b62000179919062000fa0565b60125560646013556000601455600060155560006016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff0219169083151502179055506127106064600554620001e4919062000f55565b620001f091906200100a565b6024553480156200020057600080fd5b5060006200021362000cfa60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004129190620010ac565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e69190620010ac565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000544929190620010ef565b6020604051808303816000875af115801562000564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058a9190620010ac565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732c17dc7717fa287137f041ae2529f5784098ce74601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732c17dc7717fa287137f041ae2529f5784098ce74601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c1791906200112d565b60405180910390a3620012a0565b600080830362000c39576000905062000ca2565b6000828462000c49919062000f55565b905082848262000c5a91906200100a565b1462000c9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9490620011d1565b60405180910390fd5b809150505b92915050565b600062000cf283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d0260201b60201c565b905092915050565b600033905090565b6000808311829062000d4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d4391906200127c565b60405180910390fd5b506000838562000d5d91906200100a565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000df85780860481111562000dd05762000dcf62000d6a565b5b600185161562000de05780820291505b808102905062000df08562000d99565b945062000db0565b94509492505050565b60008262000e13576001905062000ee6565b8162000e23576000905062000ee6565b816001811462000e3c576002811462000e475762000e7d565b600191505062000ee6565b60ff84111562000e5c5762000e5b62000d6a565b5b8360020a91508482111562000e765762000e7562000d6a565b5b5062000ee6565b5060208310610133831016604e8410600b841016171562000eb75782820a90508381111562000eb15762000eb062000d6a565b5b62000ee6565b62000ec6848484600162000da6565b9250905081840481111562000ee05762000edf62000d6a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f118262000eed565b915062000f1e8362000ef7565b925062000f4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e01565b905092915050565b600062000f628262000eed565b915062000f6f8362000eed565b925082820262000f7f8162000eed565b9150828204841483151762000f995762000f9862000d6a565b5b5092915050565b600062000fad8262000eed565b915062000fba8362000eed565b925082820190508082111562000fd55762000fd462000d6a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010178262000eed565b9150620010248362000eed565b92508262001037576200103662000fdb565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010748262001047565b9050919050565b620010868162001067565b81146200109257600080fd5b50565b600081519050620010a6816200107b565b92915050565b600060208284031215620010c557620010c462001042565b5b6000620010d58482850162001095565b91505092915050565b620010e98162001067565b82525050565b6000604082019050620011066000830185620010de565b620011156020830184620010de565b9392505050565b620011278162000eed565b82525050565b60006020820190506200114460008301846200111c565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011b96021836200114a565b9150620011c6826200115b565b604082019050919050565b60006020820190508181036000830152620011ec81620011aa565b9050919050565b600081519050919050565b60005b838110156200121e57808201518184015260208101905062001201565b60008484015250505050565b6000601f19601f8301169050919050565b60006200124882620011f3565b6200125481856200114a565b935062001266818560208601620011fe565b62001271816200122a565b840191505092915050565b600060208201905081810360008301526200129881846200123b565b905092915050565b614bbf80620012b06000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108cd578063d78e139d1461090a578063dd62ed3e14610933578063f2fde38b14610970578063f6a78e1714610999578063f887ea40146109b057610267565b8063b2bdfa7b14610810578063bc3371821461083b578063ccf8c03614610864578063cec10c111461088d578063d148b74c146108b657610267565b80639189247611610108578063918924761461070257806395d89b411461072b5780639acb773e146107565780639f11080e1461077f578063a8aa1b31146107a8578063a9059cbb146107d357610267565b80637d1db4a514610641578063865917111461066c578063893d20e8146106955780638a4068dd146106c05780638da5cb5b146106d757610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ac4565b6109db565b005b3480156102a157600080fd5b506102aa610a95565b6040516102b79190613b13565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b8c565b610a9b565b6040516102f49190613bc8565b60405180910390f35b34801561030957600080fd5b50610312610ace565b60405161031f9190613c73565b60405180910390f35b34801561033457600080fd5b5061033d610aee565b60405161034a9190613bc8565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613c95565b610b01565b6040516103879190613bc8565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613cd5565b610bf3565b6040516103c49190613bc8565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e5d565b610c08565b005b34801561040257600080fd5b5061040b610d32565b6040516104189190613b13565b60405180910390f35b34801561042d57600080fd5b50610436610d3c565b6040516104439190613b13565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613eb9565b610d42565b6040516104809190613bc8565b60405180910390f35b34801561049557600080fd5b5061049e610f42565b6040516104ab9190613b13565b60405180910390f35b3480156104c057600080fd5b506104c9610fc4565b6040516104d69190613f28565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f43565b610fcd565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f83565b6110bd565b005b34801561053d57600080fd5b50610546611194565b6040516105539190613bc8565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b8c565b6111a7565b6040516105909190613b13565b60405180910390f35b3480156105a557600080fd5b506105ae6111f0565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613c95565b611343565b6040516105e49190613bc8565b60405180910390f35b3480156105f957600080fd5b506106026114a6565b60405161060f9190613b13565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fb0565b6114ac565b005b34801561064d57600080fd5b5061065661168d565b6040516106639190613b13565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e919061402b565b611693565b005b3480156106a157600080fd5b506106aa61175d565b6040516106b791906140a1565b60405180910390f35b3480156106cc57600080fd5b506106d561176c565b005b3480156106e357600080fd5b506106ec61180b565b6040516106f991906140a1565b60405180910390f35b34801561070e57600080fd5b50610729600480360381019061072491906140bc565b611834565b005b34801561073757600080fd5b5061074061199c565b60405161074d9190613c73565b60405180910390f35b34801561076257600080fd5b5061077d60048036038101906107789190613f43565b6119d9565b005b34801561078b57600080fd5b506107a660048036038101906107a19190613cd5565b611ac9565b005b3480156107b457600080fd5b506107bd611b70565b6040516107ca91906140a1565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613c95565b611b96565b6040516108079190613bc8565b60405180910390f35b34801561081c57600080fd5b50610825611bab565b60405161083291906140a1565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d9190613f83565b611bcf565b005b34801561087057600080fd5b5061088b60048036038101906108869190613f43565b611ca6565b005b34801561089957600080fd5b506108b460048036038101906108af9190614149565b611ded565b005b3480156108c257600080fd5b506108cb611e9c565b005b3480156108d957600080fd5b506108f460048036038101906108ef9190613f83565b611f3b565b6040516109019190613b13565b60405180910390f35b34801561091657600080fd5b50610931600480360381019061092c9190613f83565b611fad565b005b34801561093f57600080fd5b5061095a6004803603810190610955919061419c565b612036565b6040516109679190613b13565b60405180910390f35b34801561097c57600080fd5b5061099760048036038101906109929190613b8c565b6120bd565b005b3480156109a557600080fd5b506109ae61227e565b005b3480156109bc57600080fd5b506109c5612327565b6040516109d2919061423b565b60405180910390f35b6109e3612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906142a2565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ac7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b01565b9050919050565b6060604051806060016040528060228152602001614b6860229139905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610be19190613b13565b60405180910390a36001905092915050565b600082610bff83611f3b565b11905092915050565b610c10612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c94906142a2565b60405180910390fd5b60005b8251811015610d2d5781600c6000858481518110610cc157610cc06142c2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d2590614320565b915050610ca0565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f2e57610ead826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f3984848461247d565b90509392505050565b6000610fbf610f72600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b610fb1610fa0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b600554612bd890919063ffffffff16565b612bd890919063ffffffff16565b905090565b60006009905090565b610fd5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611059906142a2565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110c5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906142a2565b60405180910390fd5b6103e86005546111629190614397565b600754101561117057600080fd5b6103e88160055461118191906143c8565b61118b9190614397565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f8612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127c906142a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661139b57600080fd5b60008203611420578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113dc91906140a1565b602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d919061441f565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161145b92919061444c565b6020604051808303816000875af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e919061448a565b905092915050565b60075481565b6114b4612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906142a2565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b61169b612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906142a2565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b600061176761180b565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611808573d6000803e3d6000fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61183c612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906142a2565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f819055508160118190555061193582611927856119198861190b8b8d612c2290919063ffffffff16565b612c2290919063ffffffff16565b612c2290919063ffffffff16565b612c2290919063ffffffff16565b6012819055508060138190555060056013546119519190614397565b60125410611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90614503565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017f4f4349534c590000000000000000000000000000000000000000000000000000815250905090565b6119e1612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a65906142a2565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ad1612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b55906142a2565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ba333848461247d565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bd7612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b906142a2565b60405180910390fd5b6103e8600554611c749190614397565b6006541015611c8257600080fd5b6103e881600554611c9391906143c8565b611c9d9190614397565b60068190555050565b611cae612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d32906142a2565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611df5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e79906142a2565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611ea4612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906142a2565b60405180910390fd5b611f39612c80565b565b6000611fa6611f48610f42565b611f98611f896002611f7b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b61234d90919063ffffffff16565b8561234d90919063ffffffff16565b6123c790919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611ffc91906143c8565b6120069190614397565b9081150290604051600060405180830381858888f19350505050158015612031573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120c5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612149906142a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b890614595565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612286612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a906142a2565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361235f57600090506123c1565b6000828461236d91906143c8565b905082848261237c9190614397565b146123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614627565b60405180910390fd5b809150505b92915050565b600061240983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132a7565b905092915050565b600033905090565b6000838311158290612461576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124589190613c73565b60405180910390fd5b50600083856124709190614647565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125235750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612562576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612559906146c7565b60405180910390fd5b602560009054906101000a900460ff16156125895761258284848461330a565b9050612bd1565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561262d5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561268257602360149054906101000a900460ff16612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267890614733565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127625750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127bc5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128165750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128705750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561292a5760006128d6846111a7565b905060075483826128e79190614753565b1115612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f906147f9565b60405180910390fd5b505b61293484836134dd565b61293c61357a565b1561294a57612949612c80565b5b6129d3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ab95750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612acd57612ac8858486613651565b612acf565b825b9050612b2381600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bc39190613b13565b60405180910390a360019150505b9392505050565b6000612c1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612419565b905092915050565b6000808284612c319190614753565b905083811015612c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6d90614865565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cab601f54602054610bf3565b612cb757600d54612cba565b60005b90506000612cfa6002612cec601254612cde8660245461234d90919063ffffffff16565b6123c790919063ffffffff16565b6123c790919063ffffffff16565b90506000612d1382602454612bd890919063ffffffff16565b90506000600267ffffffffffffffff811115612d3257612d31613d1a565b5b604051908082528060200260200182016040528015612d605781602001602082028036833780820191505090505b5090503081600081518110612d7857612d776142c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612de957612de86142c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e8c95949392919061497e565b600060405180830381600087803b158015612ea657600080fd5b505af1158015612eba573d6000803e3d6000fd5b505050506000612ed38247612bd890919063ffffffff16565b90506000612eff612eee6002896123c790919063ffffffff16565b601254612bd890919063ffffffff16565b90506000612f3b6002612f2d84612f1f8c8861234d90919063ffffffff16565b6123c790919063ffffffff16565b6123c790919063ffffffff16565b90506000612f6683612f58600e548761234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000612f9184612f836010548861234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000612fbc85612fae600f548961234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161300690614a09565b60006040518083038185875af1925050503d8060008114613043576040519150601f19603f3d011682016040523d82523d6000602084013e613048565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161309290614a09565b60006040518083038185875af1925050503d80600081146130cf576040519150601f19603f3d011682016040523d82523d6000602084013e6130d4565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161312090614a09565b60006040518083038185875af1925050503d806000811461315d576040519150601f19603f3d011682016040523d82523d6000602084013e613162565b606091505b5050809150506000905060008b111561327e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131fe96959493929190614a1e565b60606040518083038185885af115801561321c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132419190614a7f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613275929190614ad2565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b600080831182906132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59190613c73565b60405180910390fd5b50600083856132fd9190614397565b9050809150509392505050565b6000613395826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342a82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134ca9190613b13565b60405180910390a3600190509392505050565b600654811115806135375750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356d90614b47565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135e75750602560009054906101000a900460ff16155b80156135ff5750602360159054906101000a900460ff165b801561364c5750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136b8576014549050613714565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137135760155490505b5b600061375d606460135461372891906143c8565b61374f846137416012548a61234d90919063ffffffff16565b61234d90919063ffffffff16565b6123c790919063ffffffff16565b9050600061378a60125461377c6011548561234d90919063ffffffff16565b6123c790919063ffffffff16565b905060006137a18284612bd890919063ffffffff16565b90506137f581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ac8260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161396e9190613b13565b60405180910390a36000821115613a225761399482600554612bd890919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a199190613b13565b60405180910390a35b613a358388612bd890919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a6b81613a56565b8114613a7657600080fd5b50565b600081359050613a8881613a62565b92915050565b6000819050919050565b613aa181613a8e565b8114613aac57600080fd5b50565b600081359050613abe81613a98565b92915050565b60008060408385031215613adb57613ada613a4c565b5b6000613ae985828601613a79565b9250506020613afa85828601613aaf565b9150509250929050565b613b0d81613a8e565b82525050565b6000602082019050613b286000830184613b04565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b5982613b2e565b9050919050565b613b6981613b4e565b8114613b7457600080fd5b50565b600081359050613b8681613b60565b92915050565b600060208284031215613ba257613ba1613a4c565b5b6000613bb084828501613b77565b91505092915050565b613bc281613a56565b82525050565b6000602082019050613bdd6000830184613bb9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c1d578082015181840152602081019050613c02565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c4582613be3565b613c4f8185613bee565b9350613c5f818560208601613bff565b613c6881613c29565b840191505092915050565b60006020820190508181036000830152613c8d8184613c3a565b905092915050565b60008060408385031215613cac57613cab613a4c565b5b6000613cba85828601613b77565b9250506020613ccb85828601613aaf565b9150509250929050565b60008060408385031215613cec57613ceb613a4c565b5b6000613cfa85828601613aaf565b9250506020613d0b85828601613aaf565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5282613c29565b810181811067ffffffffffffffff82111715613d7157613d70613d1a565b5b80604052505050565b6000613d84613a42565b9050613d908282613d49565b919050565b600067ffffffffffffffff821115613db057613daf613d1a565b5b602082029050602081019050919050565b600080fd5b6000613dd9613dd484613d95565b613d7a565b90508083825260208201905060208402830185811115613dfc57613dfb613dc1565b5b835b81811015613e255780613e118882613b77565b845260208401935050602081019050613dfe565b5050509392505050565b600082601f830112613e4457613e43613d15565b5b8135613e54848260208601613dc6565b91505092915050565b60008060408385031215613e7457613e73613a4c565b5b600083013567ffffffffffffffff811115613e9257613e91613a51565b5b613e9e85828601613e2f565b9250506020613eaf85828601613a79565b9150509250929050565b600080600060608486031215613ed257613ed1613a4c565b5b6000613ee086828701613b77565b9350506020613ef186828701613b77565b9250506040613f0286828701613aaf565b9150509250925092565b600060ff82169050919050565b613f2281613f0c565b82525050565b6000602082019050613f3d6000830184613f19565b92915050565b60008060408385031215613f5a57613f59613a4c565b5b6000613f6885828601613b77565b9250506020613f7985828601613a79565b9150509250929050565b600060208284031215613f9957613f98613a4c565b5b6000613fa784828501613aaf565b91505092915050565b600080600080600060a08688031215613fcc57613fcb613a4c565b5b6000613fda88828901613b77565b9550506020613feb88828901613b77565b9450506040613ffc88828901613b77565b935050606061400d88828901613b77565b925050608061401e88828901613b77565b9150509295509295909350565b6000806000806080858703121561404557614044613a4c565b5b600061405387828801613a79565b945050602061406487828801613aaf565b935050604061407587828801613aaf565b925050606061408687828801613aaf565b91505092959194509250565b61409b81613b4e565b82525050565b60006020820190506140b66000830184614092565b92915050565b60008060008060008060c087890312156140d9576140d8613a4c565b5b60006140e789828a01613aaf565b96505060206140f889828a01613aaf565b955050604061410989828a01613aaf565b945050606061411a89828a01613aaf565b935050608061412b89828a01613aaf565b92505060a061413c89828a01613aaf565b9150509295509295509295565b60008060006060848603121561416257614161613a4c565b5b600061417086828701613aaf565b935050602061418186828701613aaf565b925050604061419286828701613aaf565b9150509250925092565b600080604083850312156141b3576141b2613a4c565b5b60006141c185828601613b77565b92505060206141d285828601613b77565b9150509250929050565b6000819050919050565b60006142016141fc6141f784613b2e565b6141dc565b613b2e565b9050919050565b6000614213826141e6565b9050919050565b600061422582614208565b9050919050565b6142358161421a565b82525050565b6000602082019050614250600083018461422c565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061428c602083613bee565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061432b82613a8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361435d5761435c6142f1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143a282613a8e565b91506143ad83613a8e565b9250826143bd576143bc614368565b5b828204905092915050565b60006143d382613a8e565b91506143de83613a8e565b92508282026143ec81613a8e565b91508282048414831517614403576144026142f1565b5b5092915050565b60008151905061441981613a98565b92915050565b60006020828403121561443557614434613a4c565b5b60006144438482850161440a565b91505092915050565b60006040820190506144616000830185614092565b61446e6020830184613b04565b9392505050565b60008151905061448481613a62565b92915050565b6000602082840312156144a05761449f613a4c565b5b60006144ae84828501614475565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b60006144ed601d83613bee565b91506144f8826144b7565b602082019050919050565b6000602082019050818103600083015261451c816144e0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061457f602683613bee565b915061458a82614523565b604082019050919050565b600060208201905081810360008301526145ae81614572565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614611602183613bee565b915061461c826145b5565b604082019050919050565b6000602082019050818103600083015261464081614604565b9050919050565b600061465282613a8e565b915061465d83613a8e565b9250828203905081811115614675576146746142f1565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006146b1600d83613bee565b91506146bc8261467b565b602082019050919050565b600060208201905081810360008301526146e0816146a4565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061471d601483613bee565b9150614728826146e7565b602082019050919050565b6000602082019050818103600083015261474c81614710565b9050919050565b600061475e82613a8e565b915061476983613a8e565b9250828201905080821115614781576147806142f1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006147e3603e83613bee565b91506147ee82614787565b604082019050919050565b60006020820190508181036000830152614812816147d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061484f601b83613bee565b915061485a82614819565b602082019050919050565b6000602082019050818103600083015261487e81614842565b9050919050565b6000819050919050565b60006148aa6148a56148a084614885565b6141dc565b613a8e565b9050919050565b6148ba8161488f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6148f581613b4e565b82525050565b600061490783836148ec565b60208301905092915050565b6000602082019050919050565b600061492b826148c0565b61493581856148cb565b9350614940836148dc565b8060005b8381101561497157815161495888826148fb565b975061496383614913565b925050600181019050614944565b5085935050505092915050565b600060a0820190506149936000830188613b04565b6149a060208301876148b1565b81810360408301526149b28186614920565b90506149c16060830185614092565b6149ce6080830184613b04565b9695505050505050565b600081905092915050565b50565b60006149f36000836149d8565b91506149fe826149e3565b600082019050919050565b6000614a14826149e6565b9150819050919050565b600060c082019050614a336000830189614092565b614a406020830188613b04565b614a4d60408301876148b1565b614a5a60608301866148b1565b614a676080830185614092565b614a7460a0830184613b04565b979650505050505050565b600080600060608486031215614a9857614a97613a4c565b5b6000614aa68682870161440a565b9350506020614ab78682870161440a565b9250506040614ac88682870161440a565b9150509250925092565b6000604082019050614ae76000830185613b04565b614af46020830184613b04565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b31601183613bee565b9150614b3c82614afb565b602082019050919050565b60006020820190508181036000830152614b6081614b24565b905091905056fe4f66636f757273652049205374696c6c204c6f766520596f75204f726967696e616ca2646970667358221220a94a964f564c304e528ad60995ede60df3583750a44299c179875bc5a45a2a1564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108cd578063d78e139d1461090a578063dd62ed3e14610933578063f2fde38b14610970578063f6a78e1714610999578063f887ea40146109b057610267565b8063b2bdfa7b14610810578063bc3371821461083b578063ccf8c03614610864578063cec10c111461088d578063d148b74c146108b657610267565b80639189247611610108578063918924761461070257806395d89b411461072b5780639acb773e146107565780639f11080e1461077f578063a8aa1b31146107a8578063a9059cbb146107d357610267565b80637d1db4a514610641578063865917111461066c578063893d20e8146106955780638a4068dd146106c05780638da5cb5b146106d757610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ac4565b6109db565b005b3480156102a157600080fd5b506102aa610a95565b6040516102b79190613b13565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b8c565b610a9b565b6040516102f49190613bc8565b60405180910390f35b34801561030957600080fd5b50610312610ace565b60405161031f9190613c73565b60405180910390f35b34801561033457600080fd5b5061033d610aee565b60405161034a9190613bc8565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613c95565b610b01565b6040516103879190613bc8565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613cd5565b610bf3565b6040516103c49190613bc8565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e5d565b610c08565b005b34801561040257600080fd5b5061040b610d32565b6040516104189190613b13565b60405180910390f35b34801561042d57600080fd5b50610436610d3c565b6040516104439190613b13565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613eb9565b610d42565b6040516104809190613bc8565b60405180910390f35b34801561049557600080fd5b5061049e610f42565b6040516104ab9190613b13565b60405180910390f35b3480156104c057600080fd5b506104c9610fc4565b6040516104d69190613f28565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f43565b610fcd565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f83565b6110bd565b005b34801561053d57600080fd5b50610546611194565b6040516105539190613bc8565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b8c565b6111a7565b6040516105909190613b13565b60405180910390f35b3480156105a557600080fd5b506105ae6111f0565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613c95565b611343565b6040516105e49190613bc8565b60405180910390f35b3480156105f957600080fd5b506106026114a6565b60405161060f9190613b13565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fb0565b6114ac565b005b34801561064d57600080fd5b5061065661168d565b6040516106639190613b13565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e919061402b565b611693565b005b3480156106a157600080fd5b506106aa61175d565b6040516106b791906140a1565b60405180910390f35b3480156106cc57600080fd5b506106d561176c565b005b3480156106e357600080fd5b506106ec61180b565b6040516106f991906140a1565b60405180910390f35b34801561070e57600080fd5b50610729600480360381019061072491906140bc565b611834565b005b34801561073757600080fd5b5061074061199c565b60405161074d9190613c73565b60405180910390f35b34801561076257600080fd5b5061077d60048036038101906107789190613f43565b6119d9565b005b34801561078b57600080fd5b506107a660048036038101906107a19190613cd5565b611ac9565b005b3480156107b457600080fd5b506107bd611b70565b6040516107ca91906140a1565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613c95565b611b96565b6040516108079190613bc8565b60405180910390f35b34801561081c57600080fd5b50610825611bab565b60405161083291906140a1565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d9190613f83565b611bcf565b005b34801561087057600080fd5b5061088b60048036038101906108869190613f43565b611ca6565b005b34801561089957600080fd5b506108b460048036038101906108af9190614149565b611ded565b005b3480156108c257600080fd5b506108cb611e9c565b005b3480156108d957600080fd5b506108f460048036038101906108ef9190613f83565b611f3b565b6040516109019190613b13565b60405180910390f35b34801561091657600080fd5b50610931600480360381019061092c9190613f83565b611fad565b005b34801561093f57600080fd5b5061095a6004803603810190610955919061419c565b612036565b6040516109679190613b13565b60405180910390f35b34801561097c57600080fd5b5061099760048036038101906109929190613b8c565b6120bd565b005b3480156109a557600080fd5b506109ae61227e565b005b3480156109bc57600080fd5b506109c5612327565b6040516109d2919061423b565b60405180910390f35b6109e3612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906142a2565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ac7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b01565b9050919050565b6060604051806060016040528060228152602001614b6860229139905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610be19190613b13565b60405180910390a36001905092915050565b600082610bff83611f3b565b11905092915050565b610c10612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c94906142a2565b60405180910390fd5b60005b8251811015610d2d5781600c6000858481518110610cc157610cc06142c2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d2590614320565b915050610ca0565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f2e57610ead826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f3984848461247d565b90509392505050565b6000610fbf610f72600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b610fb1610fa0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b600554612bd890919063ffffffff16565b612bd890919063ffffffff16565b905090565b60006009905090565b610fd5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611059906142a2565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110c5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906142a2565b60405180910390fd5b6103e86005546111629190614397565b600754101561117057600080fd5b6103e88160055461118191906143c8565b61118b9190614397565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f8612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127c906142a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661139b57600080fd5b60008203611420578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113dc91906140a1565b602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d919061441f565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161145b92919061444c565b6020604051808303816000875af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e919061448a565b905092915050565b60075481565b6114b4612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906142a2565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b61169b612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906142a2565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b600061176761180b565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611808573d6000803e3d6000fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61183c612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906142a2565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f819055508160118190555061193582611927856119198861190b8b8d612c2290919063ffffffff16565b612c2290919063ffffffff16565b612c2290919063ffffffff16565b612c2290919063ffffffff16565b6012819055508060138190555060056013546119519190614397565b60125410611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90614503565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017f4f4349534c590000000000000000000000000000000000000000000000000000815250905090565b6119e1612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a65906142a2565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ad1612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b55906142a2565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ba333848461247d565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bd7612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b906142a2565b60405180910390fd5b6103e8600554611c749190614397565b6006541015611c8257600080fd5b6103e881600554611c9391906143c8565b611c9d9190614397565b60068190555050565b611cae612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d32906142a2565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611df5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e79906142a2565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611ea4612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906142a2565b60405180910390fd5b611f39612c80565b565b6000611fa6611f48610f42565b611f98611f896002611f7b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a7565b61234d90919063ffffffff16565b8561234d90919063ffffffff16565b6123c790919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611ffc91906143c8565b6120069190614397565b9081150290604051600060405180830381858888f19350505050158015612031573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120c5612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612149906142a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b890614595565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612286612411565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a906142a2565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361235f57600090506123c1565b6000828461236d91906143c8565b905082848261237c9190614397565b146123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614627565b60405180910390fd5b809150505b92915050565b600061240983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132a7565b905092915050565b600033905090565b6000838311158290612461576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124589190613c73565b60405180910390fd5b50600083856124709190614647565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125235750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612562576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612559906146c7565b60405180910390fd5b602560009054906101000a900460ff16156125895761258284848461330a565b9050612bd1565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561262d5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561268257602360149054906101000a900460ff16612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267890614733565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127625750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127bc5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128165750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128705750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561292a5760006128d6846111a7565b905060075483826128e79190614753565b1115612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f906147f9565b60405180910390fd5b505b61293484836134dd565b61293c61357a565b1561294a57612949612c80565b5b6129d3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ab95750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612acd57612ac8858486613651565b612acf565b825b9050612b2381600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bc39190613b13565b60405180910390a360019150505b9392505050565b6000612c1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612419565b905092915050565b6000808284612c319190614753565b905083811015612c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6d90614865565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cab601f54602054610bf3565b612cb757600d54612cba565b60005b90506000612cfa6002612cec601254612cde8660245461234d90919063ffffffff16565b6123c790919063ffffffff16565b6123c790919063ffffffff16565b90506000612d1382602454612bd890919063ffffffff16565b90506000600267ffffffffffffffff811115612d3257612d31613d1a565b5b604051908082528060200260200182016040528015612d605781602001602082028036833780820191505090505b5090503081600081518110612d7857612d776142c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612de957612de86142c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e8c95949392919061497e565b600060405180830381600087803b158015612ea657600080fd5b505af1158015612eba573d6000803e3d6000fd5b505050506000612ed38247612bd890919063ffffffff16565b90506000612eff612eee6002896123c790919063ffffffff16565b601254612bd890919063ffffffff16565b90506000612f3b6002612f2d84612f1f8c8861234d90919063ffffffff16565b6123c790919063ffffffff16565b6123c790919063ffffffff16565b90506000612f6683612f58600e548761234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000612f9184612f836010548861234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000612fbc85612fae600f548961234d90919063ffffffff16565b6123c790919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161300690614a09565b60006040518083038185875af1925050503d8060008114613043576040519150601f19603f3d011682016040523d82523d6000602084013e613048565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161309290614a09565b60006040518083038185875af1925050503d80600081146130cf576040519150601f19603f3d011682016040523d82523d6000602084013e6130d4565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161312090614a09565b60006040518083038185875af1925050503d806000811461315d576040519150601f19603f3d011682016040523d82523d6000602084013e613162565b606091505b5050809150506000905060008b111561327e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131fe96959493929190614a1e565b60606040518083038185885af115801561321c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132419190614a7f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613275929190614ad2565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b600080831182906132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59190613c73565b60405180910390fd5b50600083856132fd9190614397565b9050809150509392505050565b6000613395826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124199092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342a82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134ca9190613b13565b60405180910390a3600190509392505050565b600654811115806135375750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356d90614b47565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135e75750602560009054906101000a900460ff16155b80156135ff5750602360159054906101000a900460ff165b801561364c5750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136b8576014549050613714565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137135760155490505b5b600061375d606460135461372891906143c8565b61374f846137416012548a61234d90919063ffffffff16565b61234d90919063ffffffff16565b6123c790919063ffffffff16565b9050600061378a60125461377c6011548561234d90919063ffffffff16565b6123c790919063ffffffff16565b905060006137a18284612bd890919063ffffffff16565b90506137f581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ac8260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2290919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161396e9190613b13565b60405180910390a36000821115613a225761399482600554612bd890919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a199190613b13565b60405180910390a35b613a358388612bd890919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a6b81613a56565b8114613a7657600080fd5b50565b600081359050613a8881613a62565b92915050565b6000819050919050565b613aa181613a8e565b8114613aac57600080fd5b50565b600081359050613abe81613a98565b92915050565b60008060408385031215613adb57613ada613a4c565b5b6000613ae985828601613a79565b9250506020613afa85828601613aaf565b9150509250929050565b613b0d81613a8e565b82525050565b6000602082019050613b286000830184613b04565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b5982613b2e565b9050919050565b613b6981613b4e565b8114613b7457600080fd5b50565b600081359050613b8681613b60565b92915050565b600060208284031215613ba257613ba1613a4c565b5b6000613bb084828501613b77565b91505092915050565b613bc281613a56565b82525050565b6000602082019050613bdd6000830184613bb9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c1d578082015181840152602081019050613c02565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c4582613be3565b613c4f8185613bee565b9350613c5f818560208601613bff565b613c6881613c29565b840191505092915050565b60006020820190508181036000830152613c8d8184613c3a565b905092915050565b60008060408385031215613cac57613cab613a4c565b5b6000613cba85828601613b77565b9250506020613ccb85828601613aaf565b9150509250929050565b60008060408385031215613cec57613ceb613a4c565b5b6000613cfa85828601613aaf565b9250506020613d0b85828601613aaf565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5282613c29565b810181811067ffffffffffffffff82111715613d7157613d70613d1a565b5b80604052505050565b6000613d84613a42565b9050613d908282613d49565b919050565b600067ffffffffffffffff821115613db057613daf613d1a565b5b602082029050602081019050919050565b600080fd5b6000613dd9613dd484613d95565b613d7a565b90508083825260208201905060208402830185811115613dfc57613dfb613dc1565b5b835b81811015613e255780613e118882613b77565b845260208401935050602081019050613dfe565b5050509392505050565b600082601f830112613e4457613e43613d15565b5b8135613e54848260208601613dc6565b91505092915050565b60008060408385031215613e7457613e73613a4c565b5b600083013567ffffffffffffffff811115613e9257613e91613a51565b5b613e9e85828601613e2f565b9250506020613eaf85828601613a79565b9150509250929050565b600080600060608486031215613ed257613ed1613a4c565b5b6000613ee086828701613b77565b9350506020613ef186828701613b77565b9250506040613f0286828701613aaf565b9150509250925092565b600060ff82169050919050565b613f2281613f0c565b82525050565b6000602082019050613f3d6000830184613f19565b92915050565b60008060408385031215613f5a57613f59613a4c565b5b6000613f6885828601613b77565b9250506020613f7985828601613a79565b9150509250929050565b600060208284031215613f9957613f98613a4c565b5b6000613fa784828501613aaf565b91505092915050565b600080600080600060a08688031215613fcc57613fcb613a4c565b5b6000613fda88828901613b77565b9550506020613feb88828901613b77565b9450506040613ffc88828901613b77565b935050606061400d88828901613b77565b925050608061401e88828901613b77565b9150509295509295909350565b6000806000806080858703121561404557614044613a4c565b5b600061405387828801613a79565b945050602061406487828801613aaf565b935050604061407587828801613aaf565b925050606061408687828801613aaf565b91505092959194509250565b61409b81613b4e565b82525050565b60006020820190506140b66000830184614092565b92915050565b60008060008060008060c087890312156140d9576140d8613a4c565b5b60006140e789828a01613aaf565b96505060206140f889828a01613aaf565b955050604061410989828a01613aaf565b945050606061411a89828a01613aaf565b935050608061412b89828a01613aaf565b92505060a061413c89828a01613aaf565b9150509295509295509295565b60008060006060848603121561416257614161613a4c565b5b600061417086828701613aaf565b935050602061418186828701613aaf565b925050604061419286828701613aaf565b9150509250925092565b600080604083850312156141b3576141b2613a4c565b5b60006141c185828601613b77565b92505060206141d285828601613b77565b9150509250929050565b6000819050919050565b60006142016141fc6141f784613b2e565b6141dc565b613b2e565b9050919050565b6000614213826141e6565b9050919050565b600061422582614208565b9050919050565b6142358161421a565b82525050565b6000602082019050614250600083018461422c565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061428c602083613bee565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061432b82613a8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361435d5761435c6142f1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143a282613a8e565b91506143ad83613a8e565b9250826143bd576143bc614368565b5b828204905092915050565b60006143d382613a8e565b91506143de83613a8e565b92508282026143ec81613a8e565b91508282048414831517614403576144026142f1565b5b5092915050565b60008151905061441981613a98565b92915050565b60006020828403121561443557614434613a4c565b5b60006144438482850161440a565b91505092915050565b60006040820190506144616000830185614092565b61446e6020830184613b04565b9392505050565b60008151905061448481613a62565b92915050565b6000602082840312156144a05761449f613a4c565b5b60006144ae84828501614475565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b60006144ed601d83613bee565b91506144f8826144b7565b602082019050919050565b6000602082019050818103600083015261451c816144e0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061457f602683613bee565b915061458a82614523565b604082019050919050565b600060208201905081810360008301526145ae81614572565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614611602183613bee565b915061461c826145b5565b604082019050919050565b6000602082019050818103600083015261464081614604565b9050919050565b600061465282613a8e565b915061465d83613a8e565b9250828203905081811115614675576146746142f1565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006146b1600d83613bee565b91506146bc8261467b565b602082019050919050565b600060208201905081810360008301526146e0816146a4565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061471d601483613bee565b9150614728826146e7565b602082019050919050565b6000602082019050818103600083015261474c81614710565b9050919050565b600061475e82613a8e565b915061476983613a8e565b9250828201905080821115614781576147806142f1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006147e3603e83613bee565b91506147ee82614787565b604082019050919050565b60006020820190508181036000830152614812816147d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061484f601b83613bee565b915061485a82614819565b602082019050919050565b6000602082019050818103600083015261487e81614842565b9050919050565b6000819050919050565b60006148aa6148a56148a084614885565b6141dc565b613a8e565b9050919050565b6148ba8161488f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6148f581613b4e565b82525050565b600061490783836148ec565b60208301905092915050565b6000602082019050919050565b600061492b826148c0565b61493581856148cb565b9350614940836148dc565b8060005b8381101561497157815161495888826148fb565b975061496383614913565b925050600181019050614944565b5085935050505092915050565b600060a0820190506149936000830188613b04565b6149a060208301876148b1565b81810360408301526149b28186614920565b90506149c16060830185614092565b6149ce6080830184613b04565b9695505050505050565b600081905092915050565b50565b60006149f36000836149d8565b91506149fe826149e3565b600082019050919050565b6000614a14826149e6565b9150819050919050565b600060c082019050614a336000830189614092565b614a406020830188613b04565b614a4d60408301876148b1565b614a5a60608301866148b1565b614a676080830185614092565b614a7460a0830184613b04565b979650505050505050565b600080600060608486031215614a9857614a97613a4c565b5b6000614aa68682870161440a565b9350506020614ab78682870161440a565b9250506040614ac88682870161440a565b9150509250925092565b6000604082019050614ae76000830185613b04565b614af46020830184613b04565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b31601183613bee565b9150614b3c82614afb565b602082019050919050565b60006020820190508181036000830152614b6081614b24565b905091905056fe4f66636f757273652049205374696c6c204c6f766520596f75204f726967696e616ca2646970667358221220a94a964f564c304e528ad60995ede60df3583750a44299c179875bc5a45a2a1564736f6c63430008110033

Deployed Bytecode Sourcemap

5129:14295:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18523:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6995:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9189:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8543:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8965:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19198:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14222:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8273:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6183:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9483:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18873:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8367:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14084:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9865:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6958:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8713:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3186:148;;;;;;;;;;;;;:::i;:::-;;14439:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5632:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18060:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5567:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14970:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8629:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13927:149;;;;;;;;;;;;;:::i;:::-;;2972:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17473:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8453:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17345:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18687:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6882:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2592:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10092:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17180:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14755:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13698:77;;;;;;;;;;;;;:::i;:::-;;19023:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13491:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8824:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13783:136;;;;;;;;;;;;;:::i;:::-;;6812:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18523:156;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18629:8:::1;18615:11;;:22;;;;;;;;;;;;;;;;;;18664:7;18648:13;:23;;;;18523:156:::0;;:::o;6995:57::-;;;;:::o;9189:122::-;9244:4;9268:35;9276:7;9285:17;9268:7;:35::i;:::-;9261:42;;9189:122;;;:::o;8543:80::-;8591:13;8615:5;;;;;;;;;;;;;;;;;8608:12;;8543:80;:::o;6914:31::-;;;;;;;;;;;;;:::o;8965:216::-;9040:4;9092:6;9057:11;:23;9069:10;9057:23;;;;;;;;;;;;;;;:32;9081:7;9057:32;;;;;;;;;;;;;;;:41;;;;9135:7;9114:37;;9123:10;9114:37;;;9144:6;9114:37;;;;;;:::i;:::-;;;;;;;;9169:4;9162:11;;8965:216;;;;:::o;19198:150::-;19278:4;19334:6;19302:29;19322:8;19302:19;:29::i;:::-;:38;19295:45;;19198:150;;;;:::o;14222:209::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14321:9:::1;14317:107;14339:8;:15;14335:1;:19;14317:107;;;14405:5;14375:14;:27;14390:8;14399:1;14390:11;;;;;;;;:::i;:::-;;;;;;;;14375:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14356:3;;;;;:::i;:::-;;;;14317:107;;;;14222:209:::0;;:::o;8273:88::-;8328:7;8346:12;;8339:19;;8273:88;:::o;6183:94::-;;;;:::o;9483:370::-;9583:4;9638:17;9603:11;:19;9615:6;9603:19;;;;;;;;;;;;;;;:31;9623:10;9603:31;;;;;;;;;;;;;;;;:52;9600:186;;9705:69;9741:6;9705:69;;;;;;;;;;;;;;;;;:11;:19;9717:6;9705:19;;;;;;;;;;;;;;;:31;9725:10;9705:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9671:11;:19;9683:6;9671:19;;;;;;;;;;;;;;;:31;9691:10;9671:31;;;;;;;;;;;;;;;:103;;;;9600:186;9805:40;9819:6;9827:9;9838:6;9805:13;:40::i;:::-;9798:47;;9483:370;;;;;:::o;18873:142::-;18926:7;18953:54;18991:15;19001:4;;;;;;;;;;;18991:9;:15::i;:::-;18953:33;18970:15;18980:4;;;;;;;;;;;18970:9;:15::i;:::-;18953:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18946:61;;18873:142;:::o;8367:80::-;8419:5;5495:1;8428:16;;8367:80;:::o;14084:126::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14197:5:::1;14171:14;:23;14186:7;14171:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14084:126:::0;;:::o;9865:219::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:4:::1;9969:12;;:19;;;;:::i;:::-;9950:15;;:38;;9942:47;;;::::0;::::1;;10054:4;10035:14;10020:12;;:29;;;;:::i;:::-;10019:39;;;;:::i;:::-;10001:15;:57;;;;9865:219:::0;:::o;6958:30::-;;;;;;;;;;;;;:::o;8713:105::-;8779:7;8797:9;:18;8807:7;8797:18;;;;;;;;;;;;;;;;8790:25;;8713:105;;;:::o;3186:148::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3293:1:::1;3256:40;;3277:6;::::0;::::1;;;;;;;;3256:40;;;;;;;;;;;;3324:1;3307:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3186:148::o:0;14439:308::-;14518:4;14543:15;:27;14559:10;14543:27;;;;;;;;;;;;;;;;;;;;;;;;;14535:36;;;;;;14592:1;14582:6;:11;14579:95;;14624:12;14618:29;;;14656:4;14618:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14609:53;;14579:95;14697:12;14691:28;;;14720:10;14732:6;14691:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14684:55;;14439:308;;;;:::o;5632:61::-;;;;:::o;18060:455::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18289:22:::1;18265:21;;:46;;;;;;;;;;;;;;;;;;18345:21;18322:20;;:44;;;;;;;;;;;;;;;;;;18398:19;18377:18;;:40;;;;;;;;;;;;;;;;;;18446:16;18428:15;;:34;;;;;;;;;;;;;;;;;;18491:16;18473:15;;:34;;;;;;;;;;;;;;;;;;18060:455:::0;;;;;:::o;5567:58::-;;;;:::o;14970:309::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15131:5:::1;15117:11;;:19;;;;;;;;;;;;;;;;;;15163:14;15147:13;:30;;;;15205:15;15188:14;:32;;;;15252:19;15231:18;:40;;;;14970:309:::0;;;;:::o;8629:78::-;8681:7;8698;:5;:7::i;:::-;8691:14;;8629:78;:::o;13927:149::-;13976:15;:27;13992:10;13976:27;;;;;;;;;;;;;;;;;;;;;;;;;13968:36;;;;;;14023:10;14015:28;;:51;14044:21;14015:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:149::o;2972:79::-;3010:7;3037:6;;;;;;;;;;;3030:13;;2972:79;:::o;17473:579::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17674:13:::1;17659:12;:28;;;;17708:8;17698:7;:18;;;;17742:13;17727:12;:28;;;;17779:11;17766:10;:24;;;;17811:8;17801:7;:18;;;;17841:77;17909:8;17841:63;17892:11;17841:46;17873:13;17841:27;17859:8;17841:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;17830:8;:88;;;;17946:15;17929:14;:32;;;;18008:1;17991:14;;:18;;;;:::i;:::-;17980:8;;:29;17972:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17473:579:::0;;;;;;:::o;8453:84::-;8503:13;8527:7;;;;;;;;;;;;;;;;;8520:14;;8453:84;:::o;17345:120::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17451:6:::1;17425:15;:23;17441:6;17425:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17345:120:::0;;:::o;18687:174::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18794:7:::1;18776:15;:25;;;;18841:12;18812:26;:41;;;;18687:174:::0;;:::o;6882:19::-;;;;;;;;;;;;;:::o;9319:156::-;9399:4;9423:44;9437:10;9449:9;9460:6;9423:13;:44::i;:::-;9416:51;;9319:156;;;;:::o;2592:21::-;;;;;;;;;;;;:::o;10092:187::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10202:4:::1;10187:12;;:19;;;;:::i;:::-;10171:12;;:35;;10163:44;;;::::0;::::1;;10267:4;10250:12;10235;;:27;;;;:::i;:::-;10234:37;;;;:::i;:::-;10219:12;:52;;;;10092:187:::0;:::o;17180:157::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17280:6:::1;17258:11;:19;17270:6;17258:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17323:6;17297:15;:23;17313:6;17297:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17180:157:::0;;:::o;14755:207::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14864:5:::1;14847:14;:22;;;;14896:4;14880:13;:20;;;;14932:6;14911:18;:27;;;;14755:207:::0;;;:::o;13698:77::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13751:10:::1;:8;:10::i;:::-;13698:77::o:0;19023:167::-;19091:7;19118:64;19159:22;:20;:22::i;:::-;19118:36;19131:22;19151:1;19131:15;19141:4;;;;;;;;;;;19131:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19118:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19111:71;;19023:167;;;:::o;13491:198::-;13560:17;13580:21;13560:41;;13620:15;;;;;;;;;;;13612:33;;:69;13677:3;13658:16;13646:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13612:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13549:140;13491:198;:::o;8824:133::-;8908:7;8926:11;:19;8938:6;8926:19;;;;;;;;;;;;;;;:28;8946:7;8926:28;;;;;;;;;;;;;;;;8919:35;;8824:133;;;;:::o;3342:244::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3451:1:::1;3431:22;;:8;:22;;::::0;3423:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3541:8;3512:38;;3533:6;::::0;::::1;;;;;;;;3512:38;;;;;;;;;;;;3570:8;3561:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3342:244:::0;:::o;13783:136::-;3109:12;:10;:12::i;:::-;3099:22;;:6;;;;;;;;;;:22;;;3091:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13859:12:::1;;13841:15;:30;;;;13897:12;;13882;:27;;;;13783:136::o:0;6812:24::-;;;;;;;;;;;;;:::o;771:250::-;829:7;858:1;853;:6;849:47;;883:1;876:8;;;;849:47;908:9;924:1;920;:5;;;;:::i;:::-;908:17;;953:1;948;944;:5;;;;:::i;:::-;:10;936:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1012:1;1005:8;;;771:250;;;;;:::o;1027:132::-;1085:7;1112:39;1116:1;1119;1112:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1105:46;;1027:132;;;;:::o;2313:115::-;2366:15;2409:10;2394:26;;2313:115;:::o;573:192::-;659:7;692:1;687;:6;;695:12;679:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;719:9;735:1;731;:5;;;;:::i;:::-;719:17;;756:1;749:8;;;573:192;;;;;:::o;10296:1329::-;10388:4;10414:14;:22;10429:6;10414:22;;;;;;;;;;;;;;;;;;;;;;;;;10413:23;:53;;;;;10441:14;:25;10456:9;10441:25;;;;;;;;;;;;;;;;;;;;;;;;;10440:26;10413:53;10405:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10500:6;;;;;;;;;;;10497:63;;;10516:41;10531:6;10539:9;10550:6;10516:14;:41::i;:::-;10509:48;;;;10497:63;10576:14;:22;10591:6;10576:22;;;;;;;;;;;;;;;;;;;;;;;;;10575:23;:53;;;;;10603:14;:25;10618:9;10603:25;;;;;;;;;;;;;;;;;;;;;;;;;10602:26;10575:53;10572:140;;;10652:11;;;;;;;;;;;10644:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10572:140;10746:14;:22;10761:6;10746:22;;;;;;;;;;;;;;;;;;;;;;;;;10745:23;:53;;;;;10793:4;10772:26;;:9;:26;;;;10745:53;:84;;;;;10824:4;;;;;;;;;;;10803:26;;:9;:26;;;;10745:84;:105;;;;;10846:4;;;;;;;;;;;10833:17;;:9;:17;;;;10745:105;:137;;;;;10867:15;;;;;;;;;;;10854:28;;:9;:28;;;;10745:137;:174;;;;;10899:20;;;;;;;;;;;10886:33;;:9;:33;;;;10745:174;:205;;;;;10924:15;:26;10940:9;10924:26;;;;;;;;;;;;;;;;;;;;;;;;;10923:27;10745:205;10741:397;;;10966:18;10987:20;10997:9;10987;:20::i;:::-;10966:41;;11055:15;;11044:6;11031:10;:19;;;;:::i;:::-;11030:40;;11022:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10951:187;10741:397;11159:28;11172:6;11180;11159:12;:28::i;:::-;11204:16;:14;:16::i;:::-;11201:35;;;11223:10;:8;:10::i;:::-;11201:35;11276:53;11298:6;11276:53;;;;;;;;;;;;;;;;;:9;:17;11286:6;11276:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11256:9;:17;11266:6;11256:17;;;;;;;;;;;;;;;:73;;;;11342:22;11368:11;:19;11380:6;11368:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11391:11;:22;11403:9;11391:22;;;;;;;;;;;;;;;;;;;;;;;;;11368:45;11367:93;;11426:34;11434:6;11442;11450:9;11426:7;:34::i;:::-;11367:93;;;11417:6;11367:93;11342:118;;11494:40;11519:14;11494:9;:20;11504:9;11494:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11471:9;:20;11481:9;11471:20;;;;;;;;;;;;;;;:63;;;;11569:9;11552:43;;11561:6;11552:43;;;11580:14;11552:43;;;;;;:::i;:::-;;;;;;;;11613:4;11606:11;;;10296:1329;;;;;;:::o;431:136::-;489:7;516:43;520:1;523;516:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;509:50;;431:136;;;;:::o;244:181::-;302:7;322:9;338:1;334;:5;;;;:::i;:::-;322:17;;363:1;358;:6;;350:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;416:1;409:8;;;244:181;;;;:::o;15295:1877::-;7109:4;7100:6;;:13;;;;;;;;;;;;;;;;;;15344:27:::1;15374:60;15390:15;;15407:26;;15374:15;:60::i;:::-;:79;;15441:12;;15374:79;;;15437:1;15374:79;15344:109;;15464:23;15490:59;15547:1;15490:52;15533:8;;15490:38;15508:19;15490:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15464:85;;15560:20;15583:34;15601:15;15583:13;;:17;;:34;;;;:::i;:::-;15560:57;;15630:21;15668:1;15654:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15630:40;;15699:4;15681;15686:1;15681:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15725:4;;;;;;;;;;;15715;15720:1;15715:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15742:21;15766;15742:45;;15800:6;;;;;;;;;;;:57;;;15872:12;15899:1;15915:4;15942;15962:15;15800:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16001:17;16021:40;16047:13;16021:21;:25;;:40;;;;:::i;:::-;16001:60;;16074:19;16096:40;16109:26;16133:1;16109:19;:23;;:26;;;;:::i;:::-;16096:8;;:12;;:40;;;;:::i;:::-;16074:62;;16157:26;16186:58;16242:1;16186:51;16225:11;16186:34;16200:19;16186:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16157:87;;16255:26;16284:44;16316:11;16284:27;16298:12;;16284:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16255:73;;16339:21;16363:39;16390:11;16363:22;16377:7;;16363:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16339:63;;16413:24;16440:42;16470:11;16440:25;16454:10;;16440:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16413:69;;16496:15;16524:20;;;;;;;;;;;16516:34;;16558:18;16516:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16495:86;;;16616:18;;;;;;;;;;;16608:32;;16648:16;16608:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16592:77;;;;;16704:15;;;;;;;;;;;16696:29;;16733:13;16696:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16680:71;;;;;16785:5;16772:18;;16824:1;16806:15;:19;16803:362;;;16841:6;;;;;;;;;;;:22;;;16871:18;16917:4;16941:15;16975:1;16995::::0;17015:21:::1;;;;;;;;;;;17055:15;16841:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17105:48;17117:18;17137:15;17105:48;;;;;;;:::i;:::-;;;;;;;;16803:362;15333:1839;;;;;;;;;;;;7127:5:::0;7118:6;;:14;;;;;;;;;;;;;;;;;;15295:1877::o;1165:189::-;1251:7;1283:1;1279;:5;1286:12;1271:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1310:9;1326:1;1322;:5;;;;:::i;:::-;1310:17;;1345:1;1338:8;;;1165:189;;;;;:::o;11637:330::-;11730:4;11767:53;11789:6;11767:53;;;;;;;;;;;;;;;;;:9;:17;11777:6;11767:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11747:9;:17;11757:6;11747:17;;;;;;;;;;;;;;;:73;;;;11854:32;11879:6;11854:9;:20;11864:9;11854:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11831:9;:20;11841:9;11831:20;;;;;;;;;;;;;;;:55;;;;11919:9;11902:35;;11911:6;11902:35;;;11930:6;11902:35;;;;;;:::i;:::-;;;;;;;;11955:4;11948:11;;11637:330;;;;;:::o;11975:166::-;12072:12;;12062:6;:22;;:49;;;;12088:15;:23;12104:6;12088:23;;;;;;;;;;;;;;;;;;;;;;;;;12062:49;12054:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11975:166;;:::o;13286:197::-;13335:4;13373;;;;;;;;;;;13359:18;;:10;:18;;;;:38;;;;;13391:6;;;;;;;;;;;13390:7;13359:38;:62;;;;;13410:11;;;;;;;;;;;13359:62;:116;;;;;13462:13;;13434:9;:24;13452:4;13434:24;;;;;;;;;;;;;;;;:41;;13359:116;13352:123;;13286:197;:::o;12271:1007::-;12357:7;12387:18;12408;;12387:39;;12455:4;;;;;;;;;;;12442:17;;:9;:17;;;12439:154;;12489:14;;12476:27;;12439:154;;;12534:4;;;;;;;;;;;12524:14;;:6;:14;;;12521:72;;12568:13;;12555:26;;12521:72;12439:154;12605:17;12625:62;12683:3;12666:14;;:20;;;;:::i;:::-;12625:36;12650:10;12625:20;12636:8;;12625:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12605:82;;12698:18;12719:36;12746:8;;12719:22;12733:7;;12719:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12698:57;;12766:22;12791:25;12805:10;12791:9;:13;;:25;;;;:::i;:::-;12766:50;;12856:44;12885:14;12856:9;:24;12874:4;12856:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12829:9;:24;12847:4;12829:24;;;;;;;;;;;;;;;:71;;;;12940:42;12971:10;12940:9;:26;12950:15;;;;;;;;;;;12940:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12911:9;:26;12921:15;;;;;;;;;;;12911:26;;;;;;;;;;;;;;;:71;;;;13023:4;12998:47;;13007:6;12998:47;;;13030:14;12998:47;;;;;;:::i;:::-;;;;;;;;13092:1;13079:10;:14;13076:154;;;13124:28;13141:10;13124:12;;:16;;:28;;;;:::i;:::-;13109:12;:43;;;;13189:4;;;;;;;;;;;13172:34;;13181:6;13172:34;;;13195:10;13172:34;;;;;;:::i;:::-;;;;;;;;13076:154;13249:21;13260:9;13249:6;:10;;:21;;;;:::i;:::-;13242:28;;;;;;12271:1007;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:117::-;5457:1;5454;5447:12;5471:180;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:281;5740:27;5762:4;5740:27;:::i;:::-;5732:6;5728:40;5870:6;5858:10;5855:22;5834:18;5822:10;5819:34;5816:62;5813:88;;;5881:18;;:::i;:::-;5813:88;5921:10;5917:2;5910:22;5700:238;5657:281;;:::o;5944:129::-;5978:6;6005:20;;:::i;:::-;5995:30;;6034:33;6062:4;6054:6;6034:33;:::i;:::-;5944:129;;;:::o;6079:311::-;6156:4;6246:18;6238:6;6235:30;6232:56;;;6268:18;;:::i;:::-;6232:56;6318:4;6310:6;6306:17;6298:25;;6378:4;6372;6368:15;6360:23;;6079:311;;;:::o;6396:117::-;6505:1;6502;6495:12;6536:710;6632:5;6657:81;6673:64;6730:6;6673:64;:::i;:::-;6657:81;:::i;:::-;6648:90;;6758:5;6787:6;6780:5;6773:21;6821:4;6814:5;6810:16;6803:23;;6874:4;6866:6;6862:17;6854:6;6850:30;6903:3;6895:6;6892:15;6889:122;;;6922:79;;:::i;:::-;6889:122;7037:6;7020:220;7054:6;7049:3;7046:15;7020:220;;;7129:3;7158:37;7191:3;7179:10;7158:37;:::i;:::-;7153:3;7146:50;7225:4;7220:3;7216:14;7209:21;;7096:144;7080:4;7075:3;7071:14;7064:21;;7020:220;;;7024:21;6638:608;;6536:710;;;;;:::o;7269:370::-;7340:5;7389:3;7382:4;7374:6;7370:17;7366:27;7356:122;;7397:79;;:::i;:::-;7356:122;7514:6;7501:20;7539:94;7629:3;7621:6;7614:4;7606:6;7602:17;7539:94;:::i;:::-;7530:103;;7346:293;7269:370;;;;:::o;7645:678::-;7735:6;7743;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7946:1;7935:9;7931:17;7918:31;7976:18;7968:6;7965:30;7962:117;;;7998:79;;:::i;:::-;7962:117;8103:78;8173:7;8164:6;8153:9;8149:22;8103:78;:::i;:::-;8093:88;;7889:302;8230:2;8256:50;8298:7;8289:6;8278:9;8274:22;8256:50;:::i;:::-;8246:60;;8201:115;7645:678;;;;;:::o;8329:619::-;8406:6;8414;8422;8471:2;8459:9;8450:7;8446:23;8442:32;8439:119;;;8477:79;;:::i;:::-;8439:119;8597:1;8622:53;8667:7;8658:6;8647:9;8643:22;8622:53;:::i;:::-;8612:63;;8568:117;8724:2;8750:53;8795:7;8786:6;8775:9;8771:22;8750:53;:::i;:::-;8740:63;;8695:118;8852:2;8878:53;8923:7;8914:6;8903:9;8899:22;8878:53;:::i;:::-;8868:63;;8823:118;8329:619;;;;;:::o;8954:86::-;8989:7;9029:4;9022:5;9018:16;9007:27;;8954:86;;;:::o;9046:112::-;9129:22;9145:5;9129:22;:::i;:::-;9124:3;9117:35;9046:112;;:::o;9164:214::-;9253:4;9291:2;9280:9;9276:18;9268:26;;9304:67;9368:1;9357:9;9353:17;9344:6;9304:67;:::i;:::-;9164:214;;;;:::o;9384:468::-;9449:6;9457;9506:2;9494:9;9485:7;9481:23;9477:32;9474:119;;;9512:79;;:::i;:::-;9474:119;9632:1;9657:53;9702:7;9693:6;9682:9;9678:22;9657:53;:::i;:::-;9647:63;;9603:117;9759:2;9785:50;9827:7;9818:6;9807:9;9803:22;9785:50;:::i;:::-;9775:60;;9730:115;9384:468;;;;;:::o;9858:329::-;9917:6;9966:2;9954:9;9945:7;9941:23;9937:32;9934:119;;;9972:79;;:::i;:::-;9934:119;10092:1;10117:53;10162:7;10153:6;10142:9;10138:22;10117:53;:::i;:::-;10107:63;;10063:117;9858:329;;;;:::o;10193:911::-;10288:6;10296;10304;10312;10320;10369:3;10357:9;10348:7;10344:23;10340:33;10337:120;;;10376:79;;:::i;:::-;10337:120;10496:1;10521:53;10566:7;10557:6;10546:9;10542:22;10521:53;:::i;:::-;10511:63;;10467:117;10623:2;10649:53;10694:7;10685:6;10674:9;10670:22;10649:53;:::i;:::-;10639:63;;10594:118;10751:2;10777:53;10822:7;10813:6;10802:9;10798:22;10777:53;:::i;:::-;10767:63;;10722:118;10879:2;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10850:118;11007:3;11034:53;11079:7;11070:6;11059:9;11055:22;11034:53;:::i;:::-;11024:63;;10978:119;10193:911;;;;;;;;:::o;11110:759::-;11193:6;11201;11209;11217;11266:3;11254:9;11245:7;11241:23;11237:33;11234:120;;;11273:79;;:::i;:::-;11234:120;11393:1;11418:50;11460:7;11451:6;11440:9;11436:22;11418:50;:::i;:::-;11408:60;;11364:114;11517:2;11543:53;11588:7;11579:6;11568:9;11564:22;11543:53;:::i;:::-;11533:63;;11488:118;11645:2;11671:53;11716:7;11707:6;11696:9;11692:22;11671:53;:::i;:::-;11661:63;;11616:118;11773:2;11799:53;11844:7;11835:6;11824:9;11820:22;11799:53;:::i;:::-;11789:63;;11744:118;11110:759;;;;;;;:::o;11875:118::-;11962:24;11980:5;11962:24;:::i;:::-;11957:3;11950:37;11875:118;;:::o;11999:222::-;12092:4;12130:2;12119:9;12115:18;12107:26;;12143:71;12211:1;12200:9;12196:17;12187:6;12143:71;:::i;:::-;11999:222;;;;:::o;12227:1057::-;12331:6;12339;12347;12355;12363;12371;12420:3;12408:9;12399:7;12395:23;12391:33;12388:120;;;12427:79;;:::i;:::-;12388:120;12547:1;12572:53;12617:7;12608:6;12597:9;12593:22;12572:53;:::i;:::-;12562:63;;12518:117;12674:2;12700:53;12745:7;12736:6;12725:9;12721:22;12700:53;:::i;:::-;12690:63;;12645:118;12802:2;12828:53;12873:7;12864:6;12853:9;12849:22;12828:53;:::i;:::-;12818:63;;12773:118;12930:2;12956:53;13001:7;12992:6;12981:9;12977:22;12956:53;:::i;:::-;12946:63;;12901:118;13058:3;13085:53;13130:7;13121:6;13110:9;13106:22;13085:53;:::i;:::-;13075:63;;13029:119;13187:3;13214:53;13259:7;13250:6;13239:9;13235:22;13214:53;:::i;:::-;13204:63;;13158:119;12227:1057;;;;;;;;:::o;13290:619::-;13367:6;13375;13383;13432:2;13420:9;13411:7;13407:23;13403:32;13400:119;;;13438:79;;:::i;:::-;13400:119;13558:1;13583:53;13628:7;13619:6;13608:9;13604:22;13583:53;:::i;:::-;13573:63;;13529:117;13685:2;13711:53;13756:7;13747:6;13736:9;13732:22;13711:53;:::i;:::-;13701:63;;13656:118;13813:2;13839:53;13884:7;13875:6;13864:9;13860:22;13839:53;:::i;:::-;13829:63;;13784:118;13290:619;;;;;:::o;13915:474::-;13983:6;13991;14040:2;14028:9;14019:7;14015:23;14011:32;14008:119;;;14046:79;;:::i;:::-;14008:119;14166:1;14191:53;14236:7;14227:6;14216:9;14212:22;14191:53;:::i;:::-;14181:63;;14137:117;14293:2;14319:53;14364:7;14355:6;14344:9;14340:22;14319:53;:::i;:::-;14309:63;;14264:118;13915:474;;;;;:::o;14395:60::-;14423:3;14444:5;14437:12;;14395:60;;;:::o;14461:142::-;14511:9;14544:53;14562:34;14571:24;14589:5;14571:24;:::i;:::-;14562:34;:::i;:::-;14544:53;:::i;:::-;14531:66;;14461:142;;;:::o;14609:126::-;14659:9;14692:37;14723:5;14692:37;:::i;:::-;14679:50;;14609:126;;;:::o;14741:144::-;14809:9;14842:37;14873:5;14842:37;:::i;:::-;14829:50;;14741:144;;;:::o;14891:167::-;14996:55;15045:5;14996:55;:::i;:::-;14991:3;14984:68;14891:167;;:::o;15064:258::-;15175:4;15213:2;15202:9;15198:18;15190:26;;15226:89;15312:1;15301:9;15297:17;15288:6;15226:89;:::i;:::-;15064:258;;;;:::o;15328:182::-;15468:34;15464:1;15456:6;15452:14;15445:58;15328:182;:::o;15516:366::-;15658:3;15679:67;15743:2;15738:3;15679:67;:::i;:::-;15672:74;;15755:93;15844:3;15755:93;:::i;:::-;15873:2;15868:3;15864:12;15857:19;;15516:366;;;:::o;15888:419::-;16054:4;16092:2;16081:9;16077:18;16069:26;;16141:9;16135:4;16131:20;16127:1;16116:9;16112:17;16105:47;16169:131;16295:4;16169:131;:::i;:::-;16161:139;;15888:419;;;:::o;16313:180::-;16361:77;16358:1;16351:88;16458:4;16455:1;16448:15;16482:4;16479:1;16472:15;16499:180;16547:77;16544:1;16537:88;16644:4;16641:1;16634:15;16668:4;16665:1;16658:15;16685:233;16724:3;16747:24;16765:5;16747:24;:::i;:::-;16738:33;;16793:66;16786:5;16783:77;16780:103;;16863:18;;:::i;:::-;16780:103;16910:1;16903:5;16899:13;16892:20;;16685:233;;;:::o;16924:180::-;16972:77;16969:1;16962:88;17069:4;17066:1;17059:15;17093:4;17090:1;17083:15;17110:185;17150:1;17167:20;17185:1;17167:20;:::i;:::-;17162:25;;17201:20;17219:1;17201:20;:::i;:::-;17196:25;;17240:1;17230:35;;17245:18;;:::i;:::-;17230:35;17287:1;17284;17280:9;17275:14;;17110:185;;;;:::o;17301:410::-;17341:7;17364:20;17382:1;17364:20;:::i;:::-;17359:25;;17398:20;17416:1;17398:20;:::i;:::-;17393:25;;17453:1;17450;17446:9;17475:30;17493:11;17475:30;:::i;:::-;17464:41;;17654:1;17645:7;17641:15;17638:1;17635:22;17615:1;17608:9;17588:83;17565:139;;17684:18;;:::i;:::-;17565:139;17349:362;17301:410;;;;:::o;17717:143::-;17774:5;17805:6;17799:13;17790:22;;17821:33;17848:5;17821:33;:::i;:::-;17717:143;;;;:::o;17866:351::-;17936:6;17985:2;17973:9;17964:7;17960:23;17956:32;17953:119;;;17991:79;;:::i;:::-;17953:119;18111:1;18136:64;18192:7;18183:6;18172:9;18168:22;18136:64;:::i;:::-;18126:74;;18082:128;17866:351;;;;:::o;18223:332::-;18344:4;18382:2;18371:9;18367:18;18359:26;;18395:71;18463:1;18452:9;18448:17;18439:6;18395:71;:::i;:::-;18476:72;18544:2;18533:9;18529:18;18520:6;18476:72;:::i;:::-;18223:332;;;;;:::o;18561:137::-;18615:5;18646:6;18640:13;18631:22;;18662:30;18686:5;18662:30;:::i;:::-;18561:137;;;;:::o;18704:345::-;18771:6;18820:2;18808:9;18799:7;18795:23;18791:32;18788:119;;;18826:79;;:::i;:::-;18788:119;18946:1;18971:61;19024:7;19015:6;19004:9;19000:22;18971:61;:::i;:::-;18961:71;;18917:125;18704:345;;;;:::o;19055:179::-;19195:31;19191:1;19183:6;19179:14;19172:55;19055:179;:::o;19240:366::-;19382:3;19403:67;19467:2;19462:3;19403:67;:::i;:::-;19396:74;;19479:93;19568:3;19479:93;:::i;:::-;19597:2;19592:3;19588:12;19581:19;;19240:366;;;:::o;19612:419::-;19778:4;19816:2;19805:9;19801:18;19793:26;;19865:9;19859:4;19855:20;19851:1;19840:9;19836:17;19829:47;19893:131;20019:4;19893:131;:::i;:::-;19885:139;;19612:419;;;:::o;20037:225::-;20177:34;20173:1;20165:6;20161:14;20154:58;20246:8;20241:2;20233:6;20229:15;20222:33;20037:225;:::o;20268:366::-;20410:3;20431:67;20495:2;20490:3;20431:67;:::i;:::-;20424:74;;20507:93;20596:3;20507:93;:::i;:::-;20625:2;20620:3;20616:12;20609:19;;20268:366;;;:::o;20640:419::-;20806:4;20844:2;20833:9;20829:18;20821:26;;20893:9;20887:4;20883:20;20879:1;20868:9;20864:17;20857:47;20921:131;21047:4;20921:131;:::i;:::-;20913:139;;20640:419;;;:::o;21065:220::-;21205:34;21201:1;21193:6;21189:14;21182:58;21274:3;21269:2;21261:6;21257:15;21250:28;21065:220;:::o;21291:366::-;21433:3;21454:67;21518:2;21513:3;21454:67;:::i;:::-;21447:74;;21530:93;21619:3;21530:93;:::i;:::-;21648:2;21643:3;21639:12;21632:19;;21291:366;;;:::o;21663:419::-;21829:4;21867:2;21856:9;21852:18;21844:26;;21916:9;21910:4;21906:20;21902:1;21891:9;21887:17;21880:47;21944:131;22070:4;21944:131;:::i;:::-;21936:139;;21663:419;;;:::o;22088:194::-;22128:4;22148:20;22166:1;22148:20;:::i;:::-;22143:25;;22182:20;22200:1;22182:20;:::i;:::-;22177:25;;22226:1;22223;22219:9;22211:17;;22250:1;22244:4;22241:11;22238:37;;;22255:18;;:::i;:::-;22238:37;22088:194;;;;:::o;22288:163::-;22428:15;22424:1;22416:6;22412:14;22405:39;22288:163;:::o;22457:366::-;22599:3;22620:67;22684:2;22679:3;22620:67;:::i;:::-;22613:74;;22696:93;22785:3;22696:93;:::i;:::-;22814:2;22809:3;22805:12;22798:19;;22457:366;;;:::o;22829:419::-;22995:4;23033:2;23022:9;23018:18;23010:26;;23082:9;23076:4;23072:20;23068:1;23057:9;23053:17;23046:47;23110:131;23236:4;23110:131;:::i;:::-;23102:139;;22829:419;;;:::o;23254:170::-;23394:22;23390:1;23382:6;23378:14;23371:46;23254:170;:::o;23430:366::-;23572:3;23593:67;23657:2;23652:3;23593:67;:::i;:::-;23586:74;;23669:93;23758:3;23669:93;:::i;:::-;23787:2;23782:3;23778:12;23771:19;;23430:366;;;:::o;23802:419::-;23968:4;24006:2;23995:9;23991:18;23983:26;;24055:9;24049:4;24045:20;24041:1;24030:9;24026:17;24019:47;24083:131;24209:4;24083:131;:::i;:::-;24075:139;;23802:419;;;:::o;24227:191::-;24267:3;24286:20;24304:1;24286:20;:::i;:::-;24281:25;;24320:20;24338:1;24320:20;:::i;:::-;24315:25;;24363:1;24360;24356:9;24349:16;;24384:3;24381:1;24378:10;24375:36;;;24391:18;;:::i;:::-;24375:36;24227:191;;;;:::o;24424:249::-;24564:34;24560:1;24552:6;24548:14;24541:58;24633:32;24628:2;24620:6;24616:15;24609:57;24424:249;:::o;24679:366::-;24821:3;24842:67;24906:2;24901:3;24842:67;:::i;:::-;24835:74;;24918:93;25007:3;24918:93;:::i;:::-;25036:2;25031:3;25027:12;25020:19;;24679:366;;;:::o;25051:419::-;25217:4;25255:2;25244:9;25240:18;25232:26;;25304:9;25298:4;25294:20;25290:1;25279:9;25275:17;25268:47;25332:131;25458:4;25332:131;:::i;:::-;25324:139;;25051:419;;;:::o;25476:177::-;25616:29;25612:1;25604:6;25600:14;25593:53;25476:177;:::o;25659:366::-;25801:3;25822:67;25886:2;25881:3;25822:67;:::i;:::-;25815:74;;25898:93;25987:3;25898:93;:::i;:::-;26016:2;26011:3;26007:12;26000:19;;25659:366;;;:::o;26031:419::-;26197:4;26235:2;26224:9;26220:18;26212:26;;26284:9;26278:4;26274:20;26270:1;26259:9;26255:17;26248:47;26312:131;26438:4;26312:131;:::i;:::-;26304:139;;26031:419;;;:::o;26456:85::-;26501:7;26530:5;26519:16;;26456:85;;;:::o;26547:158::-;26605:9;26638:61;26656:42;26665:32;26691:5;26665:32;:::i;:::-;26656:42;:::i;:::-;26638:61;:::i;:::-;26625:74;;26547:158;;;:::o;26711:147::-;26806:45;26845:5;26806:45;:::i;:::-;26801:3;26794:58;26711:147;;:::o;26864:114::-;26931:6;26965:5;26959:12;26949:22;;26864:114;;;:::o;26984:184::-;27083:11;27117:6;27112:3;27105:19;27157:4;27152:3;27148:14;27133:29;;26984:184;;;;:::o;27174:132::-;27241:4;27264:3;27256:11;;27294:4;27289:3;27285:14;27277:22;;27174:132;;;:::o;27312:108::-;27389:24;27407:5;27389:24;:::i;:::-;27384:3;27377:37;27312:108;;:::o;27426:179::-;27495:10;27516:46;27558:3;27550:6;27516:46;:::i;:::-;27594:4;27589:3;27585:14;27571:28;;27426:179;;;;:::o;27611:113::-;27681:4;27713;27708:3;27704:14;27696:22;;27611:113;;;:::o;27760:732::-;27879:3;27908:54;27956:5;27908:54;:::i;:::-;27978:86;28057:6;28052:3;27978:86;:::i;:::-;27971:93;;28088:56;28138:5;28088:56;:::i;:::-;28167:7;28198:1;28183:284;28208:6;28205:1;28202:13;28183:284;;;28284:6;28278:13;28311:63;28370:3;28355:13;28311:63;:::i;:::-;28304:70;;28397:60;28450:6;28397:60;:::i;:::-;28387:70;;28243:224;28230:1;28227;28223:9;28218:14;;28183:284;;;28187:14;28483:3;28476:10;;27884:608;;;27760:732;;;;:::o;28498:831::-;28761:4;28799:3;28788:9;28784:19;28776:27;;28813:71;28881:1;28870:9;28866:17;28857:6;28813:71;:::i;:::-;28894:80;28970:2;28959:9;28955:18;28946:6;28894:80;:::i;:::-;29021:9;29015:4;29011:20;29006:2;28995:9;28991:18;28984:48;29049:108;29152:4;29143:6;29049:108;:::i;:::-;29041:116;;29167:72;29235:2;29224:9;29220:18;29211:6;29167:72;:::i;:::-;29249:73;29317:3;29306:9;29302:19;29293:6;29249:73;:::i;:::-;28498:831;;;;;;;;:::o;29335:147::-;29436:11;29473:3;29458:18;;29335:147;;;;:::o;29488:114::-;;:::o;29608:398::-;29767:3;29788:83;29869:1;29864:3;29788:83;:::i;:::-;29781:90;;29880:93;29969:3;29880:93;:::i;:::-;29998:1;29993:3;29989:11;29982:18;;29608:398;;;:::o;30012:379::-;30196:3;30218:147;30361:3;30218:147;:::i;:::-;30211:154;;30382:3;30375:10;;30012:379;;;:::o;30397:807::-;30646:4;30684:3;30673:9;30669:19;30661:27;;30698:71;30766:1;30755:9;30751:17;30742:6;30698:71;:::i;:::-;30779:72;30847:2;30836:9;30832:18;30823:6;30779:72;:::i;:::-;30861:80;30937:2;30926:9;30922:18;30913:6;30861:80;:::i;:::-;30951;31027:2;31016:9;31012:18;31003:6;30951:80;:::i;:::-;31041:73;31109:3;31098:9;31094:19;31085:6;31041:73;:::i;:::-;31124;31192:3;31181:9;31177:19;31168:6;31124:73;:::i;:::-;30397:807;;;;;;;;;:::o;31210:663::-;31298:6;31306;31314;31363:2;31351:9;31342:7;31338:23;31334:32;31331:119;;;31369:79;;:::i;:::-;31331:119;31489:1;31514:64;31570:7;31561:6;31550:9;31546:22;31514:64;:::i;:::-;31504:74;;31460:128;31627:2;31653:64;31709:7;31700:6;31689:9;31685:22;31653:64;:::i;:::-;31643:74;;31598:129;31766:2;31792:64;31848:7;31839:6;31828:9;31824:22;31792:64;:::i;:::-;31782:74;;31737:129;31210:663;;;;;:::o;31879:332::-;32000:4;32038:2;32027:9;32023:18;32015:26;;32051:71;32119:1;32108:9;32104:17;32095:6;32051:71;:::i;:::-;32132:72;32200:2;32189:9;32185:18;32176:6;32132:72;:::i;:::-;31879:332;;;;;:::o;32217:167::-;32357:19;32353:1;32345:6;32341:14;32334:43;32217:167;:::o;32390:366::-;32532:3;32553:67;32617:2;32612:3;32553:67;:::i;:::-;32546:74;;32629:93;32718:3;32629:93;:::i;:::-;32747:2;32742:3;32738:12;32731:19;;32390:366;;;:::o;32762:419::-;32928:4;32966:2;32955:9;32951:18;32943:26;;33015:9;33009:4;33005:20;33001:1;32990:9;32986:17;32979:47;33043:131;33169:4;33043:131;:::i;:::-;33035:139;;32762:419;;;:::o

Swarm Source

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