ETH Price: $2,833.10 (-7.23%)
Gas: 5 Gwei

Token

Catch Gainz Not Feelings (GAINZ)
 

Overview

Max Total Supply

69,420,000,000 GAINZ

Holders

47

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 7 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GAINZ

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 11 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-27
*/

/*


 .oOOOo.     Oo    ooOoOOo o.     O OoooOOoO 
.O     o    o  O      O    Oo     o       o  
o          O    o     o    O O    O      O   
O         oOooOoOo    O    O  o   o     o    
O   .oOOo o      O    o    O   o  O    O     
o.      O O      o    O    o    O O   o      
 O.    oO o      O    O    o     Oo  O       
  `OooO'  O.     O ooOOoOo O     `o OOooOooO 
                                             

Catch Gainz Not Feelings
$GAINZ


Tax - 0/0
Supply - 69,420,000,000

https://t.me/CatchGainzNotFeelings
https://x.com/GAINZ_ON_ETH
https://catchgainznotfeelings.com/
*/



// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.24;

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



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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}


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

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

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

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

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

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

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

    string constant _name = "Catch Gainz Not Feelings";
    string constant _symbol = "GAINZ";
    uint8 constant _decimals = 7; 

    uint256 _totalSupply =   69420000000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);

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

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

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private utilityFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

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

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

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver =  0x223D56f81Df47c695eE6d8788D83f11C6E3aDC60;
        devFeeReceiver = msg.sender;
        utilityFeeReceiver = 0x5e1f1C97468AB5DEcA994cC86914fc2E6f38603B;
        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 setNoRestrictions () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
         
    }
      
      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

        checkTxLimit(sender, amount);  

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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


   function removeForeignToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(tokenAddress != address(this), "tokenAddress can not be the native token");
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
           return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setFees(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function enableTrading() public onlyOwner {
        TradingOpen = true;
        sellpercent = 1100;
        buypercent = 700;
        transferpercent = 1000;
                                            
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
  
    
    function setOverallTax(uint256 _liquidityFee, uint256 _utilityFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        utilityFee = _utilityFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_utilityFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
   
    }

   
    function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _utilityFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;

     
    }

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

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

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

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


    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":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goZeroZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignToken","outputs":[{"internalType":"bool","name":"success","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":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setNoRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setOverallTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateContractSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126007600a62000679565b6200002390641029c1230062000689565b600381905562000045906103e8906200003e90600f62000456565b90620004e9565b60045560035462000061906103e8906200003e90600f62000456565b6005556001600a556002600b555f600c556001600d555f600e55600e54600c54600a54600b54600d54620000969190620006a3565b620000a29190620006a3565b620000ae9190620006a3565b620000ba9190620006a3565b600f5560646010819055601181905560128190556013819055601e601955601a55601d805461ffff60a01b1916600160a81b1790556003546103e8906200010390603762000689565b6200010f9190620006b9565b601e553480156200011e575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001db573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002019190620006d9565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200025e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002849190620006d9565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f99190620006d9565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560158054909916855282852080548916821790559484528184208054909716909417909555601480548516841790558554841673223d56f81df47c695ee6d8788d83f11c6e3adc601790955560168054841683179055601780548416735e1f1c97468ab5deca994cc86914fc2e6f38603b1790556018805490931661dead1790925560035481835260069094528282208490559151919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004489190815260200190565b60405180910390a36200074f565b5f825f036200046757505f620004e3565b5f62000474838562000689565b905082620004838583620006b9565b14620004e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200053260201b60201c565b5f8183620005555760405162461bcd60e51b8152600401620004d7919062000701565b505f620005638486620006b9565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005c057815f1904821115620005a457620005a46200056c565b80851615620005b257918102915b93841c939080029062000585565b509250929050565b5f82620005d857506001620004e3565b81620005e657505f620004e3565b8160018114620005ff57600281146200060a576200062a565b6001915050620004e3565b60ff8411156200061e576200061e6200056c565b50506001821b620004e3565b5060208310610133831016604e8410600b84101617156200064f575081810a620004e3565b6200065b838362000580565b805f19048211156200067157620006716200056c565b029392505050565b5f620004e060ff841683620005c8565b8082028115828204841417620004e357620004e36200056c565b80820180821115620004e357620004e36200056c565b5f82620006d457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006ea575f80fd5b81516001600160a01b0381168114620004e0575f80fd5b5f602080835283518060208501525f5b818110156200072f5785810183015185820160400152820162000711565b505f604082860101526040601f19601f8301168501019250505092915050565b611dd8806200075d5f395ff3fe6080604052600436106101a1575f3560e01c80630445b667146101ac57806306fdde03146101d457806308fd3d051461021d578063095ea7b31461024d57806318160ddd1461026c5780631df4ccfc1461028057806323b872dd1461029557806329341c48146102b45780632ad75672146102d557806330c9a6a0146102f4578063313ce5671461031357806345d26b1f1461032e578063539d04c51461034d5780635526566914610361578063571ac8b0146103755780636ddd17131461039457806370a08231146103b4578063715018a6146103d357806378109e54146103e75780637d1db4a5146103fc57806382bf293c14610411578063893d20e8146104305780638a4068dd146104515780638a8c523c146104655780638da5cb5b1461047957806395d89b411461048d578063a8aa1b31146104ba578063a9059cbb146104d9578063b2bdfa7b146104f8578063c3d5e1d514610516578063cec10c111461052a578063d6aeedca14610549578063dd62ed3e14610568578063ded1e438146105ac578063f2fde38b146105cb578063f887ea40146105ea575f80fd5b366101a857005b5f80fd5b3480156101b7575f80fd5b506101c1601e5481565b6040519081526020015b60405180910390f35b3480156101df575f80fd5b506040805180820190915260188152774361746368204761696e7a204e6f74204665656c696e677360401b60208201525b6040516101cb919061198c565b348015610228575f80fd5b50601d5461023d90600160a01b900460ff1681565b60405190151581526020016101cb565b348015610258575f80fd5b5061023d6102673660046119f3565b610609565b348015610277575f80fd5b506003546101c1565b34801561028b575f80fd5b506101c1600f5481565b3480156102a0575f80fd5b5061023d6102af366004611a1b565b610675565b3480156102bf575f80fd5b506102d36102ce366004611a54565b610733565b005b3480156102e0575f80fd5b506102d36102ef366004611a93565b610801565b3480156102ff575f80fd5b506101c161030e366004611af4565b610889565b34801561031e575f80fd5b50604051600781526020016101cb565b348015610339575f80fd5b506102d3610348366004611b18565b6108c8565b348015610358575f80fd5b506102d3610913565b34801561036c575f80fd5b506101c1610949565b348015610380575f80fd5b5061023d61038f366004611b34565b610978565b34801561039f575f80fd5b50601d5461023d90600160a81b900460ff1681565b3480156103bf575f80fd5b506101c16103ce366004611b34565b610984565b3480156103de575f80fd5b506102d361099e565b3480156103f2575f80fd5b506101c160055481565b348015610407575f80fd5b506101c160045481565b34801561041c575f80fd5b506102d361042b366004611af4565b6109fc565b34801561043b575f80fd5b50610444610a53565b6040516101cb9190611b4d565b34801561045c575f80fd5b506102d3610a5c565b348015610470575f80fd5b506102d3610a95565b348015610484575f80fd5b50610444610ae5565b348015610498575f80fd5b5060408051808201909152600581526423a0a4a72d60d91b6020820152610210565b3480156104c5575f80fd5b50601d54610444906001600160a01b031681565b3480156104e4575f80fd5b5061023d6104f33660046119f3565b610af3565b348015610503575f80fd5b505f54610444906001600160a01b031681565b348015610521575f80fd5b506102d3610aff565b348015610535575f80fd5b506102d3610544366004611b61565b610b38565b348015610554575f80fd5b5061023d6105633660046119f3565b610b72565b348015610573575f80fd5b506101c1610582366004611b8a565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105b7575f80fd5b5061023d6105c6366004611bbb565b610cc5565b3480156105d6575f80fd5b506102d36105e5366004611b34565b610cd8565b3480156105f5575f80fd5b50601b54610444906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106639086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461071e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546106fa918490610dac565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610729848484610de4565b90505b9392505050565b5f546001600160a01b031633146107655760405162461bcd60e51b815260040161075c90611bdb565b60405180910390fd5b600a869055600d859055600b849055600c839055600e82905561079682610790858188818c8c611130565b90611130565b600f5560108190556107a9600282611c24565b600f54106107f95760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161075c565b505050505050565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161075c90611bdb565b601480546001600160a01b03199081166001600160a01b03978816179091556015805482169587169590951790945560168054851693861693909317909255601880548416918516919091179055601780549092169216919091179055565b5f61066f610895610949565b601d546108c2906108bb906002906108b5906001600160a01b0316610984565b9061118c565b859061118c565b9061120a565b5f546001600160a01b031633146108f15760405162461bcd60e51b815260040161075c90611bdb565b601d8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b5f546001600160a01b0316331461093c5760405162461bcd60e51b815260040161075c90611bdb565b6003546004819055600555565b5f6109736109565f610984565b61096d61096461dead610984565b60035490611248565b90611248565b905090565b5f61066f825f19610609565b6001600160a01b03165f9081526006602052604090205490565b5f546001600160a01b031633146109c75760405162461bcd60e51b815260040161075c90611bdb565b5f80546040516001600160a01b03909116905f80516020611d63833981519152908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a255760405162461bcd60e51b815260040161075c90611bdb565b6001811015610a32575f80fd5b6103e881600354610a439190611c43565b610a4d9190611c24565b60055550565b5f610973610ae5565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610a92573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610abe5760405162461bcd60e51b815260040161075c90611bdb565b601d805460ff60a01b1916600160a01b17905561044c6011556102bc6012556103e8601355565b5f546001600160a01b031690565b5f61072c338484610de4565b5f546001600160a01b03163314610b285760405162461bcd60e51b815260040161075c90611bdb565b5f60118190556012819055601355565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161075c90611bdb565b601191909155601291909155601355565b5f306001600160a01b03841603610bdc5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b606482015260840161075c565b815f03610c51576040516370a0823160e01b81526001600160a01b038416906370a0823190610c0f903090600401611b4d565b602060405180830381865afa158015610c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190611c5a565b91505b60145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611c71565b5f82610cd083610889565b119392505050565b5f546001600160a01b03163314610d015760405162461bcd60e51b815260040161075c90611bdb565b6001600160a01b038116610d665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b5f80546040516001600160a01b03808516939216915f80516020611d6383398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610dcf5760405162461bcd60e51b815260040161075c919061198c565b505f610ddb8486611c8c565b95945050505050565b601f545f9060ff1615610e0357610dfc848484611289565b905061072c565b6001600160a01b0384165f9081526001602052604090205460ff16158015610e4357506001600160a01b0383165f9081526001602052604090205460ff16155b15610e9857601d54600160a01b900460ff16610e985760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161075c565b6001600160a01b0384165f9081526001602052604090205460ff16158015610ec957506001600160a01b0383163014155b8015610ee057506001600160a01b03831661dead14155b8015610efa5750601d546001600160a01b03848116911614155b8015610f1457506018546001600160a01b03848116911614155b8015610f2e57506015546001600160a01b03848116911614155b8015610f5257506001600160a01b0383165f9081526009602052604090205460ff16155b15610fe7575f610f6184610984565b600554909150610f718483611c9f565b1115610fe55760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161075c565b505b610ff18483611359565b610ff96113c5565b1561100657611006611419565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260069091529190912054611057918490610dac565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806110a257506001600160a01b0384165f9081526008602052604090205460ff165b6110b6576110b18584866117e1565b6110b8565b825b6001600160a01b0385165f908152600660205260409020549091506110dd9082611130565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020611d838339815191529061111d9085815260200190565b60405180910390a3506001949350505050565b5f8061113c8385611c9f565b90508381101561072c5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015260640161075c565b5f825f0361119b57505f61066f565b5f6111a68385611c43565b9050826111b38583611c24565b1461072c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075c565b5f61072c83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611960565b5f61072c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546112d9918490610dac565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546113079083611130565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020611d83833981519152906113479086815260200190565b60405180910390a35060019392505050565b6004548111158061138157506001600160a01b0382165f9081526009602052604090205460ff165b6113c15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075c565b5050565b601d545f906001600160a01b031633148015906113e55750601f5460ff16155b80156113fa5750601d54600160a81b900460ff165b8015610973575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f9161143791610cc5565b61144357600a54611445565b5f5b90505f61146860026108c2600f546108c286601e5461118c90919063ffffffff16565b90505f61148082601e5461124890919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106114b8576114b8611cb2565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106114e9576114e9611cb2565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906115329086905f90879030904290600401611cc6565b5f604051808303815f87803b158015611549575f80fd5b505af115801561155b573d5f803e3d5ffd5b505050505f611573824761124890919063ffffffff16565b90505f61158d61158488600261120a565b600f5490611248565b90505f6115a160026108c28481878d61118c565b90505f6115bd836108c2600b548761118c90919063ffffffff16565b90505f6115d9846108c2600d548861118c90919063ffffffff16565b90505f6115f5856108c2600c548961118c90919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611644576040519150601f19603f3d011682016040523d82523d5f602084013e611649565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611696576040519150601f19603f3d011682016040523d82523d5f602084013e61169b565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146116e8576040519150601f19603f3d011682016040523d82523d5f602084013e6116ed565b606091505b505f9250508b1590506117c957601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611767573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061178c9190611d37565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b03908116908416036118065750601154611821565b601d546001600160a01b039081169086160361182157506012545b5f61184d60105460646118349190611c43565b6108c2846108b5600f548a61118c90919063ffffffff16565b90505f61186b600f546108c2600e548561118c90919063ffffffff16565b90505f6118788383611248565b305f908152600660205260409020549091506118949082611130565b305f90815260066020526040808220929092556018546001600160a01b0316815220546118c19083611130565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020611d83833981519152910160405180910390a3811561194a576003546119199083611248565b6003556040518281525f906001600160a01b038a16905f80516020611d838339815191529060200160405180910390a35b6119548784611248565b98975050505050505050565b5f81836119805760405162461bcd60e51b815260040161075c919061198c565b505f610ddb8486611c24565b5f602080835283518060208501525f5b818110156119b85785810183015185820160400152820161199c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146119ee575f80fd5b919050565b5f8060408385031215611a04575f80fd5b611a0d836119d8565b946020939093013593505050565b5f805f60608486031215611a2d575f80fd5b611a36846119d8565b9250611a44602085016119d8565b9150604084013590509250925092565b5f805f805f8060c08789031215611a69575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f805f60a08688031215611aa7575f80fd5b611ab0866119d8565b9450611abe602087016119d8565b9350611acc604087016119d8565b9250611ada606087016119d8565b9150611ae8608087016119d8565b90509295509295909350565b5f60208284031215611b04575f80fd5b5035919050565b8015158114610a92575f80fd5b5f8060408385031215611b29575f80fd5b8235611a0d81611b0b565b5f60208284031215611b44575f80fd5b61072c826119d8565b6001600160a01b0391909116815260200190565b5f805f60608486031215611b73575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611b9b575f80fd5b611ba4836119d8565b9150611bb2602084016119d8565b90509250929050565b5f8060408385031215611bcc575f80fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611c3e57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761066f5761066f611c10565b5f60208284031215611c6a575f80fd5b5051919050565b5f60208284031215611c81575f80fd5b815161072c81611b0b565b8181038181111561066f5761066f611c10565b8082018082111561066f5761066f611c10565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d165784516001600160a01b031683529383019391830191600101611cf1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611d49575f80fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e4f5300830beeeeb607f8ca06768055ad87b26859e99397ad94703a87d73068d64736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101a1575f3560e01c80630445b667146101ac57806306fdde03146101d457806308fd3d051461021d578063095ea7b31461024d57806318160ddd1461026c5780631df4ccfc1461028057806323b872dd1461029557806329341c48146102b45780632ad75672146102d557806330c9a6a0146102f4578063313ce5671461031357806345d26b1f1461032e578063539d04c51461034d5780635526566914610361578063571ac8b0146103755780636ddd17131461039457806370a08231146103b4578063715018a6146103d357806378109e54146103e75780637d1db4a5146103fc57806382bf293c14610411578063893d20e8146104305780638a4068dd146104515780638a8c523c146104655780638da5cb5b1461047957806395d89b411461048d578063a8aa1b31146104ba578063a9059cbb146104d9578063b2bdfa7b146104f8578063c3d5e1d514610516578063cec10c111461052a578063d6aeedca14610549578063dd62ed3e14610568578063ded1e438146105ac578063f2fde38b146105cb578063f887ea40146105ea575f80fd5b366101a857005b5f80fd5b3480156101b7575f80fd5b506101c1601e5481565b6040519081526020015b60405180910390f35b3480156101df575f80fd5b506040805180820190915260188152774361746368204761696e7a204e6f74204665656c696e677360401b60208201525b6040516101cb919061198c565b348015610228575f80fd5b50601d5461023d90600160a01b900460ff1681565b60405190151581526020016101cb565b348015610258575f80fd5b5061023d6102673660046119f3565b610609565b348015610277575f80fd5b506003546101c1565b34801561028b575f80fd5b506101c1600f5481565b3480156102a0575f80fd5b5061023d6102af366004611a1b565b610675565b3480156102bf575f80fd5b506102d36102ce366004611a54565b610733565b005b3480156102e0575f80fd5b506102d36102ef366004611a93565b610801565b3480156102ff575f80fd5b506101c161030e366004611af4565b610889565b34801561031e575f80fd5b50604051600781526020016101cb565b348015610339575f80fd5b506102d3610348366004611b18565b6108c8565b348015610358575f80fd5b506102d3610913565b34801561036c575f80fd5b506101c1610949565b348015610380575f80fd5b5061023d61038f366004611b34565b610978565b34801561039f575f80fd5b50601d5461023d90600160a81b900460ff1681565b3480156103bf575f80fd5b506101c16103ce366004611b34565b610984565b3480156103de575f80fd5b506102d361099e565b3480156103f2575f80fd5b506101c160055481565b348015610407575f80fd5b506101c160045481565b34801561041c575f80fd5b506102d361042b366004611af4565b6109fc565b34801561043b575f80fd5b50610444610a53565b6040516101cb9190611b4d565b34801561045c575f80fd5b506102d3610a5c565b348015610470575f80fd5b506102d3610a95565b348015610484575f80fd5b50610444610ae5565b348015610498575f80fd5b5060408051808201909152600581526423a0a4a72d60d91b6020820152610210565b3480156104c5575f80fd5b50601d54610444906001600160a01b031681565b3480156104e4575f80fd5b5061023d6104f33660046119f3565b610af3565b348015610503575f80fd5b505f54610444906001600160a01b031681565b348015610521575f80fd5b506102d3610aff565b348015610535575f80fd5b506102d3610544366004611b61565b610b38565b348015610554575f80fd5b5061023d6105633660046119f3565b610b72565b348015610573575f80fd5b506101c1610582366004611b8a565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105b7575f80fd5b5061023d6105c6366004611bbb565b610cc5565b3480156105d6575f80fd5b506102d36105e5366004611b34565b610cd8565b3480156105f5575f80fd5b50601b54610444906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106639086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461071e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546106fa918490610dac565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610729848484610de4565b90505b9392505050565b5f546001600160a01b031633146107655760405162461bcd60e51b815260040161075c90611bdb565b60405180910390fd5b600a869055600d859055600b849055600c839055600e82905561079682610790858188818c8c611130565b90611130565b600f5560108190556107a9600282611c24565b600f54106107f95760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161075c565b505050505050565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161075c90611bdb565b601480546001600160a01b03199081166001600160a01b03978816179091556015805482169587169590951790945560168054851693861693909317909255601880548416918516919091179055601780549092169216919091179055565b5f61066f610895610949565b601d546108c2906108bb906002906108b5906001600160a01b0316610984565b9061118c565b859061118c565b9061120a565b5f546001600160a01b031633146108f15760405162461bcd60e51b815260040161075c90611bdb565b601d8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b5f546001600160a01b0316331461093c5760405162461bcd60e51b815260040161075c90611bdb565b6003546004819055600555565b5f6109736109565f610984565b61096d61096461dead610984565b60035490611248565b90611248565b905090565b5f61066f825f19610609565b6001600160a01b03165f9081526006602052604090205490565b5f546001600160a01b031633146109c75760405162461bcd60e51b815260040161075c90611bdb565b5f80546040516001600160a01b03909116905f80516020611d63833981519152908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a255760405162461bcd60e51b815260040161075c90611bdb565b6001811015610a32575f80fd5b6103e881600354610a439190611c43565b610a4d9190611c24565b60055550565b5f610973610ae5565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610a92573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610abe5760405162461bcd60e51b815260040161075c90611bdb565b601d805460ff60a01b1916600160a01b17905561044c6011556102bc6012556103e8601355565b5f546001600160a01b031690565b5f61072c338484610de4565b5f546001600160a01b03163314610b285760405162461bcd60e51b815260040161075c90611bdb565b5f60118190556012819055601355565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161075c90611bdb565b601191909155601291909155601355565b5f306001600160a01b03841603610bdc5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b606482015260840161075c565b815f03610c51576040516370a0823160e01b81526001600160a01b038416906370a0823190610c0f903090600401611b4d565b602060405180830381865afa158015610c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190611c5a565b91505b60145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611c71565b5f82610cd083610889565b119392505050565b5f546001600160a01b03163314610d015760405162461bcd60e51b815260040161075c90611bdb565b6001600160a01b038116610d665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b5f80546040516001600160a01b03808516939216915f80516020611d6383398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610dcf5760405162461bcd60e51b815260040161075c919061198c565b505f610ddb8486611c8c565b95945050505050565b601f545f9060ff1615610e0357610dfc848484611289565b905061072c565b6001600160a01b0384165f9081526001602052604090205460ff16158015610e4357506001600160a01b0383165f9081526001602052604090205460ff16155b15610e9857601d54600160a01b900460ff16610e985760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161075c565b6001600160a01b0384165f9081526001602052604090205460ff16158015610ec957506001600160a01b0383163014155b8015610ee057506001600160a01b03831661dead14155b8015610efa5750601d546001600160a01b03848116911614155b8015610f1457506018546001600160a01b03848116911614155b8015610f2e57506015546001600160a01b03848116911614155b8015610f5257506001600160a01b0383165f9081526009602052604090205460ff16155b15610fe7575f610f6184610984565b600554909150610f718483611c9f565b1115610fe55760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161075c565b505b610ff18483611359565b610ff96113c5565b1561100657611006611419565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260069091529190912054611057918490610dac565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806110a257506001600160a01b0384165f9081526008602052604090205460ff165b6110b6576110b18584866117e1565b6110b8565b825b6001600160a01b0385165f908152600660205260409020549091506110dd9082611130565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020611d838339815191529061111d9085815260200190565b60405180910390a3506001949350505050565b5f8061113c8385611c9f565b90508381101561072c5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015260640161075c565b5f825f0361119b57505f61066f565b5f6111a68385611c43565b9050826111b38583611c24565b1461072c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075c565b5f61072c83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611960565b5f61072c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546112d9918490610dac565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546113079083611130565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020611d83833981519152906113479086815260200190565b60405180910390a35060019392505050565b6004548111158061138157506001600160a01b0382165f9081526009602052604090205460ff165b6113c15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075c565b5050565b601d545f906001600160a01b031633148015906113e55750601f5460ff16155b80156113fa5750601d54600160a81b900460ff165b8015610973575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f9161143791610cc5565b61144357600a54611445565b5f5b90505f61146860026108c2600f546108c286601e5461118c90919063ffffffff16565b90505f61148082601e5461124890919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106114b8576114b8611cb2565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106114e9576114e9611cb2565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906115329086905f90879030904290600401611cc6565b5f604051808303815f87803b158015611549575f80fd5b505af115801561155b573d5f803e3d5ffd5b505050505f611573824761124890919063ffffffff16565b90505f61158d61158488600261120a565b600f5490611248565b90505f6115a160026108c28481878d61118c565b90505f6115bd836108c2600b548761118c90919063ffffffff16565b90505f6115d9846108c2600d548861118c90919063ffffffff16565b90505f6115f5856108c2600c548961118c90919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611644576040519150601f19603f3d011682016040523d82523d5f602084013e611649565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611696576040519150601f19603f3d011682016040523d82523d5f602084013e61169b565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146116e8576040519150601f19603f3d011682016040523d82523d5f602084013e6116ed565b606091505b505f9250508b1590506117c957601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611767573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061178c9190611d37565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b03908116908416036118065750601154611821565b601d546001600160a01b039081169086160361182157506012545b5f61184d60105460646118349190611c43565b6108c2846108b5600f548a61118c90919063ffffffff16565b90505f61186b600f546108c2600e548561118c90919063ffffffff16565b90505f6118788383611248565b305f908152600660205260409020549091506118949082611130565b305f90815260066020526040808220929092556018546001600160a01b0316815220546118c19083611130565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020611d83833981519152910160405180910390a3811561194a576003546119199083611248565b6003556040518281525f906001600160a01b038a16905f80516020611d838339815191529060200160405180910390a35b6119548784611248565b98975050505050505050565b5f81836119805760405162461bcd60e51b815260040161075c919061198c565b505f610ddb8486611c24565b5f602080835283518060208501525f5b818110156119b85785810183015185820160400152820161199c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146119ee575f80fd5b919050565b5f8060408385031215611a04575f80fd5b611a0d836119d8565b946020939093013593505050565b5f805f60608486031215611a2d575f80fd5b611a36846119d8565b9250611a44602085016119d8565b9150604084013590509250925092565b5f805f805f8060c08789031215611a69575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f805f60a08688031215611aa7575f80fd5b611ab0866119d8565b9450611abe602087016119d8565b9350611acc604087016119d8565b9250611ada606087016119d8565b9150611ae8608087016119d8565b90509295509295909350565b5f60208284031215611b04575f80fd5b5035919050565b8015158114610a92575f80fd5b5f8060408385031215611b29575f80fd5b8235611a0d81611b0b565b5f60208284031215611b44575f80fd5b61072c826119d8565b6001600160a01b0391909116815260200190565b5f805f60608486031215611b73575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611b9b575f80fd5b611ba4836119d8565b9150611bb2602084016119d8565b90509250929050565b5f8060408385031215611bcc575f80fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611c3e57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761066f5761066f611c10565b5f60208284031215611c6a575f80fd5b5051919050565b5f60208284031215611c81575f80fd5b815161072c81611b0b565b8181038181111561066f5761066f611c10565b8082018082111561066f5761066f611c10565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d165784516001600160a01b031683529383019391830191600101611cf1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611d49575f80fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e4f5300830beeeeb607f8ca06768055ad87b26859e99397ad94703a87d73068d64736f6c63430008180033

Deployed Bytecode Sourcemap

5615:12817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7340:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7340:55:0;;;;;;;;8795:80;;;;;;;;;;-1:-1:-1;8867:5:0;;;;;;;;;;;;-1:-1:-1;;;8867:5:0;;;;8795:80;;;;;;;:::i;7257:31::-;;;;;;;;;;-1:-1:-1;7257:31:0;;;;-1:-1:-1;;;7257:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7257:31:0;749:187:1;9217:216:0;;;;;;;;;;-1:-1:-1;9217:216:0;;;;;:::i;:::-;;:::i;8525:88::-;;;;;;;;;;-1:-1:-1;8598:12:0;;8525:88;;6626:93;;;;;;;;;;;;;;;;9735:370;;;;;;;;;;-1:-1:-1;9735:370:0;;;;;:::i;:::-;;:::i;16489:575::-;;;;;;;;;;-1:-1:-1;16489:575:0;;;;;:::i;:::-;;:::i;:::-;;17077:458;;;;;;;;;;-1:-1:-1;17077:458:0;;;;;:::i;:::-;;:::i;18057:149::-;;;;;;;;;;-1:-1:-1;18057:149:0;;;;;:::i;:::-;;:::i;8619:80::-;;;;;;;;;;-1:-1:-1;8619:80:0;;5987:1;3055:36:1;;3043:2;3028:18;8619:80:0;2913:184:1;17743:163:0;;;;;;;;;;-1:-1:-1;17743:163:0;;;;;:::i;:::-;;:::i;10118:155::-;;;;;;;;;;;;;:::i;18218:132::-;;;;;;;;;;;;;:::i;9441:122::-;;;;;;;;;;-1:-1:-1;9441:122:0;;;;;:::i;:::-;;:::i;7303:30::-;;;;;;;;;;-1:-1:-1;7303:30:0;;;;-1:-1:-1;;;7303:30:0;;;;;;8965:105;;;;;;;;;;-1:-1:-1;8965:105:0;;;;;:::i;:::-;;:::i;2519:158::-;;;;;;;;;;;;;:::i;6127:63::-;;;;;;;;;;;;;;;;6060:60;;;;;;;;;;;;;;;;17546:189;;;;;;;;;;-1:-1:-1;17546:189:0;;;;;:::i;:::-;;:::i;8881:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13383:130::-;;;;;;;;;;;;;:::i;14186:214::-;;;;;;;;;;;;;:::i;2305:79::-;;;;;;;;;;;;;:::i;8705:84::-;;;;;;;;;;-1:-1:-1;8779:7:0;;;;;;;;;;;;-1:-1:-1;;;8779:7:0;;;;8705:84;;7225:19;;;;;;;;;;-1:-1:-1;7225:19:0;;;;-1:-1:-1;;;;;7225:19:0;;;9571:156;;;;;;;;;;-1:-1:-1;9571:156:0;;;;;:::i;:::-;;:::i;1925:21::-;;;;;;;;;;-1:-1:-1;1925:21:0;;;;-1:-1:-1;;;;;1925:21:0;;;14408:174;;;;;;;;;;;;;:::i;13919:252::-;;;;;;;;;;-1:-1:-1;13919:252:0;;;;;:::i;:::-;;:::i;13522:389::-;;;;;;;;;;-1:-1:-1;13522:389:0;;;;;:::i;:::-;;:::i;9076:133::-;;;;;;;;;;-1:-1:-1;9076:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9178:19:0;;;9160:7;9178:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9076:133;17914:135;;;;;;;;;;-1:-1:-1;17914:135:0;;;;;:::i;:::-;;:::i;2685:244::-;;;;;;;;;;-1:-1:-1;2685:244:0;;;;;:::i;:::-;;:::i;7155:24::-;;;;;;;;;;-1:-1:-1;7155:24:0;;;;-1:-1:-1;;;;;7155:24:0;;;9217:216;9321:10;9292:4;9309:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9309:32:0;;;;;;;;;;:41;;;9366:37;9292:4;;9309:32;;9366:37;;;;9344:6;160:25:1;;148:2;133:18;;14:177;9366:37:0;;;;;;;;-1:-1:-1;9421:4:0;9217:216;;;;;:::o;9735:370::-;-1:-1:-1;;;;;9855:19:0;;9835:4;9855:19;;;:11;:19;;;;;;;;9875:10;9855:31;;;;;;;;-1:-1:-1;;9855:52:0;9852:186;;9957:69;;;;;;;;;;;-1:-1:-1;;;9957:69:0;;;;;;;;-1:-1:-1;;;;;9957:19:0;;-1:-1:-1;9957:19:0;;;:11;:19;;;;;9977:10;9957:31;;;;;;;;;;:69;;9993:6;;9957:35;:69::i;:::-;-1:-1:-1;;;;;9923:19:0;;;;;;:11;:19;;;;;;;;9943:10;9923:31;;;;;;;:103;9852:186;10057:40;10071:6;10079:9;10090:6;10057:13;:40::i;:::-;10050:47;;9735:370;;;;;;:::o;16489:575::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;;;;;;;;;16669:12:::1;:28:::0;;;16708:10:::1;:24:::0;;;16743:12:::1;:28:::0;;;16782:6:::1;:16:::0;;;16809:7:::1;:18:::0;;;16849:76:::1;16819:8:::0;16849:62:::1;16791:7:::0;16849:62;16758:13;16849:62;16684:13;16721:11;16849:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;16838:8;:87:::0;16936:14:::1;:32:::0;;;16998:18:::1;17015:1;16953:15:::0;16998:18:::1;:::i;:::-;16987:8;;:29;16979:71;;;::::0;-1:-1:-1;;;16979:71:0;;5920:2:1;16979:71:0::1;::::0;::::1;5902:21:1::0;5959:2;5939:18;;;5932:30;5998:31;5978:18;;;5971:59;6047:18;;16979:71:0::1;5718:353:1::0;16979:71:0::1;16489:575:::0;;;;;;:::o;17077:458::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;17278:21:::1;:46:::0;;-1:-1:-1;;;;;;17278:46:0;;::::1;-1:-1:-1::0;;;;;17278:46:0;;::::1;;::::0;;;17335:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17390:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17433:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17478:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17077:458::o;18057:149::-;18117:7;18144:54;18185:12;:10;:12::i;:::-;18167:4;;18144:36;;18157:22;;18177:1;;18157:15;;-1:-1:-1;;;;;18167:4:0;18157:9;:15::i;:::-;:19;;:22::i;:::-;18144:8;;:12;:36::i;:::-;:40;;:54::i;17743:163::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;17837:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17837:22:0::1;-1:-1:-1::0;;;;17837:22:0;;::::1;::::0;;;::::1;::::0;;;17870:13:::1;:23:::0;17743:163::o;10118:155::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;10197:12:::1;::::0;10182::::1;:27:::0;;;10224:15:::1;:30:::0;10118:155::o;18218:132::-;18261:7;18288:54;18326:15;5806:42;18326:9;:15::i;:::-;18288:33;18305:15;5733:42;18305:9;:15::i;:::-;18288:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18281:61;;18218:132;:::o;9441:122::-;9496:4;9520:35;9528:7;-1:-1:-1;;9520:7:0;:35::i;8965:105::-;-1:-1:-1;;;;;9049:18:0;9031:7;9049:18;;;:9;:18;;;;;;;8965:105::o;2519:158::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;2626:1:::1;2610:6:::0;;2589:40:::1;::::0;-1:-1:-1;;;;;2610:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2589:40:0;2626:1;;2589:40:::1;2657:1;2640:19:::0;;-1:-1:-1;;;;;;2640:19:0::1;::::0;;2519:158::o;17546:189::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;17657:1:::1;17639:14;:19;;17631:28;;;::::0;::::1;;17723:4;17704:14;17689:12;;:29;;;;:::i;:::-;17688:39;;;;:::i;:::-;17670:15;:57:::0;-1:-1:-1;17546:189:0:o;8881:78::-;8933:7;8950;:5;:7::i;13383:130::-;13437:21;;13429:62;;-1:-1:-1;;;;;13437:21:0;;;;13469;13429:62;;;;;13437:21;13429:62;13437:21;13429:62;13469:21;13437;13429:62;;;;;;;;;;;;;;;;;;;;;13383:130::o;14186:214::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;14239:11:::1;:18:::0;;-1:-1:-1;;;;14239:18:0::1;-1:-1:-1::0;;;14239:18:0::1;::::0;;14282:4:::1;14268:11;:18:::0;14310:3:::1;14297:10;:16:::0;14342:4:::1;14324:15;:22:::0;14186:214::o;2305:79::-;2343:7;2370:6;-1:-1:-1;;;;;2370:6:0;;2305:79::o;9571:156::-;9651:4;9675:44;9689:10;9701:9;9712:6;9675:13;:44::i;14408:174::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;14472:1:::1;14458:11;:15:::0;;;14484:10:::1;:14:::0;;;14509:15:::1;:19:::0;14408:174::o;13919:252::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;14038:11:::1;:28:::0;;;;14077:10:::1;:26:::0;;;;14114:15:::1;:33:::0;13919:252::o;13522:389::-;13606:12;13663:4;-1:-1:-1;;;;;13639:29:0;;;13631:82;;;;-1:-1:-1;;;13631:82:0;;6451:2:1;13631:82:0;;;6433:21:1;6490:2;6470:18;;;6463:30;6529:34;6509:18;;;6502:62;-1:-1:-1;;;6580:18:1;;;6573:38;6628:19;;13631:82:0;6249:404:1;13631:82:0;13732:6;13742:1;13732:11;13729:95;;13768:44;;-1:-1:-1;;;13768:44:0;;-1:-1:-1;;;;;13768:29:0;;;;;:44;;13806:4;;13768:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13759:53;;13729:95;13873:21;;13844:59;;-1:-1:-1;;;13844:59:0;;-1:-1:-1;;;;;13873:21:0;;;13844:59;;;7021:51:1;7088:18;;;7081:34;;;13844:28:0;;;;;;6994:18:1;;13844:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17914:135::-;17988:4;18036:5;18012:21;18024:8;18012:11;:21::i;:::-;:29;;17914:135;-1:-1:-1;;;17914:135:0:o;2685:244::-;2432:6;;-1:-1:-1;;;;;2432:6:0;1742:10;2432:22;2424:67;;;;-1:-1:-1;;;2424:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2774:22:0;::::1;2766:73;;;::::0;-1:-1:-1;;;2766:73:0;;7578:2:1;2766:73:0::1;::::0;::::1;7560:21:1::0;7617:2;7597:18;;;7590:30;7656:34;7636:18;;;7629:62;-1:-1:-1;;;7707:18:1;;;7700:36;7753:19;;2766:73:0::1;7376:402:1::0;2766:73:0::1;2876:6;::::0;;2855:38:::1;::::0;-1:-1:-1;;;;;2855:38:0;;::::1;::::0;2876:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2855:38:0;::::1;2904:6;:17:::0;;-1:-1:-1;;;;;;2904:17:0::1;-1:-1:-1::0;;;;;2904:17:0;;;::::1;::::0;;;::::1;::::0;;2685:244::o;4827:192::-;4913:7;4949:12;4941:6;;;;4933:29;;;;-1:-1:-1;;;4933:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4973:9:0;4985:5;4989:1;4985;:5;:::i;:::-;4973:17;4827:192;-1:-1:-1;;;;;4827:192:0:o;10295:1238::-;10407:6;;10387:4;;10407:6;;10404:63;;;10423:41;10438:6;10446:9;10457:6;10423:14;:41::i;:::-;10416:48;;;;10404:63;-1:-1:-1;;;;;10483:22:0;;;;;;:14;:22;;;;;;;;10482:23;:53;;;;-1:-1:-1;;;;;;10510:25:0;;;;;;:14;:25;;;;;;;;10509:26;10482:53;10479:139;;;10559:11;;-1:-1:-1;;;10559:11:0;;;;10551:43;;;;-1:-1:-1;;;10551:43:0;;8118:2:1;10551:43:0;;;8100:21:1;8157:2;8137:18;;;8130:30;-1:-1:-1;;;8176:18:1;;;8169:50;8236:18;;10551:43:0;7916:344:1;10551:43:0;-1:-1:-1;;;;;10660:22:0;;;;;;:14;:22;;;;;;;;10659:23;:53;;;;-1:-1:-1;;;;;;10686:26:0;;10707:4;10686:26;;10659:53;:84;;;;-1:-1:-1;;;;;;10717:26:0;;5733:42;10717:26;;10659:84;:105;;;;-1:-1:-1;10760:4:0;;-1:-1:-1;;;;;10747:17:0;;;10760:4;;10747:17;;10659:105;:137;;;;-1:-1:-1;10781:15:0;;-1:-1:-1;;;;;10768:28:0;;;10781:15;;10768:28;;10659:137;:174;;;;-1:-1:-1;10813:20:0;;-1:-1:-1;;;;;10800:33:0;;;10813:20;;10800:33;;10659:174;:207;;;;-1:-1:-1;;;;;;10838:28:0;;;;;;:17;:28;;;;;;;;10837:29;10659:207;10655:399;;;10882:18;10903:20;10913:9;10903;:20::i;:::-;10971:15;;10882:41;;-1:-1:-1;10947:19:0;10960:6;10882:41;10947:19;:::i;:::-;10946:40;;10938:114;;;;-1:-1:-1;;;10938:114:0;;8597:2:1;10938:114:0;;;8579:21:1;8636:2;8616:18;;;8609:30;8675:34;8655:18;;;8648:62;8746:32;8726:18;;;8719:60;8796:19;;10938:114:0;8395:426:1;10938:114:0;10867:187;10655:399;11066:28;11079:6;11087;11066:12;:28::i;:::-;11112:16;:14;:16::i;:::-;11109:35;;;11131:10;:8;:10::i;:::-;11174:53;;;;;;;;;;;-1:-1:-1;;;11174:53:0;;;;;;;;-1:-1:-1;;;;;11174:17:0;;-1:-1:-1;11174:17:0;;;:9;:17;;;;;;;;:53;;11196:6;;11174:21;:53::i;:::-;-1:-1:-1;;;;;11154:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11266:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11294:27:0;;;;;;:16;:27;;;;;;;;11266:55;11265:103;;11334:34;11342:6;11350;11358:9;11334:7;:34::i;:::-;11265:103;;;11325:6;11265:103;-1:-1:-1;;;;;11402:20:0;;;;;;:9;:20;;;;;;11240:128;;-1:-1:-1;11402:40:0;;11240:128;11402:24;:40::i;:::-;-1:-1:-1;;;;;11379:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11460:43;;;;;;-1:-1:-1;;;;;;;;;;;11460:43:0;;;11488:14;160:25:1;;148:2;133:18;;14:177;11460:43:0;;;;;;;;-1:-1:-1;11521:4:0;;10295:1238;-1:-1:-1;;;;10295:1238:0:o;4498:181::-;4556:7;;4588:5;4592:1;4588;:5;:::i;:::-;4576:17;;4617:1;4612;:6;;4604:46;;;;-1:-1:-1;;;4604:46:0;;9028:2:1;4604:46:0;;;9010:21:1;9067:2;9047:18;;;9040:30;-1:-1:-1;;;9086:18:1;;;9079:57;9153:18;;4604:46:0;8826:351:1;5025:250:0;5083:7;5107:1;5112;5107:6;5103:47;;-1:-1:-1;5137:1:0;5130:8;;5103:47;5162:9;5174:5;5178:1;5174;:5;:::i;:::-;5162:17;-1:-1:-1;5207:1:0;5198:5;5202:1;5162:17;5198:5;:::i;:::-;:10;5190:56;;;;-1:-1:-1;;;5190:56:0;;9384:2:1;5190:56:0;;;9366:21:1;9423:2;9403:18;;;9396:30;9462:34;9442:18;;;9435:62;-1:-1:-1;;;9513:18:1;;;9506:31;9554:19;;5190:56:0;9182:397:1;5281:132:0;5339:7;5366:39;5370:1;5373;5366:39;;;;;;;;;;;;;-1:-1:-1;;;5366:39:0;;;:3;:39::i;4685:136::-;4743:7;4770:43;4774:1;4777;4770:43;;;;;;;;;;;;;;;;;:3;:43::i;11542:330::-;11672:53;;;;;;;;;;;-1:-1:-1;;;11672:53:0;;;;;;;;-1:-1:-1;;;;;11672:17:0;;11635:4;11672:17;;;:9;:17;;;;;;;:53;;11694:6;;11672:21;:53::i;:::-;-1:-1:-1;;;;;11652:17:0;;;;;;;:9;:17;;;;;;:73;;;;11759:20;;;;;;;:32;;11784:6;11759:24;:32::i;:::-;-1:-1:-1;;;;;11736:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11807:35;;;;;;-1:-1:-1;;;;;;;;;;;11807:35:0;;;11835:6;160:25:1;;148:2;133:18;;14:177;11807:35:0;;;;;;;;-1:-1:-1;11860:4:0;11542:330;;;;;:::o;11880:168::-;11977:12;;11967:6;:22;;:51;;;-1:-1:-1;;;;;;11993:25:0;;;;;;:17;:25;;;;;;;;11967:51;11959:81;;;;-1:-1:-1;;;11959:81:0;;9786:2:1;11959:81:0;;;9768:21:1;9825:2;9805:18;;;9798:30;-1:-1:-1;;;9844:18:1;;;9837:47;9901:18;;11959:81:0;9584:341:1;11959:81:0;11880:168;;:::o;13173:197::-;13260:4;;13222;;-1:-1:-1;;;;;13260:4:0;13246:10;:18;;;;:38;;-1:-1:-1;13278:6:0;;;;13277:7;13246:38;:62;;;;-1:-1:-1;13297:11:0;;-1:-1:-1;;;13297:11:0;;;;13246:62;:116;;;;-1:-1:-1;;13349:13:0;;13339:4;13321:24;;;;:9;:24;;;;;;:41;;;13173:197::o;14619:1854::-;7443:6;:13;;-1:-1:-1;;7443:13:0;7452:4;7443:13;;;14709:8:::1;::::0;14719:19:::1;::::0;7443:6;;14698:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14746:12;;14698:60;;;14742:1;14698:60;14668:90;;14769:23;14795:59;14852:1;14795:52;14838:8;;14795:38;14813:19;14795:13;;:17;;:38;;;;:::i;:59::-;14769:85;;14865:20;14888:34;14906:15;14888:13;;:17;;:34;;;;:::i;:::-;14959:16;::::0;;14973:1:::1;14959:16:::0;;;;;::::1;::::0;;14865:57;;-1:-1:-1;14935:21:0::1;::::0;14959:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14959:16:0::1;14935:40;;15004:4;14986;14991:1;14986:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14986:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15030:4:::1;::::0;15020:7;;15030:4;::::1;::::0;15020;;15030;;15020:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15020:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15105:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15105:188:0;;15071:21:::1;::::0;15105:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15177:12;;15047:21:::1;::::0;15220:4;;15247::::1;::::0;15267:15:::1;::::0;15105:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15306:17;15326:40;15352:13;15326:21;:25;;:40;;;;:::i;:::-;15306:60:::0;-1:-1:-1;15379:19:0::1;15401:40;15414:26;:19:::0;15438:1:::1;15414:23;:26::i;:::-;15401:8;::::0;;:12:::1;:40::i;:::-;15379:62:::0;-1:-1:-1;15462:26:0::1;15491:58;15547:1;15491:51;15379:62:::0;15491:51;:9;15505:19;15491:13:::1;:34::i;:58::-;15462:87;;15560:26;15589:44;15621:11;15589:27;15603:12;;15589:9;:13;;:27;;;;:::i;:44::-;15560:73;;15644:24;15671:42;15701:11;15671:25;15685:10;;15671:9;:13;;:25;;;;:::i;:42::-;15644:69;;15724:20;15747:38;15773:11;15747:21;15761:6;;15747:9;:13;;:21;;;;:::i;:38::-;15827:20;::::0;15819:65:::1;::::0;15724:61;;-1:-1:-1;15799:15:0::1;::::0;-1:-1:-1;;;;;15827:20:0;;::::1;::::0;15861:18;;15799:15;15819:65;15799:15;15819:65;15861:18;15827:20;15819:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15919:14:0::1;::::0;15911:53:::1;::::0;15798:86;;-1:-1:-1;;;;;;15919:14:0::1;::::0;15947:12;;15911:53:::1;::::0;;;15947:12;15919:14;15911:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15999:18:0::1;::::0;15991:61:::1;::::0;15895:69;;-1:-1:-1;;;;;;15999:18:0::1;::::0;16031:16;;15991:61:::1;::::0;;;16031:16;15999:18;15991:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16086:5:0::1;::::0;-1:-1:-1;;16107:19:0;;;-1:-1:-1;16104:362:0::1;;16142:6;::::0;16316:21:::1;::::0;16142:244:::1;::::0;-1:-1:-1;;;16142:244:0;;16218:4:::1;16142:244;::::0;::::1;11730:34:1::0;11780:18;;;11773:34;;;16142:6:0::1;11823:18:1::0;;;11816:34;;;11866:18;;;11859:34;-1:-1:-1;;;;;16316:21:0;;::::1;11909:19:1::0;;;11902:44;16356:15:0::1;11962:19:1::0;;;11955:35;16142:6:0;::::1;::::0;:22:::1;::::0;16172:18;;11664:19:1;;16142:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16406:48:0::1;::::0;;12486:25:1;;;12542:2;12527:18;;12520:34;;;16406:48:0::1;::::0;-1:-1:-1;12459:18:1;16406:48:0::1;;;;;;;16104:362;-1:-1:-1::0;;7461:6:0;:14;;-1:-1:-1;;7461:14:0;;;-1:-1:-1;;;;;;;;;;14619:1854:0:o;12183:982::-;12317:15;;12359:4;;12269:7;;12317:15;-1:-1:-1;;;;;12359:4:0;;;12346:17;;;;12343:142;;-1:-1:-1;12390:11:0;;12343:142;;;12432:4;;-1:-1:-1;;;;;12432:4:0;;;12422:14;;;;12419:66;;-1:-1:-1;12463:10:0;;12419:66;12497:17;12517:59;12555:14;;12572:3;12555:20;;;;:::i;:::-;12517:33;12542:7;12517:20;12528:8;;12517:6;:10;;:20;;;;:::i;:59::-;12497:79;;12587:18;12608:36;12635:8;;12608:22;12622:7;;12608:9;:13;;:22;;;;:::i;:36::-;12587:57;-1:-1:-1;12655:22:0;12680:25;:9;12587:57;12680:13;:25::i;:::-;12761:4;12743:24;;;;:9;:24;;;;;;12655:50;;-1:-1:-1;12743:44:0;;12655:50;12743:28;:44::i;:::-;12734:4;12716:24;;;;:9;:24;;;;;;:71;;;;12837:15;;-1:-1:-1;;;;;12837:15:0;12827:26;;;;:42;;12858:10;12827:30;:42::i;:::-;12808:15;;-1:-1:-1;;;;;12808:15:0;;;12798:26;;;;:9;:26;;;;;;;;;:71;;;;12885:47;160:25:1;;;12910:4:0;;12885:47;;;;-1:-1:-1;;;;;;;;;;;12885:47:0;133:18:1;12885:47:0;;;;;;;12966:14;;12963:154;;13011:12;;:28;;13028:10;13011:16;:28::i;:::-;12996:12;:43;13059:34;;160:25:1;;;5806:42:0;;-1:-1:-1;;;;;13059:34:0;;;-1:-1:-1;;;;;;;;;;;13059:34:0;148:2:1;133:18;13059:34:0;;;;;;;12963:154;13136:21;:6;13147:9;13136:10;:21::i;:::-;13129:28;12183:982;-1:-1:-1;;;;;;;;12183:982:0:o;5419:189::-;5505:7;5540:12;5533:5;5525:28;;;;-1:-1:-1;;;5525:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5564:9:0;5576:5;5580:1;5576;:5;:::i;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:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:523::-;1815:6;1823;1831;1839;1847;1855;1908:3;1896:9;1887:7;1883:23;1879:33;1876:53;;;1925:1;1922;1915:12;1876:53;-1:-1:-1;;1948:23:1;;;2018:2;2003:18;;1990:32;;-1:-1:-1;2069:2:1;2054:18;;2041:32;;2120:2;2105:18;;2092:32;;-1:-1:-1;2171:3:1;2156:19;;2143:33;;-1:-1:-1;2223:3:1;2208:19;2195:33;;-1:-1:-1;1711:523:1;-1:-1:-1;1711:523:1:o;2239:484::-;2334:6;2342;2350;2358;2366;2419:3;2407:9;2398:7;2394:23;2390:33;2387:53;;;2436:1;2433;2426:12;2387:53;2459:29;2478:9;2459:29;:::i;:::-;2449:39;;2507:38;2541:2;2530:9;2526:18;2507:38;:::i;:::-;2497:48;;2564:38;2598:2;2587:9;2583:18;2564:38;:::i;:::-;2554:48;;2621:38;2655:2;2644:9;2640:18;2621:38;:::i;:::-;2611:48;;2678:39;2712:3;2701:9;2697:19;2678:39;:::i;:::-;2668:49;;2239:484;;;;;;;;:::o;2728:180::-;2787:6;2840:2;2828:9;2819:7;2815:23;2811:32;2808:52;;;2856:1;2853;2846:12;2808:52;-1:-1:-1;2879:23:1;;2728:180;-1:-1:-1;2728:180:1:o;3102:118::-;3188:5;3181:13;3174:21;3167:5;3164:32;3154:60;;3210:1;3207;3200:12;3225:309;3290:6;3298;3351:2;3339:9;3330:7;3326:23;3322:32;3319:52;;;3367:1;3364;3357:12;3319:52;3406:9;3393:23;3425:28;3447:5;3425:28;:::i;3539:186::-;3598:6;3651:2;3639:9;3630:7;3626:23;3622:32;3619:52;;;3667:1;3664;3657:12;3619:52;3690:29;3709:9;3690:29;:::i;3730:203::-;-1:-1:-1;;;;;3894:32:1;;;;3876:51;;3864:2;3849:18;;3730:203::o;3938:316::-;4015:6;4023;4031;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;-1:-1:-1;;4123:23:1;;;4193:2;4178:18;;4165:32;;-1:-1:-1;4244:2:1;4229:18;;;4216:32;;3938:316;-1:-1:-1;3938:316:1:o;4259:260::-;4327:6;4335;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;4427:29;4446:9;4427:29;:::i;:::-;4417:39;;4475:38;4509:2;4498:9;4494:18;4475:38;:::i;:::-;4465:48;;4259:260;;;;;:::o;4524:248::-;4592:6;4600;4653:2;4641:9;4632:7;4628:23;4624:32;4621:52;;;4669:1;4666;4659:12;4621:52;-1:-1:-1;;4692:23:1;;;4762:2;4747:18;;;4734:32;;-1:-1:-1;4524:248:1:o;5003:356::-;5205:2;5187:21;;;5224:18;;;5217:30;5283:34;5278:2;5263:18;;5256:62;5350:2;5335:18;;5003:356::o;5364:127::-;5425:10;5420:3;5416:20;5413:1;5406:31;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5496:217;5536:1;5562;5552:132;;5606:10;5601:3;5597:20;5594:1;5587:31;5641:4;5638:1;5631:15;5669:4;5666:1;5659:15;5552:132;-1:-1:-1;5698:9:1;;5496:217::o;6076:168::-;6149:9;;;6180;;6197:15;;;6191:22;;6177:37;6167:71;;6218:18;;:::i;6658:184::-;6728:6;6781:2;6769:9;6760:7;6756:23;6752:32;6749:52;;;6797:1;6794;6787:12;6749:52;-1:-1:-1;6820:16:1;;6658:184;-1:-1:-1;6658:184:1:o;7126:245::-;7193:6;7246:2;7234:9;7225:7;7221:23;7217:32;7214:52;;;7262:1;7259;7252:12;7214:52;7294:9;7288:16;7313:28;7335:5;7313:28;:::i;7783:128::-;7850:9;;;7871:11;;;7868:37;;;7885:18;;:::i;8265:125::-;8330:9;;;8351:10;;;8348:36;;;8364:18;;:::i;10062:127::-;10123:10;10118:3;10114:20;10111:1;10104:31;10154:4;10151:1;10144:15;10178:4;10175:1;10168:15;10194:980;10456:4;10504:3;10493:9;10489:19;10535:6;10524:9;10517:25;10561:2;10599:6;10594:2;10583:9;10579:18;10572:34;10642:3;10637:2;10626:9;10622:18;10615:31;10666:6;10701;10695:13;10732:6;10724;10717:22;10770:3;10759:9;10755:19;10748:26;;10809:2;10801:6;10797:15;10783:29;;10830:1;10840:195;10854:6;10851:1;10848:13;10840:195;;;10919:13;;-1:-1:-1;;;;;10915:39:1;10903:52;;11010:15;;;;10975:12;;;;10951:1;10869:9;10840:195;;;-1:-1:-1;;;;;;;11091:32:1;;;;11086:2;11071:18;;11064:60;-1:-1:-1;;;11155:3:1;11140:19;11133:35;11052:3;10194:980;-1:-1:-1;;;10194:980:1:o;12001:306::-;12089:6;12097;12105;12158:2;12146:9;12137:7;12133:23;12129:32;12126:52;;;12174:1;12171;12164:12;12126:52;12203:9;12197:16;12187:26;;12253:2;12242:9;12238:18;12232:25;12222:35;;12297:2;12286:9;12282:18;12276:25;12266:35;;12001:306;;;;;:::o

Swarm Source

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