ETH Price: $2,525.98 (+3.37%)

Token

ElonDoge (eDOGE)
 

Overview

Max Total Supply

1,000,000,000,000,000 eDOGE

Holders

259

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Balance
0.01 eDOGE

Value
$0.00
0xf61EC3909293e5c07Cd4c05B7f84a5F5Ad71Eb98
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:
ElonDoge

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 5 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/* 


http://ed-token.com
https://medium.com/@eDOGE/elon-doge-d5a6227e114a
https://t.me/ElonDoge_ERC
https://twitter.com/ElonDogeETH



Elon Musk’s influence on Dogecoin has been instrumental in driving its popularity and value in the market. 


*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.19;

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

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

    string constant _name = "ElonDoge";
    string constant _symbol = "eDOGE";
    uint8 constant _decimals = 2; 
  

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

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

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

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

    bool public whitelistMode = false;
    mapping (address => bool) public iswhitelisted;   

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

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xcC882EC82ACDe2d415568F7B28eF9a061d5409f5;
        devFeeReceiver = 0x13331eE13580D9cC961DCa5De3D8d50e332c18Da;
        utilityFeeReceiver = 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 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 editMaxHolding(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

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

    function removelimits () 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(whitelistMode){
                require(iswhitelisted[recipient],"Not whitelisted"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        

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

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 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 removeStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(utilityFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

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

    }

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

    function updateFeeSpread(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

     function enableWhitelist(bool _status) public onlyOwner {
        whitelistMode = _status;
    }

    function setIsWhitelisted(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            iswhitelisted[addresses[i]] = status;
        }
    }

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

     function dogeToTheMoon() public onlyOwner {
        buypercent = 550;
        sellpercent = 1000;
        transferpercent = 1500;
    }
        
           
    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 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 setInternalAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

    
    function updateFees(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 / 5, "Fees can not be more than 20%"); 
    }

    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 setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(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":"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":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dogeToTheMoon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"iswhitelisted","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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removelimits","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","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":[],"name":"unclogContract","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"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updateFeeSpread","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":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326002600a620006d8565b620000459066038d7ea4c68000620006e9565b600581905562000066906064906200005f906001620004a8565b906200053f565b60065560055462000081906064906200005f906001620004a8565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000b8919062000703565b620000c4919062000703565b620000d0919062000703565b620000dc919062000703565b6011556064601281905561064060138190556014556015819055601e601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200012d906019620006e9565b62000139919062000719565b6022553480156200014957600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200073c565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b491906200073c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000306573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032c91906200073c565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673cc882ec82acde2d415568f7b28ef9a061d5409f517909455855485167313331ee13580d9cc961dca5de3d8d50e332c18da1790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b7565b600082600003620004bc5750600062000539565b6000620004ca8385620006e9565b905082620004d9858362000719565b14620005365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058960201b60201c565b60008183620005ad5760405162461bcd60e51b81526004016200052d919062000767565b506000620005bc848662000719565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061c578160001904821115620006005762000600620005c5565b808516156200060e57918102915b93841c9390800290620005e0565b509250929050565b600082620006355750600162000539565b81620006445750600062000539565b81600181146200065d5760028114620006685762000688565b600191505062000539565b60ff8411156200067c576200067c620005c5565b50506001821b62000539565b5060208310610133831016604e8410600b8410161715620006ad575081810a62000539565b620006b98383620005db565b8060001904821115620006d057620006d0620005c5565b029392505050565b60006200053660ff84168362000624565b8082028115828204841417620005395762000539620005c5565b80820180821115620005395762000539620005c5565b6000826200073757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074f57600080fd5b81516001600160a01b03811681146200053657600080fd5b600060208083528351808285015260005b81811015620007965785810183015185820160400152820162000778565b506000604082860101526040601f19601f8301168501019250505092915050565b61238780620007c76000396000f3fe6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610297578063095ea7b3146102c8578063115db610146102e85780631161ae391461031757806318160ddd146103375780631df4ccfc1461034c578063201e79911461036257806323b872dd1461038257806328f4d2a0146103a25780632ad75672146103b75780632b112e49146103d7578063313ce567146103ec578063571ac8b0146104085780635e4ae81b1461042857806360c898871461043d5780636ddd17131461045d57806370a082311461047757806370c757ec14610497578063715018a6146104b857806378109e54146104cd5780637d1db4a5146104e35780637fa4a5bb146104f95780638821004f14610519578063893d20e8146105395780638a4068dd1461055b5780638da5cb5b1461057057806395d89b4114610585578063992c58e4146105b3578063a8aa1b31146105d3578063a9059cbb146105f3578063aba1193d14610613578063b2bdfa7b14610633578063d17b71f914610653578063d51ed1c814610673578063dd62ed3e14610693578063e5e52d7c146106d9578063e99c9d09146106f9578063f0a9e36514610719578063f282022914610739578063f2fde38b1461074e578063f887ea401461076e578063fb201b1d1461078e57600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e2b565b6107a3565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526008815267456c6f6e446f676560c01b60208201525b6040516102549190611e48565b3480156102a357600080fd5b50601f546102b890600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d457600080fd5b506102b86102e3366004611eb2565b6107f4565b3480156102f457600080fd5b506102b8610303366004611edc565b602080526000908152604090205460ff1681565b34801561032357600080fd5b506102b8610332366004611ef7565b610861565b34801561034357600080fd5b5060055461024a565b34801561035857600080fd5b5061024a60115481565b34801561036e57600080fd5b5061023261037d366004611ef7565b610875565b34801561038e57600080fd5b506102b861039d366004611f19565b6108aa565b3480156103ae57600080fd5b5061023261096c565b3480156103c357600080fd5b506102326103d2366004611f55565b6109a0565b3480156103e357600080fd5b5061024a610a29565b3480156103f857600080fd5b5060405160028152602001610254565b34801561041457600080fd5b506102b8610423366004611edc565b610a72565b34801561043457600080fd5b50610232610a80565b34801561044957600080fd5b50610232610458366004611fba565b610ab7565b34801561046957600080fd5b506021546102b89060ff1681565b34801561048357600080fd5b5061024a610492366004611edc565b610b56565b3480156104a357600080fd5b50601f546102b890600160a81b900460ff1681565b3480156104c457600080fd5b50610232610b71565b3480156104d957600080fd5b5061024a60075481565b3480156104ef57600080fd5b5061024a60065481565b34801561050557600080fd5b5061023261051436600461203f565b610bd3565b34801561052557600080fd5b50610232610534366004612076565b610c3b565b34801561054557600080fd5b5061054e610c8f565b604051610254919061208f565b34801561056757600080fd5b50610232610c99565b34801561057c57600080fd5b5061054e610cd5565b34801561059157600080fd5b5060408051808201909152600581526465444f474560d81b602082015261028a565b3480156105bf57600080fd5b506102326105ce3660046120a3565b610ce4565b3480156105df57600080fd5b50601f5461054e906001600160a01b031681565b3480156105ff57600080fd5b506102b861060e366004611eb2565b610daa565b34801561061f57600080fd5b5061023261062e3660046120e6565b610db7565b34801561063f57600080fd5b5060005461054e906001600160a01b031681565b34801561065f57600080fd5b5061023261066e366004612076565b610df8565b34801561067f57600080fd5b5061024a61068e366004612076565b610e61565b34801561069f57600080fd5b5061024a6106ae366004612104565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106e557600080fd5b506102326106f4366004612137565b610ea1565b34801561070557600080fd5b50610232610714366004612076565b610edc565b34801561072557600080fd5b506102b8610734366004611eb2565b610f45565b34801561074557600080fd5b50610232611036565b34801561075a57600080fd5b50610232610769366004611edc565b611074565b34801561077a57600080fd5b50601d5461054e906001600160a01b031681565b34801561079a57600080fd5b5061023261114c565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016107cd90612163565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061084f9086815260200190565b60405180910390a35060015b92915050565b60008261086d83610e61565b119392505050565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016107cd90612163565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610957576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093291849061118b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109628484846111c5565b90505b9392505050565b6000546001600160a01b031633146109965760405162461bcd60e51b81526004016107cd90612163565b61099e61158b565b565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016107cd90612163565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a6d90610a45906001600160a01b0316610b56565b600354610a6790610a5e906001600160a01b0316610b56565b60055490611972565b90611972565b905090565b600061085b826000196107f4565b6000546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107cd90612163565b6005546006819055600755565b6000546001600160a01b03163314610ae15760405162461bcd60e51b81526004016107cd90612163565b60005b82811015610b50578160206000868685818110610b0357610b03612198565b9050602002016020810190610b189190611edc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b49816121c4565b9050610ae4565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b9b5760405162461bcd60e51b81526004016107cd90612163565b600080546040516001600160a01b0390911690600080516020612312833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c5885856121dd565b610c6291906121f4565b6040518115909202916000818181858888f19350505050158015610c8a573d6000803e3d6000fd5b505050565b6000610a6d610cd5565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610cd2573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016107cd90612163565b600c869055600f859055600d849055600e8390556010829055610d3f82610d39858188818c8c6119b4565b906119b4565b6011556012819055610d526005826121f4565b60115410610da25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cd565b505050505050565b60006109653384846111c5565b6000546001600160a01b03163314610de15760405162461bcd60e51b81526004016107cd90612163565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e225760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610e3291906121f4565b6007541015610e4057600080fd5b6103e881600554610e5191906121dd565b610e5b91906121f4565b60075550565b600061085b610e6e610a29565b601f54610e9b90610e9490600290610e8e906001600160a01b0316610b56565b90611a11565b8590611a11565b90611a93565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016107cd90612163565b601391909155601491909155601555565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610f1691906121f4565b6006541015610f2457600080fd5b6103e881600554610f3591906121dd565b610f3f91906121f4565b60065550565b600081600003610fbf576040516370a0823160e01b81526001600160a01b038416906370a0823190610f7b90309060040161208f565b602060405180830381865afa158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612216565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061222f565b6000546001600160a01b031633146110605760405162461bcd60e51b81526004016107cd90612163565b6102266014556103e86013556105dc601555565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cd565b600080546040516001600160a01b038085169392169160008051602061231283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111765760405162461bcd60e51b81526004016107cd90612163565b601f805460ff60a01b1916600160a01b179055565b600081848411156111af5760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc848661224c565b95945050505050565b60235460009060ff16156111e5576111de848484611ad2565b9050610965565b6001600160a01b03841660009081526001602052604090205460ff1615801561122757506001600160a01b03831660009081526001602052604090205460ff16155b156112e757601f54600160a01b900460ff1661127c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cd565b601f54600160a81b900460ff16156112e7576001600160a01b038316600090815260208052604090205460ff166112e75760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107cd565b6001600160a01b03841660009081526001602052604090205460ff1615801561131957506001600160a01b0383163014155b801561133357506003546001600160a01b03848116911614155b801561134d5750601f546001600160a01b03848116911614155b80156113675750601a546001600160a01b03848116911614155b801561138157506017546001600160a01b03848116911614155b80156113a657506001600160a01b0383166000908152600b602052604090205460ff16155b1561143c5760006113b684610b56565b6007549091506113c6848361225f565b111561143a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cd565b505b6114468483611ba6565b61144e611c13565b1561145b5761145b61158b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114ad91849061118b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806114fa57506001600160a01b0384166000908152600a602052604090205460ff165b61150e57611509858486611c62565b611510565b825b6001600160a01b03851660009081526008602052604090205490915061153690826119b4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612332833981519152906115789085815260200190565b60405180910390a3506001949350505050565b6023805460ff19166001179055601b54601c546000916115aa91610861565b6115b657600c546115b9565b60005b905060006115dd6002610e9b601154610e9b86602254611a1190919063ffffffff16565b905060006115f68260225461197290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630612198565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061166157611661612198565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116ab908690600090879030904290600401612272565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b5050505060006116f2824761197290919063ffffffff16565b9050600061170d611704886002611a93565b60115490611972565b905060006117226002610e9b8481878d611a11565b9050600061173f83610e9b600d5487611a1190919063ffffffff16565b9050600061175c84610e9b600f5488611a1190919063ffffffff16565b9050600061177985610e9b600e5489611a1190919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117cb576040519150601f19603f3d011682016040523d82523d6000602084013e6117d0565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611875576040519150601f19603f3d011682016040523d82523d6000602084013e61187a565b606091505b5060009250508b15905061195a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191d91906122e3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600061096583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118b565b6000806119c1838561225f565b9050838110156109655760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107cd565b600082600003611a235750600061085b565b6000611a2f83856121dd565b905082611a3c85836121f4565b146109655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cd565b600061096583836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611def565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2391849061118b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5290836119b4565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061233283398151915290611b949086815260200190565b60405180910390a35060019392505050565b60065481111580611bcf57506001600160a01b0382166000908152600b602052604090205460ff165b611c0f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cd565b5050565b601f546000906001600160a01b03163314801590611c34575060235460ff16155b8015611c42575060215460ff165b8015610a6d57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c885750601354611ca3565b601f546001600160a01b0390811690861603611ca357506014545b6000611cd06012546064611cb791906121dd565b610e9b84610e8e6011548a611a1190919063ffffffff16565b90506000611cef601154610e9b60105485611a1190919063ffffffff16565b90506000611cfd8383611972565b30600090815260086020526040902054909150611d1a90826119b4565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d4890836119b4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612332833981519152910160405180910390a38115611dd957600554611da29083611972565b6005556004546040518381526001600160a01b03918216918a16906000805160206123328339815191529060200160405180910390a35b611de38784611972565b98975050505050505050565b60008183611e105760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc84866121f4565b8015158114610cd257600080fd5b600060208284031215611e3d57600080fd5b813561096581611e1d565b600060208083528351808285015260005b81811015611e7557858101830151858201604001528201611e59565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ead57600080fd5b919050565b60008060408385031215611ec557600080fd5b611ece83611e96565b946020939093013593505050565b600060208284031215611eee57600080fd5b61096582611e96565b60008060408385031215611f0a57600080fd5b50508035926020909101359150565b600080600060608486031215611f2e57600080fd5b611f3784611e96565b9250611f4560208501611e96565b9150604084013590509250925092565b600080600080600060a08688031215611f6d57600080fd5b611f7686611e96565b9450611f8460208701611e96565b9350611f9260408701611e96565b9250611fa060608701611e96565b9150611fae60808701611e96565b90509295509295909350565b600080600060408486031215611fcf57600080fd5b83356001600160401b0380821115611fe657600080fd5b818601915086601f830112611ffa57600080fd5b81358181111561200957600080fd5b8760208260051b850101111561201e57600080fd5b6020928301955093505084013561203481611e1d565b809150509250925092565b6000806040838503121561205257600080fd5b61205b83611e96565b9150602083013561206b81611e1d565b809150509250929050565b60006020828403121561208857600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120bc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120f957600080fd5b8235611ece81611e1d565b6000806040838503121561211757600080fd5b61212083611e96565b915061212e60208401611e96565b90509250929050565b60008060006060848603121561214c57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121d6576121d66121ae565b5060010190565b808202811582820484141761085b5761085b6121ae565b60008261221157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561222857600080fd5b5051919050565b60006020828403121561224157600080fd5b815161096581611e1d565b8181038181111561085b5761085b6121ae565b8082018082111561085b5761085b6121ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122c25784516001600160a01b03168352938301939183019160010161229d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f857600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220331bc6601226586d65467fccb2c178b537804454a23b1de71c5e4bd1d52eaf9964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610297578063095ea7b3146102c8578063115db610146102e85780631161ae391461031757806318160ddd146103375780631df4ccfc1461034c578063201e79911461036257806323b872dd1461038257806328f4d2a0146103a25780632ad75672146103b75780632b112e49146103d7578063313ce567146103ec578063571ac8b0146104085780635e4ae81b1461042857806360c898871461043d5780636ddd17131461045d57806370a082311461047757806370c757ec14610497578063715018a6146104b857806378109e54146104cd5780637d1db4a5146104e35780637fa4a5bb146104f95780638821004f14610519578063893d20e8146105395780638a4068dd1461055b5780638da5cb5b1461057057806395d89b4114610585578063992c58e4146105b3578063a8aa1b31146105d3578063a9059cbb146105f3578063aba1193d14610613578063b2bdfa7b14610633578063d17b71f914610653578063d51ed1c814610673578063dd62ed3e14610693578063e5e52d7c146106d9578063e99c9d09146106f9578063f0a9e36514610719578063f282022914610739578063f2fde38b1461074e578063f887ea401461076e578063fb201b1d1461078e57600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e2b565b6107a3565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50604080518082019091526008815267456c6f6e446f676560c01b60208201525b6040516102549190611e48565b3480156102a357600080fd5b50601f546102b890600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d457600080fd5b506102b86102e3366004611eb2565b6107f4565b3480156102f457600080fd5b506102b8610303366004611edc565b602080526000908152604090205460ff1681565b34801561032357600080fd5b506102b8610332366004611ef7565b610861565b34801561034357600080fd5b5060055461024a565b34801561035857600080fd5b5061024a60115481565b34801561036e57600080fd5b5061023261037d366004611ef7565b610875565b34801561038e57600080fd5b506102b861039d366004611f19565b6108aa565b3480156103ae57600080fd5b5061023261096c565b3480156103c357600080fd5b506102326103d2366004611f55565b6109a0565b3480156103e357600080fd5b5061024a610a29565b3480156103f857600080fd5b5060405160028152602001610254565b34801561041457600080fd5b506102b8610423366004611edc565b610a72565b34801561043457600080fd5b50610232610a80565b34801561044957600080fd5b50610232610458366004611fba565b610ab7565b34801561046957600080fd5b506021546102b89060ff1681565b34801561048357600080fd5b5061024a610492366004611edc565b610b56565b3480156104a357600080fd5b50601f546102b890600160a81b900460ff1681565b3480156104c457600080fd5b50610232610b71565b3480156104d957600080fd5b5061024a60075481565b3480156104ef57600080fd5b5061024a60065481565b34801561050557600080fd5b5061023261051436600461203f565b610bd3565b34801561052557600080fd5b50610232610534366004612076565b610c3b565b34801561054557600080fd5b5061054e610c8f565b604051610254919061208f565b34801561056757600080fd5b50610232610c99565b34801561057c57600080fd5b5061054e610cd5565b34801561059157600080fd5b5060408051808201909152600581526465444f474560d81b602082015261028a565b3480156105bf57600080fd5b506102326105ce3660046120a3565b610ce4565b3480156105df57600080fd5b50601f5461054e906001600160a01b031681565b3480156105ff57600080fd5b506102b861060e366004611eb2565b610daa565b34801561061f57600080fd5b5061023261062e3660046120e6565b610db7565b34801561063f57600080fd5b5060005461054e906001600160a01b031681565b34801561065f57600080fd5b5061023261066e366004612076565b610df8565b34801561067f57600080fd5b5061024a61068e366004612076565b610e61565b34801561069f57600080fd5b5061024a6106ae366004612104565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106e557600080fd5b506102326106f4366004612137565b610ea1565b34801561070557600080fd5b50610232610714366004612076565b610edc565b34801561072557600080fd5b506102b8610734366004611eb2565b610f45565b34801561074557600080fd5b50610232611036565b34801561075a57600080fd5b50610232610769366004611edc565b611074565b34801561077a57600080fd5b50601d5461054e906001600160a01b031681565b34801561079a57600080fd5b5061023261114c565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016107cd90612163565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061084f9086815260200190565b60405180910390a35060015b92915050565b60008261086d83610e61565b119392505050565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016107cd90612163565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610957576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093291849061118b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109628484846111c5565b90505b9392505050565b6000546001600160a01b031633146109965760405162461bcd60e51b81526004016107cd90612163565b61099e61158b565b565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016107cd90612163565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a6d90610a45906001600160a01b0316610b56565b600354610a6790610a5e906001600160a01b0316610b56565b60055490611972565b90611972565b905090565b600061085b826000196107f4565b6000546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107cd90612163565b6005546006819055600755565b6000546001600160a01b03163314610ae15760405162461bcd60e51b81526004016107cd90612163565b60005b82811015610b50578160206000868685818110610b0357610b03612198565b9050602002016020810190610b189190611edc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b49816121c4565b9050610ae4565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b9b5760405162461bcd60e51b81526004016107cd90612163565b600080546040516001600160a01b0390911690600080516020612312833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c5885856121dd565b610c6291906121f4565b6040518115909202916000818181858888f19350505050158015610c8a573d6000803e3d6000fd5b505050565b6000610a6d610cd5565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610cd2573d6000803e3d6000fd5b50565b6000546001600160a01b031690565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016107cd90612163565b600c869055600f859055600d849055600e8390556010829055610d3f82610d39858188818c8c6119b4565b906119b4565b6011556012819055610d526005826121f4565b60115410610da25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cd565b505050505050565b60006109653384846111c5565b6000546001600160a01b03163314610de15760405162461bcd60e51b81526004016107cd90612163565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e225760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610e3291906121f4565b6007541015610e4057600080fd5b6103e881600554610e5191906121dd565b610e5b91906121f4565b60075550565b600061085b610e6e610a29565b601f54610e9b90610e9490600290610e8e906001600160a01b0316610b56565b90611a11565b8590611a11565b90611a93565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016107cd90612163565b601391909155601491909155601555565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107cd90612163565b6103e8600554610f1691906121f4565b6006541015610f2457600080fd5b6103e881600554610f3591906121dd565b610f3f91906121f4565b60065550565b600081600003610fbf576040516370a0823160e01b81526001600160a01b038416906370a0823190610f7b90309060040161208f565b602060405180830381865afa158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612216565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061222f565b6000546001600160a01b031633146110605760405162461bcd60e51b81526004016107cd90612163565b6102266014556103e86013556105dc601555565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016107cd90612163565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cd565b600080546040516001600160a01b038085169392169160008051602061231283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111765760405162461bcd60e51b81526004016107cd90612163565b601f805460ff60a01b1916600160a01b179055565b600081848411156111af5760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc848661224c565b95945050505050565b60235460009060ff16156111e5576111de848484611ad2565b9050610965565b6001600160a01b03841660009081526001602052604090205460ff1615801561122757506001600160a01b03831660009081526001602052604090205460ff16155b156112e757601f54600160a01b900460ff1661127c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cd565b601f54600160a81b900460ff16156112e7576001600160a01b038316600090815260208052604090205460ff166112e75760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107cd565b6001600160a01b03841660009081526001602052604090205460ff1615801561131957506001600160a01b0383163014155b801561133357506003546001600160a01b03848116911614155b801561134d5750601f546001600160a01b03848116911614155b80156113675750601a546001600160a01b03848116911614155b801561138157506017546001600160a01b03848116911614155b80156113a657506001600160a01b0383166000908152600b602052604090205460ff16155b1561143c5760006113b684610b56565b6007549091506113c6848361225f565b111561143a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cd565b505b6114468483611ba6565b61144e611c13565b1561145b5761145b61158b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114ad91849061118b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806114fa57506001600160a01b0384166000908152600a602052604090205460ff165b61150e57611509858486611c62565b611510565b825b6001600160a01b03851660009081526008602052604090205490915061153690826119b4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612332833981519152906115789085815260200190565b60405180910390a3506001949350505050565b6023805460ff19166001179055601b54601c546000916115aa91610861565b6115b657600c546115b9565b60005b905060006115dd6002610e9b601154610e9b86602254611a1190919063ffffffff16565b905060006115f68260225461197290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630612198565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061166157611661612198565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116ab908690600090879030904290600401612272565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b5050505060006116f2824761197290919063ffffffff16565b9050600061170d611704886002611a93565b60115490611972565b905060006117226002610e9b8481878d611a11565b9050600061173f83610e9b600d5487611a1190919063ffffffff16565b9050600061175c84610e9b600f5488611a1190919063ffffffff16565b9050600061177985610e9b600e5489611a1190919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117cb576040519150601f19603f3d011682016040523d82523d6000602084013e6117d0565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611875576040519150601f19603f3d011682016040523d82523d6000602084013e61187a565b606091505b5060009250508b15905061195a57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191d91906122e3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600061096583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118b565b6000806119c1838561225f565b9050838110156109655760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107cd565b600082600003611a235750600061085b565b6000611a2f83856121dd565b905082611a3c85836121f4565b146109655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cd565b600061096583836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611def565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2391849061118b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5290836119b4565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061233283398151915290611b949086815260200190565b60405180910390a35060019392505050565b60065481111580611bcf57506001600160a01b0382166000908152600b602052604090205460ff165b611c0f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cd565b5050565b601f546000906001600160a01b03163314801590611c34575060235460ff16155b8015611c42575060215460ff165b8015610a6d57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c885750601354611ca3565b601f546001600160a01b0390811690861603611ca357506014545b6000611cd06012546064611cb791906121dd565b610e9b84610e8e6011548a611a1190919063ffffffff16565b90506000611cef601154610e9b60105485611a1190919063ffffffff16565b90506000611cfd8383611972565b30600090815260086020526040902054909150611d1a90826119b4565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d4890836119b4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612332833981519152910160405180910390a38115611dd957600554611da29083611972565b6005556004546040518381526001600160a01b03918216918a16906000805160206123328339815191529060200160405180910390a35b611de38784611972565b98975050505050505050565b60008183611e105760405162461bcd60e51b81526004016107cd9190611e48565b5060006111bc84866121f4565b8015158114610cd257600080fd5b600060208284031215611e3d57600080fd5b813561096581611e1d565b600060208083528351808285015260005b81811015611e7557858101830151858201604001528201611e59565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ead57600080fd5b919050565b60008060408385031215611ec557600080fd5b611ece83611e96565b946020939093013593505050565b600060208284031215611eee57600080fd5b61096582611e96565b60008060408385031215611f0a57600080fd5b50508035926020909101359150565b600080600060608486031215611f2e57600080fd5b611f3784611e96565b9250611f4560208501611e96565b9150604084013590509250925092565b600080600080600060a08688031215611f6d57600080fd5b611f7686611e96565b9450611f8460208701611e96565b9350611f9260408701611e96565b9250611fa060608701611e96565b9150611fae60808701611e96565b90509295509295909350565b600080600060408486031215611fcf57600080fd5b83356001600160401b0380821115611fe657600080fd5b818601915086601f830112611ffa57600080fd5b81358181111561200957600080fd5b8760208260051b850101111561201e57600080fd5b6020928301955093505084013561203481611e1d565b809150509250925092565b6000806040838503121561205257600080fd5b61205b83611e96565b9150602083013561206b81611e1d565b809150509250929050565b60006020828403121561208857600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120bc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120f957600080fd5b8235611ece81611e1d565b6000806040838503121561211757600080fd5b61212083611e96565b915061212e60208401611e96565b90509250929050565b60008060006060848603121561214c57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121d6576121d66121ae565b5060010190565b808202811582820484141761085b5761085b6121ae565b60008261221157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561222857600080fd5b5051919050565b60006020828403121561224157600080fd5b815161096581611e1d565b8181038181111561085b5761085b6121ae565b8082018082111561085b5761085b6121ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122c25784516001600160a01b03168352938301939183019160010161229d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f857600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220331bc6601226586d65467fccb2c178b537804454a23b1de71c5e4bd1d52eaf9964736f6c63430008130033

Deployed Bytecode Sourcemap

5249:14037:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14703:98;;;;;;;;;;-1:-1:-1;14703:98:0;;;;;:::i;:::-;;:::i;:::-;;7045:55;;;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;7045:55:0;;;;;;;;8582:80;;;;;;;;;;-1:-1:-1;8654:5:0;;;;;;;;;;;;-1:-1:-1;;;8654:5:0;;;;8582:80;;;;;;;:::i;6869:31::-;;;;;;;;;;-1:-1:-1;6869:31:0;;;;-1:-1:-1;;;6869:31:0;;;;;;;;;1283:14:1;;1276:22;1258:41;;1246:2;1231:18;6869:31:0;1118:187:1;9004:216:0;;;;;;;;;;-1:-1:-1;9004:216:0;;;;;:::i;:::-;;:::i;6950:46::-;;;;;;;;;;-1:-1:-1;6950:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19064:150;;;;;;;;;;-1:-1:-1;19064:150:0;;;;;:::i;:::-;;:::i;8312:88::-;;;;;;;;;;-1:-1:-1;8385:12:0;;8312:88;;6224:93;;;;;;;;;;;;;;;;18545:182;;;;;;;;;;-1:-1:-1;18545:182:0;;;;;:::i;:::-;;:::i;9522:370::-;;;;;;;;;;-1:-1:-1;9522:370:0;;;;;:::i;:::-;;:::i;13978:83::-;;;;;;;;;;;;;:::i;17925:449::-;;;;;;;;;;-1:-1:-1;17925:449:0;;;;;:::i;:::-;;:::i;18739:142::-;;;;;;;;;;;;;:::i;8406:80::-;;;;;;;;;;-1:-1:-1;8406:80:0;;5590:1;3155:36:1;;3143:2;3128:18;8406:80:0;3013:184:1;9228:122:0;;;;;;;;;;-1:-1:-1;9228:122:0;;;;;:::i;:::-;;:::i;10336:139::-;;;;;;;;;;;;;:::i;14809:210::-;;;;;;;;;;-1:-1:-1;14809:210:0;;;;;:::i;:::-;;:::i;7008:30::-;;;;;;;;;;-1:-1:-1;7008:30:0;;;;;;;;8752:105;;;;;;;;;;-1:-1:-1;8752:105:0;;;;;:::i;:::-;;:::i;6910:33::-;;;;;;;;;;-1:-1:-1;6910:33:0;;;;-1:-1:-1;;;6910:33:0;;;;;;3306:148;;;;;;;;;;;;;:::i;5728:61::-;;;;;;;;;;;;;;;;5663:58;;;;;;;;;;;;;;;;17170:166;;;;;;;;;;-1:-1:-1;17170:166:0;;;;;:::i;:::-;;:::i;13767:202::-;;;;;;;;;;-1:-1:-1;13767:202:0;;;;;:::i;:::-;;:::i;8668:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14070:118::-;;;;;;;;;;;;;:::i;3092:79::-;;;;;;;;;;;;;:::i;8492:84::-;;;;;;;;;;-1:-1:-1;8566:7:0;;;;;;;;;;;;-1:-1:-1;;;8566:7:0;;;;8492:84;;17350:567;;;;;;;;;;-1:-1:-1;17350:567:0;;;;;:::i;:::-;;:::i;6837:19::-;;;;;;;;;;-1:-1:-1;6837:19:0;;;;-1:-1:-1;;;;;6837:19:0;;;9358:156;;;;;;;;;;-1:-1:-1;9358:156:0;;;;;:::i;:::-;;:::i;18382:155::-;;;;;;;;;;-1:-1:-1;18382:155:0;;;;;:::i;:::-;;:::i;2712:21::-;;;;;;;;;;-1:-1:-1;2712:21:0;;;;-1:-1:-1;;;;;2712:21:0;;;9904:221;;;;;;;;;;-1:-1:-1;9904:221:0;;;;;:::i;:::-;;:::i;18889:167::-;;;;;;;;;;-1:-1:-1;18889:167:0;;;;;:::i;:::-;;:::i;8863:133::-;;;;;;;;;;-1:-1:-1;8863:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8965:19:0;;;8947:7;8965:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8863:133;14488:206;;;;;;;;;;-1:-1:-1;14488:206:0;;;;;:::i;:::-;;:::i;10133:195::-;;;;;;;;;;-1:-1:-1;10133:195:0;;;;;:::i;:::-;;:::i;14196:284::-;;;;;;;;;;-1:-1:-1;14196:284:0;;;;;:::i;:::-;;:::i;15121:139::-;;;;;;;;;;;;;:::i;3462:244::-;;;;;;;;;;-1:-1:-1;3462:244:0;;;;;:::i;:::-;;:::i;6767:24::-;;;;;;;;;;-1:-1:-1;6767:24:0;;;;-1:-1:-1;;;;;6767:24:0;;;15027:85;;;;;;;;;;;;;:::i;14703:98::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;;;;;;;;;14770:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14770:23:0::1;-1:-1:-1::0;;;;14770:23:0;;::::1;::::0;;;::::1;::::0;;14703:98::o;9004:216::-;9108:10;9079:4;9096:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9096:32:0;;;;;;;;;;:41;;;9153:37;9079:4;;9096:32;;9153:37;;;;9131:6;529:25:1;;517:2;502:18;;383:177;9153:37:0;;;;;;;;-1:-1:-1;9208:4:0;9004:216;;;;;:::o;19064:150::-;19144:4;19200:6;19168:29;19188:8;19168:19;:29::i;:::-;:38;;19064:150;-1:-1:-1;;;19064:150:0:o;18545:182::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18642:15:::1;:25:::0;;;;18678:26:::1;:41:::0;18545:182::o;9522:370::-;-1:-1:-1;;;;;9642:19:0;;9622:4;9642:19;;;:11;:19;;;;;;;;9662:10;9642:31;;;;;;;;-1:-1:-1;;9642:52:0;9639:186;;9744:69;;;;;;;;;;;-1:-1:-1;;;9744:69:0;;;;;;;;-1:-1:-1;;;;;9744:19:0;;-1:-1:-1;9744:19:0;;;:11;:19;;;;;9764:10;9744:31;;;;;;;;;;:69;;9780:6;;9744:35;:69::i;:::-;-1:-1:-1;;;;;9710:19:0;;;;;;:11;:19;;;;;;;;9730:10;9710:31;;;;;;;:103;9639:186;9844:40;9858:6;9866:9;9877:6;9844:13;:40::i;:::-;9837:47;;9522:370;;;;;;:::o;13978:83::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14037:10:::1;:8;:10::i;:::-;13978:83::o:0;17925:449::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18126:21:::1;:46:::0;;-1:-1:-1;;;;;;18126:46:0;;::::1;-1:-1:-1::0;;;;;18126:46:0;;::::1;;::::0;;;18183:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18238:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18281:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18326:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17925:449::o;18739:142::-;18867:4;;18792:7;;18819:54;;18857:15;;-1:-1:-1;;;;;18867:4:0;18857:9;:15::i;:::-;18846:4;;18819:33;;18836:15;;-1:-1:-1;;;;;18846:4:0;18836:9;:15::i;:::-;18819:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18812:61;;18739:142;:::o;9228:122::-;9283:4;9307:35;9315:7;-1:-1:-1;;9307:7:0;:35::i;10336:139::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10410:12:::1;::::0;10395::::1;:27:::0;;;10437:15:::1;:30:::0;10336:139::o;14809:210::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14911:9:::1;14906:106;14922:20:::0;;::::1;14906:106;;;14994:6;14964:13;:27;14978:9;;14988:1;14978:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14964:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14964:27:0;:36;;-1:-1:-1;;14964:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14944:3:::1;::::0;::::1;:::i;:::-;;;14906:106;;;;14809:210:::0;;;:::o;8752:105::-;-1:-1:-1;;;;;8836:18:0;8818:7;8836:18;;;:9;:18;;;;;;;8752:105::o;3306:148::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;3413:1:::1;3397:6:::0;;3376:40:::1;::::0;-1:-1:-1;;;;;3397:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3376:40:0;3413:1;;3376:40:::1;3444:1;3427:19:::0;;-1:-1:-1;;;;;;3427:19:0::1;::::0;;3306:148::o;17170:166::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17257:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17257:28:0;;::::1;::::0;::::1;::::0;;;17296:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17170:166::o;13767:202::-;13897:18;;13857:21;;-1:-1:-1;;;;;13897:18:0;13889:72;13957:3;13926:28;13938:16;13857:21;13926:28;:::i;:::-;:34;;;;:::i;:::-;13889:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13826:143;13767:202;:::o;8668:78::-;8720:7;8737;:5;:7::i;14070:118::-;14124:21;;14116:62;;-1:-1:-1;;;;;14124:21:0;;;;14156;14116:62;;;;;14124:21;14116:62;14124:21;14116:62;14156:21;14124;14116:62;;;;;;;;;;;;;;;;;;;;;14070:118::o;3092:79::-;3130:7;3157:6;-1:-1:-1;;;;;3157:6:0;;3092:79::o;17350:567::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;17527:12:::1;:28:::0;;;17566:10:::1;:24:::0;;;17601:12:::1;:28:::0;;;17640:6:::1;:16:::0;;;17667:7:::1;:18:::0;;;17707:76:::1;17677:8:::0;17707:62:::1;17649:7:::0;17707:62;17616:13;17707:62;17542:13;17579:11;17707:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17696:8;:87:::0;17794:14:::1;:32:::0;;;17856:18:::1;17873:1;17811:15:::0;17856:18:::1;:::i;:::-;17845:8;;:29;17837:71;;;::::0;-1:-1:-1;;;17837:71:0;;7686:2:1;17837:71:0::1;::::0;::::1;7668:21:1::0;7725:2;7705:18;;;7698:30;7764:31;7744:18;;;7737:59;7813:18;;17837:71:0::1;7484:353:1::0;17837:71:0::1;17350:567:::0;;;;;;:::o;9358:156::-;9438:4;9462:44;9476:10;9488:9;9499:6;9462:13;:44::i;18382:155::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;18473:11:::1;:22:::0;;-1:-1:-1;;18473:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18506:13:::1;:23:::0;18382:155::o;9904:221::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10025:4:::1;10010:12;;:19;;;;:::i;:::-;9991:15;;:38;;9983:47;;;::::0;::::1;;10095:4;10076:14;10061:12;;:29;;;;:::i;:::-;10060:39;;;;:::i;:::-;10042:15;:57:::0;-1:-1:-1;9904:221:0:o;18889:167::-;18957:7;18984:64;19025:22;:20;:22::i;:::-;19007:4;;18984:36;;18997:22;;19017:1;;18997:15;;-1:-1:-1;;;;;19007:4:0;18997:9;:15::i;:::-;:19;;:22::i;:::-;18984:8;;:12;:36::i;:::-;:40;;:64::i;14488:206::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;14588:11:::1;:19:::0;;;;14618:10:::1;:17:::0;;;;14646:15:::1;:24:::0;14488:206::o;10133:195::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;10251:4:::1;10236:12;;:19;;;;:::i;:::-;10220:12;;:35;;10212:44;;;::::0;::::1;;10316:4;10299:12;10284;;:27;;;;:::i;:::-;10283:37;;;;:::i;:::-;10268:12;:52:::0;-1:-1:-1;10133:195:0:o;14196:284::-;14277:4;14304:6;14314:1;14304:11;14301:95;;14340:44;;-1:-1:-1;;;14340:44:0;;-1:-1:-1;;;;;14340:29:0;;;;;:44;;14378:4;;14340:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14331:53;;14301:95;14442:21;;14413:59;;-1:-1:-1;;;14413:59:0;;-1:-1:-1;;;;;14442:21:0;;;14413:59;;;8205:51:1;8272:18;;;8265:34;;;14413:28:0;;;;;;8178:18:1;;14413:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15121:139::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;15187:3:::1;15174:10;:16:::0;15215:4:::1;15201:11;:18:::0;15248:4:::1;15230:15;:22:::0;15121:139::o;3462:244::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3551:22:0;::::1;3543:73;;;::::0;-1:-1:-1;;;3543:73:0;;8762:2:1;3543:73:0::1;::::0;::::1;8744:21:1::0;8801:2;8781:18;;;8774:30;8840:34;8820:18;;;8813:62;-1:-1:-1;;;8891:18:1;;;8884:36;8937:19;;3543:73:0::1;8560:402:1::0;3543:73:0::1;3653:6;::::0;;3632:38:::1;::::0;-1:-1:-1;;;;;3632:38:0;;::::1;::::0;3653:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3632:38:0;::::1;3681:6;:17:::0;;-1:-1:-1;;;;;;3681:17:0::1;-1:-1:-1::0;;;;;3681:17:0;;;::::1;::::0;;;::::1;::::0;;3462:244::o;15027:85::-;3219:6;;-1:-1:-1;;;;;3219:6:0;2529:10;3219:22;3211:67;;;;-1:-1:-1;;;3211:67:0;;;;;;;:::i;:::-;15076:11:::1;:18:::0;;-1:-1:-1;;;;15076:18:0::1;-1:-1:-1::0;;;15076:18:0::1;::::0;;15027:85::o;693:192::-;779:7;815:12;807:6;;;;799:29;;;;-1:-1:-1;;;799:29:0;;;;;;;;:::i;:::-;-1:-1:-1;839:9:0;851:5;855:1;851;:5;:::i;:::-;839:17;693:192;-1:-1:-1;;;;;693:192:0:o;10489:1433::-;10601:6;;10581:4;;10601:6;;10598:63;;;10617:41;10632:6;10640:9;10651:6;10617:14;:41::i;:::-;10610:48;;;;10598:63;-1:-1:-1;;;;;10677:22:0;;;;;;:14;:22;;;;;;;;10676:23;:53;;;;-1:-1:-1;;;;;;10704:25:0;;;;;;:14;:25;;;;;;;;10703:26;10676:53;10673:254;;;10753:11;;-1:-1:-1;;;10753:11:0;;;;10745:43;;;;-1:-1:-1;;;10745:43:0;;9302:2:1;10745:43:0;;;9284:21:1;9341:2;9321:18;;;9314:30;-1:-1:-1;;;9360:18:1;;;9353:50;9420:18;;10745:43:0;9100:344:1;10745:43:0;10817:13;;-1:-1:-1;;;10817:13:0;;;;10814:102;;;-1:-1:-1;;;;;10858:24:0;;;;;;:13;:24;;;;;;;;10850:51;;;;-1:-1:-1;;;10850:51:0;;9651:2:1;10850:51:0;;;9633:21:1;9690:2;9670:18;;;9663:30;-1:-1:-1;;;9709:18:1;;;9702:45;9764:18;;10850:51:0;9449:339:1;10850:51:0;-1:-1:-1;;;;;10959:22:0;;;;;;:14;:22;;;;;;;;10958:23;:53;;;;-1:-1:-1;;;;;;10985:26:0;;11006:4;10985:26;;10958:53;:84;;;;-1:-1:-1;11037:4:0;;-1:-1:-1;;;;;11016:26:0;;;11037:4;;11016:26;;10958:84;:105;;;;-1:-1:-1;11059:4:0;;-1:-1:-1;;;;;11046:17:0;;;11059:4;;11046:17;;10958:105;:137;;;;-1:-1:-1;11080:15:0;;-1:-1:-1;;;;;11067:28:0;;;11080:15;;11067:28;;10958:137;:174;;;;-1:-1:-1;11112:20:0;;-1:-1:-1;;;;;11099:33:0;;;11112:20;;11099:33;;10958:174;:205;;;;-1:-1:-1;;;;;;11137:26:0;;;;;;:15;:26;;;;;;;;11136:27;10958:205;10954:397;;;11179:18;11200:20;11210:9;11200;:20::i;:::-;11268:15;;11179:41;;-1:-1:-1;11244:19:0;11257:6;11179:41;11244:19;:::i;:::-;11243:40;;11235:114;;;;-1:-1:-1;;;11235:114:0;;10125:2:1;11235:114:0;;;10107:21:1;10164:2;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;10274:32;10254:18;;;10247:60;10324:19;;11235:114:0;9923:426:1;11235:114:0;11164:187;10954:397;11416:28;11429:6;11437;11416:12;:28::i;:::-;11461:16;:14;:16::i;:::-;11458:35;;;11480:10;:8;:10::i;:::-;11573:53;;;;;;;;;;;-1:-1:-1;;;11573:53:0;;;;;;;;-1:-1:-1;;;;;11573:17:0;;-1:-1:-1;11573:17:0;;;:9;:17;;;;;;;;:53;;11595:6;;11573:21;:53::i;:::-;-1:-1:-1;;;;;11553:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11665:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11688:22:0;;;;;;:11;:22;;;;;;;;11665:45;11664:93;;11723:34;11731:6;11739;11747:9;11723:7;:34::i;:::-;11664:93;;;11714:6;11664:93;-1:-1:-1;;;;;11791:20:0;;;;;;:9;:20;;;;;;11639:118;;-1:-1:-1;11791:40:0;;11639:118;11791:24;:40::i;:::-;-1:-1:-1;;;;;11768:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11849:43;;;;;;-1:-1:-1;;;;;;;;;;;11849:43:0;;;11877:14;529:25:1;;517:2;502:18;;383:177;11849:43:0;;;;;;;;-1:-1:-1;11910:4:0;;10489:1433;-1:-1:-1;;;;10489:1433:0:o;15289:1873::-;7148:6;:13;;-1:-1:-1;;7148:13:0;7157:4;7148:13;;;15384:15:::1;::::0;15401:26:::1;::::0;7148:6;;15368:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15435:12;;15368:79;;;15431:1;15368:79;15338:109;;15458:23;15484:59;15541:1;15484:52;15527:8;;15484:38;15502:19;15484:13;;:17;;:38;;;;:::i;:59::-;15458:85;;15554:20;15577:34;15595:15;15577:13;;:17;;:34;;;;:::i;:::-;15648:16;::::0;;15662:1:::1;15648:16:::0;;;;;::::1;::::0;;15554:57;;-1:-1:-1;15624:21:0::1;::::0;15648:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15648:16:0::1;15624:40;;15693:4;15675;15680:1;15675:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15675:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15719:4:::1;::::0;15709:7;;15719:4;::::1;::::0;15709;;15719;;15709:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15709:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15794:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15794:188:0;;15760:21:::1;::::0;15794:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15866:12;;15736:21:::1;::::0;15909:4;;15936::::1;::::0;15956:15:::1;::::0;15794:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15995:17;16015:40;16041:13;16015:21;:25;;:40;;;;:::i;:::-;15995:60:::0;-1:-1:-1;16068:19:0::1;16090:40;16103:26;:19:::0;16127:1:::1;16103:23;:26::i;:::-;16090:8;::::0;;:12:::1;:40::i;:::-;16068:62:::0;-1:-1:-1;16151:26:0::1;16180:58;16236:1;16180:51;16068:62:::0;16180:51;:9;16194:19;16180:13:::1;:34::i;:58::-;16151:87;;16249:26;16278:44;16310:11;16278:27;16292:12;;16278:9;:13;;:27;;;;:::i;:44::-;16249:73;;16333:24;16360:42;16390:11;16360:25;16374:10;;16360:9;:13;;:25;;;;:::i;:42::-;16333:69;;16413:20;16436:38;16462:11;16436:21;16450:6;;16436:9;:13;;:21;;;;:::i;:38::-;16516:20;::::0;16508:65:::1;::::0;16413:61;;-1:-1:-1;16488:15:0::1;::::0;-1:-1:-1;;;;;16516:20:0;;::::1;::::0;16550:18;;16488:15;16508:65;16488:15;16508:65;16550:18;16516:20;16508:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16608:14:0::1;::::0;16600:53:::1;::::0;16487:86;;-1:-1:-1;;;;;;16608:14:0::1;::::0;16636:12;;16600:53:::1;::::0;;;16636:12;16608:14;16600:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16688:18:0::1;::::0;16680:61:::1;::::0;16584:69;;-1:-1:-1;;;;;;16688:18:0::1;::::0;16720:16;;16680:61:::1;::::0;;;16720:16;16688:18;16680:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16775:5:0::1;::::0;-1:-1:-1;;16796:19:0;;;-1:-1:-1;16793:362:0::1;;16831:6;::::0;17005:21:::1;::::0;16831:244:::1;::::0;-1:-1:-1;;;16831:244:0;;16907:4:::1;16831:244;::::0;::::1;12022:34:1::0;12072:18;;;12065:34;;;16831:6:0::1;12115:18:1::0;;;12108:34;;;12158:18;;;12151:34;-1:-1:-1;;;;;17005:21:0;;::::1;12201:19:1::0;;;12194:44;17045:15:0::1;12254:19:1::0;;;12247:35;16831:6:0;::::1;::::0;:22:::1;::::0;16861:18;;11956:19:1;;16831:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17095:48:0::1;::::0;;12778:25:1;;;12834:2;12819:18;;12812:34;;;17095:48:0::1;::::0;-1:-1:-1;12751:18:1;17095:48:0::1;;;;;;;16793:362;-1:-1:-1::0;;7166:6:0;:14;;-1:-1:-1;;7166:14:0;;;-1:-1:-1;;;;;;;;;;15289:1873:0:o;551:136::-;609:7;636:43;640:1;643;636:43;;;;;;;;;;;;;;;;;:3;:43::i;364:181::-;422:7;;454:5;458:1;454;:5;:::i;:::-;442:17;;483:1;478;:6;;470:46;;;;-1:-1:-1;;;470:46:0;;13059:2:1;470:46:0;;;13041:21:1;13098:2;13078:18;;;13071:30;-1:-1:-1;;;13117:18:1;;;13110:57;13184:18;;470:46:0;12857:351:1;891:250:0;949:7;973:1;978;973:6;969:47;;-1:-1:-1;1003:1:0;996:8;;969:47;1028:9;1040:5;1044:1;1040;:5;:::i;:::-;1028:17;-1:-1:-1;1073:1:0;1064:5;1068:1;1028:17;1064:5;:::i;:::-;:10;1056:56;;;;-1:-1:-1;;;1056:56:0;;13415:2:1;1056:56:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:34;13473:18;;;13466:62;-1:-1:-1;;;13544:18:1;;;13537:31;13585:19;;1056:56:0;13213:397:1;1147:132:0;1205:7;1232:39;1236:1;1239;1232:39;;;;;;;;;;;;;-1:-1:-1;;;1232:39:0;;;:3;:39::i;11934:330::-;12064:53;;;;;;;;;;;-1:-1:-1;;;12064:53:0;;;;;;;;-1:-1:-1;;;;;12064:17:0;;12027:4;12064:17;;;:9;:17;;;;;;;:53;;12086:6;;12064:21;:53::i;:::-;-1:-1:-1;;;;;12044:17:0;;;;;;;:9;:17;;;;;;:73;;;;12151:20;;;;;;;:32;;12176:6;12151:24;:32::i;:::-;-1:-1:-1;;;;;12128:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12199:35;;;;;;-1:-1:-1;;;;;;;;;;;12199:35:0;;;12227:6;529:25:1;;517:2;502:18;;383:177;12199:35:0;;;;;;;;-1:-1:-1;12252:4:0;11934:330;;;;;:::o;12272:166::-;12369:12;;12359:6;:22;;:49;;;-1:-1:-1;;;;;;12385:23:0;;;;;;:15;:23;;;;;;;;12359:49;12351:79;;;;-1:-1:-1;;;12351:79:0;;13817:2:1;12351:79:0;;;13799:21:1;13856:2;13836:18;;;13829:30;-1:-1:-1;;;13875:18:1;;;13868:47;13932:18;;12351:79:0;13615:341:1;12351:79:0;12272:166;;:::o;13562:197::-;13649:4;;13611;;-1:-1:-1;;;;;13649:4:0;13635:10;:18;;;;:38;;-1:-1:-1;13667:6:0;;;;13666:7;13635:38;:62;;;;-1:-1:-1;13686:11:0;;;;13635:62;:116;;;;-1:-1:-1;;13738:13:0;;13728:4;13710:24;;;;:9;:24;;;;;;:41;;;13562:197::o;12568:986::-;12702:15;;12746:4;;12654:7;;12702:15;-1:-1:-1;;;;;12746:4:0;;;12733:17;;;;12730:142;;-1:-1:-1;12777:11:0;;12730:142;;;12819:4;;-1:-1:-1;;;;;12819:4:0;;;12809:14;;;;12806:66;;-1:-1:-1;12850:10:0;;12806:66;12884:17;12904:59;12942:14;;12959:3;12942:20;;;;:::i;:::-;12904:33;12929:7;12904:20;12915:8;;12904:6;:10;;:20;;;;:::i;:59::-;12884:79;;12974:18;12995:36;13022:8;;12995:22;13009:7;;12995:9;:13;;:22;;;;:::i;:36::-;12974:57;-1:-1:-1;13042:22:0;13067:25;:9;12974:57;13067:13;:25::i;:::-;13150:4;13132:24;;;;:9;:24;;;;;;13042:50;;-1:-1:-1;13132:44:0;;13042:50;13132:28;:44::i;:::-;13123:4;13105:24;;;;:9;:24;;;;;;:71;;;;13226:15;;-1:-1:-1;;;;;13226:15:0;13216:26;;;;:42;;13247:10;13216:30;:42::i;:::-;13197:15;;-1:-1:-1;;;;;13197:15:0;;;13187:26;;;;:9;:26;;;;;;;;;:71;;;;13274:47;529:25:1;;;13299:4:0;;13274:47;;;;-1:-1:-1;;;;;;;;;;;13274:47:0;502:18:1;13274:47:0;;;;;;;13355:14;;13352:154;;13400:12;;:28;;13417:10;13400:16;:28::i;:::-;13385:12;:43;13465:4;;13448:34;;529:25:1;;;-1:-1:-1;;;;;13465:4:0;;;;13448:34;;;-1:-1:-1;;;;;;;;;;;13448:34:0;517:2:1;502:18;13448:34:0;;;;;;;13352:154;13525:21;:6;13536:9;13525:10;:21::i;:::-;13518:28;12568:986;-1:-1:-1;;;;;;;;12568:986:0:o;1285:189::-;1371:7;1406:12;1399:5;1391:28;;;;-1:-1:-1;;;1391:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1430:9:0;1442:5;1446:1;1442;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:241;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;565:548::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;849:3;1034:1;1029:2;1020:6;1009:9;1005:22;1001:31;994:42;1104:2;1097;1093:7;1088:2;1080:6;1076:15;1072:29;1061:9;1057:45;1053:54;1045:62;;;;565:548;;;;:::o;1310:173::-;1378:20;;-1:-1:-1;;;;;1427:31:1;;1417:42;;1407:70;;1473:1;1470;1463:12;1407:70;1310:173;;;:::o;1488:254::-;1556:6;1564;1617:2;1605:9;1596:7;1592:23;1588:32;1585:52;;;1633:1;1630;1623:12;1585:52;1656:29;1675:9;1656:29;:::i;:::-;1646:39;1732:2;1717:18;;;;1704:32;;-1:-1:-1;;;1488:254:1:o;1747:186::-;1806:6;1859:2;1847:9;1838:7;1834:23;1830:32;1827:52;;;1875:1;1872;1865:12;1827:52;1898:29;1917:9;1898:29;:::i;1938:248::-;2006:6;2014;2067:2;2055:9;2046:7;2042:23;2038:32;2035:52;;;2083:1;2080;2073:12;2035:52;-1:-1:-1;;2106:23:1;;;2176:2;2161:18;;;2148:32;;-1:-1:-1;1938:248:1:o;2191:328::-;2268:6;2276;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;2376:29;2395:9;2376:29;:::i;:::-;2366:39;;2424:38;2458:2;2447:9;2443:18;2424:38;:::i;:::-;2414:48;;2509:2;2498:9;2494:18;2481:32;2471:42;;2191:328;;;;;:::o;2524:484::-;2619:6;2627;2635;2643;2651;2704:3;2692:9;2683:7;2679:23;2675:33;2672:53;;;2721:1;2718;2711:12;2672:53;2744:29;2763:9;2744:29;:::i;:::-;2734:39;;2792:38;2826:2;2815:9;2811:18;2792:38;:::i;:::-;2782:48;;2849:38;2883:2;2872:9;2868:18;2849:38;:::i;:::-;2839:48;;2906:38;2940:2;2929:9;2925:18;2906:38;:::i;:::-;2896:48;;2963:39;2997:3;2986:9;2982:19;2963:39;:::i;:::-;2953:49;;2524:484;;;;;;;;:::o;3202:750::-;3294:6;3302;3310;3363:2;3351:9;3342:7;3338:23;3334:32;3331:52;;;3379:1;3376;3369:12;3331:52;3406:23;;-1:-1:-1;;;;;3478:14:1;;;3475:34;;;3505:1;3502;3495:12;3475:34;3543:6;3532:9;3528:22;3518:32;;3588:7;3581:4;3577:2;3573:13;3569:27;3559:55;;3610:1;3607;3600:12;3559:55;3650:2;3637:16;3676:2;3668:6;3665:14;3662:34;;;3692:1;3689;3682:12;3662:34;3747:7;3740:4;3730:6;3727:1;3723:14;3719:2;3715:23;3711:34;3708:47;3705:67;;;3768:1;3765;3758:12;3705:67;3799:4;3791:13;;;;-1:-1:-1;3823:6:1;-1:-1:-1;;3864:20:1;;3851:34;3894:28;3851:34;3894:28;:::i;:::-;3941:5;3931:15;;;3202:750;;;;;:::o;3957:315::-;4022:6;4030;4083:2;4071:9;4062:7;4058:23;4054:32;4051:52;;;4099:1;4096;4089:12;4051:52;4122:29;4141:9;4122:29;:::i;:::-;4112:39;;4201:2;4190:9;4186:18;4173:32;4214:28;4236:5;4214:28;:::i;:::-;4261:5;4251:15;;;3957:315;;;;;:::o;4277:180::-;4336:6;4389:2;4377:9;4368:7;4364:23;4360:32;4357:52;;;4405:1;4402;4395:12;4357:52;-1:-1:-1;4428:23:1;;4277:180;-1:-1:-1;4277:180:1:o;4462:203::-;-1:-1:-1;;;;;4626:32:1;;;;4608:51;;4596:2;4581:18;;4462:203::o;4670:523::-;4774:6;4782;4790;4798;4806;4814;4867:3;4855:9;4846:7;4842:23;4838:33;4835:53;;;4884:1;4881;4874:12;4835:53;-1:-1:-1;;4907:23:1;;;4977:2;4962:18;;4949:32;;-1:-1:-1;5028:2:1;5013:18;;5000:32;;5079:2;5064:18;;5051:32;;-1:-1:-1;5130:3:1;5115:19;;5102:33;;-1:-1:-1;5182:3:1;5167:19;5154:33;;-1:-1:-1;4670:523:1;-1:-1:-1;4670:523:1:o;5198:309::-;5263:6;5271;5324:2;5312:9;5303:7;5299:23;5295:32;5292:52;;;5340:1;5337;5330:12;5292:52;5379:9;5366:23;5398:28;5420:5;5398:28;:::i;5512:260::-;5580:6;5588;5641:2;5629:9;5620:7;5616:23;5612:32;5609:52;;;5657:1;5654;5647:12;5609:52;5680:29;5699:9;5680:29;:::i;:::-;5670:39;;5728:38;5762:2;5751:9;5747:18;5728:38;:::i;:::-;5718:48;;5512:260;;;;;:::o;5777:316::-;5854:6;5862;5870;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;-1:-1:-1;;5962:23:1;;;6032:2;6017:18;;6004:32;;-1:-1:-1;6083:2:1;6068:18;;;6055:32;;5777:316;-1:-1:-1;5777:316:1:o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:127;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:135;6988:3;7009:17;;;7006:43;;7029:18;;:::i;:::-;-1:-1:-1;7076:1:1;7065:13;;6949:135::o;7089:168::-;7162:9;;;7193;;7210:15;;;7204:22;;7190:37;7180:71;;7231:18;;:::i;7262:217::-;7302:1;7328;7318:132;;7372:10;7367:3;7363:20;7360:1;7353:31;7407:4;7404:1;7397:15;7435:4;7432:1;7425:15;7318:132;-1:-1:-1;7464:9:1;;7262:217::o;7842:184::-;7912:6;7965:2;7953:9;7944:7;7940:23;7936:32;7933:52;;;7981:1;7978;7971:12;7933:52;-1:-1:-1;8004:16:1;;7842:184;-1:-1:-1;7842:184:1:o;8310:245::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;8478:9;8472:16;8497:28;8519:5;8497:28;:::i;8967:128::-;9034:9;;;9055:11;;;9052:37;;;9069:18;;:::i;9793:125::-;9858:9;;;9879:10;;;9876:36;;;9892:18;;:::i;10486:980::-;10748:4;10796:3;10785:9;10781:19;10827:6;10816:9;10809:25;10853:2;10891:6;10886:2;10875:9;10871:18;10864:34;10934:3;10929:2;10918:9;10914:18;10907:31;10958:6;10993;10987:13;11024:6;11016;11009:22;11062:3;11051:9;11047:19;11040:26;;11101:2;11093:6;11089:15;11075:29;;11122:1;11132:195;11146:6;11143:1;11140:13;11132:195;;;11211:13;;-1:-1:-1;;;;;11207:39:1;11195:52;;11302:15;;;;11267:12;;;;11243:1;11161:9;11132:195;;;-1:-1:-1;;;;;;;11383:32:1;;;;11378:2;11363:18;;11356:60;-1:-1:-1;;;11447:3:1;11432:19;11425:35;11344:3;10486:980;-1:-1:-1;;;10486:980:1:o;12293:306::-;12381:6;12389;12397;12450:2;12438:9;12429:7;12425:23;12421:32;12418:52;;;12466:1;12463;12456:12;12418:52;12495:9;12489:16;12479:26;;12545:2;12534:9;12530:18;12524:25;12514:35;;12589:2;12578:9;12574:18;12568:25;12558:35;;12293:306;;;;;:::o

Swarm Source

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