ETH Price: $3,499.60 (+0.38%)
Gas: 2 Gwei

Token

Ordinal Inu (oInu)
 

Overview

Max Total Supply

1,000,000,000,000,000 oInu

Holders

272

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: oInu 15
Balance
702,899,485,117,668.795534834 oInu

Value
$0.00
0x56c7d7f6a393dcef39a6e085c345689a4a6d0897
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:
OrdinalInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 10 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/* 

ORDINAL Inu / oInu - ETHEREUM
http://twitter.com/Ordinal_Inu
https://www.ordinalinu.net
https://t.me/Ordinal_Inu
https://link.medium.com/tUoOU956Qxb

Revolutionary Twitter and BTC Pairings.

*/


// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "Ordinal Inu";
    string constant _symbol = "oInu";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**15 * 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 devFee          = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = devFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

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

    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 * 3 / 100; 
    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 = 0xa65aDfd6022B25966ab6CA226e01D3cE42338a18;
        utilityFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

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

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

       
        checkTxLimit(sender, amount); 

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

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

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

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

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

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

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

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

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

        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(devFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

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

    }

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

    }

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

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

    function goLive() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 1200;
        sellMultiplier = 2000;
        transferMultiplier = 1000;
    }
        
    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 amountETHdev = amountETH.mul(devFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

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

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

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

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

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

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

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"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":"ManualswapAndLiquify","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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareToRenounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updateAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","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":"updateFees","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":"_devFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d6565b620000459066038d7ea4c68000620006e7565b6005556200007f60646200006b6001600554620004a660201b620010581790919060201c565b6200053d60201b620010da1790919060201c565b600655620000a560646200006b6001600554620004a660201b620010581790919060201c565b6007556001600c556002600d556001600e556000600f556000601055601054600e54600c54600d54600f54620000dc919062000701565b620000e8919062000701565b620000f4919062000701565b62000100919062000701565b60115560646012819055601381905560148190556103e8601555601e8055601f8190556022805461ffff60a01b1916600160a81b17905560055462000147906003620006e7565b62000153919062000717565b6023553480156200016357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024491906200073a565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c791906200073a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f91906200073a565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673a65adfd6022b25966ab6ca226e01d3ce42338a181790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b5565b600082600003620004ba5750600062000537565b6000620004c88385620006e7565b905082620004d7858362000717565b14620005345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058760201b60201c565b60008183620005ab5760405162461bcd60e51b81526004016200052b919062000765565b506000620005ba848662000717565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061a578160001904821115620005fe57620005fe620005c3565b808516156200060c57918102915b93841c9390800290620005de565b509250929050565b600082620006335750600162000537565b81620006425750600062000537565b81600181146200065b5760028114620006665762000686565b600191505062000537565b60ff8411156200067a576200067a620005c3565b50506001821b62000537565b5060208310610133831016604e8410600b8410161715620006ab575081810a62000537565b620006b78383620005d9565b8060001904821115620006ce57620006ce620005c3565b029392505050565b60006200053460ff84168362000622565b8082028115828204841417620005375762000537620005c3565b80820180821115620005375762000537620005c3565b6000826200073557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074d57600080fd5b81516001600160a01b03811681146200053457600080fd5b600060208083528351808285015260005b81811015620007945785810183015185820160400152820162000776565b506000604082860101526040601f19601f8301168501019250505092915050565b61213780620007c56000396000f3fe6080604052600436106101da5760003560e01c806304368f65146101e65780630445b667146102085780630621472c1461023157806306fdde031461026157806308fd3d051461029e578063095ea7b3146102bf57806310c5087b146102df5780631161ae39146102f457806318160ddd146103145780631df4ccfc1461032957806323b872dd1461033f5780632b112e491461035f5780632c28f57914610374578063313ce567146103895780635d0044ca146103a55780636ddd1713146103c557806370a08231146103e6578063715018a61461040657806377b54bad1461041b57806378109e541461043b5780637a57dda7146104515780637bae52e1146104715780637d1db4a514610491578063893d20e8146104a75780638a4068dd146104c95780638da5cb5b146104de57806395d89b41146104f3578063992c58e4146105205780639acb773e146105405780639f11080e14610560578063a8aa1b3114610580578063a9059cbb146105a0578063b2bdfa7b146105c0578063bc337182146105e0578063ccf8c03614610600578063d51ed1c814610620578063d78e139d14610640578063dd62ed3e14610660578063ec9f3234146106a6578063f2fde38b146106bb578063f887ea40146106db57600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b50610206610201366004611c96565b6106fb565b005b34801561021457600080fd5b5061021e60235481565b6040519081526020015b60405180910390f35b34801561023d57600080fd5b5061025161024c366004611cde565b610750565b6040519015158152602001610228565b34801561026d57600080fd5b5060408051808201909152600b81526a4f7264696e616c20496e7560a81b60208201525b6040516102289190611cf9565b3480156102aa57600080fd5b5060225461025190600160a01b900460ff1681565b3480156102cb57600080fd5b506102516102da366004611d47565b610764565b3480156102eb57600080fd5b506102066107d0565b34801561030057600080fd5b5061025161030f366004611d63565b610804565b34801561032057600080fd5b5060055461021e565b34801561033557600080fd5b5061021e60115481565b34801561034b57600080fd5b5061025161035a366004611d85565b610818565b34801561036b57600080fd5b5061021e6108da565b34801561038057600080fd5b50610206610923565b34801561039557600080fd5b5060405160098152602001610228565b3480156103b157600080fd5b506102066103c0366004611dc1565b610974565b3480156103d157600080fd5b5060225461025190600160a81b900460ff1681565b3480156103f257600080fd5b5061021e610401366004611cde565b6109dd565b34801561041257600080fd5b506102066109f8565b34801561042757600080fd5b50610251610436366004611d47565b610a5a565b34801561044757600080fd5b5061021e60075481565b34801561045d57600080fd5b5061020661046c366004611dda565b610b5f565b34801561047d57600080fd5b5061020661048c366004611e06565b610b9a565b34801561049d57600080fd5b5061021e60065481565b3480156104b357600080fd5b506104bc610c23565b6040516102289190611e6b565b3480156104d557600080fd5b50610206610c2d565b3480156104ea57600080fd5b506104bc610c78565b3480156104ff57600080fd5b506040805180820190915260048152636f496e7560e01b6020820152610291565b34801561052c57600080fd5b5061020661053b366004611e7f565b610c87565b34801561054c57600080fd5b5061020661055b366004611ec2565b610d4d565b34801561056c57600080fd5b5061020661057b366004611d63565b610da2565b34801561058c57600080fd5b506022546104bc906001600160a01b031681565b3480156105ac57600080fd5b506102516105bb366004611d47565b610dd7565b3480156105cc57600080fd5b506000546104bc906001600160a01b031681565b3480156105ec57600080fd5b506102066105fb366004611dc1565b610de4565b34801561060c57600080fd5b5061020661061b366004611ec2565b610e4d565b34801561062c57600080fd5b5061021e61063b366004611dc1565b610eb5565b34801561064c57600080fd5b5061020661065b366004611dc1565b610ef5565b34801561066c57600080fd5b5061021e61067b366004611ef9565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106b257600080fd5b50610206610f49565b3480156106c757600080fd5b506102066106d6366004611cde565b610f80565b3480156106e757600080fd5b506020546104bc906001600160a01b031681565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611f2c565b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061075e82600019610764565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107bf9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260040161072590611f2c565b610802611119565b565b60008261081083610eb5565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108c5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108a0918490611502565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108d084848461153c565b90505b9392505050565b60045460009061091e906108f6906001600160a01b03166109dd565b6003546109189061090f906001600160a01b03166109dd565b60055490611897565b90611897565b905090565b6000546001600160a01b0316331461094d5760405162461bcd60e51b815260040161072590611f2c565b6022805460ff60a01b1916600160a01b1790556104b06014556107d06013556103e8601555565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161072590611f2c565b6103e86005546109ae9190611f77565b60075410156109bc57600080fd5b6103e8816005546109cd9190611f99565b6109d79190611f77565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610a225760405162461bcd60e51b815260040161072590611f2c565b600080546040516001600160a01b03909116906000805160206120c2833981519152908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a7657600080fd5b81600003610aee576040516370a0823160e01b81526001600160a01b038416906370a0823190610aaa903090600401611e6b565b602060405180830381865afa158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190611fb0565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d39190611fc9565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260040161072590611f2c565b601391909155601491909155601555565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260040161072590611f2c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600061091e610c78565b336000908152600b602052604090205460ff16610c4957600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610c75573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161072590611f2c565b600c869055600f859055600d849055600e8390556010829055610ce282610cdc858188818c8c6118d9565b906118d9565b6011556012819055610cf5600582611f77565b60115410610d455760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610725565b505050505050565b6000546001600160a01b03163314610d775760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161072590611f2c565b601e91909155601f55565b60006108d333848461153c565b6000546001600160a01b03163314610e0e5760405162461bcd60e51b815260040161072590611f2c565b6103e8600554610e1e9190611f77565b6006541015610e2c57600080fd5b6103e881600554610e3d9190611f99565b610e479190611f77565b60065550565b6000546001600160a01b03163314610e775760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b600061075e610ec26108da565b602254610eef90610ee890600290610ee2906001600160a01b03166109dd565b90611058565b8590611058565b906110da565b60195447906001600160a01b03166108fc6064610f128585611f99565b610f1c9190611f77565b6040518115909202916000818181858888f19350505050158015610f44573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f735760405162461bcd60e51b815260040161072590611f2c565b6005546007819055600655565b6000546001600160a01b03163314610faa5760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b03811661100f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610725565b600080546040516001600160a01b03808516939216916000805160206120c283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361106a5750600061075e565b60006110768385611f99565b9050826110838583611f77565b146108d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610725565b60006108d383836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611936565b6024805460ff19166001179055601e54601f5460009161113891610804565b61114457600c54611147565b60005b9050600061116b6002610eef601154610eef8660235461105890919063ffffffff16565b905060006111848260235461189790919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111be576111be611fe6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106111ef576111ef611fe6565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac9479061123b908690600090879030904290600401611ffc565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b505050506000611282824761189790919063ffffffff16565b9050600061129d6112948860026110da565b60115490611897565b905060006112b26002610eef8481878d611058565b905060006112cf83610eef600d548761105890919063ffffffff16565b905060006112ec84610eef600f548861105890919063ffffffff16565b9050600061130985610eef600e548961105890919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461135b576040519150601f19603f3d011682016040523d82523d6000602084013e611360565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146113b0576040519150601f19603f3d011682016040523d82523d6000602084013e6113b5565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611405576040519150601f19603f3d011682016040523d82523d6000602084013e61140a565b606091505b5060009250508b1590506114ea5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611488573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ad919061206d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600081848411156115265760405162461bcd60e51b81526004016107259190611cf9565b506000611533848661209b565b95945050505050565b60245460009060ff161561155c57611555848484611964565b90506108d3565b6001600160a01b03841660009081526001602052604090205460ff1615801561159e57506001600160a01b03831660009081526001602052604090205460ff16155b156115f357602254600160a01b900460ff166115f35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610725565b6001600160a01b03841660009081526001602052604090205460ff1615801561162557506001600160a01b0383163014155b801561163f57506003546001600160a01b03848116911614155b801561165957506022546001600160a01b03848116911614155b80156116735750601a546001600160a01b03848116911614155b801561168d57506017546001600160a01b03848116911614155b80156116b257506001600160a01b0383166000908152600b602052604090205460ff16155b156117485760006116c2846109dd565b6007549091506116d284836120ae565b11156117465760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610725565b505b6117528483611a38565b61175a611aa5565b1561176757611767611119565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546117b9918490611502565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061180657506001600160a01b0384166000908152600a602052604090205460ff165b61181a57611815858486611afb565b61181c565b825b6001600160a01b03851660009081526008602052604090205490915061184290826118d9565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206120e2833981519152906118849085815260200190565b60405180910390a3506001949350505050565b60006108d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611502565b6000806118e683856120ae565b9050838110156108d35760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610725565b600081836119575760405162461bcd60e51b81526004016107259190611cf9565b5060006115338486611f77565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119b5918490611502565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119e490836118d9565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206120e283398151915290611a269086815260200190565b60405180910390a35060019392505050565b60065481111580611a6157506001600160a01b0382166000908152600b602052604090205460ff165b611aa15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b5050565b6022546000906001600160a01b03163314801590611ac6575060245460ff16155b8015611adb5750602254600160a81b900460ff165b801561091e57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611b215750601354611b3c565b6022546001600160a01b0390811690861603611b3c57506014545b6000611b696012546064611b509190611f99565b610eef84610ee26011548a61105890919063ffffffff16565b90506000611b88601154610eef6010548561105890919063ffffffff16565b90506000611b968383611897565b30600090815260086020526040902054909150611bb390826118d9565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611be190836118d9565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206120e2833981519152910160405180910390a38115611c7257600554611c3b9083611897565b6005556004546040518381526001600160a01b03918216918a16906000805160206120e28339815191529060200160405180910390a35b611c7c8784611897565b98975050505050505050565b8015158114610c7557600080fd5b60008060408385031215611ca957600080fd5b8235611cb481611c88565b946020939093013593505050565b80356001600160a01b0381168114611cd957600080fd5b919050565b600060208284031215611cf057600080fd5b6108d382611cc2565b600060208083528351808285015260005b81811015611d2657858101830151858201604001528201611d0a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611d5a57600080fd5b611cb483611cc2565b60008060408385031215611d7657600080fd5b50508035926020909101359150565b600080600060608486031215611d9a57600080fd5b611da384611cc2565b9250611db160208501611cc2565b9150604084013590509250925092565b600060208284031215611dd357600080fd5b5035919050565b600080600060608486031215611def57600080fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215611e1e57600080fd5b611e2786611cc2565b9450611e3560208701611cc2565b9350611e4360408701611cc2565b9250611e5160608701611cc2565b9150611e5f60808701611cc2565b90509295509295909350565b6001600160a01b0391909116815260200190565b60008060008060008060c08789031215611e9857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611ed557600080fd5b611ede83611cc2565b91506020830135611eee81611c88565b809150509250929050565b60008060408385031215611f0c57600080fd5b611f1583611cc2565b9150611f2360208401611cc2565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f9457634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761075e5761075e611f61565b600060208284031215611fc257600080fd5b5051919050565b600060208284031215611fdb57600080fd5b81516108d381611c88565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561204c5784516001600160a01b031683529383019391830191600101612027565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561208257600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561075e5761075e611f61565b8082018082111561075e5761075e611f6156fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c8b0b3a7e8303bf43867ef953ad9e4c17f7e6361ed7373b57c2132919a7f2efc64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101da5760003560e01c806304368f65146101e65780630445b667146102085780630621472c1461023157806306fdde031461026157806308fd3d051461029e578063095ea7b3146102bf57806310c5087b146102df5780631161ae39146102f457806318160ddd146103145780631df4ccfc1461032957806323b872dd1461033f5780632b112e491461035f5780632c28f57914610374578063313ce567146103895780635d0044ca146103a55780636ddd1713146103c557806370a08231146103e6578063715018a61461040657806377b54bad1461041b57806378109e541461043b5780637a57dda7146104515780637bae52e1146104715780637d1db4a514610491578063893d20e8146104a75780638a4068dd146104c95780638da5cb5b146104de57806395d89b41146104f3578063992c58e4146105205780639acb773e146105405780639f11080e14610560578063a8aa1b3114610580578063a9059cbb146105a0578063b2bdfa7b146105c0578063bc337182146105e0578063ccf8c03614610600578063d51ed1c814610620578063d78e139d14610640578063dd62ed3e14610660578063ec9f3234146106a6578063f2fde38b146106bb578063f887ea40146106db57600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b50610206610201366004611c96565b6106fb565b005b34801561021457600080fd5b5061021e60235481565b6040519081526020015b60405180910390f35b34801561023d57600080fd5b5061025161024c366004611cde565b610750565b6040519015158152602001610228565b34801561026d57600080fd5b5060408051808201909152600b81526a4f7264696e616c20496e7560a81b60208201525b6040516102289190611cf9565b3480156102aa57600080fd5b5060225461025190600160a01b900460ff1681565b3480156102cb57600080fd5b506102516102da366004611d47565b610764565b3480156102eb57600080fd5b506102066107d0565b34801561030057600080fd5b5061025161030f366004611d63565b610804565b34801561032057600080fd5b5060055461021e565b34801561033557600080fd5b5061021e60115481565b34801561034b57600080fd5b5061025161035a366004611d85565b610818565b34801561036b57600080fd5b5061021e6108da565b34801561038057600080fd5b50610206610923565b34801561039557600080fd5b5060405160098152602001610228565b3480156103b157600080fd5b506102066103c0366004611dc1565b610974565b3480156103d157600080fd5b5060225461025190600160a81b900460ff1681565b3480156103f257600080fd5b5061021e610401366004611cde565b6109dd565b34801561041257600080fd5b506102066109f8565b34801561042757600080fd5b50610251610436366004611d47565b610a5a565b34801561044757600080fd5b5061021e60075481565b34801561045d57600080fd5b5061020661046c366004611dda565b610b5f565b34801561047d57600080fd5b5061020661048c366004611e06565b610b9a565b34801561049d57600080fd5b5061021e60065481565b3480156104b357600080fd5b506104bc610c23565b6040516102289190611e6b565b3480156104d557600080fd5b50610206610c2d565b3480156104ea57600080fd5b506104bc610c78565b3480156104ff57600080fd5b506040805180820190915260048152636f496e7560e01b6020820152610291565b34801561052c57600080fd5b5061020661053b366004611e7f565b610c87565b34801561054c57600080fd5b5061020661055b366004611ec2565b610d4d565b34801561056c57600080fd5b5061020661057b366004611d63565b610da2565b34801561058c57600080fd5b506022546104bc906001600160a01b031681565b3480156105ac57600080fd5b506102516105bb366004611d47565b610dd7565b3480156105cc57600080fd5b506000546104bc906001600160a01b031681565b3480156105ec57600080fd5b506102066105fb366004611dc1565b610de4565b34801561060c57600080fd5b5061020661061b366004611ec2565b610e4d565b34801561062c57600080fd5b5061021e61063b366004611dc1565b610eb5565b34801561064c57600080fd5b5061020661065b366004611dc1565b610ef5565b34801561066c57600080fd5b5061021e61067b366004611ef9565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106b257600080fd5b50610206610f49565b3480156106c757600080fd5b506102066106d6366004611cde565b610f80565b3480156106e757600080fd5b506020546104bc906001600160a01b031681565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611f2c565b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061075e82600019610764565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107bf9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260040161072590611f2c565b610802611119565b565b60008261081083610eb5565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108c5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108a0918490611502565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108d084848461153c565b90505b9392505050565b60045460009061091e906108f6906001600160a01b03166109dd565b6003546109189061090f906001600160a01b03166109dd565b60055490611897565b90611897565b905090565b6000546001600160a01b0316331461094d5760405162461bcd60e51b815260040161072590611f2c565b6022805460ff60a01b1916600160a01b1790556104b06014556107d06013556103e8601555565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161072590611f2c565b6103e86005546109ae9190611f77565b60075410156109bc57600080fd5b6103e8816005546109cd9190611f99565b6109d79190611f77565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610a225760405162461bcd60e51b815260040161072590611f2c565b600080546040516001600160a01b03909116906000805160206120c2833981519152908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a7657600080fd5b81600003610aee576040516370a0823160e01b81526001600160a01b038416906370a0823190610aaa903090600401611e6b565b602060405180830381865afa158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190611fb0565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d39190611fc9565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260040161072590611f2c565b601391909155601491909155601555565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260040161072590611f2c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600061091e610c78565b336000908152600b602052604090205460ff16610c4957600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610c75573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161072590611f2c565b600c869055600f859055600d849055600e8390556010829055610ce282610cdc858188818c8c6118d9565b906118d9565b6011556012819055610cf5600582611f77565b60115410610d455760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610725565b505050505050565b6000546001600160a01b03163314610d775760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161072590611f2c565b601e91909155601f55565b60006108d333848461153c565b6000546001600160a01b03163314610e0e5760405162461bcd60e51b815260040161072590611f2c565b6103e8600554610e1e9190611f77565b6006541015610e2c57600080fd5b6103e881600554610e3d9190611f99565b610e479190611f77565b60065550565b6000546001600160a01b03163314610e775760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b600061075e610ec26108da565b602254610eef90610ee890600290610ee2906001600160a01b03166109dd565b90611058565b8590611058565b906110da565b60195447906001600160a01b03166108fc6064610f128585611f99565b610f1c9190611f77565b6040518115909202916000818181858888f19350505050158015610f44573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f735760405162461bcd60e51b815260040161072590611f2c565b6005546007819055600655565b6000546001600160a01b03163314610faa5760405162461bcd60e51b815260040161072590611f2c565b6001600160a01b03811661100f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610725565b600080546040516001600160a01b03808516939216916000805160206120c283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361106a5750600061075e565b60006110768385611f99565b9050826110838583611f77565b146108d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610725565b60006108d383836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611936565b6024805460ff19166001179055601e54601f5460009161113891610804565b61114457600c54611147565b60005b9050600061116b6002610eef601154610eef8660235461105890919063ffffffff16565b905060006111848260235461189790919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111be576111be611fe6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106111ef576111ef611fe6565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac9479061123b908690600090879030904290600401611ffc565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b505050506000611282824761189790919063ffffffff16565b9050600061129d6112948860026110da565b60115490611897565b905060006112b26002610eef8481878d611058565b905060006112cf83610eef600d548761105890919063ffffffff16565b905060006112ec84610eef600f548861105890919063ffffffff16565b9050600061130985610eef600e548961105890919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461135b576040519150601f19603f3d011682016040523d82523d6000602084013e611360565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146113b0576040519150601f19603f3d011682016040523d82523d6000602084013e6113b5565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611405576040519150601f19603f3d011682016040523d82523d6000602084013e61140a565b606091505b5060009250508b1590506114ea5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611488573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ad919061206d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600081848411156115265760405162461bcd60e51b81526004016107259190611cf9565b506000611533848661209b565b95945050505050565b60245460009060ff161561155c57611555848484611964565b90506108d3565b6001600160a01b03841660009081526001602052604090205460ff1615801561159e57506001600160a01b03831660009081526001602052604090205460ff16155b156115f357602254600160a01b900460ff166115f35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610725565b6001600160a01b03841660009081526001602052604090205460ff1615801561162557506001600160a01b0383163014155b801561163f57506003546001600160a01b03848116911614155b801561165957506022546001600160a01b03848116911614155b80156116735750601a546001600160a01b03848116911614155b801561168d57506017546001600160a01b03848116911614155b80156116b257506001600160a01b0383166000908152600b602052604090205460ff16155b156117485760006116c2846109dd565b6007549091506116d284836120ae565b11156117465760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610725565b505b6117528483611a38565b61175a611aa5565b1561176757611767611119565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546117b9918490611502565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061180657506001600160a01b0384166000908152600a602052604090205460ff165b61181a57611815858486611afb565b61181c565b825b6001600160a01b03851660009081526008602052604090205490915061184290826118d9565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206120e2833981519152906118849085815260200190565b60405180910390a3506001949350505050565b60006108d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611502565b6000806118e683856120ae565b9050838110156108d35760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610725565b600081836119575760405162461bcd60e51b81526004016107259190611cf9565b5060006115338486611f77565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119b5918490611502565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119e490836118d9565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206120e283398151915290611a269086815260200190565b60405180910390a35060019392505050565b60065481111580611a6157506001600160a01b0382166000908152600b602052604090205460ff165b611aa15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b5050565b6022546000906001600160a01b03163314801590611ac6575060245460ff16155b8015611adb5750602254600160a81b900460ff165b801561091e57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611b215750601354611b3c565b6022546001600160a01b0390811690861603611b3c57506014545b6000611b696012546064611b509190611f99565b610eef84610ee26011548a61105890919063ffffffff16565b90506000611b88601154610eef6010548561105890919063ffffffff16565b90506000611b968383611897565b30600090815260086020526040902054909150611bb390826118d9565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611be190836118d9565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206120e2833981519152910160405180910390a38115611c7257600554611c3b9083611897565b6005556004546040518381526001600160a01b03918216918a16906000805160206120e28339815191529060200160405180910390a35b611c7c8784611897565b98975050505050505050565b8015158114610c7557600080fd5b60008060408385031215611ca957600080fd5b8235611cb481611c88565b946020939093013593505050565b80356001600160a01b0381168114611cd957600080fd5b919050565b600060208284031215611cf057600080fd5b6108d382611cc2565b600060208083528351808285015260005b81811015611d2657858101830151858201604001528201611d0a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611d5a57600080fd5b611cb483611cc2565b60008060408385031215611d7657600080fd5b50508035926020909101359150565b600080600060608486031215611d9a57600080fd5b611da384611cc2565b9250611db160208501611cc2565b9150604084013590509250925092565b600060208284031215611dd357600080fd5b5035919050565b600080600060608486031215611def57600080fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215611e1e57600080fd5b611e2786611cc2565b9450611e3560208701611cc2565b9350611e4360408701611cc2565b9250611e5160608701611cc2565b9150611e5f60808701611cc2565b90509295509295909350565b6001600160a01b0391909116815260200190565b60008060008060008060c08789031215611e9857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611ed557600080fd5b611ede83611cc2565b91506020830135611eee81611c88565b809150509250929050565b60008060408385031215611f0c57600080fd5b611f1583611cc2565b9150611f2360208401611cc2565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611f9457634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761075e5761075e611f61565b600060208284031215611fc257600080fd5b5051919050565b600060208284031215611fdb57600080fd5b81516108d381611c88565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561204c5784516001600160a01b031683529383019391830191600101612027565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561208257600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561075e5761075e611f61565b8082018082111561075e5761075e611f6156fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c8b0b3a7e8303bf43867ef953ad9e4c17f7e6361ed7373b57c2132919a7f2efc64736f6c63430008110033

Deployed Bytecode Sourcemap

5195:13625:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17919:156;;;;;;;;;;-1:-1:-1;17919:156:0;;;;;:::i;:::-;;:::i;:::-;;6991:53;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;6991:53:0;;;;;;;;9148:122;;;;;;;;;;-1:-1:-1;9148:122:0;;;;;:::i;:::-;;:::i;:::-;;;1167:14:1;;1160:22;1142:41;;1130:2;1115:18;9148:122:0;1002:187:1;8502:80:0;;;;;;;;;;-1:-1:-1;8574:5:0;;;;;;;;;;;;-1:-1:-1;;;8574:5:0;;;;8502:80;;;;;;;:::i;6910:31::-;;;;;;;;;;-1:-1:-1;6910:31:0;;;;-1:-1:-1;;;6910:31:0;;;;;;8924:216;;;;;;;;;;-1:-1:-1;8924:216:0;;;;;:::i;:::-;;:::i;13564:97::-;;;;;;;;;;;;;:::i;18594:150::-;;;;;;;;;;-1:-1:-1;18594:150:0;;;;;:::i;:::-;;:::i;8232:88::-;;;;;;;;;;-1:-1:-1;8305:12:0;;8232:88;;6174:93;;;;;;;;;;;;;;;;9442:370;;;;;;;;;;-1:-1:-1;9442:370:0;;;;;:::i;:::-;;:::i;18269:142::-;;;;;;;;;;;;;:::i;14523:171::-;;;;;;;;;;;;;:::i;8326:80::-;;;;;;;;;;-1:-1:-1;8326:80:0;;5540:1;2734:36:1;;2722:2;2707:18;8326:80:0;2592:184:1;9824:219:0;;;;;;;;;;-1:-1:-1;9824:219:0;;;;;:::i;:::-;;:::i;6954:30::-;;;;;;;;;;-1:-1:-1;6954:30:0;;;;-1:-1:-1;;;6954:30:0;;;;;;8672:105;;;;;;;;;;-1:-1:-1;8672:105:0;;;;;:::i;:::-;;:::i;3252:148::-;;;;;;;;;;;;;:::i;13982:308::-;;;;;;;;;;-1:-1:-1;13982:308:0;;;;;:::i;:::-;;:::i;5678:61::-;;;;;;;;;;;;;;;;14298:217;;;;;;;;;;-1:-1:-1;14298:217:0;;;;;:::i;:::-;;:::i;17459:452::-;;;;;;;;;;-1:-1:-1;17459:452:0;;;;;:::i;:::-;;:::i;5613:58::-;;;;;;;;;;;;;;;;8588:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13825:149::-;;;;;;;;;;;;;:::i;3038:79::-;;;;;;;;;;;;;:::i;8412:84::-;;;;;;;;;;-1:-1:-1;8486:7:0;;;;;;;;;;;;-1:-1:-1;;;8486:7:0;;;;8412:84;;16884:567;;;;;;;;;;-1:-1:-1;16884:567:0;;;;;:::i;:::-;;:::i;16756:120::-;;;;;;;;;;-1:-1:-1;16756:120:0;;;;;:::i;:::-;;:::i;18083:174::-;;;;;;;;;;-1:-1:-1;18083:174:0;;;;;:::i;:::-;;:::i;6878:19::-;;;;;;;;;;-1:-1:-1;6878:19:0;;;;-1:-1:-1;;;;;6878:19:0;;;9278:156;;;;;;;;;;-1:-1:-1;9278:156:0;;;;;:::i;:::-;;:::i;2658:21::-;;;;;;;;;;-1:-1:-1;2658:21:0;;;;-1:-1:-1;;;;;2658:21:0;;;10051:187;;;;;;;;;;-1:-1:-1;10051:187:0;;;;;:::i;:::-;;:::i;16591:157::-;;;;;;;;;;-1:-1:-1;16591:157:0;;;;;:::i;:::-;;:::i;18419:167::-;;;;;;;;;;-1:-1:-1;18419:167:0;;;;;:::i;:::-;;:::i;13358:197::-;;;;;;;;;;-1:-1:-1;13358:197:0;;;;;:::i;:::-;;:::i;8783:133::-;;;;;;;;;;-1:-1:-1;8783:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8885:19:0;;;8867:7;8885:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8783:133;13669:148;;;;;;;;;;;;;:::i;3408:244::-;;;;;;;;;;-1:-1:-1;3408:244:0;;;;;:::i;:::-;;:::i;6808:24::-;;;;;;;;;;-1:-1:-1;6808:24:0;;;;-1:-1:-1;;;;;6808:24:0;;;17919:156;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;;;;;;;;;18011:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18011:22:0::1;-1:-1:-1::0;;;;18011:22:0;;::::1;::::0;;;::::1;::::0;;;18044:13:::1;:23:::0;17919:156::o;9148:122::-;9203:4;9227:35;9235:7;-1:-1:-1;;9227:7:0;:35::i;:::-;9220:42;9148:122;-1:-1:-1;;9148:122:0:o;8924:216::-;9028:10;8999:4;9016:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9016:32:0;;;;;;;;;;:41;;;9073:37;8999:4;;9016:32;;9073:37;;;;9051:6;597:25:1;;585:2;570:18;;451:177;9073:37:0;;;;;;;;-1:-1:-1;9128:4:0;8924:216;;;;:::o;13564:97::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;13629:10:::1;:8;:10::i;:::-;13564:97::o:0;18594:150::-;18674:4;18730:6;18698:29;18718:8;18698:19;:29::i;:::-;:38;;18594:150;-1:-1:-1;;;18594:150:0:o;9442:370::-;-1:-1:-1;;;;;9562:19:0;;9542:4;9562:19;;;:11;:19;;;;;;;;9582:10;9562:31;;;;;;;;-1:-1:-1;;9562:52:0;9559:186;;9664:69;;;;;;;;;;;-1:-1:-1;;;9664:69:0;;;;;;;;-1:-1:-1;;;;;9664:19:0;;-1:-1:-1;9664:19:0;;;:11;:19;;;;;9684:10;9664:31;;;;;;;;;;:69;;9700:6;;9664:35;:69::i;:::-;-1:-1:-1;;;;;9630:19:0;;;;;;:11;:19;;;;;;;;9650:10;9630:31;;;;;;;:103;9559:186;9764:40;9778:6;9786:9;9797:6;9764:13;:40::i;:::-;9757:47;;9442:370;;;;;;:::o;18269:142::-;18397:4;;18322:7;;18349:54;;18387:15;;-1:-1:-1;;;;;18397:4:0;18387:9;:15::i;:::-;18376:4;;18349:33;;18366:15;;-1:-1:-1;;;;;18376:4:0;18366:9;:15::i;:::-;18349:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18342:61;;18269:142;:::o;14523:171::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;14569:11:::1;:18:::0;;-1:-1:-1;;;;14569:18:0::1;-1:-1:-1::0;;;14569:18:0::1;::::0;;14614:4:::1;14569:11;14598:20:::0;14646:4:::1;14629:14;:21:::0;14682:4:::1;14661:18;:25:::0;14523:171::o;9824:219::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;9943:4:::1;9928:12;;:19;;;;:::i;:::-;9909:15;;:38;;9901:47;;;::::0;::::1;;10013:4;9994:14;9979:12;;:29;;;;:::i;:::-;9978:39;;;;:::i;:::-;9960:15;:57:::0;-1:-1:-1;9824:219:0:o;8672:105::-;-1:-1:-1;;;;;8756:18:0;8738:7;8756:18;;;:9;:18;;;;;;;8672:105::o;3252:148::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;3359:1:::1;3343:6:::0;;3322:40:::1;::::0;-1:-1:-1;;;;;3343:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3322:40:0;3359:1;;3322:40:::1;3390:1;3373:19:::0;;-1:-1:-1;;;;;;3373:19:0::1;::::0;;3252:148::o;13982:308::-;14102:10;14061:4;14086:27;;;:15;:27;;;;;;;;14078:36;;;;;;14125:6;14135:1;14125:11;14122:95;;14161:44;;-1:-1:-1;;;14161:44:0;;-1:-1:-1;;;;;14161:29:0;;;;;:44;;14199:4;;14161:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:53;;14122:95;14234:48;;-1:-1:-1;;;14234:48:0;;14263:10;14234:48;;;6574:51:1;6641:18;;;6634:34;;;-1:-1:-1;;;;;14234:28:0;;;;;6547:18:1;;14234:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14298:217::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;14400:14:::1;:22:::0;;;;14433:13:::1;:20:::0;;;;14464:18:::1;:27:::0;14298:217::o;17459:452::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;17663:21:::1;:46:::0;;-1:-1:-1;;;;;;17663:46:0;;::::1;-1:-1:-1::0;;;;;17663:46:0;;::::1;;::::0;;;17720:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17775:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17826:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17871:14:::1;:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17459:452::o;8588:78::-;8640:7;8657;:5;:7::i;13825:149::-;13890:10;13874:27;;;;:15;:27;;;;;;;;13866:36;;;;;;13913:51;;13921:10;;13942:21;13913:51;;;;;;;;;13942:21;13921:10;13913:51;;;;;;;;;;;;;;;;;;;;;13825:149::o;3038:79::-;3076:7;3103:6;-1:-1:-1;;;;;3103:6:0;;3038:79::o;16884:567::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;17061:12:::1;:28:::0;;;17100:6:::1;:16:::0;;;17127:12:::1;:28:::0;;;17166:10:::1;:24:::0;;;17201:7:::1;:18:::0;;;17241:76:::1;17211:8:::0;17241:62:::1;17179:11:::0;17241:62;17142:13;17241:62;17076:13;17109:7;17241:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:76::-;17230:8;:87:::0;17328:14:::1;:32:::0;;;17390:18:::1;17407:1;17345:15:::0;17390:18:::1;:::i;:::-;17379:8;;:29;17371:71;;;::::0;-1:-1:-1;;;17371:71:0;;7131:2:1;17371:71:0::1;::::0;::::1;7113:21:1::0;7170:2;7150:18;;;7143:30;7209:31;7189:18;;;7182:59;7258:18;;17371:71:0::1;6929:353:1::0;17371:71:0::1;16884:567:::0;;;;;;:::o;16756:120::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16836:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16836:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16756:120::o;18083:174::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;18172:15:::1;:25:::0;;;;18208:26:::1;:41:::0;18083:174::o;9278:156::-;9358:4;9382:44;9396:10;9408:9;9419:6;9382:13;:44::i;10051:187::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;10161:4:::1;10146:12;;:19;;;;:::i;:::-;10130:12;;:35;;10122:44;;;::::0;::::1;;10226:4;10209:12;10194;;:27;;;;:::i;:::-;10193:37;;;;:::i;:::-;10178:12;:52:::0;-1:-1:-1;10051:187:0:o;16591:157::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16669:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16669:28:0;;::::1;::::0;::::1;::::0;;;16708:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16591:157::o;18419:167::-;18487:7;18514:64;18555:22;:20;:22::i;:::-;18537:4;;18514:36;;18527:22;;18547:1;;18527:15;;-1:-1:-1;;;;;18537:4:0;18527:9;:15::i;:::-;:19;;:22::i;:::-;18514:8;;:12;:36::i;:::-;:40;;:64::i;13358:197::-;13487:14;;13447:21;;-1:-1:-1;;;;;13487:14:0;13479:68;13543:3;13512:28;13524:16;13447:21;13512:28;:::i;:::-;:34;;;;:::i;:::-;13479:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13416:139;13358:197;:::o;13669:148::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;13747:12:::1;::::0;13729:15:::1;:30:::0;;;13770:12:::1;:27:::0;13669:148::o;3408:244::-;3165:6;;-1:-1:-1;;;;;3165:6:0;2475:10;3165:22;3157:67;;;;-1:-1:-1;;;3157:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3497:22:0;::::1;3489:73;;;::::0;-1:-1:-1;;;3489:73:0;;7489:2:1;3489: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;;3489:73:0::1;7287:402:1::0;3489:73:0::1;3599:6;::::0;;3578:38:::1;::::0;-1:-1:-1;;;;;3578:38:0;;::::1;::::0;3599:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3578:38:0;::::1;3627:6;:17:::0;;-1:-1:-1;;;;;;3627:17:0::1;-1:-1:-1::0;;;;;3627:17:0;;;::::1;::::0;;;::::1;::::0;;3408:244::o;837:250::-;895:7;919:1;924;919:6;915:47;;-1:-1:-1;949:1:0;942:8;;915:47;974:9;986:5;990:1;986;:5;:::i;:::-;974:17;-1:-1:-1;1019:1:0;1010:5;1014:1;974:17;1010:5;:::i;:::-;:10;1002:56;;;;-1:-1:-1;;;1002:56:0;;7896:2:1;1002: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;;1002:56:0;7694:397:1;1093:132:0;1151:7;1178:39;1182:1;1185;1178:39;;;;;;;;;;;;;-1:-1:-1;;;1178:39:0;;;:3;:39::i;14710:1873::-;7092:6;:13;;-1:-1:-1;;7092:13:0;7101:4;7092:13;;;14805:15:::1;::::0;14822:26:::1;::::0;7092:6;;14789:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14856:12;;14789:79;;;14852:1;14789:79;14759:109;;14879:23;14905:59;14962:1;14905:52;14948:8;;14905:38;14923:19;14905:13;;:17;;:38;;;;:::i;:59::-;14879:85;;14975:20;14998:34;15016:15;14998:13;;:17;;:34;;;;:::i;:::-;15069:16;::::0;;15083:1:::1;15069:16:::0;;;;;::::1;::::0;;14975:57;;-1:-1:-1;15045:21:0::1;::::0;15069:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15069:16:0::1;15045:40;;15114:4;15096;15101:1;15096:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15096:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15140:4:::1;::::0;15130:7;;15140:4;::::1;::::0;15130;;15140;;15130:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15130:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;15215:6;:188:::1;::::0;-1:-1:-1;;;15215:188:0;;15181:21:::1;::::0;15215:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15287:12;;15157:21:::1;::::0;15330:4;;15357::::1;::::0;15377:15:::1;::::0;15215:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15416:17;15436:40;15462:13;15436:21;:25;;:40;;;;:::i;:::-;15416:60:::0;-1:-1:-1;15489:19:0::1;15511:40;15524:26;:19:::0;15548:1:::1;15524:23;:26::i;:::-;15511:8;::::0;;:12:::1;:40::i;:::-;15489:62:::0;-1:-1:-1;15572:26:0::1;15601:58;15657:1;15601:51;15489:62:::0;15601:51;:9;15615:19;15601:13:::1;:34::i;:58::-;15572:87;;15670:26;15699:44;15731:11;15699:27;15713:12;;15699:9;:13;;:27;;;;:::i;:44::-;15670:73;;15754:20;15777:38;15803:11;15777:21;15791:6;;15777:9;:13;;:21;;;;:::i;:38::-;15754:61;;15826:24;15853:42;15883:11;15853:25;15867:10;;15853:9;:13;;:25;;;;:::i;:42::-;15937:20;::::0;15929:65:::1;::::0;15826:69;;-1:-1:-1;15909:15:0::1;::::0;-1:-1:-1;;;;;15937:20:0;;::::1;::::0;15971:18;;15909:15;15929:65;15909:15;15929:65;15971:18;15937:20;15929:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16029:18:0::1;::::0;16021:61:::1;::::0;15908:86;;-1:-1:-1;;;;;;16029:18:0::1;::::0;16061:16;;16021:61:::1;::::0;;;16061:16;16029:18;16021:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16117:14:0::1;::::0;16109:53:::1;::::0;16005:77;;-1:-1:-1;;;;;;16117:14:0::1;::::0;16145:12;;16109:53:::1;::::0;;;16145:12;16117:14;16109:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16196:5:0::1;::::0;-1:-1:-1;;16217:19:0;;;-1:-1:-1;16214:362:0::1;;16252:6;::::0;16426:21:::1;::::0;16252:244:::1;::::0;-1:-1:-1;;;16252:244:0;;16328:4:::1;16252:244;::::0;::::1;9896:34:1::0;9946:18;;;9939:34;;;16252:6:0::1;9989:18:1::0;;;9982:34;;;10032:18;;;10025:34;-1:-1:-1;;;;;16426:21:0;;::::1;10075:19:1::0;;;10068:44;16466:15:0::1;10128:19:1::0;;;10121:35;16252:6:0;::::1;::::0;:22:::1;::::0;16282:18;;9830:19:1;;16252:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16516:48:0::1;::::0;;10652:25:1;;;10708:2;10693:18;;10686:34;;;16516:48:0::1;::::0;-1:-1:-1;10625:18:1;16516:48:0::1;;;;;;;16214:362;-1:-1:-1::0;;7110:6:0;:14;;-1:-1:-1;;7110:14:0;;;-1:-1:-1;;;;;;;;;;14710:1873:0:o;639:192::-;725:7;761:12;753:6;;;;745:29;;;;-1:-1:-1;;;745:29:0;;;;;;;;:::i;:::-;-1:-1:-1;785:9:0;797:5;801:1;797;:5;:::i;:::-;785:17;639:192;-1:-1:-1;;;;;639:192:0:o;10255:1237::-;10367:6;;10347:4;;10367:6;;10364:63;;;10383:41;10398:6;10406:9;10417:6;10383:14;:41::i;:::-;10376:48;;;;10364:63;-1:-1:-1;;;;;10443:22:0;;;;;;:14;:22;;;;;;;;10442:23;:53;;;;-1:-1:-1;;;;;;10470:25:0;;;;;;:14;:25;;;;;;;;10469:26;10442:53;10439:140;;;10519:11;;-1:-1:-1;;;10519:11:0;;;;10511:43;;;;-1:-1:-1;;;10511:43:0;;11066:2:1;10511:43:0;;;11048:21:1;11105:2;11085:18;;;11078:30;-1:-1:-1;;;11124:18:1;;;11117:50;11184:18;;10511:43:0;10864:344:1;10511:43:0;-1:-1:-1;;;;;10613:22:0;;;;;;:14;:22;;;;;;;;10612:23;:53;;;;-1:-1:-1;;;;;;10639:26:0;;10660:4;10639:26;;10612:53;:84;;;;-1:-1:-1;10691:4:0;;-1:-1:-1;;;;;10670:26:0;;;10691:4;;10670:26;;10612:84;:105;;;;-1:-1:-1;10713:4:0;;-1:-1:-1;;;;;10700:17:0;;;10713:4;;10700:17;;10612:105;:137;;;;-1:-1:-1;10734:15:0;;-1:-1:-1;;;;;10721:28:0;;;10734:15;;10721:28;;10612:137;:174;;;;-1:-1:-1;10766:20:0;;-1:-1:-1;;;;;10753:33:0;;;10766:20;;10753:33;;10612:174;:205;;;;-1:-1:-1;;;;;;10791:26:0;;;;;;:15;:26;;;;;;;;10790:27;10612:205;10608:397;;;10833:18;10854:20;10864:9;10854;:20::i;:::-;10922:15;;10833:41;;-1:-1:-1;10898:19:0;10911:6;10833:41;10898:19;:::i;:::-;10897:40;;10889:114;;;;-1:-1:-1;;;10889:114:0;;11545:2:1;10889:114:0;;;11527:21:1;11584:2;11564:18;;;11557:30;11623:34;11603:18;;;11596:62;11694:32;11674:18;;;11667:60;11744:19;;10889:114:0;11343:426:1;10889:114:0;10818:187;10608:397;11026:28;11039:6;11047;11026:12;:28::i;:::-;11071:16;:14;:16::i;:::-;11068:35;;;11090:10;:8;:10::i;:::-;11143:53;;;;;;;;;;;-1:-1:-1;;;11143:53:0;;;;;;;;-1:-1:-1;;;;;11143:17:0;;-1:-1:-1;11143:17:0;;;:9;:17;;;;;;;;:53;;11165:6;;11143:21;:53::i;:::-;-1:-1:-1;;;;;11123:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11235:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11258:22:0;;;;;;:11;:22;;;;;;;;11235:45;11234:93;;11293:34;11301:6;11309;11317:9;11293:7;:34::i;:::-;11234:93;;;11284:6;11234:93;-1:-1:-1;;;;;11361:20:0;;;;;;:9;:20;;;;;;11209:118;;-1:-1:-1;11361:40:0;;11209:118;11361:24;:40::i;:::-;-1:-1:-1;;;;;11338:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11419:43;;;;;;-1:-1:-1;;;;;;;;;;;11419:43:0;;;11447:14;597:25:1;;585:2;570:18;;451:177;11419:43:0;;;;;;;;-1:-1:-1;11480:4:0;;10255:1237;-1:-1:-1;;;;10255:1237:0:o;497:136::-;555:7;582:43;586:1;589;582:43;;;;;;;;;;;;;;;;;:3;:43::i;310:181::-;368:7;;400:5;404:1;400;:5;:::i;:::-;388:17;;429:1;424;:6;;416:46;;;;-1:-1:-1;;;416:46:0;;11976:2:1;416:46:0;;;11958:21:1;12015:2;11995:18;;;11988:30;-1:-1:-1;;;12034:18:1;;;12027:57;12101:18;;416:46:0;11774:351:1;1231:189:0;1317:7;1352:12;1345:5;1337:28;;;;-1:-1:-1;;;1337:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1376:9:0;1388:5;1392:1;1388;:5;:::i;11504:330::-;11634:53;;;;;;;;;;;-1:-1:-1;;;11634:53:0;;;;;;;;-1:-1:-1;;;;;11634:17:0;;11597:4;11634:17;;;:9;:17;;;;;;;:53;;11656:6;;11634:21;:53::i;:::-;-1:-1:-1;;;;;11614:17:0;;;;;;;:9;:17;;;;;;:73;;;;11721:20;;;;;;;:32;;11746:6;11721:24;:32::i;:::-;-1:-1:-1;;;;;11698:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11769:35;;;;;;-1:-1:-1;;;;;;;;;;;11769:35:0;;;11797:6;597:25:1;;585:2;570:18;;451:177;11769:35:0;;;;;;;;-1:-1:-1;11822:4:0;11504:330;;;;;:::o;11842:166::-;11939:12;;11929:6;:22;;:49;;;-1:-1:-1;;;;;;11955:23:0;;;;;;:15;:23;;;;;;;;11929:49;11921:79;;;;-1:-1:-1;;;11921:79:0;;12332:2:1;11921:79:0;;;12314:21:1;12371:2;12351:18;;;12344:30;-1:-1:-1;;;12390:18:1;;;12383:47;12447:18;;11921:79:0;12130:341:1;11921:79:0;11842:166;;:::o;13153:197::-;13240:4;;13202;;-1:-1:-1;;;;;13240:4:0;13226:10;:18;;;;:38;;-1:-1:-1;13258:6:0;;;;13257:7;13226:38;:62;;;;-1:-1:-1;13277:11:0;;-1:-1:-1;;;13277:11:0;;;;13226:62;:116;;;;-1:-1:-1;;13329:13:0;;13319:4;13301:24;;;;:9;:24;;;;;;:41;;;13153:197::o;12138:1007::-;12275:18;;12322:4;;12224:7;;12275:18;-1:-1:-1;;;;;12322:4:0;;;12309:17;;;;12306:154;;-1:-1:-1;12356:14:0;;12306:154;;;12401:4;;-1:-1:-1;;;;;12401:4:0;;;12391:14;;;;12388:72;;-1:-1:-1;12435:13:0;;12388:72;12472:17;12492:62;12533:14;;12550:3;12533:20;;;;:::i;:::-;12492:36;12517:10;12492:20;12503:8;;12492:6;:10;;:20;;;;:::i;:62::-;12472:82;;12565:18;12586:36;12613:8;;12586:22;12600:7;;12586:9;:13;;:22;;;;:::i;:36::-;12565:57;-1:-1:-1;12633:22:0;12658:25;:9;12565:57;12658:13;:25::i;:::-;12741:4;12723:24;;;;:9;:24;;;;;;12633:50;;-1:-1:-1;12723:44:0;;12633:50;12723:28;:44::i;:::-;12714:4;12696:24;;;;:9;:24;;;;;;:71;;;;12817:15;;-1:-1:-1;;;;;12817:15:0;12807:26;;;;:42;;12838:10;12807:30;:42::i;:::-;12788:15;;-1:-1:-1;;;;;12788:15:0;;;12778:26;;;;:9;:26;;;;;;;;;:71;;;;12865:47;597:25:1;;;12890:4:0;;12865:47;;;;-1:-1:-1;;;;;;;;;;;12865:47:0;570:18:1;12865:47:0;;;;;;;12946:14;;12943:154;;12991:12;;:28;;13008:10;12991:16;:28::i;:::-;12976:12;:43;13056:4;;13039:34;;597:25:1;;;-1:-1:-1;;;;;13056:4:0;;;;13039:34;;;-1:-1:-1;;;;;;;;;;;13039:34:0;585:2:1;570:18;13039:34:0;;;;;;;12943:154;13116:21;:6;13127:9;13116:10;:21::i;:::-;13109:28;12138:1007;-1:-1:-1;;;;;;;;12138:1007:0:o;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:309;202:6;210;263:2;251:9;242:7;238:23;234:32;231:52;;;279:1;276;269:12;231:52;318:9;305:23;337:28;359:5;337:28;:::i;:::-;384:5;436:2;421:18;;;;408:32;;-1:-1:-1;;;137:309:1:o;633:173::-;701:20;;-1:-1:-1;;;;;750:31:1;;740:42;;730:70;;796:1;793;786:12;730:70;633:173;;;:::o;811:186::-;870:6;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;1194:548::-;1306:4;1335:2;1364;1353:9;1346:21;1396:6;1390:13;1439:6;1434:2;1423:9;1419:18;1412:34;1464:1;1474:140;1488:6;1485:1;1482:13;1474:140;;;1583:14;;;1579:23;;1573:30;1549:17;;;1568:2;1545:26;1538:66;1503:10;;1474:140;;;1478:3;1663:1;1658:2;1649:6;1638:9;1634:22;1630:31;1623:42;1733:2;1726;1722:7;1717:2;1709:6;1705:15;1701:29;1690:9;1686:45;1682:54;1674:62;;;;1194:548;;;;:::o;1747:254::-;1815:6;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;1915:29;1934:9;1915:29;:::i;2006:248::-;2074:6;2082;2135:2;2123:9;2114:7;2110:23;2106:32;2103:52;;;2151:1;2148;2141:12;2103:52;-1:-1:-1;;2174:23:1;;;2244:2;2229:18;;;2216:32;;-1:-1:-1;2006:248:1:o;2259:328::-;2336:6;2344;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2577:2;2566:9;2562:18;2549:32;2539:42;;2259:328;;;;;:::o;2781:180::-;2840:6;2893:2;2881:9;2872:7;2868:23;2864:32;2861:52;;;2909:1;2906;2899:12;2861:52;-1:-1:-1;2932:23:1;;2781:180;-1:-1:-1;2781:180:1:o;2966:316::-;3043:6;3051;3059;3112:2;3100:9;3091:7;3087:23;3083:32;3080:52;;;3128:1;3125;3118:12;3080:52;-1:-1:-1;;3151:23:1;;;3221:2;3206:18;;3193:32;;-1:-1:-1;3272:2:1;3257:18;;;3244:32;;2966:316;-1:-1:-1;2966:316:1:o;3287:484::-;3382:6;3390;3398;3406;3414;3467:3;3455:9;3446:7;3442:23;3438:33;3435:53;;;3484:1;3481;3474:12;3435:53;3507:29;3526:9;3507:29;:::i;:::-;3497:39;;3555:38;3589:2;3578:9;3574:18;3555:38;:::i;:::-;3545:48;;3612:38;3646:2;3635:9;3631:18;3612:38;:::i;:::-;3602:48;;3669:38;3703:2;3692:9;3688:18;3669:38;:::i;:::-;3659:48;;3726:39;3760:3;3749:9;3745:19;3726:39;:::i;:::-;3716:49;;3287:484;;;;;;;;:::o;3776:203::-;-1:-1:-1;;;;;3940:32:1;;;;3922:51;;3910:2;3895:18;;3776:203::o;3984:523::-;4088:6;4096;4104;4112;4120;4128;4181:3;4169:9;4160:7;4156:23;4152:33;4149:53;;;4198:1;4195;4188:12;4149:53;-1:-1:-1;;4221:23:1;;;4291:2;4276:18;;4263:32;;-1:-1:-1;4342:2:1;4327:18;;4314:32;;4393:2;4378:18;;4365:32;;-1:-1:-1;4444:3:1;4429:19;;4416:33;;-1:-1:-1;4496:3:1;4481:19;4468:33;;-1:-1:-1;3984:523:1;-1:-1:-1;3984:523:1:o;4512:315::-;4577:6;4585;4638:2;4626:9;4617:7;4613:23;4609:32;4606:52;;;4654:1;4651;4644:12;4606:52;4677:29;4696:9;4677:29;:::i;:::-;4667:39;;4756:2;4745:9;4741:18;4728:32;4769:28;4791:5;4769:28;:::i;:::-;4816:5;4806:15;;;4512:315;;;;;:::o;4832:260::-;4900:6;4908;4961:2;4949:9;4940:7;4936:23;4932:32;4929:52;;;4977:1;4974;4967:12;4929:52;5000:29;5019:9;5000:29;:::i;:::-;4990:39;;5048:38;5082:2;5071:9;5067:18;5048:38;:::i;:::-;5038:48;;4832:260;;;;;:::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;6211:184::-;6281:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:52;;;6350:1;6347;6340:12;6302:52;-1:-1:-1;6373:16:1;;6211:184;-1:-1:-1;6211:184:1:o;6679:245::-;6746:6;6799:2;6787:9;6778:7;6774:23;6770:32;6767:52;;;6815:1;6812;6805:12;6767:52;6847:9;6841:16;6866:28;6888:5;6866:28;:::i;8228:127::-;8289:10;8284:3;8280:20;8277:1;8270:31;8320:4;8317:1;8310:15;8344:4;8341:1;8334:15;8360:980;8622:4;8670:3;8659:9;8655:19;8701:6;8690:9;8683:25;8727:2;8765:6;8760:2;8749:9;8745:18;8738:34;8808:3;8803:2;8792:9;8788:18;8781:31;8832:6;8867;8861:13;8898:6;8890;8883:22;8936:3;8925:9;8921:19;8914:26;;8975:2;8967:6;8963:15;8949:29;;8996:1;9006:195;9020:6;9017:1;9014:13;9006:195;;;9085:13;;-1:-1:-1;;;;;9081:39:1;9069:52;;9176:15;;;;9141:12;;;;9117:1;9035:9;9006:195;;;-1:-1:-1;;;;;;;9257:32:1;;;;9252:2;9237:18;;9230:60;-1:-1:-1;;;9321:3:1;9306:19;9299:35;9218:3;8360:980;-1:-1:-1;;;8360:980:1:o;10167:306::-;10255:6;10263;10271;10324:2;10312:9;10303:7;10299:23;10295:32;10292:52;;;10340:1;10337;10330:12;10292:52;10369:9;10363:16;10353:26;;10419:2;10408:9;10404:18;10398:25;10388:35;;10463:2;10452:9;10448:18;10442:25;10432:35;;10167:306;;;;;:::o;10731:128::-;10798:9;;;10819:11;;;10816:37;;;10833:18;;:::i;11213:125::-;11278:9;;;11299:10;;;11296:36;;;11312:18;;:::i

Swarm Source

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