ETH Price: $3,490.36 (+0.06%)
Gas: 2 Gwei

Token

Watson Protocol (Watson)
 

Overview

Max Total Supply

10,000,000 Watson

Holders

282

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,971.406314222 Watson

Value
$0.00
0x5a7dca15cee37038c58433b20bc42a9e95115529
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:
WatsonProtocol

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 5 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-22
*/

/*

                                  _____
                                 |     |
                                 | | | |
                                 |_____|
                           ____ ___|_|___ ____
                          ()___)         ()___)
                          // /|           |\ \\
                         // / |           | \ \\
                        (___) |___________| (___)
                        (___)   (_______)   (___)
                        (___)     (___)     (___)
                        (___)      |_|      (___)
                        (___)  ___/___\___   | |
                         | |  |           |  | |
                         | |  |___________| /___\
                        /___\  |||     ||| //   \\
                       //   \\ |||     ||| \\   //
                       \\   // |||     |||  \\ //
                        \\ // ()__)   (__()
                              ///       \\\
                             ///         \\\
                           _///___     ___\\\_
                          |_______|   |_______|

https://www.watsonprotocol.org
https://t.me/watson_protocol
https://twitter.com/watson_protocol
https://medium.com/@WastonProtocol



*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.18;

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

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

    string constant _name = "Watson Protocol";
    string constant _symbol = "Watson";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private utilityFee      = 1;
    uint256 private teamFee         = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellallocation = 1000;
    uint256 buyallocation = 600;
    uint256 transferallocation = 0; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 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[utilityFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[utilityFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xC1F10c5a427cC720482E8a5216eE3FC4F6a0F598;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = 0xACEd5F8b5879E542c2d315001d4F0C39d62c7EfE;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 allocation = transferallocation;

        if(recipient == pair) {
            allocation = sellallocation;
        } else if(sender == pair) {
            allocation = buyallocation;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(allocation).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 setNoMaxTXandWallet() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

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

    }

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

    function setTaxes(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellallocation = _sell;
        buyallocation = _buy;
        transferallocation = _trans;    
          
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
       
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 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 setInternalAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

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

    function setAllocation(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 updateTaxWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setRatio(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

[{"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":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"SetMaxBag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"removeForeignToken","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":"_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":"setAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setNoMaxTXandWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setNoTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTaxes","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":"_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":"updateTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006f6565b62000041906298968062000707565b6005556200007b6064620000676001600554620004c660201b620010241790919060201c565b6200055d60201b620010a61790919060201c565b600655620000a16064620000676001600554620004c660201b620010241790919060201c565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000d8919062000721565b620000e4919062000721565b620000f0919062000721565b620000fc919062000721565b601155606460128190556103e8601381905561025860149081556000601555601e601b55601c92909255601f805461ffff60a01b1916600160a81b17905560055490916200014b919062000707565b62000157919062000737565b6020553480156200016757600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d91906200075a565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d291906200075a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000324573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034a91906200075a565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673c1f10c5a427cc720482e8a5216ee3fc4f6a0f5981790945585548516841790955560198054851673aced5f8b5879e542c2d315001d4f0c39d62c7efe179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d5565b600082600003620004da5750600062000557565b6000620004e8838562000707565b905082620004f7858362000737565b14620005545760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200055483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005a760201b60201c565b60008183620005cb5760405162461bcd60e51b81526004016200054b919062000785565b506000620005da848662000737565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200063a5781600019048211156200061e576200061e620005e3565b808516156200062c57918102915b93841c9390800290620005fe565b509250929050565b600082620006535750600162000557565b81620006625750600062000557565b81600181146200067b57600281146200068657620006a6565b600191505062000557565b60ff8411156200069a576200069a620005e3565b50506001821b62000557565b5060208310610133831016604e8410600b8410161715620006cb575081810a62000557565b620006d78383620005f9565b8060001904821115620006ee57620006ee620005e3565b029392505050565b60006200055460ff84168362000642565b8082028115828204841417620005575762000557620005e3565b80820180821115620005575762000557620005e3565b6000826200075557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076d57600080fd5b81516001600160a01b03811681146200055457600080fd5b600060208083528351808285015260005b81811015620007b45785810183015185820160400152820162000796565b506000604082860101526040601f19601f8301168501019250505092915050565b61210380620007e56000396000f3fe6080604052600436106101da5760003560e01c80630445b667146101e657806306fdde031461020f57806308fd3d0514610250578063095ea7b3146102815780631161ae39146102a157806318160ddd146102c15780631df4ccfc146102d657806323b872dd146102ec5780632b112e491461030c578063313ce56714610321578063333c39a51461033d5780633ee6daf71461035f578063571ac8b01461037f5780636ddd17131461039f57806370a08231146103c0578063715018a6146103e057806378109e54146103f55780637d1db4a51461040b5780637fa4a5bb14610421578063893d20e8146104415780638a4068dd146104635780638da5cb5b1461047857806395d89b411461048d57806398f4efc6146104bc578063a497fdd8146104dc578063a8aa1b31146104fc578063a9059cbb1461051c578063b2bdfa7b1461053c578063c9567bf91461055c578063ca3e4d0514610571578063d0ca86b214610591578063d148b74c146105b1578063d51ed1c8146105c6578063d6aeedca146105e6578063d78e139d14610606578063dd62ed3e14610626578063e9dae5ed1461066c578063f2fde38b1461068c578063f785ccd0146106ac578063f887ea40146106cc578063f92d908b146106ec57600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b506101fc60205481565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b5060408051808201909152600f81526e15d85d1cdbdb88141c9bdd1bd8dbdb608a1b60208201525b6040516102069190611c54565b34801561025c57600080fd5b50601f5461027190600160a01b900460ff1681565b6040519015158152602001610206565b34801561028d57600080fd5b5061027161029c366004611cbe565b610701565b3480156102ad57600080fd5b506102716102bc366004611ce8565b61076e565b3480156102cd57600080fd5b506005546101fc565b3480156102e257600080fd5b506101fc60115481565b3480156102f857600080fd5b50610271610307366004611d0a565b610782565b34801561031857600080fd5b506101fc610844565b34801561032d57600080fd5b5060405160098152602001610206565b34801561034957600080fd5b5061035d610358366004611d46565b61088d565b005b34801561036b57600080fd5b5061035d61037a366004611d6d565b6108ff565b34801561038b57600080fd5b5061027161039a366004611da4565b610954565b3480156103ab57600080fd5b50601f5461027190600160a81b900460ff1681565b3480156103cc57600080fd5b506101fc6103db366004611da4565b610962565b3480156103ec57600080fd5b5061035d61097d565b34801561040157600080fd5b506101fc60075481565b34801561041757600080fd5b506101fc60065481565b34801561042d57600080fd5b5061035d61043c366004611d6d565b6109df565b34801561044d57600080fd5b50610456610a47565b6040516102069190611dbf565b34801561046f57600080fd5b5061035d610a51565b34801561048457600080fd5b50610456610a8d565b34801561049957600080fd5b506040805180820190915260068152652bb0ba39b7b760d11b6020820152610243565b3480156104c857600080fd5b5061035d6104d7366004611dd3565b610a9c565b3480156104e857600080fd5b5061035d6104f7366004611d46565b610ae8565b34801561050857600080fd5b50601f54610456906001600160a01b031681565b34801561052857600080fd5b50610271610537366004611cbe565b610b51565b34801561054857600080fd5b50600054610456906001600160a01b031681565b34801561056857600080fd5b5061035d610b5e565b34801561057d57600080fd5b5061035d61058c366004611df1565b610b9d565b34801561059d57600080fd5b5061035d6105ac366004611e56565b610c26565b3480156105bd57600080fd5b5061035d610cec565b3480156105d257600080fd5b506101fc6105e1366004611d46565b610d20565b3480156105f257600080fd5b50610271610601366004611cbe565b610d60565b34801561061257600080fd5b5061035d610621366004611d46565b610e51565b34801561063257600080fd5b506101fc610641366004611e99565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561067857600080fd5b5061035d610687366004611ecc565b610ea5565b34801561069857600080fd5b5061035d6106a7366004611da4565b610ee0565b3480156106b857600080fd5b5061035d6106c7366004611ce8565b610fb8565b3480156106d857600080fd5b50601d54610456906001600160a01b031681565b3480156106f857600080fd5b5061035d610fed565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061075c9086815260200190565b60405180910390a35060015b92915050565b60008261077a83610d20565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461082f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461080a9184906110e5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61083a84848461111f565b90505b9392505050565b60045460009061088890610860906001600160a01b0316610962565b60035461088290610879906001600160a01b0316610962565b6005549061147a565b9061147a565b905090565b6000546001600160a01b031633146108c05760405162461bcd60e51b81526004016108b790611ef8565b60405180910390fd5b6103e86005546108d09190611f43565b60065410156108de57600080fd5b6103e8816005546108ef9190611f65565b6108f99190611f43565b60065550565b6000546001600160a01b031633146109295760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061076882600019610701565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031633146109a75760405162461bcd60e51b81526004016108b790611ef8565b600080546040516001600160a01b039091169060008051602061208e833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a095760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000610888610a8d565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a8a573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016108b790611ef8565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000546001600160a01b03163314610b125760405162461bcd60e51b81526004016108b790611ef8565b6103e8600554610b229190611f43565b6007541015610b3057600080fd5b6103e881600554610b419190611f65565b610b4b9190611f43565b60075550565b600061083d33848461111f565b6000546001600160a01b03163314610b885760405162461bcd60e51b81526004016108b790611ef8565b601f805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016108b790611ef8565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610c505760405162461bcd60e51b81526004016108b790611ef8565b600c869055600f859055600d849055600e8390556010829055610c8182610c7b858188818c8c6114bc565b906114bc565b6011556012819055610c94600582611f43565b60115410610ce45760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108b7565b505050505050565b6000546001600160a01b03163314610d165760405162461bcd60e51b81526004016108b790611ef8565b610d1e611519565b565b6000610768610d2d610844565b601f54610d5a90610d5390600290610d4d906001600160a01b0316610962565b90611024565b8590611024565b906110a6565b600081600003610dda576040516370a0823160e01b81526001600160a01b038416906370a0823190610d96903090600401611dbf565b602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611f7c565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611f95565b60195447906001600160a01b03166108fc6064610e6e8585611f65565b610e789190611f43565b6040518115909202916000818181858888f19350505050158015610ea0573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b81526004016108b790611ef8565b601391909155601491909155601555565b6000546001600160a01b03163314610f0a5760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b038116610f6f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b7565b600080546040516001600160a01b038085169392169160008051602061208e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fe25760405162461bcd60e51b81526004016108b790611ef8565b601b91909155601c55565b6000546001600160a01b031633146110175760405162461bcd60e51b81526004016108b790611ef8565b6005546007819055600655565b60008260000361103657506000610768565b60006110428385611f65565b90508261104f8583611f43565b1461083d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b7565b600061083d83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611900565b600081848411156111095760405162461bcd60e51b81526004016108b79190611c54565b5060006111168486611fb2565b95945050505050565b60215460009060ff161561113f5761113884848461192e565b905061083d565b6001600160a01b03841660009081526001602052604090205460ff1615801561118157506001600160a01b03831660009081526001602052604090205460ff16155b156111d657601f54600160a01b900460ff166111d65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b7565b6001600160a01b03841660009081526001602052604090205460ff1615801561120857506001600160a01b0383163014155b801561122257506003546001600160a01b03848116911614155b801561123c5750601f546001600160a01b03848116911614155b80156112565750601a546001600160a01b03848116911614155b801561127057506017546001600160a01b03848116911614155b801561129557506001600160a01b0383166000908152600b602052604090205460ff16155b1561132b5760006112a584610962565b6007549091506112b58483611fc5565b11156113295760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b7565b505b6113358483611a02565b61133d611a6f565b1561134a5761134a611519565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461139c9184906110e5565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806113e957506001600160a01b0384166000908152600a602052604090205460ff165b6113fd576113f8858486611ac7565b6113ff565b825b6001600160a01b03851660009081526008602052604090205490915061142590826114bc565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206120ae833981519152906114679085815260200190565b60405180910390a3506001949350505050565b600061083d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110e5565b6000806114c98385611fc5565b90508381101561083d5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016108b7565b6021805460ff19166001179055601b54601c546000916115389161076e565b61154457600c54611547565b60005b9050600061156b6002610d5a601154610d5a8660205461102490919063ffffffff16565b905060006115848260205461147a90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115be576115be611fd8565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115ef576115ef611fd8565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611639908690600090879030904290600401611fee565b600060405180830381600087803b15801561165357600080fd5b505af1158015611667573d6000803e3d6000fd5b505050506000611680824761147a90919063ffffffff16565b9050600061169b6116928860026110a6565b6011549061147a565b905060006116b06002610d5a8481878d611024565b905060006116cd83610d5a600d548761102490919063ffffffff16565b905060006116ea84610d5a600f548861102490919063ffffffff16565b9050600061170785610d5a600e548961102490919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611759576040519150601f19603f3d011682016040523d82523d6000602084013e61175e565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146117ae576040519150601f19603f3d011682016040523d82523d6000602084013e6117b3565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611803576040519150601f19603f3d011682016040523d82523d6000602084013e611808565b606091505b5060009250508b1590506118e857601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611886573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ab919061205f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b600081836119215760405162461bcd60e51b81526004016108b79190611c54565b5060006111168486611f43565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461197f9184906110e5565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119ae90836114bc565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206120ae833981519152906119f09086815260200190565b60405180910390a35060019392505050565b60065481111580611a2b57506001600160a01b0382166000908152600b602052604090205460ff165b611a6b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b7565b5050565b601f546000906001600160a01b03163314801590611a90575060215460ff16155b8015611aa55750601f54600160a81b900460ff165b8015610888575050602080543060009081526008909252604090912054101590565b601554601f54600091906001600160a01b0390811690841603611aed5750601354611b08565b601f546001600160a01b0390811690861603611b0857506014545b6000611b356012546064611b1c9190611f65565b610d5a84610d4d6011548a61102490919063ffffffff16565b90506000611b54601154610d5a6010548561102490919063ffffffff16565b90506000611b62838361147a565b30600090815260086020526040902054909150611b7f90826114bc565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611bad90836114bc565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206120ae833981519152910160405180910390a38115611c3e57600554611c07908361147a565b6005556004546040518381526001600160a01b03918216918a16906000805160206120ae8339815191529060200160405180910390a35b611c48878461147a565b98975050505050505050565b600060208083528351808285015260005b81811015611c8157858101830151858201604001528201611c65565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cb957600080fd5b919050565b60008060408385031215611cd157600080fd5b611cda83611ca2565b946020939093013593505050565b60008060408385031215611cfb57600080fd5b50508035926020909101359150565b600080600060608486031215611d1f57600080fd5b611d2884611ca2565b9250611d3660208501611ca2565b9150604084013590509250925092565b600060208284031215611d5857600080fd5b5035919050565b8015158114610a8a57600080fd5b60008060408385031215611d8057600080fd5b611d8983611ca2565b91506020830135611d9981611d5f565b809150509250929050565b600060208284031215611db657600080fd5b61083d82611ca2565b6001600160a01b0391909116815260200190565b60008060408385031215611de657600080fd5b8235611cda81611d5f565b600080600080600060a08688031215611e0957600080fd5b611e1286611ca2565b9450611e2060208701611ca2565b9350611e2e60408701611ca2565b9250611e3c60608701611ca2565b9150611e4a60808701611ca2565b90509295509295909350565b60008060008060008060c08789031215611e6f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611eac57600080fd5b611eb583611ca2565b9150611ec360208401611ca2565b90509250929050565b600080600060608486031215611ee157600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f6057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761076857610768611f2d565b600060208284031215611f8e57600080fd5b5051919050565b600060208284031215611fa757600080fd5b815161083d81611d5f565b8181038181111561076857610768611f2d565b8082018082111561076857610768611f2d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561207457600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205d6d1b3433925608d3b875d82bd8367a235935f111a30868f82ccd2d80e8d76b64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101da5760003560e01c80630445b667146101e657806306fdde031461020f57806308fd3d0514610250578063095ea7b3146102815780631161ae39146102a157806318160ddd146102c15780631df4ccfc146102d657806323b872dd146102ec5780632b112e491461030c578063313ce56714610321578063333c39a51461033d5780633ee6daf71461035f578063571ac8b01461037f5780636ddd17131461039f57806370a08231146103c0578063715018a6146103e057806378109e54146103f55780637d1db4a51461040b5780637fa4a5bb14610421578063893d20e8146104415780638a4068dd146104635780638da5cb5b1461047857806395d89b411461048d57806398f4efc6146104bc578063a497fdd8146104dc578063a8aa1b31146104fc578063a9059cbb1461051c578063b2bdfa7b1461053c578063c9567bf91461055c578063ca3e4d0514610571578063d0ca86b214610591578063d148b74c146105b1578063d51ed1c8146105c6578063d6aeedca146105e6578063d78e139d14610606578063dd62ed3e14610626578063e9dae5ed1461066c578063f2fde38b1461068c578063f785ccd0146106ac578063f887ea40146106cc578063f92d908b146106ec57600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b506101fc60205481565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b5060408051808201909152600f81526e15d85d1cdbdb88141c9bdd1bd8dbdb608a1b60208201525b6040516102069190611c54565b34801561025c57600080fd5b50601f5461027190600160a01b900460ff1681565b6040519015158152602001610206565b34801561028d57600080fd5b5061027161029c366004611cbe565b610701565b3480156102ad57600080fd5b506102716102bc366004611ce8565b61076e565b3480156102cd57600080fd5b506005546101fc565b3480156102e257600080fd5b506101fc60115481565b3480156102f857600080fd5b50610271610307366004611d0a565b610782565b34801561031857600080fd5b506101fc610844565b34801561032d57600080fd5b5060405160098152602001610206565b34801561034957600080fd5b5061035d610358366004611d46565b61088d565b005b34801561036b57600080fd5b5061035d61037a366004611d6d565b6108ff565b34801561038b57600080fd5b5061027161039a366004611da4565b610954565b3480156103ab57600080fd5b50601f5461027190600160a81b900460ff1681565b3480156103cc57600080fd5b506101fc6103db366004611da4565b610962565b3480156103ec57600080fd5b5061035d61097d565b34801561040157600080fd5b506101fc60075481565b34801561041757600080fd5b506101fc60065481565b34801561042d57600080fd5b5061035d61043c366004611d6d565b6109df565b34801561044d57600080fd5b50610456610a47565b6040516102069190611dbf565b34801561046f57600080fd5b5061035d610a51565b34801561048457600080fd5b50610456610a8d565b34801561049957600080fd5b506040805180820190915260068152652bb0ba39b7b760d11b6020820152610243565b3480156104c857600080fd5b5061035d6104d7366004611dd3565b610a9c565b3480156104e857600080fd5b5061035d6104f7366004611d46565b610ae8565b34801561050857600080fd5b50601f54610456906001600160a01b031681565b34801561052857600080fd5b50610271610537366004611cbe565b610b51565b34801561054857600080fd5b50600054610456906001600160a01b031681565b34801561056857600080fd5b5061035d610b5e565b34801561057d57600080fd5b5061035d61058c366004611df1565b610b9d565b34801561059d57600080fd5b5061035d6105ac366004611e56565b610c26565b3480156105bd57600080fd5b5061035d610cec565b3480156105d257600080fd5b506101fc6105e1366004611d46565b610d20565b3480156105f257600080fd5b50610271610601366004611cbe565b610d60565b34801561061257600080fd5b5061035d610621366004611d46565b610e51565b34801561063257600080fd5b506101fc610641366004611e99565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561067857600080fd5b5061035d610687366004611ecc565b610ea5565b34801561069857600080fd5b5061035d6106a7366004611da4565b610ee0565b3480156106b857600080fd5b5061035d6106c7366004611ce8565b610fb8565b3480156106d857600080fd5b50601d54610456906001600160a01b031681565b3480156106f857600080fd5b5061035d610fed565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061075c9086815260200190565b60405180910390a35060015b92915050565b60008261077a83610d20565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461082f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461080a9184906110e5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61083a84848461111f565b90505b9392505050565b60045460009061088890610860906001600160a01b0316610962565b60035461088290610879906001600160a01b0316610962565b6005549061147a565b9061147a565b905090565b6000546001600160a01b031633146108c05760405162461bcd60e51b81526004016108b790611ef8565b60405180910390fd5b6103e86005546108d09190611f43565b60065410156108de57600080fd5b6103e8816005546108ef9190611f65565b6108f99190611f43565b60065550565b6000546001600160a01b031633146109295760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061076882600019610701565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031633146109a75760405162461bcd60e51b81526004016108b790611ef8565b600080546040516001600160a01b039091169060008051602061208e833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a095760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000610888610a8d565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a8a573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016108b790611ef8565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000546001600160a01b03163314610b125760405162461bcd60e51b81526004016108b790611ef8565b6103e8600554610b229190611f43565b6007541015610b3057600080fd5b6103e881600554610b419190611f65565b610b4b9190611f43565b60075550565b600061083d33848461111f565b6000546001600160a01b03163314610b885760405162461bcd60e51b81526004016108b790611ef8565b601f805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016108b790611ef8565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610c505760405162461bcd60e51b81526004016108b790611ef8565b600c869055600f859055600d849055600e8390556010829055610c8182610c7b858188818c8c6114bc565b906114bc565b6011556012819055610c94600582611f43565b60115410610ce45760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108b7565b505050505050565b6000546001600160a01b03163314610d165760405162461bcd60e51b81526004016108b790611ef8565b610d1e611519565b565b6000610768610d2d610844565b601f54610d5a90610d5390600290610d4d906001600160a01b0316610962565b90611024565b8590611024565b906110a6565b600081600003610dda576040516370a0823160e01b81526001600160a01b038416906370a0823190610d96903090600401611dbf565b602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611f7c565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611f95565b60195447906001600160a01b03166108fc6064610e6e8585611f65565b610e789190611f43565b6040518115909202916000818181858888f19350505050158015610ea0573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b81526004016108b790611ef8565b601391909155601491909155601555565b6000546001600160a01b03163314610f0a5760405162461bcd60e51b81526004016108b790611ef8565b6001600160a01b038116610f6f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b7565b600080546040516001600160a01b038085169392169160008051602061208e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fe25760405162461bcd60e51b81526004016108b790611ef8565b601b91909155601c55565b6000546001600160a01b031633146110175760405162461bcd60e51b81526004016108b790611ef8565b6005546007819055600655565b60008260000361103657506000610768565b60006110428385611f65565b90508261104f8583611f43565b1461083d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b7565b600061083d83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611900565b600081848411156111095760405162461bcd60e51b81526004016108b79190611c54565b5060006111168486611fb2565b95945050505050565b60215460009060ff161561113f5761113884848461192e565b905061083d565b6001600160a01b03841660009081526001602052604090205460ff1615801561118157506001600160a01b03831660009081526001602052604090205460ff16155b156111d657601f54600160a01b900460ff166111d65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b7565b6001600160a01b03841660009081526001602052604090205460ff1615801561120857506001600160a01b0383163014155b801561122257506003546001600160a01b03848116911614155b801561123c5750601f546001600160a01b03848116911614155b80156112565750601a546001600160a01b03848116911614155b801561127057506017546001600160a01b03848116911614155b801561129557506001600160a01b0383166000908152600b602052604090205460ff16155b1561132b5760006112a584610962565b6007549091506112b58483611fc5565b11156113295760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b7565b505b6113358483611a02565b61133d611a6f565b1561134a5761134a611519565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461139c9184906110e5565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806113e957506001600160a01b0384166000908152600a602052604090205460ff165b6113fd576113f8858486611ac7565b6113ff565b825b6001600160a01b03851660009081526008602052604090205490915061142590826114bc565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206120ae833981519152906114679085815260200190565b60405180910390a3506001949350505050565b600061083d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110e5565b6000806114c98385611fc5565b90508381101561083d5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016108b7565b6021805460ff19166001179055601b54601c546000916115389161076e565b61154457600c54611547565b60005b9050600061156b6002610d5a601154610d5a8660205461102490919063ffffffff16565b905060006115848260205461147a90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115be576115be611fd8565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115ef576115ef611fd8565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611639908690600090879030904290600401611fee565b600060405180830381600087803b15801561165357600080fd5b505af1158015611667573d6000803e3d6000fd5b505050506000611680824761147a90919063ffffffff16565b9050600061169b6116928860026110a6565b6011549061147a565b905060006116b06002610d5a8481878d611024565b905060006116cd83610d5a600d548761102490919063ffffffff16565b905060006116ea84610d5a600f548861102490919063ffffffff16565b9050600061170785610d5a600e548961102490919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611759576040519150601f19603f3d011682016040523d82523d6000602084013e61175e565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146117ae576040519150601f19603f3d011682016040523d82523d6000602084013e6117b3565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611803576040519150601f19603f3d011682016040523d82523d6000602084013e611808565b606091505b5060009250508b1590506118e857601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611886573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ab919061205f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b600081836119215760405162461bcd60e51b81526004016108b79190611c54565b5060006111168486611f43565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461197f9184906110e5565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119ae90836114bc565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206120ae833981519152906119f09086815260200190565b60405180910390a35060019392505050565b60065481111580611a2b57506001600160a01b0382166000908152600b602052604090205460ff165b611a6b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b7565b5050565b601f546000906001600160a01b03163314801590611a90575060215460ff16155b8015611aa55750601f54600160a81b900460ff165b8015610888575050602080543060009081526008909252604090912054101590565b601554601f54600091906001600160a01b0390811690841603611aed5750601354611b08565b601f546001600160a01b0390811690861603611b0857506014545b6000611b356012546064611b1c9190611f65565b610d5a84610d4d6011548a61102490919063ffffffff16565b90506000611b54601154610d5a6010548561102490919063ffffffff16565b90506000611b62838361147a565b30600090815260086020526040902054909150611b7f90826114bc565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611bad90836114bc565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206120ae833981519152910160405180910390a38115611c3e57600554611c07908361147a565b6005556004546040518381526001600160a01b03918216918a16906000805160206120ae8339815191529060200160405180910390a35b611c48878461147a565b98975050505050505050565b600060208083528351808285015260005b81811015611c8157858101830151858201604001528201611c65565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cb957600080fd5b919050565b60008060408385031215611cd157600080fd5b611cda83611ca2565b946020939093013593505050565b60008060408385031215611cfb57600080fd5b50508035926020909101359150565b600080600060608486031215611d1f57600080fd5b611d2884611ca2565b9250611d3660208501611ca2565b9150604084013590509250925092565b600060208284031215611d5857600080fd5b5035919050565b8015158114610a8a57600080fd5b60008060408385031215611d8057600080fd5b611d8983611ca2565b91506020830135611d9981611d5f565b809150509250929050565b600060208284031215611db657600080fd5b61083d82611ca2565b6001600160a01b0391909116815260200190565b60008060408385031215611de657600080fd5b8235611cda81611d5f565b600080600080600060a08688031215611e0957600080fd5b611e1286611ca2565b9450611e2060208701611ca2565b9350611e2e60408701611ca2565b9250611e3c60608701611ca2565b9150611e4a60808701611ca2565b90509295509295909350565b60008060008060008060c08789031215611e6f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611eac57600080fd5b611eb583611ca2565b9150611ec360208401611ca2565b90509250929050565b600080600060608486031215611ee157600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f6057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761076857610768611f2d565b600060208284031215611f8e57600080fd5b5051919050565b600060208284031215611fa757600080fd5b815161083d81611d5f565b8181038181111561076857610768611f2d565b8082018082111561076857610768611f2d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561207457600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205d6d1b3433925608d3b875d82bd8367a235935f111a30868f82ccd2d80e8d76b64736f6c63430008120033

Deployed Bytecode Sourcemap

6243:13493:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7965:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7965:55:0;;;;;;;;9511:80;;;;;;;;;;-1:-1:-1;9583:5:0;;;;;;;;;;;;-1:-1:-1;;;9583:5:0;;;;9511:80;;;;;;;:::i;7884:31::-;;;;;;;;;;-1:-1:-1;7884:31:0;;;;-1:-1:-1;;;7884:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7884:31:0;749:187:1;9933:216:0;;;;;;;;;;-1:-1:-1;9933:216:0;;;;;:::i;:::-;;:::i;19510:150::-;;;;;;;;;;-1:-1:-1;19510:150:0;;;;;:::i;:::-;;:::i;9241:88::-;;;;;;;;;;-1:-1:-1;9314:12:0;;9241:88;;7231:94;;;;;;;;;;;;;;;;10451:370;;;;;;;;;;-1:-1:-1;10451:370:0;;;;;:::i;:::-;;:::i;19185:142::-;;;;;;;;;;;;;:::i;9335:80::-;;;;;;;;;;-1:-1:-1;9335:80:0;;6598:1;2106:36:1;;2094:2;2079:18;9335:80:0;1964:184:1;11057:187:0;;;;;;;;;;-1:-1:-1;11057:187:0;;;;;:::i;:::-;;:::i;:::-;;17671:121;;;;;;;;;;-1:-1:-1;17671:121:0;;;;;:::i;:::-;;:::i;10157:122::-;;;;;;;;;;-1:-1:-1;10157:122:0;;;;;:::i;:::-;;:::i;7928:30::-;;;;;;;;;;-1:-1:-1;7928:30:0;;;;-1:-1:-1;;;7928:30:0;;;;;;9681:105;;;;;;;;;;-1:-1:-1;9681:105:0;;;;;:::i;:::-;;:::i;4300:148::-;;;;;;;;;;;;;:::i;6735:61::-;;;;;;;;;;;;;;;;6670:58;;;;;;;;;;;;;;;;17497:166;;;;;;;;;;-1:-1:-1;17497:166:0;;;;;:::i;:::-;;:::i;9597:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14875:118::-;;;;;;;;;;;;;:::i;4086:79::-;;;;;;;;;;;;;:::i;9421:84::-;;;;;;;;;;-1:-1:-1;9495:7:0;;;;;;;;;;;;-1:-1:-1;;;9495:7:0;;;;9421:84;;18840:153;;;;;;;;;;-1:-1:-1;18840:153:0;;;;;:::i;:::-;;:::i;10833:216::-;;;;;;;;;;-1:-1:-1;10833:216:0;;;;;:::i;:::-;;:::i;7852:19::-;;;;;;;;;;-1:-1:-1;7852:19:0;;;;-1:-1:-1;;;;;7852:19:0;;;10287:156;;;;;;;;;;-1:-1:-1;10287:156:0;;;;;:::i;:::-;;:::i;3706:21::-;;;;;;;;;;-1:-1:-1;3706:21:0;;;;-1:-1:-1;;;;;3706:21:0;;;15510:86;;;;;;;;;;;;;:::i;18382:450::-;;;;;;;;;;-1:-1:-1;18382:450:0;;;;;:::i;:::-;;:::i;17800:574::-;;;;;;;;;;-1:-1:-1;17800:574:0;;;;;:::i;:::-;;:::i;14642:77::-;;;;;;;;;;;;;:::i;19335:167::-;;;;;;;;;;-1:-1:-1;19335:167:0;;;;;:::i;:::-;;:::i;15001:285::-;;;;;;;;;;-1:-1:-1;15001:285:0;;;;;:::i;:::-;;:::i;14435:198::-;;;;;;;;;;-1:-1:-1;14435:198:0;;;;;:::i;:::-;;:::i;9792:133::-;;;;;;;;;;-1:-1:-1;9792:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9894:19:0;;;9876:7;9894:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9792:133;15294:208;;;;;;;;;;-1:-1:-1;15294:208:0;;;;;:::i;:::-;;:::i;4456:244::-;;;;;;;;;;-1:-1:-1;4456:244:0;;;;;:::i;:::-;;:::i;19001:172::-;;;;;;;;;;-1:-1:-1;19001:172:0;;;;;:::i;:::-;;:::i;7782:24::-;;;;;;;;;;-1:-1:-1;7782:24:0;;;;-1:-1:-1;;;;;7782:24:0;;;14727:140;;;;;;;;;;;;;:::i;9933:216::-;10037:10;10008:4;10025:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10025:32:0;;;;;;;;;;:41;;;10082:37;10008:4;;10025:32;;10082:37;;;;10060:6;160:25:1;;148:2;133:18;;14:177;10082:37:0;;;;;;;;-1:-1:-1;10137:4:0;9933:216;;;;;:::o;19510:150::-;19590:4;19646:6;19614:29;19634:8;19614:19;:29::i;:::-;:38;;19510:150;-1:-1:-1;;;19510:150:0:o;10451:370::-;-1:-1:-1;;;;;10571:19:0;;10551:4;10571:19;;;:11;:19;;;;;;;;10591:10;10571:31;;;;;;;;-1:-1:-1;;10571:52:0;10568:186;;10673:69;;;;;;;;;;;-1:-1:-1;;;10673:69:0;;;;;;;;-1:-1:-1;;;;;10673:19:0;;-1:-1:-1;10673:19:0;;;:11;:19;;;;;10693:10;10673:31;;;;;;;;;;:69;;10709:6;;10673:35;:69::i;:::-;-1:-1:-1;;;;;10639:19:0;;;;;;:11;:19;;;;;;;;10659:10;10639:31;;;;;;;:103;10568:186;10773:40;10787:6;10795:9;10806:6;10773:13;:40::i;:::-;10766:47;;10451:370;;;;;;:::o;19185:142::-;19313:4;;19238:7;;19265:54;;19303:15;;-1:-1:-1;;;;;19313:4:0;19303:9;:15::i;:::-;19292:4;;19265:33;;19282:15;;-1:-1:-1;;;;;19292:4:0;19282:9;:15::i;:::-;19265:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19258:61;;19185:142;:::o;11057:187::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;;;;;;;;;11167:4:::1;11152:12;;:19;;;;:::i;:::-;11136:12;;:35;;11128:44;;;::::0;::::1;;11232:4;11215:12;11200;;:27;;;;:::i;:::-;11199:37;;;;:::i;:::-;11184:12;:52:::0;-1:-1:-1;11057:187:0:o;17671:121::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17752:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17752:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17671:121::o;10157:122::-;10212:4;10236:35;10244:7;-1:-1:-1;;10236:7:0;:35::i;9681:105::-;-1:-1:-1;;;;;9765:18:0;9747:7;9765:18;;;:9;:18;;;;;;;9681:105::o;4300:148::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;4407:1:::1;4391:6:::0;;4370:40:::1;::::0;-1:-1:-1;;;;;4391:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;4370:40:0;4407:1;;4370:40:::1;4438:1;4421:19:::0;;-1:-1:-1;;;;;;4421:19:0::1;::::0;;4300:148::o;17497:166::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17584:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17584:28:0;;::::1;::::0;::::1;::::0;;;17623:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17497:166::o;9597:78::-;9649:7;9666;:5;:7::i;14875:118::-;14929:21;;14921:62;;-1:-1:-1;;;;;14929:21:0;;;;14961;14921:62;;;;;14929:21;14921:62;14929:21;14921:62;14961:21;14929;14921:62;;;;;;;;;;;;;;;;;;;;;14875:118::o;4086:79::-;4124:7;4151:6;-1:-1:-1;;;;;4151:6:0;;4086:79::o;18840:153::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;18929:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18929:22:0::1;-1:-1:-1::0;;;;18929:22:0;;::::1;::::0;;;::::1;::::0;;;18962:13:::1;:23:::0;18840:153::o;10833:216::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;10949:4:::1;10934:12;;:19;;;;:::i;:::-;10915:15;;:38;;10907:47;;;::::0;::::1;;11019:4;11000:14;10985:12;;:29;;;;:::i;:::-;10984:39;;;;:::i;:::-;10966:15;:57:::0;-1:-1:-1;10833:216:0:o;10287:156::-;10367:4;10391:44;10405:10;10417:9;10428:6;10391:13;:44::i;15510:86::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;15561:11:::1;:18:::0;;-1:-1:-1;;;;15561:18:0::1;-1:-1:-1::0;;;15561:18:0::1;::::0;;15510:86::o;18382:450::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;18582:21:::1;:46:::0;;-1:-1:-1;;;;;;18582:46:0;;::::1;-1:-1:-1::0;;;;;18582:46:0;;::::1;;::::0;;;18639:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18694:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18745:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18790:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18382:450::o;17800:574::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;17981:12:::1;:28:::0;;;18020:7:::1;:18:::0;;;18049:12:::1;:28:::0;;;18088:10:::1;:24:::0;;;18123:7:::1;:18:::0;;;18163:77:::1;18133:8:::0;18163:63:::1;18101:11:::0;18163:63;18064:13;18163:63;17996:13;18030:8;18163:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18152:8;:88:::0;18251:14:::1;:32:::0;;;18313:18:::1;18330:1;18268:15:::0;18313:18:::1;:::i;:::-;18302:8;;:29;18294:71;;;::::0;-1:-1:-1;;;18294:71:0;;6413:2:1;18294:71:0::1;::::0;::::1;6395:21:1::0;6452:2;6432:18;;;6425:30;6491:31;6471:18;;;6464:59;6540:18;;18294:71:0::1;6211:353:1::0;18294:71:0::1;17800:574:::0;;;;;;:::o;14642:77::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;14695:10:::1;:8;:10::i;:::-;14642:77::o:0;19335:167::-;19403:7;19430:64;19471:22;:20;:22::i;:::-;19453:4;;19430:36;;19443:22;;19463:1;;19443:15;;-1:-1:-1;;;;;19453:4:0;19443:9;:15::i;:::-;:19;;:22::i;:::-;19430:8;;:12;:36::i;:::-;:40;;:64::i;15001:285::-;15083:4;15110:6;15120:1;15110:11;15107:95;;15146:44;;-1:-1:-1;;;15146:44:0;;-1:-1:-1;;;;;15146:29:0;;;;;:44;;15184:4;;15146:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15137:53;;15107:95;15248:21;;15219:59;;-1:-1:-1;;;15219:59:0;;-1:-1:-1;;;;;15248:21:0;;;15219:59;;;6932:51:1;6999:18;;;6992:34;;;15219:28:0;;;;;;6905:18:1;;15219:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14435:198::-;14564:15;;14524:21;;-1:-1:-1;;;;;14564:15:0;14556:69;14621:3;14590:28;14602:16;14524:21;14590:28;:::i;:::-;:34;;;;:::i;:::-;14556:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14493:140;14435:198;:::o;15294:208::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;15387:14:::1;:22:::0;;;;15420:13:::1;:20:::0;;;;15451:18:::1;:27:::0;15294:208::o;4456:244::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4545:22:0;::::1;4537:73;;;::::0;-1:-1:-1;;;4537:73:0;;7489:2:1;4537:73:0::1;::::0;::::1;7471:21:1::0;7528:2;7508:18;;;7501:30;7567:34;7547:18;;;7540:62;-1:-1:-1;;;7618:18:1;;;7611:36;7664:19;;4537:73:0::1;7287:402:1::0;4537:73:0::1;4647:6;::::0;;4626:38:::1;::::0;-1:-1:-1;;;;;4626:38:0;;::::1;::::0;4647:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;4626:38:0;::::1;4675:6;:17:::0;;-1:-1:-1;;;;;;4675:17:0::1;-1:-1:-1::0;;;;;4675:17:0;;;::::1;::::0;;;::::1;::::0;;4456:244::o;19001:172::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;19088:15:::1;:25:::0;;;;19124:26:::1;:41:::0;19001:172::o;14727:140::-;4213:6;;-1:-1:-1;;;;;4213:6:0;3523:10;4213:22;4205:67;;;;-1:-1:-1;;;4205:67:0;;;;;;;:::i;:::-;14807:12:::1;::::0;14789:15:::1;:30:::0;;;14830:12:::1;:27:::0;14727:140::o;1885:250::-;1943:7;1967:1;1972;1967:6;1963:47;;-1:-1:-1;1997:1:0;1990:8;;1963:47;2022:9;2034:5;2038:1;2034;:5;:::i;:::-;2022:17;-1:-1:-1;2067:1:0;2058:5;2062:1;2022:17;2058:5;:::i;:::-;:10;2050:56;;;;-1:-1:-1;;;2050:56:0;;7896:2:1;2050:56:0;;;7878:21:1;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;-1:-1:-1;;;8025:18:1;;;8018:31;8066:19;;2050:56:0;7694:397:1;2141:132:0;2199:7;2226:39;2230:1;2233;2226:39;;;;;;;;;;;;;-1:-1:-1;;;2226:39:0;;;:3;:39::i;1687:192::-;1773:7;1809:12;1801:6;;;;1793:29;;;;-1:-1:-1;;;1793:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1833:9:0;1845:5;1849:1;1845;:5;:::i;:::-;1833:17;1687:192;-1:-1:-1;;;;;1687:192:0:o;11260:1309::-;11372:6;;11352:4;;11372:6;;11369:63;;;11388:41;11403:6;11411:9;11422:6;11388:14;:41::i;:::-;11381:48;;;;11369:63;-1:-1:-1;;;;;11448:22:0;;;;;;:14;:22;;;;;;;;11447:23;:53;;;;-1:-1:-1;;;;;;11475:25:0;;;;;;:14;:25;;;;;;;;11474:26;11447:53;11444:140;;;11524:11;;-1:-1:-1;;;11524:11:0;;;;11516:43;;;;-1:-1:-1;;;11516:43:0;;8431:2:1;11516:43:0;;;8413:21:1;8470:2;8450:18;;;8443:30;-1:-1:-1;;;8489:18:1;;;8482:50;8549:18;;11516:43:0;8229:344:1;11516:43:0;-1:-1:-1;;;;;11618:22:0;;;;;;:14;:22;;;;;;;;11617:23;:53;;;;-1:-1:-1;;;;;;11644:26:0;;11665:4;11644:26;;11617:53;:84;;;;-1:-1:-1;11696:4:0;;-1:-1:-1;;;;;11675:26:0;;;11696:4;;11675:26;;11617:84;:105;;;;-1:-1:-1;11718:4:0;;-1:-1:-1;;;;;11705:17:0;;;11718:4;;11705:17;;11617:105;:137;;;;-1:-1:-1;11739:15:0;;-1:-1:-1;;;;;11726:28:0;;;11739:15;;11726:28;;11617:137;:174;;;;-1:-1:-1;11771:20:0;;-1:-1:-1;;;;;11758:33:0;;;11771:20;;11758:33;;11617:174;:205;;;;-1:-1:-1;;;;;;11796:26:0;;;;;;:15;:26;;;;;;;;11795:27;11617:205;11613:397;;;11838:18;11859:20;11869:9;11859;:20::i;:::-;11927:15;;11838:41;;-1:-1:-1;11903:19:0;11916:6;11838:41;11903:19;:::i;:::-;11902:40;;11894:114;;;;-1:-1:-1;;;11894:114:0;;8910:2:1;11894:114:0;;;8892:21:1;8949:2;8929:18;;;8922:30;8988:34;8968:18;;;8961:62;9059:32;9039:18;;;9032:60;9109:19;;11894:114:0;8708:426:1;11894:114:0;11823:187;11613:397;12063:28;12076:6;12084;12063:12;:28::i;:::-;12108:16;:14;:16::i;:::-;12105:35;;;12127:10;:8;:10::i;:::-;12220:53;;;;;;;;;;;-1:-1:-1;;;12220:53:0;;;;;;;;-1:-1:-1;;;;;12220:17:0;;-1:-1:-1;12220:17:0;;;:9;:17;;;;;;;;:53;;12242:6;;12220:21;:53::i;:::-;-1:-1:-1;;;;;12200:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12312:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12335:22:0;;;;;;:11;:22;;;;;;;;12312:45;12311:93;;12370:34;12378:6;12386;12394:9;12370:7;:34::i;:::-;12311:93;;;12361:6;12311:93;-1:-1:-1;;;;;12438:20:0;;;;;;:9;:20;;;;;;12286:118;;-1:-1:-1;12438:40:0;;12286:118;12438:24;:40::i;:::-;-1:-1:-1;;;;;12415:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12496:43;;;;;;-1:-1:-1;;;;;;;;;;;12496:43:0;;;12524:14;160:25:1;;148:2;133:18;;14:177;12496:43:0;;;;;;;;-1:-1:-1;12557:4:0;;11260:1309;-1:-1:-1;;;;11260:1309:0:o;1545:136::-;1603:7;1630:43;1634:1;1637;1630:43;;;;;;;;;;;;;;;;;:3;:43::i;1358:181::-;1416:7;;1448:5;1452:1;1448;:5;:::i;:::-;1436:17;;1477:1;1472;:6;;1464:46;;;;-1:-1:-1;;;1464:46:0;;9341:2:1;1464:46:0;;;9323:21:1;9380:2;9360:18;;;9353:30;-1:-1:-1;;;9399:18:1;;;9392:57;9466:18;;1464:46:0;9139:351:1;15612:1877:0;8068:6;:13;;-1:-1:-1;;8068:13:0;8077:4;8068:13;;;15707:15:::1;::::0;15724:26:::1;::::0;8068:6;;15691:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15758:12;;15691:79;;;15754:1;15691:79;15661:109;;15781:23;15807:59;15864:1;15807:52;15850:8;;15807:38;15825:19;15807:13;;:17;;:38;;;;:::i;:59::-;15781:85;;15877:20;15900:34;15918:15;15900:13;;:17;;:34;;;;:::i;:::-;15971:16;::::0;;15985:1:::1;15971:16:::0;;;;;::::1;::::0;;15877:57;;-1:-1:-1;15947:21:0::1;::::0;15971:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15971:16:0::1;15947:40;;16016:4;15998;16003:1;15998:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15998:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16042:4:::1;::::0;16032:7;;16042:4;::::1;::::0;16032;;16042;;16032:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16032:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16117:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16117:188:0;;16083:21:::1;::::0;16117:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16189:12;;16059:21:::1;::::0;16232:4;;16259::::1;::::0;16279:15:::1;::::0;16117:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16318:17;16338:40;16364:13;16338:21;:25;;:40;;;;:::i;:::-;16318:60:::0;-1:-1:-1;16391:19:0::1;16413:40;16426:26;:19:::0;16450:1:::1;16426:23;:26::i;:::-;16413:8;::::0;;:12:::1;:40::i;:::-;16391:62:::0;-1:-1:-1;16474:26:0::1;16503:58;16559:1;16503:51;16391:62:::0;16503:51;:9;16517:19;16503:13:::1;:34::i;:58::-;16474:87;;16572:26;16601:44;16633:11;16601:27;16615:12;;16601:9;:13;;:27;;;;:::i;:44::-;16572:73;;16656:21;16680:39;16707:11;16680:22;16694:7;;16680:9;:13;;:22;;;;:::i;:39::-;16656:63;;16730:24;16757:42;16787:11;16757:25;16771:10;;16757:9;:13;;:25;;;;:::i;:42::-;16841:20;::::0;16833:65:::1;::::0;16730:69;;-1:-1:-1;16813:15:0::1;::::0;-1:-1:-1;;;;;16841:20:0;;::::1;::::0;16875:18;;16813:15;16833:65;16813:15;16833:65;16875:18;16841:20;16833:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16933:18:0::1;::::0;16925:61:::1;::::0;16812:86;;-1:-1:-1;;;;;;16933:18:0::1;::::0;16965:16;;16925:61:::1;::::0;;;16965:16;16933:18;16925:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17021:15:0::1;::::0;17013:55:::1;::::0;16909:77;;-1:-1:-1;;;;;;17021:15:0::1;::::0;17050:13;;17013:55:::1;::::0;;;17050:13;17021:15;17013:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17102:5:0::1;::::0;-1:-1:-1;;17123:19:0;;;-1:-1:-1;17120:362:0::1;;17158:6;::::0;17332:21:::1;::::0;17158:244:::1;::::0;-1:-1:-1;;;17158:244:0;;17234:4:::1;17158:244;::::0;::::1;11295:34:1::0;11345:18;;;11338:34;;;17158:6:0::1;11388:18:1::0;;;11381:34;;;11431:18;;;11424:34;-1:-1:-1;;;;;17332:21:0;;::::1;11474:19:1::0;;;11467:44;17372:15:0::1;11527:19:1::0;;;11520:35;17158:6:0;::::1;::::0;:22:::1;::::0;17188:18;;11229:19:1;;17158:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17422:48:0::1;::::0;;12051:25:1;;;12107:2;12092:18;;12085:34;;;17422:48:0::1;::::0;-1:-1:-1;12024:18:1;17422:48:0::1;;;;;;;17120:362;-1:-1:-1::0;;8086:6:0;:14;;-1:-1:-1;;8086:14:0;;;-1:-1:-1;;;;;;;;;;15612:1877:0:o;2279:189::-;2365:7;2400:12;2393:5;2385:28;;;;-1:-1:-1;;;2385:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2424:9:0;2436:5;2440:1;2436;:5;:::i;12581:330::-;12711:53;;;;;;;;;;;-1:-1:-1;;;12711:53:0;;;;;;;;-1:-1:-1;;;;;12711:17:0;;12674:4;12711:17;;;:9;:17;;;;;;;:53;;12733:6;;12711:21;:53::i;:::-;-1:-1:-1;;;;;12691:17:0;;;;;;;:9;:17;;;;;;:73;;;;12798:20;;;;;;;:32;;12823:6;12798:24;:32::i;:::-;-1:-1:-1;;;;;12775:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12846:35;;;;;;-1:-1:-1;;;;;;;;;;;12846:35:0;;;12874:6;160:25:1;;148:2;133:18;;14:177;12846:35:0;;;;;;;;-1:-1:-1;12899:4:0;12581:330;;;;;:::o;12919:166::-;13016:12;;13006:6;:22;;:49;;;-1:-1:-1;;;;;;13032:23:0;;;;;;:15;:23;;;;;;;;13006:49;12998:79;;;;-1:-1:-1;;;12998:79:0;;12332:2:1;12998:79:0;;;12314:21:1;12371:2;12351:18;;;12344:30;-1:-1:-1;;;12390:18:1;;;12383:47;12447:18;;12998:79:0;12130:341:1;12998:79:0;12919:166;;:::o;14230:197::-;14317:4;;14279;;-1:-1:-1;;;;;14317:4:0;14303:10;:18;;;;:38;;-1:-1:-1;14335:6:0;;;;14334:7;14303:38;:62;;;;-1:-1:-1;14354:11:0;;-1:-1:-1;;;14354:11:0;;;;14303:62;:116;;;;-1:-1:-1;;14406:13:0;;;14396:4;14378:24;;;;:9;:24;;;;;;;;:41;;;14230:197::o;13215:1007::-;13352:18;;13399:4;;13301:7;;13352:18;-1:-1:-1;;;;;13399:4:0;;;13386:17;;;;13383:154;;-1:-1:-1;13433:14:0;;13383:154;;;13478:4;;-1:-1:-1;;;;;13478:4:0;;;13468:14;;;;13465:72;;-1:-1:-1;13512:13:0;;13465:72;13549:17;13569:62;13610:14;;13627:3;13610:20;;;;:::i;:::-;13569:36;13594:10;13569:20;13580:8;;13569:6;:10;;:20;;;;:::i;:62::-;13549:82;;13642:18;13663:36;13690:8;;13663:22;13677:7;;13663:9;:13;;:22;;;;:::i;:36::-;13642:57;-1:-1:-1;13710:22:0;13735:25;:9;13642:57;13735:13;:25::i;:::-;13818:4;13800:24;;;;:9;:24;;;;;;13710:50;;-1:-1:-1;13800:44:0;;13710:50;13800:28;:44::i;:::-;13791:4;13773:24;;;;:9;:24;;;;;;:71;;;;13894:15;;-1:-1:-1;;;;;13894:15:0;13884:26;;;;:42;;13915:10;13884:30;:42::i;:::-;13865:15;;-1:-1:-1;;;;;13865:15:0;;;13855:26;;;;:9;:26;;;;;;;;;:71;;;;13942:47;160:25:1;;;13967:4:0;;13942:47;;;;-1:-1:-1;;;;;;;;;;;13942:47:0;133:18:1;13942:47:0;;;;;;;14023:14;;14020:154;;14068:12;;:28;;14085:10;14068:16;:28::i;:::-;14053:12;:43;14133:4;;14116:34;;160:25:1;;;-1:-1:-1;;;;;14133:4:0;;;;14116:34;;;-1:-1:-1;;;;;;;;;;;14116:34:0;148:2:1;133:18;14116:34:0;;;;;;;14020:154;14193:21;:6;14204:9;14193:10;:21::i;:::-;14186:28;13215:1007;-1:-1:-1;;;;;;;;13215:1007:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2153:180::-;2212:6;2265:2;2253:9;2244:7;2240:23;2236:32;2233:52;;;2281:1;2278;2271:12;2233:52;-1:-1:-1;2304:23:1;;2153:180;-1:-1:-1;2153:180:1:o;2338:118::-;2424:5;2417:13;2410:21;2403:5;2400:32;2390:60;;2446:1;2443;2436:12;2461:315;2526:6;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;2626:29;2645:9;2626:29;:::i;:::-;2616:39;;2705:2;2694:9;2690:18;2677:32;2718:28;2740:5;2718:28;:::i;:::-;2765:5;2755:15;;;2461:315;;;;;:::o;2781:186::-;2840:6;2893:2;2881:9;2872:7;2868:23;2864:32;2861:52;;;2909:1;2906;2899:12;2861:52;2932:29;2951:9;2932:29;:::i;2972:203::-;-1:-1:-1;;;;;3136:32:1;;;;3118:51;;3106:2;3091:18;;2972:203::o;3180:309::-;3245:6;3253;3306:2;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;3361:9;3348:23;3380:28;3402:5;3380:28;:::i;3494:484::-;3589:6;3597;3605;3613;3621;3674:3;3662:9;3653:7;3649:23;3645:33;3642:53;;;3691:1;3688;3681:12;3642:53;3714:29;3733:9;3714:29;:::i;:::-;3704:39;;3762:38;3796:2;3785:9;3781:18;3762:38;:::i;:::-;3752:48;;3819:38;3853:2;3842:9;3838:18;3819:38;:::i;:::-;3809:48;;3876:38;3910:2;3899:9;3895:18;3876:38;:::i;:::-;3866:48;;3933:39;3967:3;3956:9;3952:19;3933:39;:::i;:::-;3923:49;;3494:484;;;;;;;;:::o;3983:523::-;4087:6;4095;4103;4111;4119;4127;4180:3;4168:9;4159:7;4155:23;4151:33;4148:53;;;4197:1;4194;4187:12;4148:53;-1:-1:-1;;4220:23:1;;;4290:2;4275:18;;4262:32;;-1:-1:-1;4341:2:1;4326:18;;4313:32;;4392:2;4377:18;;4364:32;;-1:-1:-1;4443:3:1;4428:19;;4415:33;;-1:-1:-1;4495:3:1;4480:19;4467:33;;-1:-1:-1;3983:523:1;-1:-1:-1;3983:523:1:o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:316::-;4853:6;4861;4869;4922:2;4910:9;4901:7;4897:23;4893:32;4890:52;;;4938:1;4935;4928:12;4890:52;-1:-1:-1;;4961:23:1;;;5031:2;5016:18;;5003:32;;-1:-1:-1;5082:2:1;5067:18;;;5054:32;;4776:316;-1:-1:-1;4776:316:1:o;5323:356::-;5525:2;5507:21;;;5544:18;;;5537:30;5603:34;5598:2;5583:18;;5576:62;5670:2;5655:18;;5323:356::o;5684:127::-;5745:10;5740:3;5736:20;5733:1;5726:31;5776:4;5773:1;5766:15;5800:4;5797:1;5790:15;5816:217;5856:1;5882;5872:132;;5926:10;5921:3;5917:20;5914:1;5907:31;5961:4;5958:1;5951:15;5989:4;5986:1;5979:15;5872:132;-1:-1:-1;6018:9:1;;5816:217::o;6038:168::-;6111:9;;;6142;;6159:15;;;6153:22;;6139:37;6129:71;;6180:18;;:::i;6569:184::-;6639:6;6692:2;6680:9;6671:7;6667:23;6663:32;6660:52;;;6708:1;6705;6698:12;6660:52;-1:-1:-1;6731:16:1;;6569:184;-1:-1:-1;6569:184:1:o;7037:245::-;7104:6;7157:2;7145:9;7136:7;7132:23;7128:32;7125:52;;;7173:1;7170;7163:12;7125:52;7205:9;7199:16;7224:28;7246:5;7224:28;:::i;8096:128::-;8163:9;;;8184:11;;;8181:37;;;8198:18;;:::i;8578:125::-;8643:9;;;8664:10;;;8661:36;;;8677:18;;:::i;9627:127::-;9688:10;9683:3;9679:20;9676:1;9669:31;9719:4;9716:1;9709:15;9743:4;9740:1;9733:15;9759:980;10021:4;10069:3;10058:9;10054:19;10100:6;10089:9;10082:25;10126:2;10164:6;10159:2;10148:9;10144:18;10137:34;10207:3;10202:2;10191:9;10187:18;10180:31;10231:6;10266;10260:13;10297:6;10289;10282:22;10335:3;10324:9;10320:19;10313:26;;10374:2;10366:6;10362:15;10348:29;;10395:1;10405:195;10419:6;10416:1;10413:13;10405:195;;;10484:13;;-1:-1:-1;;;;;10480:39:1;10468:52;;10575:15;;;;10540:12;;;;10516:1;10434:9;10405:195;;;-1:-1:-1;;;;;;;10656:32:1;;;;10651:2;10636:18;;10629:60;-1:-1:-1;;;10720:3:1;10705:19;10698:35;10617:3;9759:980;-1:-1:-1;;;9759:980:1:o;11566:306::-;11654:6;11662;11670;11723:2;11711:9;11702:7;11698:23;11694:32;11691:52;;;11739:1;11736;11729:12;11691:52;11768:9;11762:16;11752:26;;11818:2;11807:9;11803:18;11797:25;11787:35;;11862:2;11851:9;11847:18;11841:25;11831:35;;11566:306;;;;;:::o

Swarm Source

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