ETH Price: $3,427.25 (+3.22%)

Token

TRINITY (TRY)
 

Overview

Max Total Supply

1,000,000,000 TRY

Holders

138

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,146,749.939326503 TRY

Value
$0.00
0x70685d02026aff13681e8909ea4ca88034a9c87b
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:
TRINITY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-20
*/

/*

Twitter:
https://twitter.com/Trinity_On_Eth

Telegram:
https://https://t.me/Trinity_On_Eth

Website:
https://trinity-eth.com

Medium:
https://medium.com/@trinityoneth/trinity-61c0ccc5ad6d

Discord:
https://discord.gg/rxyCbcPd

Facebook:
https://facebook.com/TrinityOnEth

Github:
https://github.com/TrinityOnEth/TrinityOnEth

*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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

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



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

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

    string constant _name = "TRINITY";
    string constant _symbol = "TRY";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1000000000 * 10**_decimals;

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

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee             = 1;
    uint256 private marketingFee             = 2;
    uint256 private teamFee                  = 1;
    uint256 private fundFee                  = 1; 
    uint256 private stakingFee               = 0;
    uint256 public totalFee                  = fundFee + marketingFee + liquidityFee + teamFee + stakingFee;
    uint256 private feeDenominator           = 100;

    uint256 sellmultiplier = 850;
    uint256 buymultiplier = 500;
    uint256 transfertax = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private teamFeeReceiver;
    address private fundFeeReceiver;
    address private stakingFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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


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

        isFeeexempt[msg.sender] = true;
        isFeeexempt[teamFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[teamFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x7941eC73893197a84A573135A23f695b0EbB30C5;
        teamFeeReceiver = 0xb5061c87F2b8E9509Eed94Ff6ac438Be2CFE03FE;
        fundFeeReceiver = msg.sender;
        stakingFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

  
    function editAllLimitsDisabled() external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }
      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
          }
        
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && 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 percent = transfertax;

        if(recipient == pair) {
            percent = sellmultiplier;
        } else if(sender == pair) {
            percent = buymultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 stakingTokens = feeAmount.mul(stakingFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(stakingTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[stakingFeeReceiver] = _balances[stakingFeeReceiver].add(stakingTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(stakingTokens > 0){
            _totalSupply = _totalSupply.sub(stakingTokens);
            emit Transfer(sender, ZERO, stakingTokens);  
        
        }

        return amount.sub(feeAmount);
    }

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

  
    function manualSend() external { 
    payable(autoLiquidityReceiver).transfer(address(this).balance);
        
    }
  
    function removeForeignERC20(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function editAllocation(uint256 _isbuy, uint256 _issell, uint256 _wallet) external onlyOwner {
        buymultiplier = _isbuy;
        sellmultiplier = _issell;
        transfertax = _wallet;    
          
    }

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

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

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

     function editBacking(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function airdropHolders(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 TOTAL = 0;

    for(uint i=0; i < addresses.length; i++){
        TOTAL = TOTAL + tokens[i];
    }

    require(balanceOf(from) >= TOTAL, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}
    
    
               
    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 amountETHkongZillaDevelopment = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHfund = amountETH.mul(fundFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(teamFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHkongZillaDevelopment}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(fundFeeReceiver).call{value: amountETHfund}("");
        
        tmpSuccess = false;

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

    
    function editOverallFee(uint256 _liquidityFee, uint256 _fundFee, uint256 _marketingFee, uint256 _teamFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        fundFee = _fundFee;
        marketingFee = _marketingFee;
        teamFee = _teamFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_fundFee).add(_marketingFee).add(_teamFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function editReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _teamFeeReceiver, address _stakingFeeReceiver, address _fundFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        fundFeeReceiver = _fundFeeReceiver;
    }

    function setNumTokensToSwapAt(uint256 _amount) external onlyOwner {
        swapThreshold = _amount;
    }

     function disableContractSells(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
        
    }
       
    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

[{"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":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdropHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"disableContractSells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"editAllLimitsDisabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_isbuy","type":"uint256"},{"internalType":"uint256","name":"_issell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"editAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"editBacking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"editMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_fundFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"editOverallFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_fundFeeReceiver","type":"address"}],"name":"editReceivers","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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_amount","type":"uint256"}],"name":"setNumTokensToSwapAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d1565b6200004290633b9aca00620006e2565b600581905562000063906064906200005c906003620004a1565b9062000538565b6006556005546200007e906064906200005c906003620004a1565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000b59190620006fc565b620000c19190620006fc565b620000cd9190620006fc565b620000d99190620006fc565b601155606460128190556103526013556101f46014556103e86015819055601e601b55601c91909155601f805461ffff60a01b1916600160a81b1790556005546200012690603c620006e2565b62000132919062000712565b6020553480156200014257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000228919062000735565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000735565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000325919062000735565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616737941ec73893197a84a573135a23f695b0ebb30c5179094558554851673b5061c87f2b8e9509eed94ff6ac438be2cfe03fe1790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b0565b600082600003620004b55750600062000532565b6000620004c38385620006e2565b905082620004d2858362000712565b146200052f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200052f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058260201b60201c565b60008183620005a65760405162461bcd60e51b815260040162000526919062000760565b506000620005b5848662000712565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000615578160001904821115620005f957620005f9620005be565b808516156200060757918102915b93841c9390800290620005d9565b509250929050565b6000826200062e5750600162000532565b816200063d5750600062000532565b8160018114620006565760028114620006615762000681565b600191505062000532565b60ff841115620006755762000675620005be565b50506001821b62000532565b5060208310610133831016604e8410600b8410161715620006a6575081810a62000532565b620006b28383620005d4565b8060001904821115620006c957620006c9620005be565b029392505050565b60006200052f60ff8416836200061d565b8082028115828204841417620005325762000532620005be565b80820180821115620005325762000532620005be565b6000826200073057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074857600080fd5b81516001600160a01b03811681146200052f57600080fd5b600060208083528351808285015260005b818110156200078f5785810183015185820160400152820162000771565b506000604082860101526040601f19601f8301168501019250505092915050565b6122a880620007c06000396000f3fe6080604052600436106102345760003560e01c8063893d20e81161012e578063b2bdfa7b116100ab578063ed85192c1161006f578063ed85192c146106c0578063f2fde38b146106d5578063f360c03c146106f5578063f429389014610715578063f887ea401461072a57600080fd5b8063b2bdfa7b14610605578063c9567bf914610625578063d51ed1c81461063a578063d61d4e831461065a578063dd62ed3e1461067a57600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610565578063a9059cbb14610585578063aa0c6808146105a5578063afcd17a6146105c5578063b11f0f03146105e557600080fd5b8063893d20e8146104a95780638afe5fcb146104db5780638da5cb5b146104fb57806390a053351461051957806395d89b411461053957600080fd5b80632b112e49116101bc5780636ddd1713116101805780636ddd17131461041157806370a0823114610432578063715018a61461046857806378109e541461047d5780637d1db4a51461049357600080fd5b80632b112e4914610380578063313ce5671461039557806340b0ba06146103b157806342b2a4ef146103d1578063571ac8b0146103f157600080fd5b8063095ea7b311610203578063095ea7b3146102f55780631161ae391461031557806318160ddd146103355780631df4ccfc1461034a57806323b872dd1461036057600080fd5b80630445b66714610240578063051274a51461026957806306fdde031461028b57806308fd3d05146102c457600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660205481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b50610289610284366004611d7f565b61074a565b005b34801561029757600080fd5b506040805180820190915260078152665452494e49545960c81b60208201525b6040516102609190611d98565b3480156102d057600080fd5b50601f546102e590600160a01b900460ff1681565b6040519015158152602001610260565b34801561030157600080fd5b506102e5610310366004611e02565b6107ac565b34801561032157600080fd5b506102e5610330366004611e2c565b610819565b34801561034157600080fd5b50600554610256565b34801561035657600080fd5b5061025660115481565b34801561036c57600080fd5b506102e561037b366004611e4e565b61082d565b34801561038c57600080fd5b506102566108ef565b3480156103a157600080fd5b5060405160098152602001610260565b3480156103bd57600080fd5b506102896103cc366004611d7f565b610941565b3480156103dd57600080fd5b506102896103ec366004611d7f565b610970565b3480156103fd57600080fd5b506102e561040c366004611e8a565b6109c9565b34801561041d57600080fd5b50601f546102e590600160a81b900460ff1681565b34801561043e57600080fd5b5061025661044d366004611e8a565b6001600160a01b031660009081526008602052604090205490565b34801561047457600080fd5b506102896109d7565b34801561048957600080fd5b5061025660075481565b34801561049f57600080fd5b5061025660065481565b3480156104b557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b3480156104e757600080fd5b506102e56104f6366004611e02565b610a4b565b34801561050757600080fd5b506000546001600160a01b03166104c3565b34801561052557600080fd5b50610289610534366004611ea5565b610b37565b34801561054557600080fd5b5060408051808201909152600381526254525960e81b60208201526102b7565b34801561057157600080fd5b50601f546104c3906001600160a01b031681565b34801561059157600080fd5b506102e56105a0366004611e02565b610bc0565b3480156105b157600080fd5b506102896105c0366004611f18565b610bcd565b3480156105d157600080fd5b506102896105e0366004611e2c565b610c15565b3480156105f157600080fd5b50610289610600366004611f35565b610c4a565b34801561061157600080fd5b506000546104c3906001600160a01b031681565b34801561063157600080fd5b50610289610d10565b34801561064657600080fd5b50610256610655366004611d7f565b610d4f565b34801561066657600080fd5b50610289610675366004611f78565b610d96565b34801561068657600080fd5b50610256610695366004611fa4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106cc57600080fd5b50610289610dce565b3480156106e157600080fd5b506102896106f0366004611e8a565b610e05565b34801561070157600080fd5b50610289610710366004612023565b610eef565b34801561072157600080fd5b50610289611103565b34801561073657600080fd5b50601d546104c3906001600160a01b031681565b6000546001600160a01b0316331461077d5760405162461bcd60e51b8152600401610774906120a4565b60405180910390fd5b600181101561078b57600080fd5b6103e88160055461079c91906120ef565b6107a69190612106565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108079086815260200190565b60405180910390a35060015b92915050565b60008261082583610d4f565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108da576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b591849061113f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e5848484611179565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461093c906003546001600160a01b031660009081526008602052604090205461093690600554906114df565b906114df565b905090565b6000546001600160a01b0316331461096b5760405162461bcd60e51b8152600401610774906120a4565b602055565b6000546001600160a01b0316331461099a5760405162461bcd60e51b8152600401610774906120a4565b60018110156109a857600080fd5b6103e8816005546109b991906120ef565b6109c39190612106565b60065550565b6000610813826000196107ac565b6000546001600160a01b03163314610a015760405162461bcd60e51b8152600401610774906120a4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610ac0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190612128565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e89190612141565b6000546001600160a01b03163314610b615760405162461bcd60e51b8152600401610774906120a4565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b60006108e8338484611179565b6000546001600160a01b03163314610bf75760405162461bcd60e51b8152600401610774906120a4565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b8152600401610774906120a4565b601b91909155601c55565b6000546001600160a01b03163314610c745760405162461bcd60e51b8152600401610774906120a4565b600c869055600f859055600d849055600e8390556010829055610ca582610c9f858188818c8c611521565b90611521565b6011556012819055610cb8600582612106565b60115410610d085760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610774565b505050505050565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610774906120a4565b601f805460ff60a01b1916600160a01b179055565b6000610813610d5c6108ef565b601f546001600160a01b0316600090815260086020526040902054610d9090610d89906002905b90611580565b8590611580565b90611602565b6000546001600160a01b03163314610dc05760405162461bcd60e51b8152600401610774906120a4565b601492909255601355601555565b6000546001600160a01b03163314610df85760405162461bcd60e51b8152600401610774906120a4565b6005546006819055600755565b6000546001600160a01b03163314610e2f5760405162461bcd60e51b8152600401610774906120a4565b6001600160a01b038116610e945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b8152600401610774906120a4565b6101f58310610f805760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610774565b828114610fe05760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610774565b6000805b8481101561102457838382818110610ffe57610ffe61215e565b90506020020135826110109190612174565b91508061101c81612187565b915050610fe4565b5080611045876001600160a01b031660009081526008602052604090205490565b10156110935760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610774565b60005b848110156110fa576110e7878787848181106110b4576110b461215e565b90506020020160208101906110c99190611e8a565b8686858181106110db576110db61215e565b90506020020135611644565b50806110f281612187565b915050611096565b50505050505050565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50565b600081848411156111635760405162461bcd60e51b81526004016107749190611d98565b50600061117084866121a0565b95945050505050565b60215460009060ff161561119957611192848484611644565b90506108e8565b6001600160a01b03841660009081526001602052604090205460ff161580156111db57506001600160a01b03831660009081526001602052604090205460ff16155b1561123057601f54600160a01b900460ff166112305760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610774565b6001600160a01b03841660009081526001602052604090205460ff1615801561126257506001600160a01b0383163014155b801561127c57506003546001600160a01b03848116911614155b80156112965750601f546001600160a01b03848116911614155b80156112b05750601a546001600160a01b03848116911614155b80156112ca57506017546001600160a01b03848116911614155b80156112ef57506001600160a01b0383166000908152600b602052604090205460ff16155b15611390576001600160a01b03831660009081526008602052604090205460075461131a8483612174565b111561138e5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610774565b505b61139a8483611718565b6113a2611785565b156113af576113af6117dd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461140191849061113f565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061144e57506001600160a01b0384166000908152600a602052604090205460ff165b6114625761145d858486611bc4565b611464565b825b6001600160a01b03851660009081526008602052604090205490915061148a9082611521565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612253833981519152906114cc9085815260200190565b60405180910390a3506001949350505050565b60006108e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061113f565b60008061152e8385612174565b9050838110156108e85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610774565b60008260000361159257506000610813565b600061159e83856120ef565b9050826115ab8583612106565b146108e85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610774565b60006108e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d51565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461169591849061113f565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546116c49083611521565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612253833981519152906117069086815260200190565b60405180910390a35060019392505050565b6006548111158061174157506001600160a01b0382166000908152600b602052604090205460ff165b6117815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610774565b5050565b601f546000906001600160a01b031633148015906117a6575060215460ff16155b80156117bb5750601f54600160a81b900460ff165b801561093c575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c546000916117fc91610819565b61180857600c5461180b565b60005b9050600061182f6002610d90601154610d908660205461158090919063ffffffff16565b90506000611848826020546114df90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118825761188261215e565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118b3576118b361215e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906118fd9086906000908790309042906004016121b3565b600060405180830381600087803b15801561191757600080fd5b505af115801561192b573d6000803e3d6000fd5b50505050600061194482476114df90919063ffffffff16565b9050600061195f611956886002611602565b601154906114df565b905060006119746002610d908481878d611580565b9050600061199183610d90600d548761158090919063ffffffff16565b905060006119ae84610d90600f548861158090919063ffffffff16565b905060006119cb85610d90600e548961158090919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a1d576040519150601f19603f3d011682016040523d82523d6000602084013e611a22565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a72576040519150601f19603f3d011682016040523d82523d6000602084013e611a77565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611ac7576040519150601f19603f3d011682016040523d82523d6000602084013e611acc565b606091505b5060009250508b159050611bac57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b6f9190612224565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b0390811690841603611bea5750601354611c05565b601f546001600160a01b0390811690861603611c0557506014545b6000611c326012546064611c1991906120ef565b610d9084610d836011548a61158090919063ffffffff16565b90506000611c51601154610d906010548561158090919063ffffffff16565b90506000611c5f83836114df565b30600090815260086020526040902054909150611c7c9082611521565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611caa9083611521565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612253833981519152910160405180910390a38115611d3b57600554611d0490836114df565b6005556004546040518381526001600160a01b03918216918a16906000805160206122538339815191529060200160405180910390a35b611d4587846114df565b98975050505050505050565b60008183611d725760405162461bcd60e51b81526004016107749190611d98565b5060006111708486612106565b600060208284031215611d9157600080fd5b5035919050565b600060208083528351808285015260005b81811015611dc557858101830151858201604001528201611da9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611dfd57600080fd5b919050565b60008060408385031215611e1557600080fd5b611e1e83611de6565b946020939093013593505050565b60008060408385031215611e3f57600080fd5b50508035926020909101359150565b600080600060608486031215611e6357600080fd5b611e6c84611de6565b9250611e7a60208501611de6565b9150604084013590509250925092565b600060208284031215611e9c57600080fd5b6108e882611de6565b600080600080600060a08688031215611ebd57600080fd5b611ec686611de6565b9450611ed460208701611de6565b9350611ee260408701611de6565b9250611ef060608701611de6565b9150611efe60808701611de6565b90509295509295909350565b801515811461113c57600080fd5b600060208284031215611f2a57600080fd5b81356108e881611f0a565b60008060008060008060c08789031215611f4e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215611f8d57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fb757600080fd5b611fc083611de6565b9150611fce60208401611de6565b90509250929050565b60008083601f840112611fe957600080fd5b50813567ffffffffffffffff81111561200157600080fd5b6020830191508360208260051b850101111561201c57600080fd5b9250929050565b60008060008060006060868803121561203b57600080fd5b61204486611de6565b9450602086013567ffffffffffffffff8082111561206157600080fd5b61206d89838a01611fd7565b9096509450604088013591508082111561208657600080fd5b5061209388828901611fd7565b969995985093965092949392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610813576108136120d9565b60008261212357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561213a57600080fd5b5051919050565b60006020828403121561215357600080fd5b81516108e881611f0a565b634e487b7160e01b600052603260045260246000fd5b80820180821115610813576108136120d9565b600060018201612199576121996120d9565b5060010190565b81810381811115610813576108136120d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122035784516001600160a01b0316835293830193918301916001016121de565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561223957600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e67960f80578424851ac41cbd54e871cb968d6b76460471d53eec6090201dc2964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063893d20e81161012e578063b2bdfa7b116100ab578063ed85192c1161006f578063ed85192c146106c0578063f2fde38b146106d5578063f360c03c146106f5578063f429389014610715578063f887ea401461072a57600080fd5b8063b2bdfa7b14610605578063c9567bf914610625578063d51ed1c81461063a578063d61d4e831461065a578063dd62ed3e1461067a57600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610565578063a9059cbb14610585578063aa0c6808146105a5578063afcd17a6146105c5578063b11f0f03146105e557600080fd5b8063893d20e8146104a95780638afe5fcb146104db5780638da5cb5b146104fb57806390a053351461051957806395d89b411461053957600080fd5b80632b112e49116101bc5780636ddd1713116101805780636ddd17131461041157806370a0823114610432578063715018a61461046857806378109e541461047d5780637d1db4a51461049357600080fd5b80632b112e4914610380578063313ce5671461039557806340b0ba06146103b157806342b2a4ef146103d1578063571ac8b0146103f157600080fd5b8063095ea7b311610203578063095ea7b3146102f55780631161ae391461031557806318160ddd146103355780631df4ccfc1461034a57806323b872dd1461036057600080fd5b80630445b66714610240578063051274a51461026957806306fdde031461028b57806308fd3d05146102c457600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660205481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b50610289610284366004611d7f565b61074a565b005b34801561029757600080fd5b506040805180820190915260078152665452494e49545960c81b60208201525b6040516102609190611d98565b3480156102d057600080fd5b50601f546102e590600160a01b900460ff1681565b6040519015158152602001610260565b34801561030157600080fd5b506102e5610310366004611e02565b6107ac565b34801561032157600080fd5b506102e5610330366004611e2c565b610819565b34801561034157600080fd5b50600554610256565b34801561035657600080fd5b5061025660115481565b34801561036c57600080fd5b506102e561037b366004611e4e565b61082d565b34801561038c57600080fd5b506102566108ef565b3480156103a157600080fd5b5060405160098152602001610260565b3480156103bd57600080fd5b506102896103cc366004611d7f565b610941565b3480156103dd57600080fd5b506102896103ec366004611d7f565b610970565b3480156103fd57600080fd5b506102e561040c366004611e8a565b6109c9565b34801561041d57600080fd5b50601f546102e590600160a81b900460ff1681565b34801561043e57600080fd5b5061025661044d366004611e8a565b6001600160a01b031660009081526008602052604090205490565b34801561047457600080fd5b506102896109d7565b34801561048957600080fd5b5061025660075481565b34801561049f57600080fd5b5061025660065481565b3480156104b557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b3480156104e757600080fd5b506102e56104f6366004611e02565b610a4b565b34801561050757600080fd5b506000546001600160a01b03166104c3565b34801561052557600080fd5b50610289610534366004611ea5565b610b37565b34801561054557600080fd5b5060408051808201909152600381526254525960e81b60208201526102b7565b34801561057157600080fd5b50601f546104c3906001600160a01b031681565b34801561059157600080fd5b506102e56105a0366004611e02565b610bc0565b3480156105b157600080fd5b506102896105c0366004611f18565b610bcd565b3480156105d157600080fd5b506102896105e0366004611e2c565b610c15565b3480156105f157600080fd5b50610289610600366004611f35565b610c4a565b34801561061157600080fd5b506000546104c3906001600160a01b031681565b34801561063157600080fd5b50610289610d10565b34801561064657600080fd5b50610256610655366004611d7f565b610d4f565b34801561066657600080fd5b50610289610675366004611f78565b610d96565b34801561068657600080fd5b50610256610695366004611fa4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106cc57600080fd5b50610289610dce565b3480156106e157600080fd5b506102896106f0366004611e8a565b610e05565b34801561070157600080fd5b50610289610710366004612023565b610eef565b34801561072157600080fd5b50610289611103565b34801561073657600080fd5b50601d546104c3906001600160a01b031681565b6000546001600160a01b0316331461077d5760405162461bcd60e51b8152600401610774906120a4565b60405180910390fd5b600181101561078b57600080fd5b6103e88160055461079c91906120ef565b6107a69190612106565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108079086815260200190565b60405180910390a35060015b92915050565b60008261082583610d4f565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108da576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b591849061113f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e5848484611179565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461093c906003546001600160a01b031660009081526008602052604090205461093690600554906114df565b906114df565b905090565b6000546001600160a01b0316331461096b5760405162461bcd60e51b8152600401610774906120a4565b602055565b6000546001600160a01b0316331461099a5760405162461bcd60e51b8152600401610774906120a4565b60018110156109a857600080fd5b6103e8816005546109b991906120ef565b6109c39190612106565b60065550565b6000610813826000196107ac565b6000546001600160a01b03163314610a015760405162461bcd60e51b8152600401610774906120a4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610ac0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190612128565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e89190612141565b6000546001600160a01b03163314610b615760405162461bcd60e51b8152600401610774906120a4565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b60006108e8338484611179565b6000546001600160a01b03163314610bf75760405162461bcd60e51b8152600401610774906120a4565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b8152600401610774906120a4565b601b91909155601c55565b6000546001600160a01b03163314610c745760405162461bcd60e51b8152600401610774906120a4565b600c869055600f859055600d849055600e8390556010829055610ca582610c9f858188818c8c611521565b90611521565b6011556012819055610cb8600582612106565b60115410610d085760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610774565b505050505050565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610774906120a4565b601f805460ff60a01b1916600160a01b179055565b6000610813610d5c6108ef565b601f546001600160a01b0316600090815260086020526040902054610d9090610d89906002905b90611580565b8590611580565b90611602565b6000546001600160a01b03163314610dc05760405162461bcd60e51b8152600401610774906120a4565b601492909255601355601555565b6000546001600160a01b03163314610df85760405162461bcd60e51b8152600401610774906120a4565b6005546006819055600755565b6000546001600160a01b03163314610e2f5760405162461bcd60e51b8152600401610774906120a4565b6001600160a01b038116610e945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b8152600401610774906120a4565b6101f58310610f805760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610774565b828114610fe05760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610774565b6000805b8481101561102457838382818110610ffe57610ffe61215e565b90506020020135826110109190612174565b91508061101c81612187565b915050610fe4565b5080611045876001600160a01b031660009081526008602052604090205490565b10156110935760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610774565b60005b848110156110fa576110e7878787848181106110b4576110b461215e565b90506020020160208101906110c99190611e8a565b8686858181106110db576110db61215e565b90506020020135611644565b50806110f281612187565b915050611096565b50505050505050565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50565b600081848411156111635760405162461bcd60e51b81526004016107749190611d98565b50600061117084866121a0565b95945050505050565b60215460009060ff161561119957611192848484611644565b90506108e8565b6001600160a01b03841660009081526001602052604090205460ff161580156111db57506001600160a01b03831660009081526001602052604090205460ff16155b1561123057601f54600160a01b900460ff166112305760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610774565b6001600160a01b03841660009081526001602052604090205460ff1615801561126257506001600160a01b0383163014155b801561127c57506003546001600160a01b03848116911614155b80156112965750601f546001600160a01b03848116911614155b80156112b05750601a546001600160a01b03848116911614155b80156112ca57506017546001600160a01b03848116911614155b80156112ef57506001600160a01b0383166000908152600b602052604090205460ff16155b15611390576001600160a01b03831660009081526008602052604090205460075461131a8483612174565b111561138e5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610774565b505b61139a8483611718565b6113a2611785565b156113af576113af6117dd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461140191849061113f565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061144e57506001600160a01b0384166000908152600a602052604090205460ff165b6114625761145d858486611bc4565b611464565b825b6001600160a01b03851660009081526008602052604090205490915061148a9082611521565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612253833981519152906114cc9085815260200190565b60405180910390a3506001949350505050565b60006108e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061113f565b60008061152e8385612174565b9050838110156108e85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610774565b60008260000361159257506000610813565b600061159e83856120ef565b9050826115ab8583612106565b146108e85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610774565b60006108e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d51565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461169591849061113f565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546116c49083611521565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612253833981519152906117069086815260200190565b60405180910390a35060019392505050565b6006548111158061174157506001600160a01b0382166000908152600b602052604090205460ff165b6117815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610774565b5050565b601f546000906001600160a01b031633148015906117a6575060215460ff16155b80156117bb5750601f54600160a81b900460ff165b801561093c575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c546000916117fc91610819565b61180857600c5461180b565b60005b9050600061182f6002610d90601154610d908660205461158090919063ffffffff16565b90506000611848826020546114df90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118825761188261215e565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118b3576118b361215e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906118fd9086906000908790309042906004016121b3565b600060405180830381600087803b15801561191757600080fd5b505af115801561192b573d6000803e3d6000fd5b50505050600061194482476114df90919063ffffffff16565b9050600061195f611956886002611602565b601154906114df565b905060006119746002610d908481878d611580565b9050600061199183610d90600d548761158090919063ffffffff16565b905060006119ae84610d90600f548861158090919063ffffffff16565b905060006119cb85610d90600e548961158090919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a1d576040519150601f19603f3d011682016040523d82523d6000602084013e611a22565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a72576040519150601f19603f3d011682016040523d82523d6000602084013e611a77565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611ac7576040519150601f19603f3d011682016040523d82523d6000602084013e611acc565b606091505b5060009250508b159050611bac57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b6f9190612224565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b0390811690841603611bea5750601354611c05565b601f546001600160a01b0390811690861603611c0557506014545b6000611c326012546064611c1991906120ef565b610d9084610d836011548a61158090919063ffffffff16565b90506000611c51601154610d906010548561158090919063ffffffff16565b90506000611c5f83836114df565b30600090815260086020526040902054909150611c7c9082611521565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611caa9083611521565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612253833981519152910160405180910390a38115611d3b57600554611d0490836114df565b6005556004546040518381526001600160a01b03918216918a16906000805160206122538339815191529060200160405180910390a35b611d4587846114df565b98975050505050505050565b60008183611d725760405162461bcd60e51b81526004016107749190611d98565b5060006111708486612106565b600060208284031215611d9157600080fd5b5035919050565b600060208083528351808285015260005b81811015611dc557858101830151858201604001528201611da9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611dfd57600080fd5b919050565b60008060408385031215611e1557600080fd5b611e1e83611de6565b946020939093013593505050565b60008060408385031215611e3f57600080fd5b50508035926020909101359150565b600080600060608486031215611e6357600080fd5b611e6c84611de6565b9250611e7a60208501611de6565b9150604084013590509250925092565b600060208284031215611e9c57600080fd5b6108e882611de6565b600080600080600060a08688031215611ebd57600080fd5b611ec686611de6565b9450611ed460208701611de6565b9350611ee260408701611de6565b9250611ef060608701611de6565b9150611efe60808701611de6565b90509295509295909350565b801515811461113c57600080fd5b600060208284031215611f2a57600080fd5b81356108e881611f0a565b60008060008060008060c08789031215611f4e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215611f8d57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fb757600080fd5b611fc083611de6565b9150611fce60208401611de6565b90509250929050565b60008083601f840112611fe957600080fd5b50813567ffffffffffffffff81111561200157600080fd5b6020830191508360208260051b850101111561201c57600080fd5b9250929050565b60008060008060006060868803121561203b57600080fd5b61204486611de6565b9450602086013567ffffffffffffffff8082111561206157600080fd5b61206d89838a01611fd7565b9096509450604088013591508082111561208657600080fd5b5061209388828901611fd7565b969995985093965092949392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610813576108136120d9565b60008261212357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561213a57600080fd5b5051919050565b60006020828403121561215357600080fd5b81516108e881611f0a565b634e487b7160e01b600052603260045260246000fd5b80820180821115610813576108136120d9565b600060018201612199576121996120d9565b5060010190565b81810381811115610813576108136120d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122035784516001600160a01b0316835293830193918301916001016121de565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561223957600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e67960f80578424851ac41cbd54e871cb968d6b76460471d53eec6090201dc2964736f6c63430008130033

Deployed Bytecode Sourcemap

5336:13616:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7098:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7098:55:0;;;;;;;;13893:207;;;;;;;;;;-1:-1:-1;13893:207:0;;;;;:::i;:::-;;:::i;:::-;;8638:80;;;;;;;;;;-1:-1:-1;8710:5:0;;;;;;;;;;;;-1:-1:-1;;;8710:5:0;;;;8638:80;;;;;;;:::i;7018:31::-;;;;;;;;;;-1:-1:-1;7018:31:0;;;;-1:-1:-1;;;7018:31:0;;;;;;;;;1099:14:1;;1092:22;1074:41;;1062:2;1047:18;7018:31:0;934:187:1;9060:216:0;;;;;;;;;;-1:-1:-1;9060:216:0;;;;;:::i;:::-;;:::i;18728:150::-;;;;;;;;;;-1:-1:-1;18728:150:0;;;;;:::i;:::-;;:::i;8368:88::-;;;;;;;;;;-1:-1:-1;8441:12:0;;8368:88;;6352:103;;;;;;;;;;;;;;;;9578:370;;;;;;;;;;-1:-1:-1;9578:370:0;;;;;:::i;:::-;;:::i;18403:142::-;;;;;;;;;;;;;:::i;8462:80::-;;;;;;;;;;-1:-1:-1;8462:80:0;;5673:1;2291:36:1;;2279:2;2264:18;8462:80:0;2149:184:1;18156:108:0;;;;;;;;;;-1:-1:-1;18156:108:0;;;;;:::i;:::-;;:::i;14108:185::-;;;;;;;;;;-1:-1:-1;14108:185:0;;;;;:::i;:::-;;:::i;9284:122::-;;;;;;;;;;-1:-1:-1;9284:122:0;;;;;:::i;:::-;;:::i;7061:30::-;;;;;;;;;;-1:-1:-1;7061:30:0;;;;-1:-1:-1;;;7061:30:0;;;;;;8808:105;;;;;;;;;;-1:-1:-1;8808:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8892:18:0;8874:7;8892:18;;;:9;:18;;;;;;;8808:105;3393:148;;;;;;;;;;;;;:::i;5811:61::-;;;;;;;;;;;;;;;;5746:58;;;;;;;;;;;;;;;;8724:78;;;;;;;;;;-1:-1:-1;8776:7:0;3244:6;-1:-1:-1;;;;;3244:6:0;8724:78;;;-1:-1:-1;;;;;2693:32:1;;;2675:51;;2663:2;2648:18;8724:78:0;2529:203:1;13374:285:0;;;;;;;;;;-1:-1:-1;13374:285:0;;;;;:::i;:::-;;:::i;3179:79::-;;;;;;;;;;-1:-1:-1;3217:7:0;3244:6;-1:-1:-1;;;;;3244:6:0;3179:79;;17701:447;;;;;;;;;;-1:-1:-1;17701:447:0;;;;;:::i;:::-;;:::i;8548:84::-;;;;;;;;;;-1:-1:-1;8622:7:0;;;;;;;;;;;;-1:-1:-1;;;8622:7:0;;;;8548:84;;6986:19;;;;;;;;;;-1:-1:-1;6986:19:0;;;;-1:-1:-1;;;;;6986:19:0;;;9414:156;;;;;;;;;;-1:-1:-1;9414:156:0;;;;;:::i;:::-;;:::i;18273:115::-;;;;;;;;;;-1:-1:-1;18273:115:0;;;;;:::i;:::-;;:::i;14402:175::-;;;;;;;;;;-1:-1:-1;14402:175:0;;;;;:::i;:::-;;:::i;17118:575::-;;;;;;;;;;-1:-1:-1;17118:575:0;;;;;:::i;:::-;;:::i;2799:21::-;;;;;;;;;;-1:-1:-1;2799:21:0;;;;-1:-1:-1;;;;;2799:21:0;;;14301:92;;;;;;;;;;;;;:::i;18553:167::-;;;;;;;;;;-1:-1:-1;18553:167:0;;;;;:::i;:::-;;:::i;13667:217::-;;;;;;;;;;-1:-1:-1;13667:217:0;;;;;:::i;:::-;;:::i;8919:133::-;;;;;;;;;;-1:-1:-1;8919:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9021:19:0;;;9003:7;9021:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8919:133;9960:147;;;;;;;;;;;;;:::i;3549:244::-;;;;;;;;;;-1:-1:-1;3549:244:0;;;;;:::i;:::-;;:::i;14585:599::-;;;;;;;;;;-1:-1:-1;14585:599:0;;;;;:::i;:::-;;:::i;13245:119::-;;;;;;;;;;;;;:::i;6916:24::-;;;;;;;;;;-1:-1:-1;6916:24:0;;;;-1:-1:-1;;;;;6916:24:0;;;13893:207;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;;;;;;;;;14003:1:::1;13985:14;:19;;13977:28;;;::::0;::::1;;14070:4;14051:14;14036:12;;:29;;;;:::i;:::-;14035:39;;;;:::i;:::-;14017:15;:57:::0;-1:-1:-1;13893:207:0:o;9060:216::-;9164:10;9135:4;9152:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9152:32:0;;;;;;;;;;:41;;;9209:37;9135:4;;9152:32;;9209:37;;;;9187:6;160:25:1;;148:2;133:18;;14:177;9209:37:0;;;;;;;;-1:-1:-1;9264:4:0;9060:216;;;;;:::o;18728:150::-;18808:4;18864:6;18832:29;18852:8;18832:19;:29::i;:::-;:38;;18728:150;-1:-1:-1;;;18728:150:0:o;9578:370::-;-1:-1:-1;;;;;9698:19:0;;9678:4;9698:19;;;:11;:19;;;;;;;;9718:10;9698:31;;;;;;;;-1:-1:-1;;9698:52:0;9695:186;;9800:69;;;;;;;;;;;-1:-1:-1;;;9800:69:0;;;;;;;;-1:-1:-1;;;;;9800:19:0;;-1:-1:-1;9800:19:0;;;:11;:19;;;;;9820:10;9800:31;;;;;;;;;;:69;;9836:6;;9800:35;:69::i;:::-;-1:-1:-1;;;;;9766:19:0;;;;;;:11;:19;;;;;;;;9786:10;9766:31;;;;;;;:103;9695:186;9900:40;9914:6;9922:9;9933:6;9900:13;:40::i;:::-;9893:47;;9578:370;;;;;;:::o;18403:142::-;18531:4;;-1:-1:-1;;;;;18531:4:0;18456:7;8892:18;;;:9;:18;;;;;;18483:54;;18510:4;;-1:-1:-1;;;;;18510:4:0;8874:7;8892:18;;;:9;:18;;;;;;18483:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18476:61;;18403:142;:::o;18156:108::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;18233:13:::1;:23:::0;18156:108::o;14108:185::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;14219:1:::1;14203:12;:17;;14195:26;;;::::0;::::1;;14281:4;14264:12;14249;;:27;;;;:::i;:::-;14248:37;;;;:::i;:::-;14233:12;:52:::0;-1:-1:-1;14108:185:0:o;9284:122::-;9339:4;9363:35;9371:7;-1:-1:-1;;9363:7:0;:35::i;3393:148::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;3500:1:::1;3484:6:::0;;3463:40:::1;::::0;-1:-1:-1;;;;;3484:6:0;;::::1;::::0;3463:40:::1;::::0;3500:1;;3463:40:::1;3531:1;3514:19:::0;;-1:-1:-1;;;;;;3514:19:0::1;::::0;;3393:148::o;13374:285::-;13456:4;13483:6;13493:1;13483:11;13480:95;;13519:44;;-1:-1:-1;;;13519:44:0;;13557:4;13519:44;;;2675:51:1;-1:-1:-1;;;;;13519:29:0;;;;;2648:18:1;;13519:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13510:53;;13480:95;13621:21;;13592:59;;-1:-1:-1;;;13592:59:0;;-1:-1:-1;;;;;13621:21:0;;;13592:59;;;7410:51:1;7477:18;;;7470:34;;;13592:28:0;;;;;;7383:18:1;;13592:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17701:447::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;17898:21:::1;:46:::0;;-1:-1:-1;;;;;;17898:46:0;;::::1;-1:-1:-1::0;;;;;17898:46:0;;::::1;;::::0;;;17955:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18010:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18055:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18106:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17701:447::o;9414:156::-;9494:4;9518:44;9532:10;9544:9;9555:6;9518:13;:44::i;18273:115::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;18348:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18348:22:0::1;-1:-1:-1::0;;;;18348:22:0;;::::1;::::0;;;::::1;::::0;;18273:115::o;14402:175::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;14492:15:::1;:25:::0;;;;14528:26:::1;:41:::0;14402:175::o;17118:575::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;17300:12:::1;:28:::0;;;17339:7:::1;:18:::0;;;17368:12:::1;:28:::0;;;17407:7:::1;:18:::0;;;17436:10:::1;:24:::0;;;17482:77:::1;17449:11:::0;17482:60:::1;17417:8:::0;17482:60;17383:13;17482:60;17315:13;17349:8;17482:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17471:8;:88:::0;17570:14:::1;:32:::0;;;17632:18:::1;17649:1;17587:15:::0;17632:18:::1;:::i;:::-;17621:8;;:29;17613:71;;;::::0;-1:-1:-1;;;17613:71:0;;7967:2:1;17613:71:0::1;::::0;::::1;7949:21:1::0;8006:2;7986:18;;;7979:30;8045:31;8025:18;;;8018:59;8094:18;;17613:71:0::1;7765:353:1::0;17613:71:0::1;17118:575:::0;;;;;;:::o;14301:92::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;14352:11:::1;:18:::0;;-1:-1:-1;;;;14352:18:0::1;-1:-1:-1::0;;;14352:18:0::1;::::0;;14301:92::o;18553:167::-;18621:7;18648:64;18689:22;:20;:22::i;:::-;18671:4;;-1:-1:-1;;;;;18671:4:0;8874:7;8892:18;;;:9;:18;;;;;;18648:36;;18661:22;;18681:1;;18661:15;:19;;:22::i;:::-;18648:8;;:12;:36::i;:::-;:40;;:64::i;13667:217::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;13771:13:::1;:22:::0;;;;13804:14:::1;:24:::0;13839:11:::1;:21:::0;13667:217::o;9960:147::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;10042:12:::1;::::0;10027::::1;:27:::0;;;10069:15:::1;:30:::0;9960:147::o;3549:244::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3638:22:0;::::1;3630:73;;;::::0;-1:-1:-1;;;3630:73:0;;8325:2:1;3630:73:0::1;::::0;::::1;8307:21:1::0;8364:2;8344:18;;;8337:30;8403:34;8383:18;;;8376:62;-1:-1:-1;;;8454:18:1;;;8447:36;8500:19;;3630:73:0::1;8123:402:1::0;3630:73:0::1;3740:6;::::0;;3719:38:::1;::::0;-1:-1:-1;;;;;3719:38:0;;::::1;::::0;3740:6;::::1;::::0;3719:38:::1;::::0;::::1;3768:6;:17:::0;;-1:-1:-1;;;;;;3768:17:0::1;-1:-1:-1::0;;;;;3768:17:0;;;::::1;::::0;;;::::1;::::0;;3549:244::o;14585:599::-;3306:6;;-1:-1:-1;;;;;3306:6:0;2616:10;3306:22;3298:67;;;;-1:-1:-1;;;3298:67:0;;;;;;;:::i;:::-;14735:3:::1;14716:22:::0;::::1;14708:79;;;::::0;-1:-1:-1;;;14708:79:0;;8732:2:1;14708:79:0::1;::::0;::::1;8714:21:1::0;8771:2;8751:18;;;8744:30;8810:34;8790:18;;;8783:62;-1:-1:-1;;;8861:18:1;;;8854:43;8914:19;;14708:79:0::1;8530:409:1::0;14708:79:0::1;14802:33:::0;;::::1;14794:85;;;::::0;-1:-1:-1;;;14794:85:0;;9146:2:1;14794:85:0::1;::::0;::::1;9128:21:1::0;9185:2;9165:18;;;9158:30;9224:34;9204:18;;;9197:62;-1:-1:-1;;;9275:18:1;;;9268:38;9323:19;;14794:85:0::1;8944:404:1::0;14794:85:0::1;14888:13;14918:6:::0;14914:84:::1;14928:20:::0;;::::1;14914:84;;;14981:6;;14988:1;14981:9;;;;;;;:::i;:::-;;;;;;;14973:5;:17;;;;:::i;:::-;14965:25:::0;-1:-1:-1;14950:3:0;::::1;::::0;::::1;:::i;:::-;;;;14914:84;;;;15033:5;15014:15;15024:4;-1:-1:-1::0;;;;;8892:18:0;8874:7;8892:18;;;:9;:18;;;;;;;8808:105;15014:15:::1;:24;;15006:64;;;::::0;-1:-1:-1;;;15006:64:0;;9957:2:1;15006:64:0::1;::::0;::::1;9939:21:1::0;9996:2;9976:18;;;9969:30;10035:29;10015:18;;;10008:57;10082:18;;15006:64:0::1;9755:351:1::0;15006:64:0::1;15083:6;15079:102;15093:20:::0;;::::1;15079:102;;;15130:43;15145:4;15150:9;;15160:1;15150:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15163:6;;15170:1;15163:9;;;;;;;:::i;:::-;;;;;;;15130:14;:43::i;:::-;-1:-1:-1::0;15115:3:0;::::1;::::0;::::1;:::i;:::-;;;;15079:102;;;;14699:485;14585:599:::0;;;;;:::o;13245:119::-;13292:21;;13284:62;;-1:-1:-1;;;;;13292:21:0;;;;13324;13284:62;;;;;13292:21;13284:62;13292:21;13284:62;13324:21;13292;13284:62;;;;;;;;;;;;;;;;;;;;;13245:119::o;1689:192::-;1775:7;1811:12;1803:6;;;;1795:29;;;;-1:-1:-1;;;1795:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1835:9:0;1847:5;1851:1;1847;:5;:::i;:::-;1835:17;1689:192;-1:-1:-1;;;;;1689:192:0:o;10121:1246::-;10233:6;;10213:4;;10233:6;;10230:63;;;10249:41;10264:6;10272:9;10283:6;10249:14;:41::i;:::-;10242:48;;;;10230:63;-1:-1:-1;;;;;10309:22:0;;;;;;:14;:22;;;;;;;;10308:23;:53;;;;-1:-1:-1;;;;;;10336:25:0;;;;;;:14;:25;;;;;;;;10335:26;10308:53;10305:139;;;10385:11;;-1:-1:-1;;;10385:11:0;;;;10377:43;;;;-1:-1:-1;;;10377:43:0;;10446:2:1;10377:43:0;;;10428:21:1;10485:2;10465:18;;;10458:30;-1:-1:-1;;;10504:18:1;;;10497:50;10564:18;;10377:43:0;10244:344:1;10377:43:0;-1:-1:-1;;;;;10486:22:0;;;;;;:14;:22;;;;;;;;10485:23;:53;;;;-1:-1:-1;;;;;;10512:26:0;;10533:4;10512:26;;10485:53;:84;;;;-1:-1:-1;10564:4:0;;-1:-1:-1;;;;;10543:26:0;;;10564:4;;10543:26;;10485:84;:105;;;;-1:-1:-1;10586:4:0;;-1:-1:-1;;;;;10573:17:0;;;10586:4;;10573:17;;10485:105;:140;;;;-1:-1:-1;10607:18:0;;-1:-1:-1;;;;;10594:31:0;;;10607:18;;10594:31;;10485:140;:177;;;;-1:-1:-1;10642:20:0;;-1:-1:-1;;;;;10629:33:0;;;10642:20;;10629:33;;10485:177;:208;;;;-1:-1:-1;;;;;;10667:26:0;;;;;;:15;:26;;;;;;;;10666:27;10485:208;10481:400;;;-1:-1:-1;;;;;8892:18:0;;10709;8892;;;:9;:18;;;;;;10798:15;;10774:19;10787:6;8892:18;10774:19;:::i;:::-;10773:40;;10765:114;;;;-1:-1:-1;;;10765:114:0;;10795:2:1;10765:114:0;;;10777:21:1;10834:2;10814:18;;;10807:30;10873:34;10853:18;;;10846:62;10944:32;10924:18;;;10917:60;10994:19;;10765:114:0;10593:426:1;10765:114:0;10694:187;10481:400;10903:28;10916:6;10924;10903:12;:28::i;:::-;10948:16;:14;:16::i;:::-;10945:35;;;10967:10;:8;:10::i;:::-;11018:53;;;;;;;;;;;-1:-1:-1;;;11018:53:0;;;;;;;;-1:-1:-1;;;;;11018:17:0;;-1:-1:-1;11018:17:0;;;:9;:17;;;;;;;;:53;;11040:6;;11018:21;:53::i;:::-;-1:-1:-1;;;;;10998:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11110:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11133:22:0;;;;;;:11;:22;;;;;;;;11110:45;11109:93;;11168:34;11176:6;11184;11192:9;11168:7;:34::i;:::-;11109:93;;;11159:6;11109:93;-1:-1:-1;;;;;11236:20:0;;;;;;:9;:20;;;;;;11084:118;;-1:-1:-1;11236:40:0;;11084:118;11236:24;:40::i;:::-;-1:-1:-1;;;;;11213:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11294:43;;;;;;-1:-1:-1;;;;;;;;;;;11294:43:0;;;11322:14;160:25:1;;148:2;133:18;;14:177;11294:43:0;;;;;;;;-1:-1:-1;11355:4:0;;10121:1246;-1:-1:-1;;;;10121:1246:0:o;1547:136::-;1605:7;1632:43;1636:1;1639;1632:43;;;;;;;;;;;;;;;;;:3;:43::i;1360:181::-;1418:7;;1450:5;1454:1;1450;:5;:::i;:::-;1438:17;;1479:1;1474;:6;;1466:46;;;;-1:-1:-1;;;1466:46:0;;11226:2:1;1466:46:0;;;11208:21:1;11265:2;11245:18;;;11238:30;11304:29;11284:18;;;11277:57;11351:18;;1466:46:0;11024:351:1;1887:250:0;1945:7;1969:1;1974;1969:6;1965:47;;-1:-1:-1;1999:1:0;1992:8;;1965:47;2024:9;2036:5;2040:1;2036;:5;:::i;:::-;2024:17;-1:-1:-1;2069:1:0;2060:5;2064:1;2024:17;2060:5;:::i;:::-;:10;2052:56;;;;-1:-1:-1;;;2052:56:0;;11582:2:1;2052:56:0;;;11564:21:1;11621:2;11601:18;;;11594:30;11660:34;11640:18;;;11633:62;-1:-1:-1;;;11711:18:1;;;11704:31;11752:19;;2052:56:0;11380:397:1;2143:132:0;2201:7;2228:39;2232:1;2235;2228:39;;;;;;;;;;;;;;;;;:3;:39::i;11379:330::-;11509:53;;;;;;;;;;;-1:-1:-1;;;11509:53:0;;;;;;;;-1:-1:-1;;;;;11509:17:0;;11472:4;11509:17;;;:9;:17;;;;;;;:53;;11531:6;;11509:21;:53::i;:::-;-1:-1:-1;;;;;11489:17:0;;;;;;;:9;:17;;;;;;:73;;;;11596:20;;;;;;;:32;;11621:6;11596:24;:32::i;:::-;-1:-1:-1;;;;;11573:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11644:35;;;;;;-1:-1:-1;;;;;;;;;;;11644:35:0;;;11672:6;160:25:1;;148:2;133:18;;14:177;11644:35:0;;;;;;;;-1:-1:-1;11697:4:0;11379:330;;;;;:::o;11717:166::-;11814:12;;11804:6;:22;;:49;;;-1:-1:-1;;;;;;11830:23:0;;;;;;:15;:23;;;;;;;;11804:49;11796:79;;;;-1:-1:-1;;;11796:79:0;;11984:2:1;11796:79:0;;;11966:21:1;12023:2;12003:18;;;11996:30;-1:-1:-1;;;12042:18:1;;;12035:47;12099:18;;11796:79:0;11782:341:1;11796:79:0;11717:166;;:::o;13036:197::-;13123:4;;13085;;-1:-1:-1;;;;;13123:4:0;13109:10;:18;;;;:38;;-1:-1:-1;13141:6:0;;;;13140:7;13109:38;:62;;;;-1:-1:-1;13160:11:0;;-1:-1:-1;;;13160:11:0;;;;13109:62;:116;;;;-1:-1:-1;;13212:13:0;;;13202:4;13184:24;;;;:9;:24;;;;;;;;:41;;;13036:197::o;15219:1885::-;7201:6;:13;;-1:-1:-1;;7201:13:0;7210:4;7201:13;;;15314:15:::1;::::0;15331:26:::1;::::0;7201:6;;15298:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15365:12;;15298:79;;;15361:1;15298:79;15268:109;;15388:23;15414:59;15471:1;15414:52;15457:8;;15414:38;15432:19;15414:13;;:17;;:38;;;;:::i;:59::-;15388:85;;15484:20;15507:34;15525:15;15507:13;;:17;;:34;;;;:::i;:::-;15578:16;::::0;;15592:1:::1;15578:16:::0;;;;;::::1;::::0;;15484:57;;-1:-1:-1;15554:21:0::1;::::0;15578:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15578:16:0::1;15554:40;;15623:4;15605;15610:1;15605:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15605:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15649:4:::1;::::0;15639:7;;15649:4;::::1;::::0;15639;;15649;;15639:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15639:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15724:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15724:188:0;;15690:21:::1;::::0;15724:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15796:12;;15666:21:::1;::::0;15839:4;;15866::::1;::::0;15886:15:::1;::::0;15724:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15925:17;15945:40;15971:13;15945:21;:25;;:40;;;;:::i;:::-;15925:60:::0;-1:-1:-1;15998:19:0::1;16020:40;16033:26;:19:::0;16057:1:::1;16033:23;:26::i;:::-;16020:8;::::0;;:12:::1;:40::i;:::-;15998:62:::0;-1:-1:-1;16081:26:0::1;16110:58;16166:1;16110:51;15998:62:::0;16110:51;:9;16124:19;16110:13:::1;:34::i;:58::-;16081:87;;16179:37;16219:44;16251:11;16219:27;16233:12;;16219:9;:13;;:27;;;;:::i;:44::-;16179:84;;16274:21;16298:39;16325:11;16298:22;16312:7;;16298:9;:13;;:22;;;;:::i;:39::-;16274:63;;16348:20;16371:39;16398:11;16371:22;16385:7;;16371:9;:13;;:22;;;;:::i;:39::-;16452:20;::::0;16444:76:::1;::::0;16348:62;;-1:-1:-1;16424:15:0::1;::::0;-1:-1:-1;;;;;16452:20:0;;::::1;::::0;16486:29;;16424:15;16444:76;16424:15;16444:76;16486:29;16452:20;16444:76:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16555:15:0::1;::::0;16547:54:::1;::::0;16423:97;;-1:-1:-1;;;;;;16555:15:0::1;::::0;16584:12;;16547:54:::1;::::0;;;16584:12;16555:15;16547:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16636:15:0::1;::::0;16628:55:::1;::::0;16531:70;;-1:-1:-1;;;;;;16636:15:0::1;::::0;16665:13;;16628:55:::1;::::0;;;16665:13;16636:15;16628:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16717:5:0::1;::::0;-1:-1:-1;;16738:19:0;;;-1:-1:-1;16735:362:0::1;;16773:6;::::0;16947:21:::1;::::0;16773:244:::1;::::0;-1:-1:-1;;;16773:244:0;;16849:4:::1;16773:244;::::0;::::1;13796:34:1::0;13846:18;;;13839:34;;;16773:6:0::1;13889:18:1::0;;;13882:34;;;13932:18;;;13925:34;-1:-1:-1;;;;;16947:21:0;;::::1;13975:19:1::0;;;13968:44;16987:15:0::1;14028:19:1::0;;;14021:35;16773:6:0;::::1;::::0;:22:::1;::::0;16803:18;;13730:19:1;;16773:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17037:48:0::1;::::0;;14552:25:1;;;14608:2;14593:18;;14586:34;;;17037:48:0::1;::::0;-1:-1:-1;14525:18:1;17037:48:0::1;;;;;;;16735:362;-1:-1:-1::0;;7219:6:0;:14;;-1:-1:-1;;7219:14:0;;;-1:-1:-1;;;;;;;;;;15219:1885:0:o;12013:1015::-;12147:11;;12187:4;;12099:7;;12147:11;-1:-1:-1;;;;;12187:4:0;;;12174:17;;;;12171:148;;-1:-1:-1;12218:14:0;;12171:148;;;12263:4;;-1:-1:-1;;;;;12263:4:0;;;12253:14;;;;12250:69;;-1:-1:-1;12294:13:0;;12250:69;12331:17;12351:59;12389:14;;12406:3;12389:20;;;;:::i;:::-;12351:33;12376:7;12351:20;12362:8;;12351:6;:10;;:20;;;;:::i;:59::-;12331:79;;12421:21;12445:39;12475:8;;12445:25;12459:10;;12445:9;:13;;:25;;;;:::i;:39::-;12421:63;-1:-1:-1;12495:22:0;12520:28;:9;12421:63;12520:13;:28::i;:::-;12606:4;12588:24;;;;:9;:24;;;;;;12495:53;;-1:-1:-1;12588:44:0;;12495:53;12588:28;:44::i;:::-;12579:4;12561:24;;;;:9;:24;;;;;;:71;;;;12685:18;;-1:-1:-1;;;;;12685:18:0;12675:29;;;;:48;;12709:13;12675:33;:48::i;:::-;12653:18;;-1:-1:-1;;;;;12653:18:0;;;12643:29;;;;:9;:29;;;;;;;;;:80;;;;12739:47;160:25:1;;;12764:4:0;;12739:47;;;;-1:-1:-1;;;;;;;;;;;12739:47:0;133:18:1;12739:47:0;;;;;;;12820:17;;12817:163;;12868:12;;:31;;12885:13;12868:16;:31::i;:::-;12853:12;:46;12936:4;;12919:37;;160:25:1;;;-1:-1:-1;;;;;12936:4:0;;;;12919:37;;;-1:-1:-1;;;;;;;;;;;12919:37:0;148:2:1;133:18;12919:37:0;;;;;;;12817:163;12999:21;:6;13010:9;12999:10;:21::i;:::-;12992:28;12013:1015;-1:-1:-1;;;;;;;;12013:1015:0:o;2281:189::-;2367:7;2402:12;2395:5;2387:28;;;;-1:-1:-1;;;2387:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2426:9:0;2438:5;2442:1;2438;:5;:::i;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:548::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;665:3;850:1;845:2;836:6;825:9;821:22;817:31;810:42;920:2;913;909:7;904:2;896:6;892:15;888:29;877:9;873:45;869:54;861:62;;;;381:548;;;;:::o;1126:173::-;1194:20;;-1:-1:-1;;;;;1243:31:1;;1233:42;;1223:70;;1289:1;1286;1279:12;1223:70;1126:173;;;:::o;1304:254::-;1372:6;1380;1433:2;1421:9;1412:7;1408:23;1404:32;1401:52;;;1449:1;1446;1439:12;1401:52;1472:29;1491:9;1472:29;:::i;:::-;1462:39;1548:2;1533:18;;;;1520:32;;-1:-1:-1;;;1304:254:1:o;1563:248::-;1631:6;1639;1692:2;1680:9;1671:7;1667:23;1663:32;1660:52;;;1708:1;1705;1698:12;1660:52;-1:-1:-1;;1731:23:1;;;1801:2;1786:18;;;1773:32;;-1:-1:-1;1563:248:1:o;1816:328::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2001:29;2020:9;2001:29;:::i;:::-;1991:39;;2049:38;2083:2;2072:9;2068:18;2049:38;:::i;:::-;2039:48;;2134:2;2123:9;2119:18;2106:32;2096:42;;1816:328;;;;;:::o;2338:186::-;2397:6;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;2489:29;2508:9;2489:29;:::i;2737:484::-;2832:6;2840;2848;2856;2864;2917:3;2905:9;2896:7;2892:23;2888:33;2885:53;;;2934:1;2931;2924:12;2885:53;2957:29;2976:9;2957:29;:::i;:::-;2947:39;;3005:38;3039:2;3028:9;3024:18;3005:38;:::i;:::-;2995:48;;3062:38;3096:2;3085:9;3081:18;3062:38;:::i;:::-;3052:48;;3119:38;3153:2;3142:9;3138:18;3119:38;:::i;:::-;3109:48;;3176:39;3210:3;3199:9;3195:19;3176:39;:::i;:::-;3166:49;;2737:484;;;;;;;;:::o;3226:118::-;3312:5;3305:13;3298:21;3291:5;3288:32;3278:60;;3334:1;3331;3324:12;3349:241;3405:6;3458:2;3446:9;3437:7;3433:23;3429:32;3426:52;;;3474:1;3471;3464:12;3426:52;3513:9;3500:23;3532:28;3554:5;3532:28;:::i;3595:523::-;3699:6;3707;3715;3723;3731;3739;3792:3;3780:9;3771:7;3767:23;3763:33;3760:53;;;3809:1;3806;3799:12;3760:53;-1:-1:-1;;3832:23:1;;;3902:2;3887:18;;3874:32;;-1:-1:-1;3953:2:1;3938:18;;3925:32;;4004:2;3989:18;;3976:32;;-1:-1:-1;4055:3:1;4040:19;;4027:33;;-1:-1:-1;4107:3:1;4092:19;4079:33;;-1:-1:-1;3595:523:1;-1:-1:-1;3595:523:1:o;4123:316::-;4200:6;4208;4216;4269:2;4257:9;4248:7;4244:23;4240:32;4237:52;;;4285:1;4282;4275:12;4237:52;-1:-1:-1;;4308:23:1;;;4378:2;4363:18;;4350:32;;-1:-1:-1;4429:2:1;4414:18;;;4401:32;;4123:316;-1:-1:-1;4123:316:1:o;4444:260::-;4512:6;4520;4573:2;4561:9;4552:7;4548:23;4544:32;4541:52;;;4589:1;4586;4579:12;4541:52;4612:29;4631:9;4612:29;:::i;:::-;4602:39;;4660:38;4694:2;4683:9;4679:18;4660:38;:::i;:::-;4650:48;;4444:260;;;;;:::o;4709:367::-;4772:8;4782:6;4836:3;4829:4;4821:6;4817:17;4813:27;4803:55;;4854:1;4851;4844:12;4803:55;-1:-1:-1;4877:20:1;;4920:18;4909:30;;4906:50;;;4952:1;4949;4942:12;4906:50;4989:4;4981:6;4977:17;4965:29;;5049:3;5042:4;5032:6;5029:1;5025:14;5017:6;5013:27;5009:38;5006:47;5003:67;;;5066:1;5063;5056:12;5003:67;4709:367;;;;;:::o;5081:847::-;5212:6;5220;5228;5236;5244;5297:2;5285:9;5276:7;5272:23;5268:32;5265:52;;;5313:1;5310;5303:12;5265:52;5336:29;5355:9;5336:29;:::i;:::-;5326:39;;5416:2;5405:9;5401:18;5388:32;5439:18;5480:2;5472:6;5469:14;5466:34;;;5496:1;5493;5486:12;5466:34;5535:70;5597:7;5588:6;5577:9;5573:22;5535:70;:::i;:::-;5624:8;;-1:-1:-1;5509:96:1;-1:-1:-1;5712:2:1;5697:18;;5684:32;;-1:-1:-1;5728:16:1;;;5725:36;;;5757:1;5754;5747:12;5725:36;;5796:72;5860:7;5849:8;5838:9;5834:24;5796:72;:::i;:::-;5081:847;;;;-1:-1:-1;5081:847:1;;-1:-1:-1;5887:8:1;;5770:98;5081:847;-1:-1:-1;;;5081:847:1:o;6159:356::-;6361:2;6343:21;;;6380:18;;;6373:30;6439:34;6434:2;6419:18;;6412:62;6506:2;6491:18;;6159:356::o;6520:127::-;6581:10;6576:3;6572:20;6569:1;6562:31;6612:4;6609:1;6602:15;6636:4;6633:1;6626:15;6652:168;6725:9;;;6756;;6773:15;;;6767:22;;6753:37;6743:71;;6794:18;;:::i;6825:217::-;6865:1;6891;6881:132;;6935:10;6930:3;6926:20;6923:1;6916:31;6970:4;6967:1;6960:15;6998:4;6995:1;6988:15;6881:132;-1:-1:-1;7027:9:1;;6825:217::o;7047:184::-;7117:6;7170:2;7158:9;7149:7;7145:23;7141:32;7138:52;;;7186:1;7183;7176:12;7138:52;-1:-1:-1;7209:16:1;;7047:184;-1:-1:-1;7047:184:1:o;7515:245::-;7582:6;7635:2;7623:9;7614:7;7610:23;7606:32;7603:52;;;7651:1;7648;7641:12;7603:52;7683:9;7677:16;7702:28;7724:5;7702:28;:::i;9353:127::-;9414:10;9409:3;9405:20;9402:1;9395:31;9445:4;9442:1;9435:15;9469:4;9466:1;9459:15;9485:125;9550:9;;;9571:10;;;9568:36;;;9584:18;;:::i;9615:135::-;9654:3;9675:17;;;9672:43;;9695:18;;:::i;:::-;-1:-1:-1;9742:1:1;9731:13;;9615:135::o;10111:128::-;10178:9;;;10199:11;;;10196:37;;;10213:18;;:::i;12260:980::-;12522:4;12570:3;12559:9;12555:19;12601:6;12590:9;12583:25;12627:2;12665:6;12660:2;12649:9;12645:18;12638:34;12708:3;12703:2;12692:9;12688:18;12681:31;12732:6;12767;12761:13;12798:6;12790;12783:22;12836:3;12825:9;12821:19;12814:26;;12875:2;12867:6;12863:15;12849:29;;12896:1;12906:195;12920:6;12917:1;12914:13;12906:195;;;12985:13;;-1:-1:-1;;;;;12981:39:1;12969:52;;13076:15;;;;13041:12;;;;13017:1;12935:9;12906:195;;;-1:-1:-1;;;;;;;13157:32:1;;;;13152:2;13137:18;;13130:60;-1:-1:-1;;;13221:3:1;13206:19;13199:35;13118:3;12260:980;-1:-1:-1;;;12260:980:1:o;14067:306::-;14155:6;14163;14171;14224:2;14212:9;14203:7;14199:23;14195:32;14192:52;;;14240:1;14237;14230:12;14192:52;14269:9;14263:16;14253:26;;14319:2;14308:9;14304:18;14298:25;14288:35;;14363:2;14352:9;14348:18;14342:25;14332:35;;14067:306;;;;;:::o

Swarm Source

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