ETH Price: $3,211.46 (+0.47%)

Token

CopyWhaleAI (CWAI)
 

Overview

Max Total Supply

100,000,000 CWAI

Holders

371

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
41,607.520369259 CWAI

Value
$0.00
0x178ce379e0fe6d99d3b82dc53ea1635b194b1450
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:
CopyWhaleAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-08
*/

/*
https://copywhale.ai/
https://t.me/copywhaleai
*/
pragma solidity ^0.8.17;
// SPDX-License-Identifier: MIT
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 CopyWhaleAI is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    string constant _name = "CopyWhaleAI";
    string constant _symbol = "CWAI";
    uint8 constant _decimals = 9; 

    uint256 _totalSupply =  100000000 * (10 ** _decimals);
    
    uint256 public _maxTxAmount = 2000000 * (10 ** _decimals);
    uint256 public _maxWalletToken = 2000000 * (10 ** _decimals);

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private _isBot;

    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 17;
    uint256 private devFee = 3;
    uint256 public  totalFee = marketingFee + liquidityFee + devFee;
    uint256 private feeDenominator  = 100;

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 200 / 10000;
    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[marketingFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = 0x38506677D262C17047D0c2C6f99B7F74AB4d406f;
        marketingFeeReceiver = 0x4f8bE191Af9619063065dE8FCe2e34d2E6DA5Aeb;
        devFeeReceiver = 0x38506677D262C17047D0c2C6f99B7F74AB4d406f;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBot[sender] && !_isBot[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

        checkTxLimit(sender, amount); 

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

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

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

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

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

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

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

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

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);
        

        return amount.sub(feeAmount);
    }

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

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

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

    function removeMaxLimits() external onlyOwner { 
        _maxWalletToken = 10000000000 * (10 ** _decimals);
        _maxTxAmount = 10000000000 * (10 ** _decimals);
    }

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

    function maxTxRule(uint256 maxTxPercent) external onlyOwner {
        require(maxTxPercent >= 1); 
        _maxTxAmount = (_totalSupply * maxTxPercent ) / 100;        
    }

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

    function updateIsBot(address account, bool state) external onlyOwner{
        _isBot[account] = state;
    }
    
    function bulkIsBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }

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

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

    function enableTrading(uint256 _buy, uint256 _sell, uint256 _trans) public onlyOwner {
        TradingOpen = true;
        buyMultiplier = _buy;
        sellMultiplier = _sell;
        transferMultiplier = _trans;
    }

    function finalTaxes() public onlyOwner{
        liquidityFee = 0;
        marketingFee = 5;
        devFee = 0;
        totalFee = marketingFee + liquidityFee + devFee;
        feeDenominator = 100;
        buyMultiplier = 100;
        sellMultiplier = 100;
        transferMultiplier = 100;
        swapThreshold = _totalSupply * 5 / 10000; 
    }
        
    function swapBack() internal swapping {
    uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
    uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
    uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

    uint256 balanceBefore = address(this).balance;

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

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

    uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));

    uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
    uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
    uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee); 

    (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
    (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHDev}(""); 

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

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

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

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

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount * (10 ** _decimals);
    }
    
    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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxes","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":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"maxTxRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a6200056e565b62000042906305f5e10062000586565b600555620000536009600a6200056e565b6200006290621e848062000586565b600655620000736009600a6200056e565b6200008290621e848062000586565b6007556000600d556011600e556003600f55600f54600d54600e54620000a99190620005a0565b620000b59190620005a0565b60105560646011819055601281905560138190556014818155601855601955601c805461ffff60a01b1916600160a81b17905560055461271090620000fc9060c862000586565b620001089190620005b6565b601d553480156200011857600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe9190620005d9565b600280546001600160a01b0319166001600160a01b03928316179055601a546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002839190620005d9565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fb9190620005d9565b601c80546001600160a01b039283166001600160a01b031991821681178355601b805483169091179055306000818152600960209081526040808320601a54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601680548b1687528487208054831684179055838752600b8652848720805483168417905598548a16865283862080548216831790558854909916855282852080548a168217905594845281842080549098169094179096556015805485167338506677d262c17047d0c2c6f99b7f74ab4d406f90811790915585548516734f8be191af9619063065de8fce2e34d2e6da5aeb17909555601780549094169094179092556005548183526008909352838220839055925190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200044b91815260200190565b60405180910390a362000604565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004b057816000190482111562000494576200049462000459565b80851615620004a257918102915b93841c939080029062000474565b509250929050565b600082620004c95750600162000568565b81620004d85750600062000568565b8160018114620004f15760028114620004fc576200051c565b600191505062000568565b60ff84111562000510576200051062000459565b50506001821b62000568565b5060208310610133831016604e8410600b841016171562000541575081810a62000568565b6200054d83836200046f565b806000190482111562000564576200056462000459565b0290505b92915050565b60006200057f60ff841683620004b8565b9392505050565b808202811582820484141762000568576200056862000459565b8082018082111562000568576200056862000459565b600082620005d457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005ec57600080fd5b81516001600160a01b03811681146200057f57600080fd5b61239880620006146000396000f3fe6080604052600436106102555760003560e01c80637d1db4a511610139578063ccf8c036116100b6578063d78e139d1161007a578063d78e139d146106ea578063dd62ed3e1461070a578063ec7cd01a14610750578063f2fde38b14610770578063f6a78e1714610790578063f887ea40146107a557600080fd5b8063ccf8c03614610655578063cec10c1114610675578063cfdbe82314610695578063d148b74c146106b5578063d51ed1c8146106ca57600080fd5b80639acb773e116100fd5780639acb773e146105b5578063a8aa1b31146105d5578063a9059cbb146105f5578063b2bdfa7b14610615578063ba08f4181461063557600080fd5b80637d1db4a51461050d578063893d20e8146105235780638a4068dd146105555780638da5cb5b1461056a57806395d89b411461058857600080fd5b806323b872dd116101d25780635d83e1d5116101965780635d83e1d51461044b5780636ddd17131461046b57806370a082311461048c578063715018a6146104c257806377b54bad146104d757806378109e54146104f757600080fd5b806323b872dd146103c55780632b112e49146103e5578063313ce567146103fa5780634d07912a146104165780634e9f829d1461042b57600080fd5b806308fd3d051161021957806308fd3d0514610339578063095ea7b31461035a5780631161ae391461037a57806318160ddd1461039a5780631df4ccfc146103af57600080fd5b806303e7c3a71461026157806304368f65146102835780630445b667146102a35780630621472c146102cc57806306fdde03146102fc57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c366004611daf565b6107c5565b005b34801561028f57600080fd5b5061028161029e366004611dff565b610884565b3480156102af57600080fd5b506102b9601d5481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e7366004611e42565b6108e2565b60405190151581526020016102c3565b34801561030857600080fd5b5060408051808201909152600b81526a436f70795768616c65414960a81b60208201525b6040516102c39190611e5d565b34801561034557600080fd5b50601c546102ec90600160a01b900460ff1681565b34801561036657600080fd5b506102ec610375366004611eab565b6108f6565b34801561038657600080fd5b506102ec610395366004611ec7565b610962565b3480156103a657600080fd5b506005546102b9565b3480156103bb57600080fd5b506102b960105481565b3480156103d157600080fd5b506102ec6103e0366004611ee9565b610976565b3480156103f157600080fd5b506102b9610a38565b34801561040657600080fd5b50604051600981526020016102c3565b34801561042257600080fd5b50610281610a8a565b34801561043757600080fd5b50610281610446366004611f25565b610b14565b34801561045757600080fd5b50610281610466366004611f25565b610b6c565b34801561047757600080fd5b50601c546102ec90600160a81b900460ff1681565b34801561049857600080fd5b506102b96104a7366004611e42565b6001600160a01b031660009081526008602052604090205490565b3480156104ce57600080fd5b50610281610bc4565b3480156104e357600080fd5b506102ec6104f2366004611eab565b610c38565b34801561050357600080fd5b506102b960075481565b34801561051957600080fd5b506102b960065481565b34801561052f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b34801561056157600080fd5b50610281610d38565b34801561057657600080fd5b506000546001600160a01b031661053d565b34801561059457600080fd5b506040805180820190915260048152634357414960e01b602082015261032c565b3480156105c157600080fd5b506102816105d0366004611f3e565b610d83565b3480156105e157600080fd5b50601c5461053d906001600160a01b031681565b34801561060157600080fd5b506102ec610610366004611eab565b610dd8565b34801561062157600080fd5b5060005461053d906001600160a01b031681565b34801561064157600080fd5b50610281610650366004611f8b565b610de5565b34801561066157600080fd5b50610281610670366004611f3e565b610e7b565b34801561068157600080fd5b50610281610690366004612062565b610ee3565b3480156106a157600080fd5b506102816106b0366004612062565b610f1e565b3480156106c157600080fd5b50610281610f69565b3480156106d657600080fd5b506102b96106e5366004611f25565b610f9d565b3480156106f657600080fd5b50610281610705366004611f25565b610fe4565b34801561071657600080fd5b506102b961072536600461208e565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561075c57600080fd5b5061028161076b366004611f3e565b611033565b34801561077c57600080fd5b5061028161078b366004611e42565b611088565b34801561079c57600080fd5b50610281611172565b3480156107b157600080fd5b50601a5461053d906001600160a01b031681565b6000546001600160a01b031633146107f85760405162461bcd60e51b81526004016107ef906120c1565b60405180910390fd5b600d849055600e839055600f82905561081b8261081586866111da565b906111da565b601055601181905561082e60058261210c565b6010541061087e5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107ef565b50505050565b6000546001600160a01b031633146108ae5760405162461bcd60e51b81526004016107ef906120c1565b601c805460ff60a81b1916600160a81b841515021790556108d16009600a612212565b6108db9082612221565b601d555050565b60006108f0826000196108f6565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109519086815260200190565b60405180910390a350600192915050565b60008261096e83610f9d565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a23576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109fe918490611239565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a2e848484611273565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a85906003546001600160a01b0316600090815260086020526040902054610a7f9060055490611666565b90611666565b905090565b6000546001600160a01b03163314610ab45760405162461bcd60e51b81526004016107ef906120c1565b6000600d8190556005600e819055600f829055610ad2908290612238565b610adc9190612238565b60105560646011819055601381905560128190556014556005805461271091610b059190612221565b610b0f919061210c565b601d55565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b81526004016107ef906120c1565b6001811015610b4c57600080fd5b606481600554610b5c9190612221565b610b66919061210c565b60065550565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016107ef906120c1565b6001811015610ba457600080fd5b606481600554610bb49190612221565b610bbe919061210c565b60075550565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016107ef906120c1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610c5457600080fd5b81600003610cc7576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc4919061224b565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a319190612264565b336000908152600b602052604090205460ff16610d5457600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d80573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610dad5760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610a31338484611273565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b81526004016107ef906120c1565b60005b8251811015610e765781600c6000858481518110610e3257610e32612281565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e6e81612297565b915050610e12565b505050565b6000546001600160a01b03163314610ea55760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b81526004016107ef906120c1565b601291909155601391909155601455565b6000546001600160a01b03163314610f485760405162461bcd60e51b81526004016107ef906120c1565b601c805460ff60a01b1916600160a01b179055601392909255601255601455565b6000546001600160a01b03163314610f935760405162461bcd60e51b81526004016107ef906120c1565b610f9b6116a8565b565b60006108f0610faa610a38565b601c546001600160a01b0316600090815260086020526040902054610fde90610fd7906002905b90611a19565b8590611a19565b90611a9b565b60175447906001600160a01b03166108fc60646110018585612221565b61100b919061210c565b6040518115909202916000818181858888f19350505050158015610e76573d6000803e3d6000fd5b6000546001600160a01b0316331461105d5760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110b25760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b0381166111175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461119c5760405162461bcd60e51b81526004016107ef906120c1565b6111a86009600a612212565b6111b7906402540be400612221565b6007556111c66009600a612212565b6111d5906402540be400612221565b600655565b6000806111e78385612238565b905083811015610a315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ef565b6000818484111561125d5760405162461bcd60e51b81526004016107ef9190611e5d565b50600061126a84866122b0565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112b557506001600160a01b0383166000908152600c602052604090205460ff16155b6112f15760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016107ef565b601e5460ff161561130e57611307848484611add565b9050610a31565b6001600160a01b03841660009081526001602052604090205460ff1615801561135057506001600160a01b03831660009081526001602052604090205460ff16155b156113a557601c54600160a01b900460ff166113a55760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ef565b6001600160a01b03841660009081526001602052604090205460ff161580156113d757506001600160a01b0383163014155b80156113f157506003546001600160a01b03848116911614155b801561140b5750601c546001600160a01b03848116911614155b801561142557506017546001600160a01b03848116911614155b801561143f57506016546001600160a01b03848116911614155b801561146457506001600160a01b0383166000908152600b602052604090205460ff16155b15611505576001600160a01b03831660009081526008602052604090205460075461148f8483612238565b11156115035760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ef565b505b61150f8483611bc3565b611517611c30565b15611524576115246116a8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611576918490611239565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115c357506001600160a01b0384166000908152600a602052604090205460ff165b6115d7576115d2858486611c86565b6115d9565b825b6001600160a01b0385166000908152600860205260409020549091506115ff90826111da565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116539085815260200190565b60405180910390a3506001949350505050565b6000610a3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611239565b601e805460ff191660011790556018546019546000916116c791610962565b6116d357600d546116d6565b60005b905060006116fa6002610fde601054610fde86601d54611a1990919063ffffffff16565b9050600061171382601d5461166690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061174d5761174d612281565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061177e5761177e612281565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b81524792919091169063791ac947906117c89086906000908790309042906004016122c3565b600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b50505050600061180f824761166690919063ffffffff16565b9050600061182a611821886002611a9b565b60105490611666565b9050600061183f6002610fde8481878d611a19565b9050600061185c83610fde600e5487611a1990919063ffffffff16565b9050600061187984610fde600f5488611a1990919063ffffffff16565b6016546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118cb576040519150601f19603f3d011682016040523d82523d6000602084013e6118d0565b606091505b50506017546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611920576040519150601f19603f3d011682016040523d82523d6000602084013e611925565b606091505b50909150508915611a0257601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156119a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119c59190612334565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff19169055505050505050505050565b600082600003611a2b575060006108f0565b6000611a378385612221565b905082611a44858361210c565b14610a315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ef565b6000610a3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d81565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2e918490611239565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5d90836111da565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bb19086815260200190565b60405180910390a35060019392505050565b60065481111580611bec57506001600160a01b0382166000908152600b602052604090205460ff165b611c2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ef565b5050565b601c546000906001600160a01b03163314801590611c515750601e5460ff16155b8015611c665750601c54600160a81b900460ff165b8015610a85575050601d5430600090815260086020526040902054101590565b601454601c54600091906001600160a01b0390811690841603611cac5750601254611cc7565b601c546001600160a01b0390811690861603611cc757506013545b6000611cf46011546064611cdb9190612221565b610fde84610fd16010548a611a1990919063ffffffff16565b306000908152600860205260409020549091508190611d1390826111da565b30600081815260086020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d649085815260200190565b60405180910390a3611d768683611666565b979650505050505050565b60008183611da25760405162461bcd60e51b81526004016107ef9190611e5d565b50600061126a848661210c565b60008060008060808587031215611dc557600080fd5b5050823594602084013594506040840135936060013592509050565b8015158114610d8057600080fd5b8035611dfa81611de1565b919050565b60008060408385031215611e1257600080fd5b8235611e1d81611de1565b946020939093013593505050565b80356001600160a01b0381168114611dfa57600080fd5b600060208284031215611e5457600080fd5b610a3182611e2b565b600060208083528351808285015260005b81811015611e8a57858101830151858201604001528201611e6e565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ebe57600080fd5b611e1d83611e2b565b60008060408385031215611eda57600080fd5b50508035926020909101359150565b600080600060608486031215611efe57600080fd5b611f0784611e2b565b9250611f1560208501611e2b565b9150604084013590509250925092565b600060208284031215611f3757600080fd5b5035919050565b60008060408385031215611f5157600080fd5b611f5a83611e2b565b91506020830135611f6a81611de1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611f9e57600080fd5b823567ffffffffffffffff80821115611fb657600080fd5b818501915085601f830112611fca57600080fd5b8135602082821115611fde57611fde611f75565b8160051b604051601f19603f8301168101818110868211171561200357612003611f75565b60405292835281830193508481018201928984111561202157600080fd5b948201945b838610156120465761203786611e2b565b85529482019493820193612026565b96506120559050878201611def565b9450505050509250929050565b60008060006060848603121561207757600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120a157600080fd5b6120aa83611e2b565b91506120b860208401611e2b565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261212957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561216957816000190482111561214f5761214f6120f6565b8085161561215c57918102915b93841c9390800290612133565b509250929050565b600082612180575060016108f0565b8161218d575060006108f0565b81600181146121a357600281146121ad576121c9565b60019150506108f0565b60ff8411156121be576121be6120f6565b50506001821b6108f0565b5060208310610133831016604e8410600b84101617156121ec575081810a6108f0565b6121f6838361212e565b806000190482111561220a5761220a6120f6565b029392505050565b6000610a3160ff841683612171565b80820281158282048414176108f0576108f06120f6565b808201808211156108f0576108f06120f6565b60006020828403121561225d57600080fd5b5051919050565b60006020828403121561227657600080fd5b8151610a3181611de1565b634e487b7160e01b600052603260045260246000fd5b6000600182016122a9576122a96120f6565b5060010190565b818103818111156108f0576108f06120f6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123135784516001600160a01b0316835293830193918301916001016122ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561234957600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122004246c165cf9c8945603e73bc9a5b8a4bd793658b154273c9f5ef829bf349f7e64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80637d1db4a511610139578063ccf8c036116100b6578063d78e139d1161007a578063d78e139d146106ea578063dd62ed3e1461070a578063ec7cd01a14610750578063f2fde38b14610770578063f6a78e1714610790578063f887ea40146107a557600080fd5b8063ccf8c03614610655578063cec10c1114610675578063cfdbe82314610695578063d148b74c146106b5578063d51ed1c8146106ca57600080fd5b80639acb773e116100fd5780639acb773e146105b5578063a8aa1b31146105d5578063a9059cbb146105f5578063b2bdfa7b14610615578063ba08f4181461063557600080fd5b80637d1db4a51461050d578063893d20e8146105235780638a4068dd146105555780638da5cb5b1461056a57806395d89b411461058857600080fd5b806323b872dd116101d25780635d83e1d5116101965780635d83e1d51461044b5780636ddd17131461046b57806370a082311461048c578063715018a6146104c257806377b54bad146104d757806378109e54146104f757600080fd5b806323b872dd146103c55780632b112e49146103e5578063313ce567146103fa5780634d07912a146104165780634e9f829d1461042b57600080fd5b806308fd3d051161021957806308fd3d0514610339578063095ea7b31461035a5780631161ae391461037a57806318160ddd1461039a5780631df4ccfc146103af57600080fd5b806303e7c3a71461026157806304368f65146102835780630445b667146102a35780630621472c146102cc57806306fdde03146102fc57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c366004611daf565b6107c5565b005b34801561028f57600080fd5b5061028161029e366004611dff565b610884565b3480156102af57600080fd5b506102b9601d5481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e7366004611e42565b6108e2565b60405190151581526020016102c3565b34801561030857600080fd5b5060408051808201909152600b81526a436f70795768616c65414960a81b60208201525b6040516102c39190611e5d565b34801561034557600080fd5b50601c546102ec90600160a01b900460ff1681565b34801561036657600080fd5b506102ec610375366004611eab565b6108f6565b34801561038657600080fd5b506102ec610395366004611ec7565b610962565b3480156103a657600080fd5b506005546102b9565b3480156103bb57600080fd5b506102b960105481565b3480156103d157600080fd5b506102ec6103e0366004611ee9565b610976565b3480156103f157600080fd5b506102b9610a38565b34801561040657600080fd5b50604051600981526020016102c3565b34801561042257600080fd5b50610281610a8a565b34801561043757600080fd5b50610281610446366004611f25565b610b14565b34801561045757600080fd5b50610281610466366004611f25565b610b6c565b34801561047757600080fd5b50601c546102ec90600160a81b900460ff1681565b34801561049857600080fd5b506102b96104a7366004611e42565b6001600160a01b031660009081526008602052604090205490565b3480156104ce57600080fd5b50610281610bc4565b3480156104e357600080fd5b506102ec6104f2366004611eab565b610c38565b34801561050357600080fd5b506102b960075481565b34801561051957600080fd5b506102b960065481565b34801561052f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b34801561056157600080fd5b50610281610d38565b34801561057657600080fd5b506000546001600160a01b031661053d565b34801561059457600080fd5b506040805180820190915260048152634357414960e01b602082015261032c565b3480156105c157600080fd5b506102816105d0366004611f3e565b610d83565b3480156105e157600080fd5b50601c5461053d906001600160a01b031681565b34801561060157600080fd5b506102ec610610366004611eab565b610dd8565b34801561062157600080fd5b5060005461053d906001600160a01b031681565b34801561064157600080fd5b50610281610650366004611f8b565b610de5565b34801561066157600080fd5b50610281610670366004611f3e565b610e7b565b34801561068157600080fd5b50610281610690366004612062565b610ee3565b3480156106a157600080fd5b506102816106b0366004612062565b610f1e565b3480156106c157600080fd5b50610281610f69565b3480156106d657600080fd5b506102b96106e5366004611f25565b610f9d565b3480156106f657600080fd5b50610281610705366004611f25565b610fe4565b34801561071657600080fd5b506102b961072536600461208e565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561075c57600080fd5b5061028161076b366004611f3e565b611033565b34801561077c57600080fd5b5061028161078b366004611e42565b611088565b34801561079c57600080fd5b50610281611172565b3480156107b157600080fd5b50601a5461053d906001600160a01b031681565b6000546001600160a01b031633146107f85760405162461bcd60e51b81526004016107ef906120c1565b60405180910390fd5b600d849055600e839055600f82905561081b8261081586866111da565b906111da565b601055601181905561082e60058261210c565b6010541061087e5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107ef565b50505050565b6000546001600160a01b031633146108ae5760405162461bcd60e51b81526004016107ef906120c1565b601c805460ff60a81b1916600160a81b841515021790556108d16009600a612212565b6108db9082612221565b601d555050565b60006108f0826000196108f6565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109519086815260200190565b60405180910390a350600192915050565b60008261096e83610f9d565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a23576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109fe918490611239565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a2e848484611273565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a85906003546001600160a01b0316600090815260086020526040902054610a7f9060055490611666565b90611666565b905090565b6000546001600160a01b03163314610ab45760405162461bcd60e51b81526004016107ef906120c1565b6000600d8190556005600e819055600f829055610ad2908290612238565b610adc9190612238565b60105560646011819055601381905560128190556014556005805461271091610b059190612221565b610b0f919061210c565b601d55565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b81526004016107ef906120c1565b6001811015610b4c57600080fd5b606481600554610b5c9190612221565b610b66919061210c565b60065550565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016107ef906120c1565b6001811015610ba457600080fd5b606481600554610bb49190612221565b610bbe919061210c565b60075550565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016107ef906120c1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610c5457600080fd5b81600003610cc7576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc4919061224b565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a319190612264565b336000908152600b602052604090205460ff16610d5457600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d80573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610dad5760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610a31338484611273565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b81526004016107ef906120c1565b60005b8251811015610e765781600c6000858481518110610e3257610e32612281565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e6e81612297565b915050610e12565b505050565b6000546001600160a01b03163314610ea55760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b81526004016107ef906120c1565b601291909155601391909155601455565b6000546001600160a01b03163314610f485760405162461bcd60e51b81526004016107ef906120c1565b601c805460ff60a01b1916600160a01b179055601392909255601255601455565b6000546001600160a01b03163314610f935760405162461bcd60e51b81526004016107ef906120c1565b610f9b6116a8565b565b60006108f0610faa610a38565b601c546001600160a01b0316600090815260086020526040902054610fde90610fd7906002905b90611a19565b8590611a19565b90611a9b565b60175447906001600160a01b03166108fc60646110018585612221565b61100b919061210c565b6040518115909202916000818181858888f19350505050158015610e76573d6000803e3d6000fd5b6000546001600160a01b0316331461105d5760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110b25760405162461bcd60e51b81526004016107ef906120c1565b6001600160a01b0381166111175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461119c5760405162461bcd60e51b81526004016107ef906120c1565b6111a86009600a612212565b6111b7906402540be400612221565b6007556111c66009600a612212565b6111d5906402540be400612221565b600655565b6000806111e78385612238565b905083811015610a315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ef565b6000818484111561125d5760405162461bcd60e51b81526004016107ef9190611e5d565b50600061126a84866122b0565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112b557506001600160a01b0383166000908152600c602052604090205460ff16155b6112f15760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016107ef565b601e5460ff161561130e57611307848484611add565b9050610a31565b6001600160a01b03841660009081526001602052604090205460ff1615801561135057506001600160a01b03831660009081526001602052604090205460ff16155b156113a557601c54600160a01b900460ff166113a55760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ef565b6001600160a01b03841660009081526001602052604090205460ff161580156113d757506001600160a01b0383163014155b80156113f157506003546001600160a01b03848116911614155b801561140b5750601c546001600160a01b03848116911614155b801561142557506017546001600160a01b03848116911614155b801561143f57506016546001600160a01b03848116911614155b801561146457506001600160a01b0383166000908152600b602052604090205460ff16155b15611505576001600160a01b03831660009081526008602052604090205460075461148f8483612238565b11156115035760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ef565b505b61150f8483611bc3565b611517611c30565b15611524576115246116a8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611576918490611239565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115c357506001600160a01b0384166000908152600a602052604090205460ff165b6115d7576115d2858486611c86565b6115d9565b825b6001600160a01b0385166000908152600860205260409020549091506115ff90826111da565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116539085815260200190565b60405180910390a3506001949350505050565b6000610a3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611239565b601e805460ff191660011790556018546019546000916116c791610962565b6116d357600d546116d6565b60005b905060006116fa6002610fde601054610fde86601d54611a1990919063ffffffff16565b9050600061171382601d5461166690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061174d5761174d612281565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061177e5761177e612281565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b81524792919091169063791ac947906117c89086906000908790309042906004016122c3565b600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b50505050600061180f824761166690919063ffffffff16565b9050600061182a611821886002611a9b565b60105490611666565b9050600061183f6002610fde8481878d611a19565b9050600061185c83610fde600e5487611a1990919063ffffffff16565b9050600061187984610fde600f5488611a1990919063ffffffff16565b6016546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118cb576040519150601f19603f3d011682016040523d82523d6000602084013e6118d0565b606091505b50506017546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611920576040519150601f19603f3d011682016040523d82523d6000602084013e611925565b606091505b50909150508915611a0257601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156119a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119c59190612334565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff19169055505050505050505050565b600082600003611a2b575060006108f0565b6000611a378385612221565b905082611a44858361210c565b14610a315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ef565b6000610a3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d81565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b2e918490611239565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b5d90836111da565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bb19086815260200190565b60405180910390a35060019392505050565b60065481111580611bec57506001600160a01b0382166000908152600b602052604090205460ff165b611c2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ef565b5050565b601c546000906001600160a01b03163314801590611c515750601e5460ff16155b8015611c665750601c54600160a81b900460ff165b8015610a85575050601d5430600090815260086020526040902054101590565b601454601c54600091906001600160a01b0390811690841603611cac5750601254611cc7565b601c546001600160a01b0390811690861603611cc757506013545b6000611cf46011546064611cdb9190612221565b610fde84610fd16010548a611a1990919063ffffffff16565b306000908152600860205260409020549091508190611d1390826111da565b30600081815260086020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d649085815260200190565b60405180910390a3611d768683611666565b979650505050505050565b60008183611da25760405162461bcd60e51b81526004016107ef9190611e5d565b50600061126a848661210c565b60008060008060808587031215611dc557600080fd5b5050823594602084013594506040840135936060013592509050565b8015158114610d8057600080fd5b8035611dfa81611de1565b919050565b60008060408385031215611e1257600080fd5b8235611e1d81611de1565b946020939093013593505050565b80356001600160a01b0381168114611dfa57600080fd5b600060208284031215611e5457600080fd5b610a3182611e2b565b600060208083528351808285015260005b81811015611e8a57858101830151858201604001528201611e6e565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ebe57600080fd5b611e1d83611e2b565b60008060408385031215611eda57600080fd5b50508035926020909101359150565b600080600060608486031215611efe57600080fd5b611f0784611e2b565b9250611f1560208501611e2b565b9150604084013590509250925092565b600060208284031215611f3757600080fd5b5035919050565b60008060408385031215611f5157600080fd5b611f5a83611e2b565b91506020830135611f6a81611de1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611f9e57600080fd5b823567ffffffffffffffff80821115611fb657600080fd5b818501915085601f830112611fca57600080fd5b8135602082821115611fde57611fde611f75565b8160051b604051601f19603f8301168101818110868211171561200357612003611f75565b60405292835281830193508481018201928984111561202157600080fd5b948201945b838610156120465761203786611e2b565b85529482019493820193612026565b96506120559050878201611def565b9450505050509250929050565b60008060006060848603121561207757600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120a157600080fd5b6120aa83611e2b565b91506120b860208401611e2b565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261212957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561216957816000190482111561214f5761214f6120f6565b8085161561215c57918102915b93841c9390800290612133565b509250929050565b600082612180575060016108f0565b8161218d575060006108f0565b81600181146121a357600281146121ad576121c9565b60019150506108f0565b60ff8411156121be576121be6120f6565b50506001821b6108f0565b5060208310610133831016604e8410600b84101617156121ec575081810a6108f0565b6121f6838361212e565b806000190482111561220a5761220a6120f6565b029392505050565b6000610a3160ff841683612171565b80820281158282048414176108f0576108f06120f6565b808201808211156108f0576108f06120f6565b60006020828403121561225d57600080fd5b5051919050565b60006020828403121561227657600080fd5b8151610a3181611de1565b634e487b7160e01b600052603260045260246000fd5b6000600182016122a9576122a96120f6565b5060010190565b818103818111156108f0576108f06120f6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123135784516001600160a01b0316835293830193918301916001016122ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561234957600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122004246c165cf9c8945603e73bc9a5b8a4bd793658b154273c9f5ef829bf349f7e64736f6c63430008110033

