ETH Price: $3,445.00 (-1.03%)
Gas: 10 Gwei

Token

Claypot Rice (煲仔饭)
 

Overview

Max Total Supply

6,007,075 煲仔饭

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
37,738.21122894441748918 煲仔饭

Value
$0.00
0xcdff367e0d2029478facf52eab786a97e98d1b46
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:
ClaypotRice

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/** 
    Website:    https://www.claypotrice.vip
    Twitter:    https://twitter.com/ClaypotErc
    Telegram:   https://t.me/ClaypotErc
*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract ClaypotRice is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devWallet;
    address private marketingWallet;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Claypot Rice";
    string private constant _symbol = unicode"煲仔饭";

    uint256 public initialTotalSupply = 10_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (2 * initialTotalSupply) / 100;       // 2%
    uint256 public maxWallet = (2 * initialTotalSupply) / 100;                  // 2%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier ensure(address sender) {
        require(isExcludedFromFees(sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20(_name, _symbol) {
        
        devWallet = payable(_msgSender());
        marketingWallet = payable(0xF8434Fe0b93d917933c040727aFA8D9856a0d5E6);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketingWallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function addLiquidityEth()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());                
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

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

    receive() external payable {}

    function enableTrade() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devWallet);
        devWallet = newDevWallet;
    }

    function ratio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

    function excludeFromFees(address account, bool excluded)
        public 
        onlyOwner 
    {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(ratio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(ratio(BurnBuyFee) * feeDenominator);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removesLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearStuckedBalance() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnToken(ERC20 tokenAddress, uint256 amount) external ensure(msg.sender) { 
        _burn(address(tokenAddress), amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualswap(uint256 percent) external {
        require(_msgSender() == marketingWallet);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function swapBack(uint256 tokens) private {
                        
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","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":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckedBalance","outputs":[],"stateMutability":"nonpayable","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":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removesLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a084595161401484a000000600a556064600a54600262000026919062000454565b62000032919062000474565b600b556064600a54600262000048919062000454565b62000054919062000474565b600c55612710600a5460056200006b919062000454565b62000077919062000474565b600d55600e805461ffff191690556001600f819055601081905560006011556012556064601355348015620000ab57600080fd5b506040518060400160405280600c81526020016b436c6179706f74205269636560a01b81525060405180604001604052806009815260200168e785b2e4bb94e9a5ad60b81b81525081600390816200010491906200053b565b5060046200011382826200053b565b505050620001306200012a6200022060201b60201c565b62000224565b60088054336001600160a01b0319918216179091556009805490911673f8434fe0b93d917933c040727afa8d9856a0d5e61790556005546200017d906001600160a01b0316600162000276565b60095462000196906001600160a01b0316600162000276565b620001a330600162000276565b620001b261dead600162000276565b620001d1620001c96005546001600160a01b031690565b6001620002df565b600954620001ea906001600160a01b03166001620002df565b620001f7306001620002df565b6200020661dead6001620002df565b6200021a33600a546200031460201b60201c565b6200061d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000280620003db565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002e9620003db565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6001600160a01b038216620003705760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806002600082825462000384919062000607565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000367565b565b505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200046e576200046e6200043e565b92915050565b6000826200049257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004c257607f821691505b602082108103620004e357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043957600081815260208120601f850160051c81016020861015620005125750805b601f850160051c820191505b8181101562000533578281556001016200051e565b505050505050565b81516001600160401b0381111562000557576200055762000497565b6200056f81620005688454620004ad565b84620004e9565b602080601f831160018114620005a757600084156200058e5750858301515b600019600386901b1c1916600185901b17855562000533565b600085815260208120601f198616915b82811015620005d857888601518255948401946001909101908401620005b7565b5085821015620005f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200046e576200046e6200043e565b611fc7806200062d6000396000f3fe6080604052600436106102285760003560e01c8063715018a611610123578063c0246668116100ab578063dd8546521161006f578063dd85465214610619578063e2f456051461062f578063f2fde38b14610645578063f8b45b0514610665578063ffb54a991461067b57600080fd5b8063c02466681461058d578063c8c8ebe4146105ad578063cf9522fd146105c3578063d1df306c146105d9578063dd62ed3e146105f957600080fd5b806395d89b41116100f257806395d89b41146104f85780639a7a23d61461050d578063a457c2d71461052d578063a9059cbb1461054d578063afa4f3b21461056d57600080fd5b8063715018a6146104855780637571336a1461049a578063881dce60146104ba5780638da5cb5b146104da57600080fd5b806339509351116101b15780634ab0c04a116101755780634ab0c04a146103d85780634fbee193146103ed578063583e0568146104265780636ddd17131461044657806370a082311461046557600080fd5b8063395093511461033f5780633ff525131461035f578063414a878614610375578063460731151461038b57806349bd5a5e146103a057600080fd5b80631816467f116101f85780631816467f146102c557806323b872dd146102e557806324e3444314610305578063311028af1461030d578063313ce5671461032357600080fd5b806299d3861461023457806306fdde031461024b578063095ea7b31461027657806318160ddd146102a657600080fd5b3661022f57005b600080fd5b34801561024057600080fd5b50610249610695565b005b34801561025757600080fd5b50610260610706565b60405161026d9190611c16565b60405180910390f35b34801561028257600080fd5b50610296610291366004611c79565b610798565b604051901515815260200161026d565b3480156102b257600080fd5b506002545b60405190815260200161026d565b3480156102d157600080fd5b506102496102e0366004611ca5565b6107b2565b3480156102f157600080fd5b50610296610300366004611cc2565b610817565b61024961083b565b34801561031957600080fd5b506102b7600a5481565b34801561032f57600080fd5b506040516012815260200161026d565b34801561034b57600080fd5b5061029661035a366004611c79565b610aea565b34801561036b57600080fd5b506102b760125481565b34801561038157600080fd5b506102b760115481565b34801561039757600080fd5b50610249610b0c565b3480156103ac57600080fd5b506007546103c0906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156103e457600080fd5b50610249610b2a565b3480156103f957600080fd5b50610296610408366004611ca5565b6001600160a01b031660009081526014602052604090205460ff1690565b34801561043257600080fd5b506006546103c0906001600160a01b031681565b34801561045257600080fd5b50600e5461029690610100900460ff1681565b34801561047157600080fd5b506102b7610480366004611ca5565b610bc2565b34801561049157600080fd5b50610249610bdd565b3480156104a657600080fd5b506102496104b5366004611d03565b610bf1565b3480156104c657600080fd5b506102496104d5366004611d41565b610c24565b3480156104e657600080fd5b506005546001600160a01b03166103c0565b34801561050457600080fd5b50610260610ccb565b34801561051957600080fd5b50610249610528366004611d03565b610cda565b34801561053957600080fd5b50610296610548366004611c79565b610d74565b34801561055957600080fd5b50610296610568366004611c79565b610def565b34801561057957600080fd5b50610249610588366004611d41565b610dfd565b34801561059957600080fd5b506102496105a8366004611d03565b610e1d565b3480156105b957600080fd5b506102b7600b5481565b3480156105cf57600080fd5b506102b760105481565b3480156105e557600080fd5b506102496105f4366004611c79565b610e84565b34801561060557600080fd5b506102b7610614366004611d5a565b610eaa565b34801561062557600080fd5b506102b7600f5481565b34801561063b57600080fd5b506102b7600d5481565b34801561065157600080fd5b50610249610660366004611ca5565b610ed5565b34801561067157600080fd5b506102b7600c5481565b34801561068757600080fd5b50600e546102969060ff1681565b61069d610f4b565b600e5460ff16156106f55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600e805461ffff1916610101179055565b60606003805461071590611d88565b80601f016020809104026020016040519081016040528092919081815260200182805461074190611d88565b801561078e5780601f106107635761010080835404028352916020019161078e565b820191906000526020600020905b81548152906001019060200180831161077157829003601f168201915b5050505050905090565b6000336107a6818585610fa5565b60019150505b92915050565b6107ba610f4b565b6008546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74390600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000336108258582856110c9565b61083085858561113d565b506001949350505050565b610843610f4b565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610877906001610bf1565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ee9190611dc2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190611dc2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190611dc2565b600780546001600160a01b0319166001600160a01b03929092169182179055610a0f906001610bf1565b600754610a26906001600160a01b031660016116d0565b600654610a409030906001600160a01b0316600019610fa5565b6006546001600160a01b031663f305d7193430610a5c81610bc2565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610ac0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ae59190611ddf565b505050565b6000336107a6818585610afd8383610eaa565b610b079190611e23565b610fa5565b610b14610f4b565b6000610b1f60025490565b600b819055600c5550565b60004711610b735760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016106ec565b6009546001600160a01b0316336001600160a01b031614610b9357600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610bbf573d6000803e3d6000fd5b50565b6001600160a01b031660009081526020819052604090205490565b610be5610f4b565b610bef6000611724565b565b610bf9610f4b565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6009546001600160a01b0316336001600160a01b031614610c4457600080fd5b6000610c4f60025490565b90506000610c5c30610bc2565b905060006064610c6c8585611e36565b610c769190611e4d565b905080821015610cbc5760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064016106ec565b610cc581611776565b50505050565b60606004805461071590611d88565b610ce2610f4b565b6007546001600160a01b0390811690831603610d665760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016106ec565b610d7082826116d0565b5050565b60003381610d828286610eaa565b905083811015610de25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ec565b6108308286868403610fa5565b6000336107a681858561113d565b610e05610f4b565b610e1781670de0b6b3a7640000611e36565b600d5550565b610e25610f4b565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b3360008181526014602052604090205460ff16610ea057600080fd5b610ae583836118d4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610edd610f4b565b6001600160a01b038116610f425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ec565b610bbf81611724565b6005546001600160a01b03163314610bef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ec565b6001600160a01b0383166110075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ec565b6001600160a01b0382166110685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ec565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110d58484610eaa565b90506000198114610cc557818110156111305760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ec565b610cc58484848403610fa5565b6001600160a01b0383166111635760405162461bcd60e51b81526004016106ec90611e6f565b6001600160a01b0382166111895760405162461bcd60e51b81526004016106ec90611eb4565b8060000361119d57610ae583836000611a06565b6005546001600160a01b038481169116148015906111c957506005546001600160a01b03838116911614155b80156111dd57506001600160a01b03821615155b80156111f457506001600160a01b03821661dead14155b801561120a5750600954600160a01b900460ff16155b156114e357600e5460ff1661129d576001600160a01b03831660009081526014602052604090205460ff168061125857506001600160a01b03821660009081526014602052604090205460ff165b61129d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106ec565b6001600160a01b03831660009081526016602052604090205460ff1680156112de57506001600160a01b03821660009081526015602052604090205460ff16155b156113b257600b548111156113535760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016106ec565b600c5461135f83610bc2565b6113699083611e23565b11156113ad5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106ec565b6114e3565b6001600160a01b03821660009081526016602052604090205460ff1680156113f357506001600160a01b03831660009081526015602052604090205460ff16155b1561146957600b548111156113ad5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016106ec565b6001600160a01b03821660009081526015602052604090205460ff166114e357600c5461149583610bc2565b61149f9083611e23565b11156114e35760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106ec565b60006114ee30610bc2565b9050801580159081906115085750600e54610100900460ff165b801561151e5750600954600160a01b900460ff16155b801561154357506001600160a01b03851660009081526016602052604090205460ff16155b801561156857506001600160a01b03851660009081526014602052604090205460ff16155b801561158d57506001600160a01b03841660009081526014602052604090205460ff16155b156115bc576009805460ff60a01b1916600160a01b1790556115ae83611b30565b6009805460ff60a01b191690555b6009546001600160a01b03861660009081526014602052604090205460ff600160a01b90920482161591168061160a57506001600160a01b03851660009081526014602052604090205460ff165b15611613575060005b600081156116bc576001600160a01b03861660009081526016602052604090205460ff16156116725761166b60135461164d601254611bb6565b6116579190611e36565b601054611665908890611bf7565b90611c0a565b905061169e565b61169b601354611683601154611bb6565b61168d9190611e36565b600f54611665908890611bf7565b90505b80156116af576116af873083611a06565b6116b98186611ef7565b94505b6116c7878787611a06565b50505050505050565b6001600160a01b038216600081815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117ab576117ab611f0a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611804573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118289190611dc2565b8160018151811061183b5761183b611f0a565b6001600160a01b0392831660209182029290920101526006546118619130911684610fa5565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac9479261189e92879260009288929116904290600401611f20565b600060405180830381600087803b1580156118b857600080fd5b505af11580156118cc573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166119345760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106ec565b6001600160a01b038216600090815260208190526040902054818110156119a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106ec565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038316611a2c5760405162461bcd60e51b81526004016106ec90611e6f565b6001600160a01b038216611a525760405162461bcd60e51b81526004016106ec90611eb4565b6001600160a01b03831660009081526020819052604090205481811015611aca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ec565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610cc5565b6000611b3b30610bc2565b9050600081600003611b4c57505050565b600082118015611b5d5750600d5482105b15611b69575080611bad565b6000611b85606461166560105487611bf790919063ffffffff16565b9050611b918185611ef7565b9350600d54841115611ba757600d549150611bab565b8391505b505b610ae581611776565b600080611bc461dead610bc2565b118015611bd15750600082115b611bdc5760016107ac565b60646001601354611bed9190611ef7565b6107ac9190611e4d565b6000611c038284611e36565b9392505050565b6000611c038284611e4d565b600060208083528351808285015260005b81811015611c4357858101830151858201604001528201611c27565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bbf57600080fd5b60008060408385031215611c8c57600080fd5b8235611c9781611c64565b946020939093013593505050565b600060208284031215611cb757600080fd5b8135611c0381611c64565b600080600060608486031215611cd757600080fd5b8335611ce281611c64565b92506020840135611cf281611c64565b929592945050506040919091013590565b60008060408385031215611d1657600080fd5b8235611d2181611c64565b915060208301358015158114611d3657600080fd5b809150509250929050565b600060208284031215611d5357600080fd5b5035919050565b60008060408385031215611d6d57600080fd5b8235611d7881611c64565b91506020830135611d3681611c64565b600181811c90821680611d9c57607f821691505b602082108103611dbc57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611dd457600080fd5b8151611c0381611c64565b600080600060608486031215611df457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156107ac576107ac611e0d565b80820281158282048414176107ac576107ac611e0d565b600082611e6a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107ac576107ac611e0d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f705784516001600160a01b031683529383019391830191600101611f4b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a1a64226cb52a8beaa2be7894c02ad0954de675e87c6d66d1e73ffba1937665564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102285760003560e01c8063715018a611610123578063c0246668116100ab578063dd8546521161006f578063dd85465214610619578063e2f456051461062f578063f2fde38b14610645578063f8b45b0514610665578063ffb54a991461067b57600080fd5b8063c02466681461058d578063c8c8ebe4146105ad578063cf9522fd146105c3578063d1df306c146105d9578063dd62ed3e146105f957600080fd5b806395d89b41116100f257806395d89b41146104f85780639a7a23d61461050d578063a457c2d71461052d578063a9059cbb1461054d578063afa4f3b21461056d57600080fd5b8063715018a6146104855780637571336a1461049a578063881dce60146104ba5780638da5cb5b146104da57600080fd5b806339509351116101b15780634ab0c04a116101755780634ab0c04a146103d85780634fbee193146103ed578063583e0568146104265780636ddd17131461044657806370a082311461046557600080fd5b8063395093511461033f5780633ff525131461035f578063414a878614610375578063460731151461038b57806349bd5a5e146103a057600080fd5b80631816467f116101f85780631816467f146102c557806323b872dd146102e557806324e3444314610305578063311028af1461030d578063313ce5671461032357600080fd5b806299d3861461023457806306fdde031461024b578063095ea7b31461027657806318160ddd146102a657600080fd5b3661022f57005b600080fd5b34801561024057600080fd5b50610249610695565b005b34801561025757600080fd5b50610260610706565b60405161026d9190611c16565b60405180910390f35b34801561028257600080fd5b50610296610291366004611c79565b610798565b604051901515815260200161026d565b3480156102b257600080fd5b506002545b60405190815260200161026d565b3480156102d157600080fd5b506102496102e0366004611ca5565b6107b2565b3480156102f157600080fd5b50610296610300366004611cc2565b610817565b61024961083b565b34801561031957600080fd5b506102b7600a5481565b34801561032f57600080fd5b506040516012815260200161026d565b34801561034b57600080fd5b5061029661035a366004611c79565b610aea565b34801561036b57600080fd5b506102b760125481565b34801561038157600080fd5b506102b760115481565b34801561039757600080fd5b50610249610b0c565b3480156103ac57600080fd5b506007546103c0906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156103e457600080fd5b50610249610b2a565b3480156103f957600080fd5b50610296610408366004611ca5565b6001600160a01b031660009081526014602052604090205460ff1690565b34801561043257600080fd5b506006546103c0906001600160a01b031681565b34801561045257600080fd5b50600e5461029690610100900460ff1681565b34801561047157600080fd5b506102b7610480366004611ca5565b610bc2565b34801561049157600080fd5b50610249610bdd565b3480156104a657600080fd5b506102496104b5366004611d03565b610bf1565b3480156104c657600080fd5b506102496104d5366004611d41565b610c24565b3480156104e657600080fd5b506005546001600160a01b03166103c0565b34801561050457600080fd5b50610260610ccb565b34801561051957600080fd5b50610249610528366004611d03565b610cda565b34801561053957600080fd5b50610296610548366004611c79565b610d74565b34801561055957600080fd5b50610296610568366004611c79565b610def565b34801561057957600080fd5b50610249610588366004611d41565b610dfd565b34801561059957600080fd5b506102496105a8366004611d03565b610e1d565b3480156105b957600080fd5b506102b7600b5481565b3480156105cf57600080fd5b506102b760105481565b3480156105e557600080fd5b506102496105f4366004611c79565b610e84565b34801561060557600080fd5b506102b7610614366004611d5a565b610eaa565b34801561062557600080fd5b506102b7600f5481565b34801561063b57600080fd5b506102b7600d5481565b34801561065157600080fd5b50610249610660366004611ca5565b610ed5565b34801561067157600080fd5b506102b7600c5481565b34801561068757600080fd5b50600e546102969060ff1681565b61069d610f4b565b600e5460ff16156106f55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600e805461ffff1916610101179055565b60606003805461071590611d88565b80601f016020809104026020016040519081016040528092919081815260200182805461074190611d88565b801561078e5780601f106107635761010080835404028352916020019161078e565b820191906000526020600020905b81548152906001019060200180831161077157829003601f168201915b5050505050905090565b6000336107a6818585610fa5565b60019150505b92915050565b6107ba610f4b565b6008546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74390600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000336108258582856110c9565b61083085858561113d565b506001949350505050565b610843610f4b565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610877906001610bf1565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ee9190611dc2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190611dc2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190611dc2565b600780546001600160a01b0319166001600160a01b03929092169182179055610a0f906001610bf1565b600754610a26906001600160a01b031660016116d0565b600654610a409030906001600160a01b0316600019610fa5565b6006546001600160a01b031663f305d7193430610a5c81610bc2565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610ac0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ae59190611ddf565b505050565b6000336107a6818585610afd8383610eaa565b610b079190611e23565b610fa5565b610b14610f4b565b6000610b1f60025490565b600b819055600c5550565b60004711610b735760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016106ec565b6009546001600160a01b0316336001600160a01b031614610b9357600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610bbf573d6000803e3d6000fd5b50565b6001600160a01b031660009081526020819052604090205490565b610be5610f4b565b610bef6000611724565b565b610bf9610f4b565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6009546001600160a01b0316336001600160a01b031614610c4457600080fd5b6000610c4f60025490565b90506000610c5c30610bc2565b905060006064610c6c8585611e36565b610c769190611e4d565b905080821015610cbc5760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064016106ec565b610cc581611776565b50505050565b60606004805461071590611d88565b610ce2610f4b565b6007546001600160a01b0390811690831603610d665760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016106ec565b610d7082826116d0565b5050565b60003381610d828286610eaa565b905083811015610de25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ec565b6108308286868403610fa5565b6000336107a681858561113d565b610e05610f4b565b610e1781670de0b6b3a7640000611e36565b600d5550565b610e25610f4b565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b3360008181526014602052604090205460ff16610ea057600080fd5b610ae583836118d4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610edd610f4b565b6001600160a01b038116610f425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ec565b610bbf81611724565b6005546001600160a01b03163314610bef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ec565b6001600160a01b0383166110075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ec565b6001600160a01b0382166110685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ec565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110d58484610eaa565b90506000198114610cc557818110156111305760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ec565b610cc58484848403610fa5565b6001600160a01b0383166111635760405162461bcd60e51b81526004016106ec90611e6f565b6001600160a01b0382166111895760405162461bcd60e51b81526004016106ec90611eb4565b8060000361119d57610ae583836000611a06565b6005546001600160a01b038481169116148015906111c957506005546001600160a01b03838116911614155b80156111dd57506001600160a01b03821615155b80156111f457506001600160a01b03821661dead14155b801561120a5750600954600160a01b900460ff16155b156114e357600e5460ff1661129d576001600160a01b03831660009081526014602052604090205460ff168061125857506001600160a01b03821660009081526014602052604090205460ff165b61129d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106ec565b6001600160a01b03831660009081526016602052604090205460ff1680156112de57506001600160a01b03821660009081526015602052604090205460ff16155b156113b257600b548111156113535760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016106ec565b600c5461135f83610bc2565b6113699083611e23565b11156113ad5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106ec565b6114e3565b6001600160a01b03821660009081526016602052604090205460ff1680156113f357506001600160a01b03831660009081526015602052604090205460ff16155b1561146957600b548111156113ad5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016106ec565b6001600160a01b03821660009081526015602052604090205460ff166114e357600c5461149583610bc2565b61149f9083611e23565b11156114e35760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106ec565b60006114ee30610bc2565b9050801580159081906115085750600e54610100900460ff165b801561151e5750600954600160a01b900460ff16155b801561154357506001600160a01b03851660009081526016602052604090205460ff16155b801561156857506001600160a01b03851660009081526014602052604090205460ff16155b801561158d57506001600160a01b03841660009081526014602052604090205460ff16155b156115bc576009805460ff60a01b1916600160a01b1790556115ae83611b30565b6009805460ff60a01b191690555b6009546001600160a01b03861660009081526014602052604090205460ff600160a01b90920482161591168061160a57506001600160a01b03851660009081526014602052604090205460ff165b15611613575060005b600081156116bc576001600160a01b03861660009081526016602052604090205460ff16156116725761166b60135461164d601254611bb6565b6116579190611e36565b601054611665908890611bf7565b90611c0a565b905061169e565b61169b601354611683601154611bb6565b61168d9190611e36565b600f54611665908890611bf7565b90505b80156116af576116af873083611a06565b6116b98186611ef7565b94505b6116c7878787611a06565b50505050505050565b6001600160a01b038216600081815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117ab576117ab611f0a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611804573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118289190611dc2565b8160018151811061183b5761183b611f0a565b6001600160a01b0392831660209182029290920101526006546118619130911684610fa5565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac9479261189e92879260009288929116904290600401611f20565b600060405180830381600087803b1580156118b857600080fd5b505af11580156118cc573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166119345760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106ec565b6001600160a01b038216600090815260208190526040902054818110156119a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106ec565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038316611a2c5760405162461bcd60e51b81526004016106ec90611e6f565b6001600160a01b038216611a525760405162461bcd60e51b81526004016106ec90611eb4565b6001600160a01b03831660009081526020819052604090205481811015611aca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ec565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610cc5565b6000611b3b30610bc2565b9050600081600003611b4c57505050565b600082118015611b5d5750600d5482105b15611b69575080611bad565b6000611b85606461166560105487611bf790919063ffffffff16565b9050611b918185611ef7565b9350600d54841115611ba757600d549150611bab565b8391505b505b610ae581611776565b600080611bc461dead610bc2565b118015611bd15750600082115b611bdc5760016107ac565b60646001601354611bed9190611ef7565b6107ac9190611e4d565b6000611c038284611e36565b9392505050565b6000611c038284611e4d565b600060208083528351808285015260005b81811015611c4357858101830151858201604001528201611c27565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bbf57600080fd5b60008060408385031215611c8c57600080fd5b8235611c9781611c64565b946020939093013593505050565b600060208284031215611cb757600080fd5b8135611c0381611c64565b600080600060608486031215611cd757600080fd5b8335611ce281611c64565b92506020840135611cf281611c64565b929592945050506040919091013590565b60008060408385031215611d1657600080fd5b8235611d2181611c64565b915060208301358015158114611d3657600080fd5b809150509250929050565b600060208284031215611d5357600080fd5b5035919050565b60008060408385031215611d6d57600080fd5b8235611d7881611c64565b91506020830135611d3681611c64565b600181811c90821680611d9c57607f821691505b602082108103611dbc57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611dd457600080fd5b8151611c0381611c64565b600080600060608486031215611df457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156107ac576107ac611e0d565b80820281158282048414176107ac576107ac611e0d565b600082611e6a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107ac576107ac611e0d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f705784516001600160a01b031683529383019391830191600101611f4b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a1a64226cb52a8beaa2be7894c02ad0954de675e87c6d66d1e73ffba1937665564736f6c63430008130033

Deployed Bytecode Sourcemap

14718:9473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17887:194;;;;;;;;;;;;;:::i;:::-;;9946:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10878:201;;;;;;;;;;-1:-1:-1;10878:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10878:201:0;1023:187:1;10267:108:0;;;;;;;;;;-1:-1:-1;10355:12:0;;10267:108;;;1361:25:1;;;1349:2;1334:18;10267:108:0;1215:177:1;18264:187:0;;;;;;;;;;-1:-1:-1;18264:187:0;;;;;:::i;:::-;;:::i;11087:261::-;;;;;;;;;;-1:-1:-1;11087:261:0;;;;;:::i;:::-;;:::i;17086:756::-;;;:::i;15172:53::-;;;;;;;;;;;;;;;;10166:93;;;;;;;;;;-1:-1:-1;10166:93:0;;10249:2;2252:36:1;;2240:2;2225:18;10166:93:0;2110:184:1;11356:238:0;;;;;;;;;;-1:-1:-1;11356:238:0;;;;;:::i;:::-;;:::i;15693:30::-;;;;;;;;;;;;;;;;15657:29;;;;;;;;;;;;;;;;22314:195;;;;;;;;;;;;;:::i;14852:28::-;;;;;;;;;;-1:-1:-1;14852:28:0;;;;-1:-1:-1;;;;;14852:28:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;14852:28:0;2299:203:1;22517:232:0;;;;;;;;;;;;;:::i;19306:126::-;;;;;;;;;;-1:-1:-1;19306:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;19396:28:0;19372:4;19396:28;;;:19;:28;;;;;;;;;19306:126;14803:42;;;;;;;;;;-1:-1:-1;14803:42:0;;;;-1:-1:-1;;;;;14803:42:0;;;15550:31;;;;;;;;;;-1:-1:-1;15550:31:0;;;;;;;;;;;10383:127;;;;;;;;;;-1:-1:-1;10383:127:0;;;;;:::i;:::-;;:::i;1039:103::-;;;;;;;;;;;;;:::i;18089:167::-;;;;;;;;;;-1:-1:-1;18089:167:0;;;;;:::i;:::-;;:::i;23039:409::-;;;;;;;;;;-1:-1:-1;23039:409:0;;;;;:::i;:::-;;:::i;804:87::-;;;;;;;;;;-1:-1:-1;877:6:0;;-1:-1:-1;;;;;877:6:0;804:87;;10054:104;;;;;;;;;;;;;:::i;18839:265::-;;;;;;;;;;-1:-1:-1;18839:265:0;;;;;:::i;:::-;;:::i;11602:436::-;;;;;;;;;;-1:-1:-1;11602:436:0;;;;;:::i;:::-;;:::i;10518:193::-;;;;;;;;;;-1:-1:-1;10518:193:0;;;;;:::i;:::-;;:::i;22904:127::-;;;;;;;;;;-1:-1:-1;22904:127:0;;;;;:::i;:::-;;:::i;18624:207::-;;;;;;;;;;-1:-1:-1;18624:207:0;;;;;:::i;:::-;;:::i;15246:68::-;;;;;;;;;;;;;;;;15622:26;;;;;;;;;;;;;;;;22757:139;;;;;;;;;;-1:-1:-1;22757:139:0;;;;;:::i;:::-;;:::i;10719:151::-;;;;;;;;;;-1:-1:-1;10719:151:0;;;;;:::i;:::-;;:::i;15590:25::-;;;;;;;;;;;;;;;;15420:68;;;;;;;;;;;;;;;;1150:201;;;;;;;;;;-1:-1:-1;1150:201:0;;;;;:::i;:::-;;:::i;15333:57::-;;;;;;;;;;;;;;;;15512:31;;;;;;;;;;-1:-1:-1;15512:31:0;;;;;;;;17887:194;763:13;:11;:13::i;:::-;17975:11:::1;::::0;::::1;;17974:12;17966:47;;;::::0;-1:-1:-1;;;17966:47:0;;4276:2:1;17966:47:0::1;::::0;::::1;4258:21:1::0;4315:2;4295:18;;;4288:30;4354:25;4334:18;;;4327:53;4397:18;;17966:47:0::1;;;;;;;;;18026:11;:18:::0;;-1:-1:-1;;18055:18:0;;;;;17887:194::o;9946:100::-;10000:13;10033:5;10026:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9946:100;:::o;10878:201::-;10961:4;357:10;11017:32;357:10;11033:7;11042:6;11017:8;:32::i;:::-;11067:4;11060:11;;;10878:201;;;;;:::o;18264:187::-;763:13;:11;:13::i;:::-;18398:9:::1;::::0;18367:41:::1;::::0;-1:-1:-1;;;;;18398:9:0;;::::1;::::0;18367:41;::::1;::::0;::::1;::::0;18398:9:::1;::::0;18367:41:::1;18419:9;:24:::0;;-1:-1:-1;;;;;;18419:24:0::1;-1:-1:-1::0;;;;;18419:24:0;;;::::1;::::0;;;::::1;::::0;;18264:187::o;11087:261::-;11184:4;357:10;11242:38;11258:4;357:10;11273:6;11242:15;:38::i;:::-;11291:27;11301:4;11307:2;11311:6;11291:9;:27::i;:::-;-1:-1:-1;11336:4:0;;11087:261;-1:-1:-1;;;;11087:261:0:o;17086:756::-;763:13;:11;:13::i;:::-;17184:16:::1;:81:::0;;-1:-1:-1;;;;;;17184:81:0::1;17222:42;17184:81:::0;;::::1;::::0;;;17276:58:::1;::::0;17184:81;17276:25:::1;:58::i;:::-;17381:16;;;;;;;;;-1:-1:-1::0;;;;;17381:16:0::1;-1:-1:-1::0;;;;;17381:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17363:56:0::1;;17428:4;17435:16;;;;;;;;;-1:-1:-1::0;;;;;17435:16:0::1;-1:-1:-1::0;;;;;17435:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17363:96;::::0;-1:-1:-1;;;;;;17363:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5297:15:1;;;17363:96:0::1;::::0;::::1;5279:34:1::0;5349:15;;5329:18;;;5322:43;5214:18;;17363:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17347:13;:112:::0;;-1:-1:-1;;;;;;17347:112:0::1;-1:-1:-1::0;;;;;17347:112:0;;;::::1;::::0;;::::1;::::0;;17486:55:::1;::::0;-1:-1:-1;17486:25:0::1;:55::i;:::-;17591:13;::::0;17554:58:::1;::::0;-1:-1:-1;;;;;17591:13:0::1;::::0;17554:28:::1;:58::i;:::-;17663:16;::::0;17631:69:::1;::::0;17648:4:::1;::::0;-1:-1:-1;;;;;17663:16:0::1;-1:-1:-1::0;;17631:8:0::1;:69::i;:::-;17713:16;::::0;-1:-1:-1;;;;;17713:16:0::1;:32;17753:9;17772:4;17778:24;17772:4:::0;17778:9:::1;:24::i;:::-;17713:121;::::0;-1:-1:-1;;;;;;17713:121:0::1;::::0;;;;;;-1:-1:-1;;;;;5735:15:1;;;17713:121:0::1;::::0;::::1;5717:34:1::0;5767:18;;;5760:34;17803:1:0::1;5810:18:1::0;;;5803:34;;;5853:18;;;5846:34;17807:10:0::1;5896:19:1::0;;;5889:44;17818:15:0::1;5949:19:1::0;;;5942:35;5651:19;;17713:121:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17086:756::o:0;11356:238::-;11444:4;357:10;11500:64;357:10;11516:7;11553:10;11525:25;357:10;11516:7;11525:9;:25::i;:::-;:38;;;;:::i;:::-;11500:8;:64::i;22314:195::-;763:13;:11;:13::i;:::-;22369:25:::1;22397:13;10355:12:::0;;;10267:108;22397:13:::1;22421:20;:40:::0;;;22472:9:::1;:29:::0;-1:-1:-1;22314:195:0:o;22517:232::-;22600:1;22576:21;:25;22568:60;;;;-1:-1:-1;;;22568:60:0;;6763:2:1;22568:60:0;;;6745:21:1;6802:2;6782:18;;;6775:30;-1:-1:-1;;;6821:18:1;;;6814:52;6883:18;;22568:60:0;6561:346:1;22568:60:0;22663:15;;-1:-1:-1;;;;;22663:15:0;357:10;-1:-1:-1;;;;;22647:31:0;;22639:40;;;;;;22690:51;;22698:10;;22719:21;22690:51;;;;;;;;;22719:21;22698:10;22690:51;;;;;;;;;;;;;;;;;;;;;22517:232::o;10383:127::-;-1:-1:-1;;;;;10484:18:0;10457:7;10484:18;;;;;;;;;;;;10383:127::o;1039:103::-;763:13;:11;:13::i;:::-;1104:30:::1;1131:1;1104:18;:30::i;:::-;1039:103::o:0;18089:167::-;763:13;:11;:13::i;:::-;-1:-1:-1;;;;;18202:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;18202:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18089:167::o;23039:409::-;23120:15;;-1:-1:-1;;;;;23120:15:0;357:10;-1:-1:-1;;;;;23104:31:0;;23096:40;;;;;;23149:25;23177:13;10355:12;;;10267:108;23177:13;23149:41;;23201:23;23227:24;23245:4;23227:9;:24::i;:::-;23201:50;-1:-1:-1;23262:23:0;23318:3;23288:27;23308:7;23288:17;:27;:::i;:::-;:33;;;;:::i;:::-;23262:59;;23359:15;23340;:34;;23332:64;;;;-1:-1:-1;;;23332:64:0;;7509:2:1;23332:64:0;;;7491:21:1;7548:2;7528:18;;;7521:30;-1:-1:-1;;;7567:18:1;;;7560:47;7624:18;;23332:64:0;7307:341:1;23332:64:0;23407:33;23424:15;23407:16;:33::i;:::-;23085:363;;;23039:409;:::o;10054:104::-;10110:13;10143:7;10136:14;;;;;:::i;18839:265::-;763:13;:11;:13::i;:::-;18969::::1;::::0;-1:-1:-1;;;;;18969:13:0;;::::1;18961:21:::0;;::::1;::::0;18953:91:::1;;;::::0;-1:-1:-1;;;18953:91:0;;7855:2:1;18953:91:0::1;::::0;::::1;7837:21:1::0;7894:2;7874:18;;;7867:30;7933:34;7913:18;;;7906:62;8004:27;7984:18;;;7977:55;8049:19;;18953:91:0::1;7653:421:1::0;18953:91:0::1;19055:41;19084:4;19090:5;19055:28;:41::i;:::-;18839:265:::0;;:::o;11602:436::-;11695:4;357:10;11695:4;11778:25;357:10;11795:7;11778:9;:25::i;:::-;11751:52;;11842:15;11822:16;:35;;11814:85;;;;-1:-1:-1;;;11814:85:0;;8281:2:1;11814:85:0;;;8263:21:1;8320:2;8300:18;;;8293:30;8359:34;8339:18;;;8332:62;-1:-1:-1;;;8410:18:1;;;8403:35;8455:19;;11814:85:0;8079:401:1;11814:85:0;11935:60;11944:5;11951:7;11979:15;11960:16;:34;11935:8;:60::i;10518:193::-;10597:4;357:10;10653:28;357:10;10670:2;10674:6;10653:9;:28::i;22904:127::-;763:13;:11;:13::i;:::-;23003:20:::1;:7:::0;23014:8:::1;23003:20;:::i;:::-;22982:18;:41:::0;-1:-1:-1;22904:127:0:o;18624:207::-;763:13;:11;:13::i;:::-;-1:-1:-1;;;;;18734:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18734:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18789:34;;1163:41:1;;;18789:34:0::1;::::0;1136:18:1;18789:34:0::1;;;;;;;18624:207:::0;;:::o;22757:139::-;22828:10;19372:4;19396:28;;;:19;:28;;;;;;;;16080:35;;;;;;22852:36:::1;22866:12;22881:6;22852:5;:36::i;10719:151::-:0;-1:-1:-1;;;;;10835:18:0;;;10808:7;10835:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10719:151::o;1150:201::-;763:13;:11;:13::i;:::-;-1:-1:-1;;;;;1239:22:0;::::1;1231:73;;;::::0;-1:-1:-1;;;1231:73:0;;8687:2:1;1231:73:0::1;::::0;::::1;8669:21:1::0;8726:2;8706:18;;;8699:30;8765:34;8745:18;;;8738:62;-1:-1:-1;;;8816:18:1;;;8809:36;8862:19;;1231:73:0::1;8485:402:1::0;1231:73:0::1;1315:28;1334:8;1315:18;:28::i;899:132::-:0;877:6;;-1:-1:-1;;;;;877:6:0;357:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;9094:2:1;955:68:0;;;9076:21:1;;;9113:18;;;9106:30;9172:34;9152:18;;;9145:62;9224:18;;955:68:0;8892:356:1;13741:346:0;-1:-1:-1;;;;;13843:19:0;;13835:68;;;;-1:-1:-1;;;13835:68:0;;9455:2:1;13835:68:0;;;9437:21:1;9494:2;9474:18;;;9467:30;9533:34;9513:18;;;9506:62;-1:-1:-1;;;9584:18:1;;;9577:34;9628:19;;13835:68:0;9253:400:1;13835:68:0;-1:-1:-1;;;;;13922:21:0;;13914:68;;;;-1:-1:-1;;;13914:68:0;;9860:2:1;13914:68:0;;;9842:21:1;9899:2;9879:18;;;9872:30;9938:34;9918:18;;;9911:62;-1:-1:-1;;;9989:18:1;;;9982:32;10031:19;;13914:68:0;9658:398:1;13914:68:0;-1:-1:-1;;;;;13995:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14047:32;;1361:25:1;;;14047:32:0;;1334:18:1;14047:32:0;;;;;;;13741:346;;;:::o;14095:419::-;14196:24;14223:25;14233:5;14240:7;14223:9;:25::i;:::-;14196:52;;-1:-1:-1;;14263:16:0;:37;14259:248;;14345:6;14325:16;:26;;14317:68;;;;-1:-1:-1;;;14317:68:0;;10263:2:1;14317:68:0;;;10245:21:1;10302:2;10282:18;;;10275:30;10341:31;10321:18;;;10314:59;10390:18;;14317:68:0;10061:353:1;14317:68:0;14429:51;14438:5;14445:7;14473:6;14454:16;:25;14429:8;:51::i;19440:2380::-;-1:-1:-1;;;;;19540:18:0;;19532:68;;;;-1:-1:-1;;;19532:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19619:16:0;;19611:64;;;;-1:-1:-1;;;19611:64:0;;;;;;;:::i;:::-;19700:6;19710:1;19700:11;19696:93;;19728:28;19744:4;19750:2;19754:1;19728:15;:28::i;19696:93::-;877:6;;-1:-1:-1;;;;;19805:15:0;;;877:6;;19805:15;;;;:32;;-1:-1:-1;877:6:0;;-1:-1:-1;;;;;19824:13:0;;;877:6;;19824:13;;19805:32;:52;;;;-1:-1:-1;;;;;;19841:16:0;;;;19805:52;:77;;;;-1:-1:-1;;;;;;19861:21:0;;19875:6;19861:21;;19805:77;:90;;;;-1:-1:-1;19887:8:0;;-1:-1:-1;;;19887:8:0;;;;19886:9;19805:90;19801:996;;;19919:11;;;;19914:140;;-1:-1:-1;;;;;19959:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19988:23:0;;;;;;:19;:23;;;;;;;;19959:52;19951:87;;;;-1:-1:-1;;;19951:87:0;;11431:2:1;19951:87:0;;;11413:21:1;11470:2;11450:18;;;11443:30;-1:-1:-1;;;11489:18:1;;;11482:52;11551:18;;19951:87:0;11229:346:1;19951:87:0;-1:-1:-1;;;;;20074:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;20110:35:0;;;;;;:31;:35;;;;;;;;20109:36;20074:71;20070:716;;;20198:20;;20188:6;:30;;20180:96;;;;-1:-1:-1;;;20180:96:0;;11782:2:1;20180:96:0;;;11764:21:1;11821:2;11801:18;;;11794:30;11860:34;11840:18;;;11833:62;-1:-1:-1;;;11911:18:1;;;11904:51;11972:19;;20180:96:0;11580:417:1;20180:96:0;20329:9;;20312:13;20322:2;20312:9;:13::i;:::-;20303:22;;:6;:22;:::i;:::-;:35;;20295:67;;;;-1:-1:-1;;;20295:67:0;;12204:2:1;20295:67:0;;;12186:21:1;12243:2;12223:18;;;12216:30;-1:-1:-1;;;12262:18:1;;;12255:49;12321:18;;20295:67:0;12002:343:1;20295:67:0;20070:716;;;-1:-1:-1;;;;;20403:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20437:37:0;;;;;;:31;:37;;;;;;;;20436:38;20403:71;20399:387;;;20513:20;;20503:6;:30;;20495:97;;;;-1:-1:-1;;;20495:97:0;;12552:2:1;20495:97:0;;;12534:21:1;12591:2;12571:18;;;12564:30;12630:34;12610:18;;;12603:62;-1:-1:-1;;;12681:18:1;;;12674:52;12743:19;;20495:97:0;12350:418:1;20399:387:0;-1:-1:-1;;;;;20647:35:0;;;;;;:31;:35;;;;;;;;20642:144;;20737:9;;20720:13;20730:2;20720:9;:13::i;:::-;20711:22;;:6;:22;:::i;:::-;:35;;20703:67;;;;-1:-1:-1;;;20703:67:0;;12204:2:1;20703:67:0;;;12186:21:1;12243:2;12223:18;;;12216:30;-1:-1:-1;;;12262:18:1;;;12255:49;12321:18;;20703:67:0;12002:343:1;20703:67:0;20809:28;20840:24;20858:4;20840:9;:24::i;:::-;20809:55;-1:-1:-1;20892:24:0;;;;;;;20933:22;;-1:-1:-1;20944:11:0;;;;;;;20933:22;:35;;;;-1:-1:-1;20960:8:0;;-1:-1:-1;;;20960:8:0;;;;20959:9;20933:35;:71;;;;-1:-1:-1;;;;;;20973:31:0;;;;;;:25;:31;;;;;;;;20972:32;20933:71;:101;;;;-1:-1:-1;;;;;;21009:25:0;;;;;;:19;:25;;;;;;;;21008:26;20933:101;:129;;;;-1:-1:-1;;;;;;21039:23:0;;;;;;:19;:23;;;;;;;;21038:24;20933:129;20929:239;;;21079:8;:15;;-1:-1:-1;;;;21079:15:0;-1:-1:-1;;;21079:15:0;;;21109:16;21118:6;21109:8;:16::i;:::-;21140:8;:16;;-1:-1:-1;;;;21140:16:0;;;20929:239;21196:8;;-1:-1:-1;;;;;21221:25:0;;21180:12;21221:25;;;21196:8;21221:25;;;;;;21196:8;-1:-1:-1;;;21196:8:0;;;;;21195:9;;21221:25;;:52;;-1:-1:-1;;;;;;21250:23:0;;;;;;:19;:23;;;;;;;;21221:52;21217:100;;;-1:-1:-1;21300:5:0;21217:100;21329:12;21362:7;21358:411;;;-1:-1:-1;;;;;21390:29:0;;;;;;:25;:29;;;;;;;;21386:256;;;21447:60;21492:14;;21471:18;21477:11;;21471:5;:18::i;:::-;:35;;;;:::i;:::-;21458:7;;21447:19;;:6;;:10;:19::i;:::-;:23;;:60::i;:::-;21440:67;;21386:256;;;21568:58;21611:14;;21591:17;21597:10;;21591:5;:17::i;:::-;:34;;;;:::i;:::-;21579:6;;21568:18;;:6;;:10;:18::i;:58::-;21561:65;;21386:256;21658:8;;21654:83;;21683:42;21699:4;21713;21720;21683:15;:42::i;:::-;21747:14;21757:4;21747:14;;:::i;:::-;;;21358:411;21779:33;21795:4;21801:2;21805:6;21779:15;:33::i;:::-;19519:2301;;;;19440:2380;;;:::o;19112:186::-;-1:-1:-1;;;;;19195:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;19195:39:0;;;;;;;;;;19250:40;;19195:39;;:31;19250:40;;;19112:186;;:::o;1359:191::-;1452:6;;;-1:-1:-1;;;;;1469:17:0;;;-1:-1:-1;;;;;;1469:17:0;;;;;;;1502:40;;1452:6;;;1469:17;1452:6;;1502:40;;1433:16;;1502:40;1422:128;1359:191;:::o;21828:478::-;21920:16;;;21934:1;21920:16;;;;;;;;21896:21;;21920:16;;;;;;;;;;-1:-1:-1;21920:16:0;21896:40;;21965:4;21947;21952:1;21947:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21947:23:0;;;:7;;;;;;;;;;:23;;;;21991:16;;:23;;;-1:-1:-1;;;21991:23:0;;;;:16;;;;;:21;;:23;;;;;21947:7;;21991:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21981:4;21986:1;21981:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21981:33:0;;;:7;;;;;;;;;:33;22057:16;;22025:63;;22042:4;;22057:16;22076:11;22025:8;:63::i;:::-;22099:16;;22242:15;;22099:199;;-1:-1:-1;;;22099:199:0;;-1:-1:-1;;;;;22099:16:0;;;;:67;;:199;;22181:11;;22099:16;;22223:4;;22242:15;;;22272;;22099:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21883:423;21828:478;:::o;13138:595::-;-1:-1:-1;;;;;13222:21:0;;13214:67;;;;-1:-1:-1;;;13214:67:0;;14357:2:1;13214:67:0;;;14339:21:1;14396:2;14376:18;;;14369:30;14435:34;14415:18;;;14408:62;-1:-1:-1;;;14486:18:1;;;14479:31;14527:19;;13214:67:0;14155:397:1;13214:67:0;-1:-1:-1;;;;;13381:18:0;;13356:22;13381:18;;;;;;;;;;;13418:24;;;;13410:71;;;;-1:-1:-1;;;13410:71:0;;14759:2:1;13410:71:0;;;14741:21:1;14798:2;14778:18;;;14771:30;14837:34;14817:18;;;14810:62;-1:-1:-1;;;14888:18:1;;;14881:32;14930:19;;13410:71:0;14557:398:1;13410:71:0;-1:-1:-1;;;;;13517:18:0;;:9;:18;;;;;;;;;;;13538:23;;;13517:44;;13576:12;:22;;;;;;;13627:37;1361:25:1;;;13517:9:0;;:18;13627:37;;1334:18:1;13627:37:0;;;;;;;17713:121:::1;;;17086:756::o:0;12046:641::-;-1:-1:-1;;;;;12143:18:0;;12135:68;;;;-1:-1:-1;;;12135:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12222:16:0;;12214:64;;;;-1:-1:-1;;;12214:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12364:15:0;;12342:19;12364:15;;;;;;;;;;;12398:21;;;;12390:72;;;;-1:-1:-1;;;12390:72:0;;15162:2:1;12390:72:0;;;15144:21:1;15201:2;15181:18;;;15174:30;15240:34;15220:18;;;15213:62;-1:-1:-1;;;15291:18:1;;;15284:36;15337:19;;12390:72:0;14960:402:1;12390:72:0;-1:-1:-1;;;;;12498:15:0;;;:9;:15;;;;;;;;;;;12516:20;;;12498:38;;12551:13;;;;;;;;;;:23;;;;;;12603:26;;1361:25:1;;;12551:13:0;;12603:26;;1334:18:1;12603:26:0;;;;;;;12642:37;17086:756;23456:728;23535:23;23561:24;23579:4;23561:9;:24::i;:::-;23535:50;;23596:20;23633:15;23652:1;23633:20;23629:505;;23670:7;;23456:728;:::o;23629:505::-;23725:1;23707:15;:19;:59;;;;;23748:18;;23730:15;:36;23707:59;23704:430;;;-1:-1:-1;23798:15:0;23704:430;;;23855:21;23879:28;23903:3;23879:19;23890:7;;23879:6;:10;;:19;;;;:::i;:28::-;23855:52;-1:-1:-1;23922:23:0;23855:52;23922:23;;:::i;:::-;;;23973:18;;23964:6;:27;23960:163;;;24027:18;;24012:33;;23960:163;;;24101:6;24086:21;;23960:163;23840:294;23704:430;24146:30;24163:12;24146:16;:30::i;18459:157::-;18511:7;18563:1;18538:22;15012:6;18538:9;:22::i;:::-;:26;:37;;;;;18574:1;18568:3;:7;18538:37;:70;;18607:1;18538:70;;;18600:3;18595:1;18580:14;;:16;;;;:::i;:::-;18579:24;;;;:::i;8399:98::-;8457:7;8484:5;8488:1;8484;:5;:::i;:::-;8477:12;8399:98;-1:-1:-1;;;8399:98:0:o;8505:::-;8563:7;8590:5;8594:1;8590;:5;:::i;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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2741:416::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;:::-;2991:5;-1:-1:-1;3048:2:1;3033:18;;3020:32;3090:15;;3083:23;3071:36;;3061:64;;3121:1;3118;3111:12;3061:64;3144:7;3134:17;;;2741:416;;;;;:::o;3162:180::-;3221:6;3274:2;3262:9;3253:7;3249:23;3245:32;3242:52;;;3290:1;3287;3280:12;3242:52;-1:-1:-1;3313:23:1;;3162:180;-1:-1:-1;3162:180:1:o;3681:388::-;3749:6;3757;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3865:9;3852:23;3884:31;3909:5;3884:31;:::i;:::-;3934:5;-1:-1:-1;3991:2:1;3976:18;;3963:32;4004:33;3963:32;4004:33;:::i;4426:380::-;4505:1;4501:12;;;;4548;;;4569:61;;4623:4;4615:6;4611:17;4601:27;;4569:61;4676:2;4668:6;4665:14;4645:18;4642:38;4639:161;;4722:10;4717:3;4713:20;4710:1;4703:31;4757:4;4754:1;4747:15;4785:4;4782:1;4775:15;4639:161;;4426:380;;;:::o;4811:251::-;4881:6;4934:2;4922:9;4913:7;4909:23;4905:32;4902:52;;;4950:1;4947;4940:12;4902:52;4982:9;4976:16;5001:31;5026:5;5001:31;:::i;5988:306::-;6076:6;6084;6092;6145:2;6133:9;6124:7;6120:23;6116:32;6113:52;;;6161:1;6158;6151:12;6113:52;6190:9;6184:16;6174:26;;6240:2;6229:9;6225:18;6219:25;6209:35;;6284:2;6273:9;6269:18;6263:25;6253:35;;5988:306;;;;;:::o;6299:127::-;6360:10;6355:3;6351:20;6348:1;6341:31;6391:4;6388:1;6381:15;6415:4;6412:1;6405:15;6431:125;6496:9;;;6517:10;;;6514:36;;;6530:18;;:::i;6912:168::-;6985:9;;;7016;;7033:15;;;7027:22;;7013:37;7003:71;;7054:18;;:::i;7085:217::-;7125:1;7151;7141:132;;7195:10;7190:3;7186:20;7183:1;7176:31;7230:4;7227:1;7220:15;7258:4;7255:1;7248:15;7141:132;-1:-1:-1;7287:9:1;;7085:217::o;10419:401::-;10621:2;10603:21;;;10660:2;10640:18;;;10633:30;10699:34;10694:2;10679:18;;10672:62;-1:-1:-1;;;10765:2:1;10750:18;;10743:35;10810:3;10795:19;;10419:401::o;10825:399::-;11027:2;11009:21;;;11066:2;11046:18;;;11039:30;11105:34;11100:2;11085:18;;11078:62;-1:-1:-1;;;11171:2:1;11156:18;;11149:33;11214:3;11199:19;;10825:399::o;12773:128::-;12840:9;;;12861:11;;;12858:37;;;12875:18;;:::i;13038:127::-;13099:10;13094:3;13090:20;13087:1;13080:31;13130:4;13127:1;13120:15;13154:4;13151:1;13144:15;13170:980;13432:4;13480:3;13469:9;13465:19;13511:6;13500:9;13493:25;13537:2;13575:6;13570:2;13559:9;13555:18;13548:34;13618:3;13613:2;13602:9;13598:18;13591:31;13642:6;13677;13671:13;13708:6;13700;13693:22;13746:3;13735:9;13731:19;13724:26;;13785:2;13777:6;13773:15;13759:29;;13806:1;13816:195;13830:6;13827:1;13824:13;13816:195;;;13895:13;;-1:-1:-1;;;;;13891:39:1;13879:52;;13986:15;;;;13951:12;;;;13927:1;13845:9;13816:195;;;-1:-1:-1;;;;;;;14067:32:1;;;;14062:2;14047:18;;14040:60;-1:-1:-1;;;14131:3:1;14116:19;14109:35;14028:3;13170:980;-1:-1:-1;;;13170:980:1:o

Swarm Source

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