Deployed Bytecode Sourcemap

5025:12578:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16425:441;;;;;;;;;;-1:-1:-1;16425:441:0;;;;;:::i;:::-;;:::i;:::-;;16874:176;;;;;;;;;;-1:-1:-1;16874:176:0;;;;;:::i;:::-;;:::i;6567:57::-;;;;;;;;;;;;;;;;;;;1120:25:1;;;1108:2;1093:18;6567:57:0;;;;;;;;8652:122;;;;;;;;;;-1:-1:-1;8652:122:0;;;;;:::i;:::-;;:::i;:::-;;;1690:14:1;;1683:22;1665:41;;1653:2;1638:18;8652:122:0;1525:187:1;8006:80:0;;;;;;;;;;-1:-1:-1;8078:5:0;;;;;;;;;;;;-1:-1:-1;;;8078:5:0;;;;8006:80;;;;;;;:::i;6486:31::-;;;;;;;;;;-1:-1:-1;6486:31:0;;;;-1:-1:-1;;;6486:31:0;;;;;;8428:216;;;;;;;;;;-1:-1:-1;8428:216:0;;;;;:::i;:::-;;:::i;17387:150::-;;;;;;;;;;-1:-1:-1;17387:150:0;;;;;:::i;:::-;;:::i;7736:88::-;;;;;;;;;;-1:-1:-1;7809:12:0;;7736:88;;5947:63;;;;;;;;;;;;;;;;8946:370;;;;;;;;;;-1:-1:-1;8946:370:0;;;;;:::i;:::-;;:::i;17062:142::-;;;;;;;;;;;;;:::i;7830:80::-;;;;;;;;;;-1:-1:-1;7830:80:0;;5369:1;3257:36:1;;3245:2;3230:18;7830:80:0;3115:184:1;14210:358:0;;;;;;;;;;;;;:::i;12796:176::-;;;;;;;;;;-1:-1:-1;12796:176:0;;;;;:::i;:::-;;:::i;12599:189::-;;;;;;;;;;-1:-1:-1;12599:189:0;;;;;:::i;:::-;;:::i;6530:30::-;;;;;;;;;;-1:-1:-1;6530:30:0;;;;-1:-1:-1;;;6530:30:0;;;;;;8176:105;;;;;;;;;;-1:-1:-1;8176:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8260:18:0;8242:7;8260:18;;;:9;:18;;;;;;;8176:105;3082:148;;;;;;;;;;;;;:::i;13456:308::-;;;;;;;;;;-1:-1:-1;13456:308:0;;;;;:::i;:::-;;:::i;5510:60::-;;;;;;;;;;;;;;;;5446:57;;;;;;;;;;;;;;;;8092:78;;;;;;;;;;-1:-1:-1;8144:7:0;2933:6;-1:-1:-1;;;;;2933:6:0;8092:78;;;-1:-1:-1;;;;;3653:32:1;;;3635:51;;3623:2;3608:18;8092:78:0;3489:203:1;12980:147:0;;;;;;;;;;;;;:::i;2868:79::-;;;;;;;;;;-1:-1:-1;2906:7:0;2933:6;-1:-1:-1;;;;;2933:6:0;2868:79;;7916:84;;;;;;;;;;-1:-1:-1;7990:7:0;;;;;;;;;;;;-1:-1:-1;;;7990:7:0;;;;7916:84;;16297:120;;;;;;;;;;-1:-1:-1;16297:120:0;;;;;:::i;:::-;;:::i;6454:19::-;;;;;;;;;;-1:-1:-1;6454:19:0;;;;-1:-1:-1;;;;;6454:19:0;;;8782:156;;;;;;;;;;-1:-1:-1;8782:156:0;;;;;:::i;:::-;;:::i;2488:21::-;;;;;;;;;;-1:-1:-1;2488:21:0;;;;-1:-1:-1;;;;;2488:21:0;;;13257:191;;;;;;;;;;-1:-1:-1;13257:191:0;;;;;:::i;:::-;;:::i;16132:157::-;;;;;;;;;;-1:-1:-1;16132:157:0;;;;;:::i;:::-;;:::i;13772:198::-;;;;;;;;;;-1:-1:-1;13772:198:0;;;;;:::i;:::-;;:::i;13978:224::-;;;;;;;;;;-1:-1:-1;13978:224:0;;;;;:::i;:::-;;:::i;12340:71::-;;;;;;;;;;;;;:::i;17212:167::-;;;;;;;;;;-1:-1:-1;17212:167:0;;;;;:::i;:::-;;:::i;12134:197::-;;;;;;;;;;-1:-1:-1;12134:197:0;;;;;:::i;:::-;;:::i;8287:133::-;;;;;;;;;;-1:-1:-1;8287:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8389:19:0;;;8371:7;8389:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8287:133;13135:110;;;;;;;;;;-1:-1:-1;13135:110:0;;;;;:::i;:::-;;:::i;3238:244::-;;;;;;;;;;-1:-1:-1;3238:244:0;;;;;:::i;:::-;;:::i;12419:172::-;;;;;;;;;;;;;:::i;6384:24::-;;;;;;;;;;-1:-1:-1;6384:24:0;;;;-1:-1:-1;;;;;6384:24:0;;;16425:441;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;;;;;;;;;16571:12:::1;:28:::0;;;16610:12:::1;:28:::0;;;16649:6:::1;:16:::0;;;16687:45:::1;16658:7:::0;16687:32:::1;16586:13:::0;16625;16687:17:::1;:32::i;:::-;:36:::0;::::1;:45::i;:::-;16676:8;:56:::0;16743:14:::1;:32:::0;;;16805:18:::1;16822:1;16760:15:::0;16805:18:::1;:::i;:::-;16794:8;;:29;16786:71;;;::::0;-1:-1:-1;;;16786:71:0;;7074:2:1;16786:71:0::1;::::0;::::1;7056:21:1::0;7113:2;7093:18;;;7086:30;7152:31;7132:18;;;7125:59;7201:18;;16786:71:0::1;6872:353:1::0;16786:71:0::1;16425:441:::0;;;;:::o;16874:176::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;16966:11:::1;:22:::0;;-1:-1:-1;;;;16966:22:0::1;-1:-1:-1::0;;;16966:22:0;::::1;;;;::::0;;17026:15:::1;5369:1;17026:2;:15;:::i;:::-;17015:27;::::0;:7;:27:::1;:::i;:::-;16999:13;:43:::0;-1:-1:-1;;16874:176:0:o;8652:122::-;8707:4;8731:35;8739:7;-1:-1:-1;;8731:7:0;:35::i;:::-;8724:42;8652:122;-1:-1:-1;;8652:122:0:o;8428:216::-;8532:10;8503:4;8520:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8520:32:0;;;;;;;;;;:41;;;8577:37;8503:4;;8520:32;;8577:37;;;;8555:6;1120:25:1;;1108:2;1093:18;;974:177;8577:37:0;;;;;;;;-1:-1:-1;8632:4:0;8428:216;;;;:::o;17387:150::-;17467:4;17523:6;17491:29;17511:8;17491:19;:29::i;:::-;:38;;17387:150;-1:-1:-1;;;17387:150:0:o;8946:370::-;-1:-1:-1;;;;;9066:19:0;;9046:4;9066:19;;;:11;:19;;;;;;;;9086:10;9066:31;;;;;;;;-1:-1:-1;;9066:52:0;9063:186;;9168:69;;;;;;;;;;;-1:-1:-1;;;9168:69:0;;;;;;;;-1:-1:-1;;;;;9168:19:0;;-1:-1:-1;9168:19:0;;;:11;:19;;;;;9188:10;9168:31;;;;;;;;;;:69;;9204:6;;9168:35;:69::i;:::-;-1:-1:-1;;;;;9134:19:0;;;;;;:11;:19;;;;;;;;9154:10;9134:31;;;;;;;:103;9063:186;9268:40;9282:6;9290:9;9301:6;9268:13;:40::i;:::-;9261:47;;8946:370;;;;;;:::o;17062:142::-;17190:4;;-1:-1:-1;;;;;17190:4:0;17115:7;8260:18;;;:9;:18;;;;;;17142:54;;17169:4;;-1:-1:-1;;;;;17169:4:0;8242:7;8260:18;;;:9;:18;;;;;;17142:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17135:61;;17062:142;:::o;14210:358::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;14274:1:::1;14259:12;:16:::0;;;14301:1:::1;14286:12;:16:::0;;;14313:6:::1;:10:::0;;;14345:27:::1;::::0;14274:1;;14345:27:::1;:::i;:::-;:36;;;;:::i;:::-;14334:8;:47:::0;14409:3:::1;14392:14;:20:::0;;;14423:13:::1;:19:::0;;;14453:14:::1;:20:::0;;;14484:18:::1;:24:::0;14535:12:::1;::::0;;14554:5:::1;::::0;14535:16:::1;::::0;:12;:16:::1;:::i;:::-;:24;;;;:::i;:::-;14519:13;:40:::0;14210:358::o;12796:176::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;12891:1:::1;12875:12;:17;;12867:26;;;::::0;::::1;;12953:3;12936:12;12921;;:27;;;;:::i;:::-;12920:36;;;;:::i;:::-;12905:12;:51:::0;-1:-1:-1;12796:176:0:o;12599:189::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;12702:1:::1;12684:14;:19;;12676:28;;;::::0;::::1;;12769:3;12750:14;12735:12;;:29;;;;:::i;:::-;12734:38;;;;:::i;:::-;12716:15;:56:::0;-1:-1:-1;12599:189:0:o;3082:148::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;3189:1:::1;3173:6:::0;;3152:40:::1;::::0;-1:-1:-1;;;;;3173:6:0;;::::1;::::0;3152:40:::1;::::0;3189:1;;3152:40:::1;3220:1;3203:19:::0;;-1:-1:-1;;;;;;3203:19:0::1;::::0;;3082:148::o;13456:308::-;13576:10;13535:4;13560:27;;;:15;:27;;;;;;;;13552:36;;;;;;13599:6;13609:1;13599:11;13596:95;;13635:44;;-1:-1:-1;;;13635:44:0;;13673:4;13635:44;;;3635:51:1;-1:-1:-1;;;;;13635:29:0;;;;;3608:18:1;;13635:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13626:53;;13596:95;13708:48;;-1:-1:-1;;;13708:48:0;;13737:10;13708:48;;;9279:51:1;9346:18;;;9339:34;;;-1:-1:-1;;;;;13708:28:0;;;;;9252:18:1;;13708:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12980:147::-;13045:10;13029:27;;;;:15;:27;;;;;;;;13021:36;;;;;;13068:51;;13076:10;;13097:21;13068:51;;;;;;;;;13097:21;13076:10;13068:51;;;;;;;;;;;;;;;;;;;;;12980:147::o;16297:120::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16377:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16377:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16297:120::o;8782:156::-;8862:4;8886:44;8900:10;8912:9;8923:6;8886:13;:44::i;13257:191::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;13348:9:::1;13344:97;13366:8;:15;13362:1;:19;13344:97;;;13424:5;13402:6;:19;13409:8;13418:1;13409:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13402:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13402:19:0;:27;;-1:-1:-1;;13402:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13383:3;::::1;::::0;::::1;:::i;:::-;;;;13344:97;;;;13257:191:::0;;:::o;16132:157::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16210:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16210:28:0;;::::1;::::0;::::1;::::0;;;16249:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16132:157::o;13772:198::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;13864:14:::1;:22:::0;;;;13897:13:::1;:20:::0;;;;13928:18:::1;:27:::0;13772:198::o;13978:224::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;14074:11:::1;:18:::0;;-1:-1:-1;;;;14074:18:0::1;-1:-1:-1::0;;;14074:18:0::1;::::0;;14103:13:::1;:20:::0;;;;14134:14:::1;:22:::0;14074:11:::1;14167:27:::0;13978:224::o;12340:71::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;12393:10:::1;:8;:10::i;:::-;12340:71::o:0;17212:167::-;17280:7;17307:64;17348:22;:20;:22::i;:::-;17330:4;;-1:-1:-1;;;;;17330:4:0;8242:7;8260:18;;;:9;:18;;;;;;17307:36;;17320:22;;17340:1;;17320:15;:19;;:22::i;:::-;17307:8;;:12;:36::i;:::-;:40;;:64::i;12134:197::-;12263:14;;12223:21;;-1:-1:-1;;;;;12263:14:0;12255:68;12319:3;12288:28;12300:16;12223:21;12288:28;:::i;:::-;:34;;;;:::i;:::-;12255:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13135:110;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13214:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;13214:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13135:110::o;3238:244::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3327:22:0;::::1;3319:73;;;::::0;-1:-1:-1;;;3319:73:0;;10108:2:1;3319:73:0::1;::::0;::::1;10090:21:1::0;10147:2;10127:18;;;10120:30;10186:34;10166:18;;;10159:62;-1:-1:-1;;;10237:18:1;;;10230:36;10283:19;;3319:73:0::1;9906:402:1::0;3319:73:0::1;3429:6;::::0;;3408:38:::1;::::0;-1:-1:-1;;;;;3408:38:0;;::::1;::::0;3429:6;::::1;::::0;3408:38:::1;::::0;::::1;3457:6;:17:::0;;-1:-1:-1;;;;;;3457:17:0::1;-1:-1:-1::0;;;;;3457:17:0;;;::::1;::::0;;;::::1;::::0;;3238:244::o;12419:172::-;2995:6;;-1:-1:-1;;;;;2995:6:0;2305:10;2995:22;2987:67;;;;-1:-1:-1;;;2987:67:0;;;;;;;:::i;:::-;12510:15:::1;5369:1;12510:2;:15;:::i;:::-;12495:31;::::0;:11:::1;:31;:::i;:::-;12477:15;:49:::0;12567:15:::1;5369:1;12567:2;:15;:::i;:::-;12552:31;::::0;:11:::1;:31;:::i;:::-;12537:12;:46:::0;12419:172::o;140:181::-;198:7;;230:5;234:1;230;:5;:::i;:::-;218:17;;259:1;254;:6;;246:46;;;;-1:-1:-1;;;246:46:0;;10515:2:1;246:46:0;;;10497:21:1;10554:2;10534:18;;;10527:30;10593:29;10573:18;;;10566:57;10640:18;;246:46:0;10313:351:1;469:192:0;555:7;591:12;583:6;;;;575:29;;;;-1:-1:-1;;;575:29:0;;;;;;;;:::i;:::-;-1:-1:-1;615:9:0;627:5;631:1;627;:5;:::i;:::-;615:17;469:192;-1:-1:-1;;;;;469:192:0:o;9324:1284::-;-1:-1:-1;;;;;9442:14:0;;9416:4;9442:14;;;:6;:14;;;;;;;;9441:15;:37;;;;-1:-1:-1;;;;;;9461:17:0;;;;;;:6;:17;;;;;;;;9460:18;9441:37;9433:63;;;;-1:-1:-1;;;9433:63:0;;11004:2:1;9433:63:0;;;10986:21:1;11043:2;11023:18;;;11016:30;-1:-1:-1;;;11062:18:1;;;11055:43;11115:18;;9433:63:0;10802:337:1;9433:63:0;9512:6;;;;9509:63;;;9528:41;9543:6;9551:9;9562:6;9528:14;:41::i;:::-;9521:48;;;;9509:63;-1:-1:-1;;;;;9588:22:0;;;;;;:14;:22;;;;;;;;9587:23;:53;;;;-1:-1:-1;;;;;;9615:25:0;;;;;;:14;:25;;;;;;;;9614:26;9587:53;9584:130;;;9664:11;;-1:-1:-1;;;9664:11:0;;;;9656:43;;;;-1:-1:-1;;;9656:43:0;;11346:2:1;9656:43:0;;;11328:21:1;11385:2;11365:18;;;11358:30;-1:-1:-1;;;11404:18:1;;;11397:50;11464:18;;9656:43:0;11144:344:1;9656:43:0;-1:-1:-1;;;;;9739:22:0;;;;;;:14;:22;;;;;;;;9738:23;:53;;;;-1:-1:-1;;;;;;9765:26:0;;9786:4;9765:26;;9738:53;:84;;;;-1:-1:-1;9817:4:0;;-1:-1:-1;;;;;9796:26:0;;;9817:4;;9796:26;;9738:84;:105;;;;-1:-1:-1;9839:4:0;;-1:-1:-1;;;;;9826:17:0;;;9839:4;;9826:17;;9738:105;:136;;;;-1:-1:-1;9860:14:0;;-1:-1:-1;;;;;9847:27:0;;;9860:14;;9847:27;;9738:136;:173;;;;-1:-1:-1;9891:20:0;;-1:-1:-1;;;;;9878:33:0;;;9891:20;;9878:33;;9738:173;:204;;;;-1:-1:-1;;;;;;9916:26:0;;;;;;:15;:26;;;;;;;;9915:27;9738:204;9734:396;;;-1:-1:-1;;;;;8260:18:0;;9958;8260;;;:9;:18;;;;;;10047:15;;10023:19;10036:6;8260:18;10023:19;:::i;:::-;10022:40;;10014:114;;;;-1:-1:-1;;;10014:114:0;;11695:2:1;10014:114:0;;;11677:21:1;11734:2;11714:18;;;11707:30;11773:34;11753:18;;;11746:62;11844:32;11824:18;;;11817:60;11894:19;;10014:114:0;11493:426:1;10014:114:0;9943:187;9734:396;10142:28;10155:6;10163;10142:12;:28::i;:::-;10187:16;:14;:16::i;:::-;10184:35;;;10206:10;:8;:10::i;:::-;10259:53;;;;;;;;;;;-1:-1:-1;;;10259:53:0;;;;;;;;-1:-1:-1;;;;;10259:17:0;;-1:-1:-1;10259:17:0;;;:9;:17;;;;;;;;:53;;10281:6;;10259:21;:53::i;:::-;-1:-1:-1;;;;;10239:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10351:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10374:22:0;;;;;;:11;:22;;;;;;;;10351:45;10350:93;;10409:34;10417:6;10425;10433:9;10409:7;:34::i;:::-;10350:93;;;10400:6;10350:93;-1:-1:-1;;;;;10477:20:0;;;;;;:9;:20;;;;;;10325:118;;-1:-1:-1;10477:40:0;;10325:118;10477:24;:40::i;:::-;-1:-1:-1;;;;;10454:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10535:43;;;;;;;;;;10563:14;1120:25:1;;1108:2;1093:18;;974:177;10535:43:0;;;;;;;;-1:-1:-1;10596:4:0;;9324:1284;-1:-1:-1;;;;9324:1284:0:o;327:136::-;385:7;412:43;416:1;419;412:43;;;;;;;;;;;;;;;;;:3;:43::i;14584:1540::-;6671:6;:13;;-1:-1:-1;;6671:13:0;6680:4;6671:13;;;14675:15:::1;::::0;14692:26:::1;::::0;6671:6;;14659:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14726:12;;14659:79;;;14722:1;14659:79;14629:109;;14745:23;14771:59;14828:1;14771:52;14814:8;;14771:38;14789:19;14771:13;;:17;;:38;;;;:::i;:59::-;14745:85;;14837:20;14860:34;14878:15;14860:13;;:17;;:34;;;;:::i;:::-;14927:16;::::0;;14941:1:::1;14927:16:::0;;;;;::::1;::::0;;14837:57;;-1:-1:-1;14903:21:0::1;::::0;14927:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14927:16:0::1;14903:40;;14968:4;14950;14955:1;14950:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14950:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14990:4:::1;::::0;14980:7;;14990:4;::::1;::::0;14980;;14990;;14980:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14980:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15057:6:::1;::::0;:164:::1;::::0;-1:-1:-1;;;15057:164:0;;15027:21:::1;::::0;15057:6;;;::::1;::::0;:57:::1;::::0;:164:::1;::::0;15125:12;;15003:21:::1;::::0;15160:4;;15183::::1;::::0;15199:15:::1;::::0;15057:164:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15230:17;15250:40;15276:13;15250:21;:25;;:40;;;;:::i;:::-;15230:60:::0;-1:-1:-1;15299:19:0::1;15321:40;15334:26;:19:::0;15358:1:::1;15334:23;:26::i;:::-;15321:8;::::0;;:12:::1;:40::i;:::-;15299:62:::0;-1:-1:-1;15370:26:0::1;15399:58;15455:1;15399:51;15299:62:::0;15399:51;:9;15413:19;15399:13:::1;:34::i;:58::-;15370:87;;15464:26;15493:44;15525:11;15493:27;15507:12;;15493:9;:13;;:27;;;;:::i;:44::-;15464:73;;15544:20;15567:38;15593:11;15567:21;15581:6;;15567:9;:13;;:21;;;;:::i;:38::-;15644:20;::::0;15636:65:::1;::::0;15544:61;;-1:-1:-1;15616:15:0::1;::::0;-1:-1:-1;;;;;15644:20:0;;::::1;::::0;15678:18;;15616:15;15636:65;15616:15;15636:65;15678:18;15644:20;15636:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15732:14:0::1;::::0;15724:53:::1;::::0;15615:86;;-1:-1:-1;;;;;;15732:14:0::1;::::0;15760:12;;15724:53:::1;::::0;;;15760:12;15732:14;15724:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15708:69:0;;-1:-1:-1;;15790:19:0;;15787:330:::1;;15821:6;::::0;15975:21:::1;::::0;15821:216:::1;::::0;-1:-1:-1;;;15821:216:0;;15893:4:::1;15821:216;::::0;::::1;13460:34:1::0;13510:18;;;13503:34;;;15821:6:0::1;13553:18:1::0;;;13546:34;;;13596:18;;;13589:34;-1:-1:-1;;;;;15975:21:0;;::::1;13639:19:1::0;;;13632:44;16011:15:0::1;13692:19:1::0;;;13685:35;15821:6:0;::::1;::::0;:22:::1;::::0;15851:18;;13394:19:1;;15821:216:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16053:48:0::1;::::0;;14216:25:1;;;14272:2;14257:18;;14250:34;;;16053:48:0::1;::::0;-1:-1:-1;14189:18:1;16053:48:0::1;;;;;;;15787:330;-1:-1:-1::0;;6689:6:0;:14;;-1:-1:-1;;6689:14:0;;;-1:-1:-1;;;;;;;;;14584:1540:0:o;667:250::-;725:7;749:1;754;749:6;745:47;;-1:-1:-1;779:1:0;772:8;;745:47;804:9;816:5;820:1;816;:5;:::i;:::-;804:17;-1:-1:-1;849:1:0;840:5;844:1;804:17;840:5;:::i;:::-;:10;832:56;;;;-1:-1:-1;;;832:56:0;;14497:2:1;832:56:0;;;14479:21:1;14536:2;14516:18;;;14509:30;14575:34;14555:18;;;14548:62;-1:-1:-1;;;14626:18:1;;;14619:31;14667:19;;832:56:0;14295:397:1;923:132:0;981:7;1008:39;1012:1;1015;1008:39;;;;;;;;;;;;;;;;;:3;:39::i;10620:330::-;10750:53;;;;;;;;;;;-1:-1:-1;;;10750:53:0;;;;;;;;-1:-1:-1;;;;;10750:17:0;;10713:4;10750:17;;;:9;:17;;;;;;;:53;;10772:6;;10750:21;:53::i;:::-;-1:-1:-1;;;;;10730:17:0;;;;;;;:9;:17;;;;;;:73;;;;10837:20;;;;;;;:32;;10862:6;10837:24;:32::i;:::-;-1:-1:-1;;;;;10814:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10885:35;;;;;;;;;;10913:6;1120:25:1;;1108:2;1093:18;;974:177;10885:35:0;;;;;;;;-1:-1:-1;10938:4:0;10620:330;;;;;:::o;10958:166::-;11055:12;;11045:6;:22;;:49;;;-1:-1:-1;;;;;;11071:23:0;;;;;;:15;:23;;;;;;;;11045:49;11037:79;;;;-1:-1:-1;;;11037:79:0;;14899:2:1;11037:79:0;;;14881:21:1;14938:2;14918:18;;;14911:30;-1:-1:-1;;;14957:18:1;;;14950:47;15014:18;;11037:79:0;14697:341:1;11037:79:0;10958:166;;:::o;11929:197::-;12016:4;;11978;;-1:-1:-1;;;;;12016:4:0;12002:10;:18;;;;:38;;-1:-1:-1;12034:6:0;;;;12033:7;12002:38;:62;;;;-1:-1:-1;12053:11:0;;-1:-1:-1;;;12053:11:0;;;;12002:62;:116;;;;-1:-1:-1;;12105:13:0;;12095:4;12077:24;;;;:9;:24;;;;;;:41;;;11929:197::o;11254:667::-;11391:18;;11438:4;;11340:7;;11391:18;-1:-1:-1;;;;;11438:4:0;;;11425:17;;;;11422:154;;-1:-1:-1;11472:14:0;;11422:154;;;11517:4;;-1:-1:-1;;;;;11517:4:0;;;11507:14;;;;11504:72;;-1:-1:-1;11551:13:0;;11504:72;11588:17;11608:62;11649:14;;11666:3;11649:20;;;;:::i;:::-;11608:36;11633:10;11608:20;11619:8;;11608:6;:10;;:20;;;;:::i;:62::-;11773:4;11681:22;11755:24;;;:9;:24;;;;;;11588:82;;-1:-1:-1;11588:82:0;;11755:44;;11588:82;11755:28;:44::i;:::-;11746:4;11728:24;;;;:9;:24;;;;;;;:71;;;;11815:47;;-1:-1:-1;;;;;11815:47:0;;;;;;;11847:14;1120:25:1;;1108:2;1093:18;;974:177;11815:47:0;;;;;;;;11892:21;:6;11903:9;11892:10;:21::i;:::-;11885:28;11254:667;-1:-1:-1;;;;;;;11254:667:0:o;1061:189::-;1147:7;1182:12;1175:5;1167:28;;;;-1:-1:-1;;;1167:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1206:9:0;1218:5;1222:1;1218;:5;:::i;14:385:1:-;100:6;108;116;124;177:3;165:9;156:7;152:23;148:33;145:53;;;194:1;191;184:12;145:53;-1:-1:-1;;217:23:1;;;287:2;272:18;;259:32;;-1:-1:-1;338:2:1;323:18;;310:32;;389:2;374:18;361:32;;-1:-1:-1;14:385:1;-1:-1:-1;14:385:1:o;404:118::-;490:5;483:13;476:21;469:5;466:32;456:60;;512:1;509;502:12;527:128;592:20;;621:28;592:20;621:28;:::i;:::-;527:128;;;:::o;660:309::-;725:6;733;786:2;774:9;765:7;761:23;757:32;754:52;;;802:1;799;792:12;754:52;841:9;828:23;860:28;882:5;860:28;:::i;:::-;907:5;959:2;944:18;;;;931:32;;-1:-1:-1;;;660:309:1:o;1156:173::-;1224:20;;-1:-1:-1;;;;;1273:31:1;;1263:42;;1253:70;;1319:1;1316;1309:12;1334:186;1393:6;1446:2;1434:9;1425:7;1421:23;1417:32;1414:52;;;1462:1;1459;1452:12;1414:52;1485:29;1504:9;1485:29;:::i;1717:548::-;1829:4;1858:2;1887;1876:9;1869:21;1919:6;1913:13;1962:6;1957:2;1946:9;1942:18;1935:34;1987:1;1997:140;2011:6;2008:1;2005:13;1997:140;;;2106:14;;;2102:23;;2096:30;2072:17;;;2091:2;2068:26;2061:66;2026:10;;1997:140;;;2001:3;2186:1;2181:2;2172:6;2161:9;2157:22;2153:31;2146:42;2256:2;2249;2245:7;2240:2;2232:6;2228:15;2224:29;2213:9;2209:45;2205:54;2197:62;;;;1717:548;;;;:::o;2270:254::-;2338:6;2346;2399:2;2387:9;2378:7;2374:23;2370:32;2367:52;;;2415:1;2412;2405:12;2367:52;2438:29;2457:9;2438:29;:::i;2529:248::-;2597:6;2605;2658:2;2646:9;2637:7;2633:23;2629:32;2626:52;;;2674:1;2671;2664:12;2626:52;-1:-1:-1;;2697:23:1;;;2767:2;2752:18;;;2739:32;;-1:-1:-1;2529:248:1:o;2782:328::-;2859:6;2867;2875;2928:2;2916:9;2907:7;2903:23;2899:32;2896:52;;;2944:1;2941;2934:12;2896:52;2967:29;2986:9;2967:29;:::i;:::-;2957:39;;3015:38;3049:2;3038:9;3034:18;3015:38;:::i;:::-;3005:48;;3100:2;3089:9;3085:18;3072:32;3062:42;;2782:328;;;;;:::o;3304:180::-;3363:6;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;-1:-1:-1;3455:23:1;;3304:180;-1:-1:-1;3304:180:1:o;3697:315::-;3762:6;3770;3823:2;3811:9;3802:7;3798:23;3794:32;3791:52;;;3839:1;3836;3829:12;3791:52;3862:29;3881:9;3862:29;:::i;:::-;3852:39;;3941:2;3930:9;3926:18;3913:32;3954:28;3976:5;3954:28;:::i;:::-;4001:5;3991:15;;;3697:315;;;;;:::o;4017:127::-;4078:10;4073:3;4069:20;4066:1;4059:31;4109:4;4106:1;4099:15;4133:4;4130:1;4123:15;4149:1191;4239:6;4247;4300:2;4288:9;4279:7;4275:23;4271:32;4268:52;;;4316:1;4313;4306:12;4268:52;4356:9;4343:23;4385:18;4426:2;4418:6;4415:14;4412:34;;;4442:1;4439;4432:12;4412:34;4480:6;4469:9;4465:22;4455:32;;4525:7;4518:4;4514:2;4510:13;4506:27;4496:55;;4547:1;4544;4537:12;4496:55;4583:2;4570:16;4605:4;4628:2;4624;4621:10;4618:36;;;4634:18;;:::i;:::-;4680:2;4677:1;4673:10;4712:2;4706:9;4775:2;4771:7;4766:2;4762;4758:11;4754:25;4746:6;4742:38;4830:6;4818:10;4815:22;4810:2;4798:10;4795:18;4792:46;4789:72;;;4841:18;;:::i;:::-;4877:2;4870:22;4927:18;;;4961:15;;;;-1:-1:-1;5003:11:1;;;4999:20;;;5031:19;;;5028:39;;;5063:1;5060;5053:12;5028:39;5087:11;;;;5107:148;5123:6;5118:3;5115:15;5107:148;;;5189:23;5208:3;5189:23;:::i;:::-;5177:36;;5140:12;;;;5233;;;;5107:148;;;5274:6;-1:-1:-1;5299:35:1;;-1:-1:-1;5315:18:1;;;5299:35;:::i;:::-;5289:45;;;;;;4149:1191;;;;;:::o;5345:316::-;5422:6;5430;5438;5491:2;5479:9;5470:7;5466:23;5462:32;5459:52;;;5507:1;5504;5497:12;5459:52;-1:-1:-1;;5530:23:1;;;5600:2;5585:18;;5572:32;;-1:-1:-1;5651:2:1;5636:18;;;5623:32;;5345:316;-1:-1:-1;5345:316:1:o;5666:260::-;5734:6;5742;5795:2;5783:9;5774:7;5770:23;5766:32;5763:52;;;5811:1;5808;5801:12;5763:52;5834:29;5853:9;5834:29;:::i;:::-;5824:39;;5882:38;5916:2;5905:9;5901:18;5882:38;:::i;:::-;5872:48;;5666:260;;;;;:::o;6157:356::-;6359:2;6341:21;;;6378:18;;;6371:30;6437:34;6432:2;6417:18;;6410:62;6504:2;6489:18;;6157:356::o;6518:127::-;6579:10;6574:3;6570:20;6567:1;6560:31;6610:4;6607:1;6600:15;6634:4;6631:1;6624:15;6650:217;6690:1;6716;6706:132;;6760:10;6755:3;6751:20;6748:1;6741:31;6795:4;6792:1;6785:15;6823:4;6820:1;6813:15;6706:132;-1:-1:-1;6852:9:1;;6650:217::o;7230:422::-;7319:1;7362:5;7319:1;7376:270;7397:7;7387:8;7384:21;7376:270;;;7456:4;7452:1;7448:6;7444:17;7438:4;7435:27;7432:53;;;7465:18;;:::i;:::-;7515:7;7505:8;7501:22;7498:55;;;7535:16;;;;7498:55;7614:22;;;;7574:15;;;;7376:270;;;7380:3;7230:422;;;;;:::o;7657:806::-;7706:5;7736:8;7726:80;;-1:-1:-1;7777:1:1;7791:5;;7726:80;7825:4;7815:76;;-1:-1:-1;7862:1:1;7876:5;;7815:76;7907:4;7925:1;7920:59;;;;7993:1;7988:130;;;;7900:218;;7920:59;7950:1;7941:10;;7964:5;;;7988:130;8025:3;8015:8;8012:17;8009:43;;;8032:18;;:::i;:::-;-1:-1:-1;;8088:1:1;8074:16;;8103:5;;7900:218;;8202:2;8192:8;8189:16;8183:3;8177:4;8174:13;8170:36;8164:2;8154:8;8151:16;8146:2;8140:4;8137:12;8133:35;8130:77;8127:159;;;-1:-1:-1;8239:19:1;;;8271:5;;8127:159;8318:34;8343:8;8337:4;8318:34;:::i;:::-;8388:6;8384:1;8380:6;8376:19;8367:7;8364:32;8361:58;;;8399:18;;:::i;:::-;8437:20;;7657:806;-1:-1:-1;;;7657:806:1:o;8468:140::-;8526:5;8555:47;8596:4;8586:8;8582:19;8576:4;8555:47;:::i;8613:168::-;8686:9;;;8717;;8734:15;;;8728:22;;8714:37;8704:71;;8755:18;;:::i;8786:125::-;8851:9;;;8872:10;;;8869:36;;;8885:18;;:::i;8916:184::-;8986:6;9039:2;9027:9;9018:7;9014:23;9010:32;9007:52;;;9055:1;9052;9045:12;9007:52;-1:-1:-1;9078:16:1;;8916:184;-1:-1:-1;8916:184:1:o;9384:245::-;9451:6;9504:2;9492:9;9483:7;9479:23;9475:32;9472:52;;;9520:1;9517;9510:12;9472:52;9552:9;9546:16;9571:28;9593:5;9571:28;:::i;9634:127::-;9695:10;9690:3;9686:20;9683:1;9676:31;9726:4;9723:1;9716:15;9750:4;9747:1;9740:15;9766:135;9805:3;9826:17;;;9823:43;;9846:18;;:::i;:::-;-1:-1:-1;9893:1:1;9882:13;;9766:135::o;10669:128::-;10736:9;;;10757:11;;;10754:37;;;10771:18;;:::i;11924:980::-;12186:4;12234:3;12223:9;12219:19;12265:6;12254:9;12247:25;12291:2;12329:6;12324:2;12313:9;12309:18;12302:34;12372:3;12367:2;12356:9;12352:18;12345:31;12396:6;12431;12425:13;12462:6;12454;12447:22;12500:3;12489:9;12485:19;12478:26;;12539:2;12531:6;12527:15;12513:29;;12560:1;12570:195;12584:6;12581:1;12578:13;12570:195;;;12649:13;;-1:-1:-1;;;;;12645:39:1;12633:52;;12740:15;;;;12705:12;;;;12681:1;12599:9;12570:195;;;-1:-1:-1;;;;;;;12821:32:1;;;;12816:2;12801:18;;12794:60;-1:-1:-1;;;12885:3:1;12870:19;12863:35;12782:3;11924:980;-1:-1:-1;;;11924:980:1:o;13731:306::-;13819:6;13827;13835;13888:2;13876:9;13867:7;13863:23;13859:32;13856:52;;;13904:1;13901;13894:12;13856:52;13933:9;13927:16;13917:26;;13983:2;13972:9;13968:18;13962:25;13952:35;;14027:2;14016:9;14012:18;14006:25;13996:35;;13731:306;;;;;:::o

Swarm Source

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