ETH Price: $2,455.67 (-0.97%)

Token

WOW (WOW)
 

Overview

Max Total Supply

420,000,000 WOW

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.297888603 WOW

Value
$0.00
0xceefa48f9882682018a4726decbf6ddc4a8f21ee
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:
WOW

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 2024-01-30
*/

/*────────────────────────────┐
  Name: WOW
  Symbol: WOW
  Decimals: 9
  Total supply: 420,000,000
  Network: Ethereum 

  Developed by coinsult.net

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&#,,,,,,,,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@/,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@,,,*&&&&&&&&#,,,,,,,,,,,,,,,,,,,,,,/&&&&&&&&(,,,*@@@@@@@@@@@@@@@
@@@@@@@@@@@@@,,,,,&&&/,,,,,&&&*,,,,,,,,,,,,,,,,,,,&&&*,,,,,&&&,,,,,*@@@@@@@@@@@@
@@@@@@@@@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@@@@@@@@@@
@@@@@@@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*@@@@@@@@
@@@@@@@(,,,,,,,,,,,,,,/&&&*,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&#,,,,,,,,,,,,,,,%@@@@@@
@@@@@@*,,,,,,,,,,,,,&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,#&&&&&&&&,,,,,,,,,,,,,,/@@@@@
@@@@@*,,,,,,,,,,,,,&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,(&&&&&&&&&&,,,,,,,,,,,,,,/@@@@
@@@@/,,,,,,,,,,,,,,&&&&&&&&&&&.,,,,,,,,,.,,,,,,,,,&&&&&&&&&&&,,,,,,,,,,,,,,,%@@@
@@@@,,,,,,,,,,,,,,,&&&&&&&&&&%.,,,,,,,,,.,,,,,,,,,/&&&&&&&&&&,,,,,,,,,,,,,,,,@@@
@@@/,,,,,,,,,,,,,,,,%&&&&&&&#,,,.,..,,.......,,,,,,,&&&&&&&&,,,,,,,,,,,,,,,,,%@@
@@@,,,,,,,,,,,,,,,,,,,,/#/,,,,,,,.,.............,,,,,,,#(,,,,,,,,,,,,,,,,,,,,*@@
@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,*@@
@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,..,#&&&&%*,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,*@@
@@@*,,,,,,,,,,,,,,,,,,,,,,,,,,,,.&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(@@
@@@&,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,@@@
@@@@,,,,,,,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,*@@@
@@@@@,,,,,,,,,,,,,,,,,,,,,,,,/&&&&&&&&&&&&&&&&&&&&*,,,,,,,,,,,,,,,,,,,,,,,,,@@@@
@@@@@@*,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&&#,,,,,,,,,,,,,,,,,,,,,,,,@@@@@
@@@@@@@,,,,,,,,,,,,,,,,,,,,,,#&&&&&&&&&&&&&&&&&&&&#,,,,,,,,,,,,,,,,,,,,,*,@@@@@@
@@@@@@@@*,,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,(@@@@@@@
@@@@@@@@@@,,,,,,,,,,,,,,,,,,,,#&&&&&&&&&&&&&&&&&&(,,,,,,,,,,,,,,,,,,,,*@@@@@@@@@
@@@@@@@@@@@@,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,*@@@@@@@@@@@
@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@%/,,,,,,,,,,,,,,,,,,,,,/&@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                             
  
 WOW Coin Twitter: https://twitter.com/wowcoinofficial
──────────────────────────────┘

 SPDX-License-Identifier: MIT */

pragma solidity 0.8.19;

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

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

    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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

contract WOW is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feeOnBuy;
    uint256 public  feeOnSell;

    uint256 public  feeOnTransfer;

    address public  feeReceiver;

    uint256 public  buyCounter;
    uint256 public  sellCounter;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("WOW", "WOW") 
    {   
        address router;
        address pinkLock;
        
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
            pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
            pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
            pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock
        } else {
            revert();
        }

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

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

        feeOnBuy  = 2;
        feeOnSell = 2;

        feeOnTransfer = 2;

        feeReceiver = 0xd7DfADED9057C80062BaCCe5b6e7489b40C68542;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[pinkLock] = true;

        maxTransactionLimitEnabled = true;

        _isExcludedFromMaxTxLimit[owner()] = true;
        _isExcludedFromMaxTxLimit[address(this)] = true;
        _isExcludedFromMaxTxLimit[address(0xdead)] = true;
        _isExcludedFromMaxTxLimit[feeReceiver] = true;
        _isExcludedFromMaxTxLimit[pinkLock] = true;

        maxWalletLimitEnabled = true;

        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[address(0xdead)] = true;
        _isExcludedFromMaxWalletLimit[feeReceiver] = true;
        _isExcludedFromMaxWalletLimit[pinkLock] = true;

        _mintOnce(owner(), 420e6 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        maxTransactionAmountBuy     = totalSupply() * 10 / 1000;
        maxTransactionAmountSell    = totalSupply() * 10 / 1000;
	
        maxWalletAmount             = totalSupply() * 10 / 1000;

        swapEnabled = false;
    }

    receive() external payable {}

    function creator() public pure returns (string memory) {
        return "tg.me/coinsult_tg";
    }

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        
        IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

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

    event FeeReceiverChanged(address feeReceiver);

    function changeFeeReceiver(address _feeReceiver) external onlyOwner{
        require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address");
        feeReceiver = _feeReceiver;

        emit FeeReceiverChanged(feeReceiver);
    }
    
    event TradingEnabled(bool tradingEnabled);

    bool public tradingEnabled;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "CSLT: Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;

        emit TradingEnabled(tradingEnabled);
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "CSLT: transfer from the zero address");
        require(to != address(0), "CSLT: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (maxTransactionLimitEnabled) 
        {
            if ((from == uniswapV2Pair || to == uniswapV2Pair) &&
                !_isExcludedFromMaxTxLimit[from] && 
                !_isExcludedFromMaxTxLimit[to]
            ) {
                if (from == uniswapV2Pair) {
                    require(
                        amount <= maxTransactionAmountBuy,  
                        "AntiWhale: Transfer amount exceeds the maxTransactionAmount"
                    );
                } else {
                    require(
                        amount <= maxTransactionAmountSell, 
                        "AntiWhale: Transfer amount exceeds the maxTransactionAmount"
                    );
                }
            }
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            feeOnBuy + feeOnSell > 0 &&
            !_isExcludedFromFees[from] &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);     

            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            if (buyCounter < 10) {
                _totalFees = 20;
            } else {
                _totalFees = feeOnBuy;
            }
            buyCounter += 1;
        } else if (to == uniswapV2Pair) {
            if (sellCounter < 10) {
                _totalFees = 20;
            } else {
                _totalFees = feeOnSell;
            }
            sellCounter += 1;
        } else {
            _totalFees = feeOnTransfer;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        if (maxWalletLimitEnabled) 
        {
            if (!_isExcludedFromMaxWalletLimit[from] && 
                !_isExcludedFromMaxWalletLimit[to] &&
                to != uniswapV2Pair
            ) {
                uint256 balance  = balanceOf(to);
                require(
                    balance + amount <= maxWalletAmount, 
                    "MaxWallet: Recipient exceeds the maxWalletAmount"
                );
            }
        }

        super._transfer(from, to, amount);
    }

    function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
        require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
        swapEnabled = _swapEnabled;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 newBalance = address(this).balance - initialBalance;

        payable(feeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }

    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    bool    public maxWalletLimitEnabled;
    uint256 public maxWalletAmount;

    event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded);
    event MaxWalletLimitStateChanged(bool maxWalletLimit);
    event MaxWalletLimitAmountChanged(uint256 maxWalletAmount);

    function setEnableMaxWalletLimit(bool enable) external onlyOwner {
        require(enable != maxWalletLimitEnabled,"Max wallet limit is already set to that state");
        maxWalletLimitEnabled = enable;

        emit MaxWalletLimitStateChanged(maxWalletLimitEnabled);
    }

    function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner {
        require(_maxWalletAmount >= (totalSupply() / (10 ** decimals())) / 100, "Max wallet percentage cannot be lower than 1%");
        maxWalletAmount = _maxWalletAmount * (10 ** decimals());

        emit MaxWalletLimitAmountChanged(maxWalletAmount);
    }

    function excludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        require( _isExcludedFromMaxWalletLimit[account] != exclude,"Account is already set to that state");
        require(account != address(this), "Can't set this address.");

        _isExcludedFromMaxWalletLimit[account] = exclude;

        emit ExcludedFromMaxWalletLimit(account, exclude);
    }

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    }

    mapping(address => bool) private _isExcludedFromMaxTxLimit;
    bool    public  maxTransactionLimitEnabled;
    uint256 public  maxTransactionAmountBuy;
    uint256 public  maxTransactionAmountSell;

    event ExcludedFromMaxTransactionLimit(address indexed account, bool isExcluded);
    event MaxTransactionLimitStateChanged(bool maxTransactionLimit);
    event MaxTransactionLimitAmountChanged(uint256 maxTransactionAmountBuy, uint256 maxTransactionAmountSell);

    function setEnableMaxTransactionLimit(bool enable) external onlyOwner {
        require(enable != maxTransactionLimitEnabled, "Max transaction limit is already set to that state");
        maxTransactionLimitEnabled = enable;

        emit MaxTransactionLimitStateChanged(maxTransactionLimitEnabled);
    }

    function setMaxTransactionAmounts(uint256 _maxTransactionAmountBuy, uint256 _maxTransactionAmountSell) external onlyOwner {
        require(
            _maxTransactionAmountBuy  >= (totalSupply() / (10 ** decimals())) / 1_000 && 
            _maxTransactionAmountSell >= (totalSupply() / (10 ** decimals())) / 1_000, 
            "Max Transaction limis cannot be lower than 0.1% of total supply"
        ); 
        maxTransactionAmountBuy  = _maxTransactionAmountBuy  * (10 ** decimals());
        maxTransactionAmountSell = _maxTransactionAmountSell * (10 ** decimals());

        emit MaxTransactionLimitAmountChanged(maxTransactionAmountBuy, maxTransactionAmountSell);
    }

    function excludeFromMaxTransactionLimit(address account, bool exclude) external onlyOwner {
        require( _isExcludedFromMaxTxLimit[account] != exclude, "Account is already set to that state");
        require(account != address(this), "Can't set this address.");

        _isExcludedFromMaxTxLimit[account] = exclude;

        emit ExcludedFromMaxTransactionLimit(account, exclude);
    }

    function isExcludedFromMaxTransaction(address account) public view returns(bool) {
        return _isExcludedFromMaxTxLimit[account];
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransactionAmountBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTransactionAmountSell","type":"uint256"}],"name":"MaxTransactionLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxTransactionLimit","type":"bool"}],"name":"MaxTransactionLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","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":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":[{"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":"buyCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"enableTrading","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":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmountBuy","type":"uint256"},{"internalType":"uint256","name":"_maxTransactionAmountSell","type":"uint256"}],"name":"setMaxTransactionAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"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":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50604080518082018252600380825262574f5760e81b602080840182905284518086019095528285528401529091906200004c8382620008ed565b5060046200005b8282620008ed565b5050506000620000706200063360201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060008046603803620000fd57507310ed43c718714eb63d5aa57b78b54704e256024e905073407993575c91ce7643a4d4ccacc9a98c36ee1bbe62000187565b4660610362000139575073d99d1c33f9fc3444f8101754abc46c52416550d19050735e5b9be5fd939c578abe5800a90c566eeeba44a562000187565b4660011480620001495750466005145b15620001825750737a250d5630b4cf539739df2c5dacb4c659f2488d90507371b5759d73262fbb223956913ecf4ecc5105764162000187565b600080fd5b60008290506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f39190620009b9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002679190620009b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620009b9565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200031c90309060001962000637565b60026009819055600a819055600b55600c80546001600160a01b03191673d7dfaded9057c80062bacce5b6e7489b40c685421790556001600860006200036a6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054851660019081179091553084528284208054861682179055908716835290822080548416821790556015805490931681179092556014906200040a6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260149093528183208054851660019081179091557f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db008054861682179055600c5482168452828420805486168217905590871683529082208054841682179055601280549093168117909255601190620004bc6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260119093528183208054851660019081179091557f97847ee99463795296047093514439c3127772df3715e628aa85601cf85417168054861682179055600c5482168452828420805486168217905590871683529120805490921617905562000586620005626005546001600160a01b031690565b620005706009600a62000b00565b6200058090631908b10062000b11565b62000763565b6113886200059360025490565b6200059f919062000b2b565b600f556103e8620005af60025490565b620005bc90600a62000b11565b620005c8919062000b2b565b6016556103e8620005d860025490565b620005e590600a62000b11565b620005f1919062000b2b565b6017556103e86200060160025490565b6200060e90600a62000b11565b6200061a919062000b2b565b60135550506010805461ff00191690555062000b649050565b3390565b6001600160a01b0383166200069f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620007025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000696565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620007bb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000696565b8060026000828254620007cf919062000b4e565b90915550506001600160a01b03821660009081526020819052604081208054839290620007fe90849062000b4e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200087357607f821691505b6020821081036200089457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008e857600081815260208120601f850160051c81016020861015620008c35750805b601f850160051c820191505b81811015620008e457828155600101620008cf565b5050505b505050565b81516001600160401b0381111562000909576200090962000848565b62000921816200091a84546200085e565b846200089a565b602080601f831160018114620009595760008415620009405750858301515b600019600386901b1c1916600185901b178555620008e4565b600085815260208120601f198616915b828110156200098a5788860151825594840194600190910190840162000969565b5085821015620009a95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009cc57600080fd5b81516001600160a01b0381168114620009e457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000a4257816000190482111562000a265762000a26620009eb565b8085161562000a3457918102915b93841c939080029062000a06565b509250929050565b60008262000a5b5750600162000afa565b8162000a6a5750600062000afa565b816001811462000a83576002811462000a8e5762000aae565b600191505062000afa565b60ff84111562000aa25762000aa2620009eb565b50506001821b62000afa565b5060208310610133831016604e8410600b841016171562000ad3575081810a62000afa565b62000adf838362000a01565b806000190482111562000af65762000af6620009eb565b0290505b92915050565b6000620009e460ff84168362000a4a565b808202811582820484141762000afa5762000afa620009eb565b60008262000b4957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000afa5762000afa620009eb565b6127688062000b746000396000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063a9059cbb116100c1578063c02466681161007a578063c024666814610789578063d2fcc001146107a9578063dd62ed3e146107c9578063e2f456051461080f578063f2fde38b14610825578063f9d0831a1461084557600080fd5b8063a9059cbb146106dd578063aa4bde28146106fd578063b1fde9f814610713578063b3f0067414610733578063b6f7f68114610753578063bb8c3ee01461077357600080fd5b80638da5cb5b116101135780638da5cb5b1461062557806391ceedbf1461064357806395d89b4114610659578063a457c2d71461066e578063a4d0047d1461068e578063a8a69b9d146106a457600080fd5b806370a0823114610585578063715018a6146105bb5780637c08b964146105d0578063880bcbc1146105f05780638a8c523c1461061057600080fd5b80632a6c7dba116101e85780634ada218b116101ac5780634ada218b146104c15780634fbee193146104e157806356a6cabf1461051a57806359136fa51461053a57806365048d08146105505780636ddd17131461056657600080fd5b80632a6c7dba1461042b5780632ba86bf21461044b578063313ce56714610465578063395093511461048157806349bd5a5e146104a157600080fd5b80631694505e1161023a5780631694505e1461034957806318160ddd1461038157806318d9ceae1461039657806321a9d82a146103cf57806323b872dd146103e957806327a14fc21461040957600080fd5b80630105d0fd1461028257806302d05d3f146102ab57806306fdde03146102ee578063095ea7b3146103035780630fa1eeab1461033357600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860165481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b6040516102a291906121fa565b3480156102fa57600080fd5b506102e1610865565b34801561030f57600080fd5b5061032361031e36600461225d565b6108f7565b60405190151581526020016102a2565b34801561033f57600080fd5b50610298600b5481565b34801561035557600080fd5b50600654610369906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561038d57600080fd5b50600254610298565b3480156103a257600080fd5b506103236103b1366004612289565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103db57600080fd5b506012546103239060ff1681565b3480156103f557600080fd5b506103236104043660046122ad565b61090e565b34801561041557600080fd5b506104296104243660046122ee565b6109c4565b005b34801561043757600080fd5b50610429610446366004612315565b610aca565b34801561045757600080fd5b506015546103239060ff1681565b34801561047157600080fd5b50604051600981526020016102a2565b34801561048d57600080fd5b5061032361049c36600461225d565b610ba9565b3480156104ad57600080fd5b50600754610369906001600160a01b031681565b3480156104cd57600080fd5b506010546103239062010000900460ff1681565b3480156104ed57600080fd5b506103236104fc366004612289565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561052657600080fd5b50610429610535366004612315565b610be5565b34801561054657600080fd5b5061029860175481565b34801561055c57600080fd5b50610298600a5481565b34801561057257600080fd5b5060105461032390610100900460ff1681565b34801561059157600080fd5b506102986105a0366004612289565b6001600160a01b031660009081526020819052604090205490565b3480156105c757600080fd5b50610429610cc9565b3480156105dc57600080fd5b506104296105eb366004612289565b610d3d565b3480156105fc57600080fd5b5061042961060b366004612332565b610e21565b34801561061c57600080fd5b50610429610f3d565b34801561063157600080fd5b506005546001600160a01b0316610369565b34801561064f57600080fd5b50610298600d5481565b34801561066557600080fd5b506102e1611015565b34801561067a57600080fd5b5061032361068936600461225d565b611024565b34801561069a57600080fd5b50610298600e5481565b3480156106b057600080fd5b506103236106bf366004612289565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156106e957600080fd5b506103236106f836600461225d565b6110bd565b34801561070957600080fd5b5061029860135481565b34801561071f57600080fd5b5061042961072e36600461236b565b6110ca565b34801561073f57600080fd5b50600c54610369906001600160a01b031681565b34801561075f57600080fd5b5061042961076e366004612390565b6111dd565b34801561077f57600080fd5b5061029860095481565b34801561079557600080fd5b506104296107a4366004612332565b611340565b3480156107b557600080fd5b506104296107c4366004612332565b6113c2565b3480156107d557600080fd5b506102986107e43660046123b2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561081b57600080fd5b50610298600f5481565b34801561083157600080fd5b50610429610840366004612289565b6114d6565b34801561085157600080fd5b50610429610860366004612289565b6115c1565b606060038054610874906123e0565b80601f01602080910402602001604051908101604052809291908181526020018280546108a0906123e0565b80156108ed5780601f106108c2576101008083540402835291602001916108ed565b820191906000526020600020905b8154815290600101906020018083116108d057829003601f168201915b5050505050905090565b6000610904338484611769565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146109ae57828110156109a15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109ae8533858403611769565b6109b985858561188d565b506001949350505050565b6005546001600160a01b031633146109ee5760405162461bcd60e51b81526004016109989061241a565b60646109fc6009600a612549565b600254610a099190612558565b610a139190612558565b811015610a785760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b6064820152608401610998565b610a846009600a612549565b610a8e908261257a565b60138190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb5942906020015b60405180910390a150565b6005546001600160a01b03163314610af45760405162461bcd60e51b81526004016109989061241a565b60125460ff16151581151503610b625760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060448201526c746f207468617420737461746560981b6064820152608401610998565b6012805460ff191682151590811790915560405160ff909116151581527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f190602001610abf565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610904918590610be0908690612591565b611769565b6005546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016109989061241a565b60155460ff16151581151503610c825760405162461bcd60e51b815260206004820152603260248201527f4d6178207472616e73616374696f6e206c696d697420697320616c72656164796044820152712073657420746f207468617420737461746560701b6064820152608401610998565b6015805460ff191682151590811790915560405160ff909116151581527fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf90602001610abf565b6005546001600160a01b03163314610cf35760405162461bcd60e51b81526004016109989061241a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d675760405162461bcd60e51b81526004016109989061241a565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610998565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990602001610abf565b6005546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b03821660009081526014602052604090205481151560ff909116151503610e8b5760405162461bcd60e51b8152600401610998906125a4565b306001600160a01b03831603610edd5760405162461bcd60e51b815260206004820152601760248201527621b0b713ba1039b2ba103a3434b99030b2323932b9b99760491b6044820152606401610998565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1091015b60405180910390a25050565b6005546001600160a01b03163314610f675760405162461bcd60e51b81526004016109989061241a565b60105462010000900460ff1615610fc05760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610998565b601080546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610874906123e0565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610998565b6110b33385858403611769565b5060019392505050565b600061090433848461188d565b6005546001600160a01b031633146110f45760405162461bcd60e51b81526004016109989061241a565b620f424061110160025490565b61110b9190612558565b821161118d5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610998565b600f8290556010805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145906020015b60405180910390a15050565b6005546001600160a01b031633146112075760405162461bcd60e51b81526004016109989061241a565b6103e86112166009600a612549565b6002546112239190612558565b61122d9190612558565b821015801561126157506103e86112466009600a612549565b6002546112539190612558565b61125d9190612558565b8110155b6112d35760405162461bcd60e51b815260206004820152603f60248201527f4d6178205472616e73616374696f6e206c696d69732063616e6e6f742062652060448201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c79006064820152608401610998565b6112df6009600a612549565b6112e9908361257a565b6016556112f86009600a612549565b611302908261257a565b60178190556016546040517f8c8cbc911b80df94332ececb8eb0945274d76fa965600a0f01f42af3f8afb131926111d1928252602082015260400190565b6005546001600160a01b0316331461136a5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610f31565b6005546001600160a01b031633146113ec5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b03821660009081526011602052604090205481151560ff90911615150361142c5760405162461bcd60e51b8152600401610998906125a4565b306001600160a01b0383160361147e5760405162461bcd60e51b815260206004820152601760248201527621b0b713ba1039b2ba103a3434b99030b2323932b9b99760491b6044820152606401610998565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c9101610f31565b6005546001600160a01b031633146115005760405162461bcd60e51b81526004016109989061241a565b6001600160a01b0381166115655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610998565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115eb5760405162461bcd60e51b81526004016109989061241a565b306001600160a01b038216036116695760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610998565b6001600160a01b038116611685576116813347611dd4565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156116d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f791906125e8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190612601565b50565b6001600160a01b0383166117cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610998565b6001600160a01b03821661182c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610998565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118ef5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610998565b6001600160a01b0382166119505760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610998565b60105462010000900460ff168061197f57506001600160a01b03831660009081526008602052604090205460ff165b806119a257506001600160a01b03821660009081526008602052604090205460ff165b6119ee5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610998565b80600003611a0757611a0283836000611e83565b505050565b60155460ff1615611ae9576007546001600160a01b0384811691161480611a3b57506007546001600160a01b038381169116145b8015611a6057506001600160a01b03831660009081526014602052604090205460ff16155b8015611a8557506001600160a01b03821660009081526014602052604090205460ff16155b15611ae9576007546001600160a01b0390811690841603611ac757601654811115611ac25760405162461bcd60e51b81526004016109989061261e565b611ae9565b601754811115611ae95760405162461bcd60e51b81526004016109989061261e565b30600090815260208190526040902054600f5481108015908190611b10575060105460ff16155b8015611b2957506007546001600160a01b038581169116145b8015611b4457506000600a54600954611b429190612591565b115b8015611b6957506001600160a01b03851660009081526008602052604090205460ff16155b8015611b7c5750601054610100900460ff165b15611ba2576010805460ff19166001179055611b9782612052565b6010805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff1680611be157506001600160a01b03851660009081526008602052604090205460ff165b80611bee575060105460ff165b15611bfb57506000611c8d565b6007546001600160a01b0390811690871603611c4757600a600d541015611c2457506014611c29565b506009545b6001600d6000828254611c3c9190612591565b90915550611c8d9050565b6007546001600160a01b0390811690861603611c8857600a600e541015611c7057506014611c75565b50600a545b6001600e6000828254611c3c9190612591565b50600b545b8015611cc65760006064611ca1838761257a565b611cab9190612558565b9050611cb7818661267b565b9450611cc4873083611e83565b505b60125460ff1615611dc1576001600160a01b03861660009081526011602052604090205460ff16158015611d1357506001600160a01b03851660009081526011602052604090205460ff16155b8015611d2d57506007546001600160a01b03868116911614155b15611dc1576001600160a01b038516600090815260208190526040902054601354611d588683612591565b1115611dbf5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b6064820152608401610998565b505b611dcc868686611e83565b505050505050565b600081471015611e265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610998565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b509095945050505050565b6001600160a01b038316611ee75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610998565b6001600160a01b038216611f495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610998565b6001600160a01b03831660009081526020819052604090205481811015611fc15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610998565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ff8908490612591565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161204491815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061208b5761208b61268e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210891906126a4565b8160018151811061211b5761211b61268e565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906121619086906000908690309042906004016126c1565b600060405180830381600087803b15801561217b57600080fd5b505af192505050801561218c575060015b61219557505050565b60006121a1834761267b565b600c549091506121ba906001600160a01b031682611dd4565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156122275785810183015185820160400152820161220b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176657600080fd5b6000806040838503121561227057600080fd5b823561227b81612248565b946020939093013593505050565b60006020828403121561229b57600080fd5b81356122a681612248565b9392505050565b6000806000606084860312156122c257600080fd5b83356122cd81612248565b925060208401356122dd81612248565b929592945050506040919091013590565b60006020828403121561230057600080fd5b5035919050565b801515811461176657600080fd5b60006020828403121561232757600080fd5b81356122a681612307565b6000806040838503121561234557600080fd5b823561235081612248565b9150602083013561236081612307565b809150509250929050565b6000806040838503121561237e57600080fd5b82359150602083013561236081612307565b600080604083850312156123a357600080fd5b50508035926020909101359150565b600080604083850312156123c557600080fd5b82356123d081612248565b9150602083013561236081612248565b600181811c908216806123f457607f821691505b60208210810361241457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124a05781600019048211156124865761248661244f565b8085161561249357918102915b93841c939080029061246a565b509250929050565b6000826124b757506001610908565b816124c457506000610908565b81600181146124da57600281146124e457612500565b6001915050610908565b60ff8411156124f5576124f561244f565b50506001821b610908565b5060208310610133831016604e8410600b8410161715612523575081810a610908565b61252d8383612465565b80600019048211156125415761254161244f565b029392505050565b60006122a660ff8416836124a8565b60008261257557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176109085761090861244f565b808201808211156109085761090861244f565b60208082526024908201527f4163636f756e7420697320616c72656164792073657420746f207468617420736040820152637461746560e01b606082015260800190565b6000602082840312156125fa57600080fd5b5051919050565b60006020828403121561261357600080fd5b81516122a681612307565b6020808252603b908201527f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560408201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000606082015260800190565b818103818111156109085761090861244f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126b657600080fd5b81516122a681612248565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127115784516001600160a01b0316835293830193918301916001016126ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201fba308671d8c78f099bf9bde4f8cd248321a575adca5799805fe1a7efc41e0c64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806370a082311161014f578063a9059cbb116100c1578063c02466681161007a578063c024666814610789578063d2fcc001146107a9578063dd62ed3e146107c9578063e2f456051461080f578063f2fde38b14610825578063f9d0831a1461084557600080fd5b8063a9059cbb146106dd578063aa4bde28146106fd578063b1fde9f814610713578063b3f0067414610733578063b6f7f68114610753578063bb8c3ee01461077357600080fd5b80638da5cb5b116101135780638da5cb5b1461062557806391ceedbf1461064357806395d89b4114610659578063a457c2d71461066e578063a4d0047d1461068e578063a8a69b9d146106a457600080fd5b806370a0823114610585578063715018a6146105bb5780637c08b964146105d0578063880bcbc1146105f05780638a8c523c1461061057600080fd5b80632a6c7dba116101e85780634ada218b116101ac5780634ada218b146104c15780634fbee193146104e157806356a6cabf1461051a57806359136fa51461053a57806365048d08146105505780636ddd17131461056657600080fd5b80632a6c7dba1461042b5780632ba86bf21461044b578063313ce56714610465578063395093511461048157806349bd5a5e146104a157600080fd5b80631694505e1161023a5780631694505e1461034957806318160ddd1461038157806318d9ceae1461039657806321a9d82a146103cf57806323b872dd146103e957806327a14fc21461040957600080fd5b80630105d0fd1461028257806302d05d3f146102ab57806306fdde03146102ee578063095ea7b3146103035780630fa1eeab1461033357600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860165481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b6040516102a291906121fa565b3480156102fa57600080fd5b506102e1610865565b34801561030f57600080fd5b5061032361031e36600461225d565b6108f7565b60405190151581526020016102a2565b34801561033f57600080fd5b50610298600b5481565b34801561035557600080fd5b50600654610369906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561038d57600080fd5b50600254610298565b3480156103a257600080fd5b506103236103b1366004612289565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103db57600080fd5b506012546103239060ff1681565b3480156103f557600080fd5b506103236104043660046122ad565b61090e565b34801561041557600080fd5b506104296104243660046122ee565b6109c4565b005b34801561043757600080fd5b50610429610446366004612315565b610aca565b34801561045757600080fd5b506015546103239060ff1681565b34801561047157600080fd5b50604051600981526020016102a2565b34801561048d57600080fd5b5061032361049c36600461225d565b610ba9565b3480156104ad57600080fd5b50600754610369906001600160a01b031681565b3480156104cd57600080fd5b506010546103239062010000900460ff1681565b3480156104ed57600080fd5b506103236104fc366004612289565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561052657600080fd5b50610429610535366004612315565b610be5565b34801561054657600080fd5b5061029860175481565b34801561055c57600080fd5b50610298600a5481565b34801561057257600080fd5b5060105461032390610100900460ff1681565b34801561059157600080fd5b506102986105a0366004612289565b6001600160a01b031660009081526020819052604090205490565b3480156105c757600080fd5b50610429610cc9565b3480156105dc57600080fd5b506104296105eb366004612289565b610d3d565b3480156105fc57600080fd5b5061042961060b366004612332565b610e21565b34801561061c57600080fd5b50610429610f3d565b34801561063157600080fd5b506005546001600160a01b0316610369565b34801561064f57600080fd5b50610298600d5481565b34801561066557600080fd5b506102e1611015565b34801561067a57600080fd5b5061032361068936600461225d565b611024565b34801561069a57600080fd5b50610298600e5481565b3480156106b057600080fd5b506103236106bf366004612289565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156106e957600080fd5b506103236106f836600461225d565b6110bd565b34801561070957600080fd5b5061029860135481565b34801561071f57600080fd5b5061042961072e36600461236b565b6110ca565b34801561073f57600080fd5b50600c54610369906001600160a01b031681565b34801561075f57600080fd5b5061042961076e366004612390565b6111dd565b34801561077f57600080fd5b5061029860095481565b34801561079557600080fd5b506104296107a4366004612332565b611340565b3480156107b557600080fd5b506104296107c4366004612332565b6113c2565b3480156107d557600080fd5b506102986107e43660046123b2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561081b57600080fd5b50610298600f5481565b34801561083157600080fd5b50610429610840366004612289565b6114d6565b34801561085157600080fd5b50610429610860366004612289565b6115c1565b606060038054610874906123e0565b80601f01602080910402602001604051908101604052809291908181526020018280546108a0906123e0565b80156108ed5780601f106108c2576101008083540402835291602001916108ed565b820191906000526020600020905b8154815290600101906020018083116108d057829003601f168201915b5050505050905090565b6000610904338484611769565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146109ae57828110156109a15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109ae8533858403611769565b6109b985858561188d565b506001949350505050565b6005546001600160a01b031633146109ee5760405162461bcd60e51b81526004016109989061241a565b60646109fc6009600a612549565b600254610a099190612558565b610a139190612558565b811015610a785760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b6064820152608401610998565b610a846009600a612549565b610a8e908261257a565b60138190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb5942906020015b60405180910390a150565b6005546001600160a01b03163314610af45760405162461bcd60e51b81526004016109989061241a565b60125460ff16151581151503610b625760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060448201526c746f207468617420737461746560981b6064820152608401610998565b6012805460ff191682151590811790915560405160ff909116151581527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f190602001610abf565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610904918590610be0908690612591565b611769565b6005546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016109989061241a565b60155460ff16151581151503610c825760405162461bcd60e51b815260206004820152603260248201527f4d6178207472616e73616374696f6e206c696d697420697320616c72656164796044820152712073657420746f207468617420737461746560701b6064820152608401610998565b6015805460ff191682151590811790915560405160ff909116151581527fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf90602001610abf565b6005546001600160a01b03163314610cf35760405162461bcd60e51b81526004016109989061241a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d675760405162461bcd60e51b81526004016109989061241a565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610998565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990602001610abf565b6005546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b03821660009081526014602052604090205481151560ff909116151503610e8b5760405162461bcd60e51b8152600401610998906125a4565b306001600160a01b03831603610edd5760405162461bcd60e51b815260206004820152601760248201527621b0b713ba1039b2ba103a3434b99030b2323932b9b99760491b6044820152606401610998565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1091015b60405180910390a25050565b6005546001600160a01b03163314610f675760405162461bcd60e51b81526004016109989061241a565b60105462010000900460ff1615610fc05760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610998565b601080546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610874906123e0565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610998565b6110b33385858403611769565b5060019392505050565b600061090433848461188d565b6005546001600160a01b031633146110f45760405162461bcd60e51b81526004016109989061241a565b620f424061110160025490565b61110b9190612558565b821161118d5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610998565b600f8290556010805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145906020015b60405180910390a15050565b6005546001600160a01b031633146112075760405162461bcd60e51b81526004016109989061241a565b6103e86112166009600a612549565b6002546112239190612558565b61122d9190612558565b821015801561126157506103e86112466009600a612549565b6002546112539190612558565b61125d9190612558565b8110155b6112d35760405162461bcd60e51b815260206004820152603f60248201527f4d6178205472616e73616374696f6e206c696d69732063616e6e6f742062652060448201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c79006064820152608401610998565b6112df6009600a612549565b6112e9908361257a565b6016556112f86009600a612549565b611302908261257a565b60178190556016546040517f8c8cbc911b80df94332ececb8eb0945274d76fa965600a0f01f42af3f8afb131926111d1928252602082015260400190565b6005546001600160a01b0316331461136a5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610f31565b6005546001600160a01b031633146113ec5760405162461bcd60e51b81526004016109989061241a565b6001600160a01b03821660009081526011602052604090205481151560ff90911615150361142c5760405162461bcd60e51b8152600401610998906125a4565b306001600160a01b0383160361147e5760405162461bcd60e51b815260206004820152601760248201527621b0b713ba1039b2ba103a3434b99030b2323932b9b99760491b6044820152606401610998565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c9101610f31565b6005546001600160a01b031633146115005760405162461bcd60e51b81526004016109989061241a565b6001600160a01b0381166115655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610998565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115eb5760405162461bcd60e51b81526004016109989061241a565b306001600160a01b038216036116695760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610998565b6001600160a01b038116611685576116813347611dd4565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156116d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f791906125e8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190612601565b50565b6001600160a01b0383166117cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610998565b6001600160a01b03821661182c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610998565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118ef5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610998565b6001600160a01b0382166119505760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610998565b60105462010000900460ff168061197f57506001600160a01b03831660009081526008602052604090205460ff165b806119a257506001600160a01b03821660009081526008602052604090205460ff165b6119ee5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610998565b80600003611a0757611a0283836000611e83565b505050565b60155460ff1615611ae9576007546001600160a01b0384811691161480611a3b57506007546001600160a01b038381169116145b8015611a6057506001600160a01b03831660009081526014602052604090205460ff16155b8015611a8557506001600160a01b03821660009081526014602052604090205460ff16155b15611ae9576007546001600160a01b0390811690841603611ac757601654811115611ac25760405162461bcd60e51b81526004016109989061261e565b611ae9565b601754811115611ae95760405162461bcd60e51b81526004016109989061261e565b30600090815260208190526040902054600f5481108015908190611b10575060105460ff16155b8015611b2957506007546001600160a01b038581169116145b8015611b4457506000600a54600954611b429190612591565b115b8015611b6957506001600160a01b03851660009081526008602052604090205460ff16155b8015611b7c5750601054610100900460ff165b15611ba2576010805460ff19166001179055611b9782612052565b6010805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff1680611be157506001600160a01b03851660009081526008602052604090205460ff165b80611bee575060105460ff165b15611bfb57506000611c8d565b6007546001600160a01b0390811690871603611c4757600a600d541015611c2457506014611c29565b506009545b6001600d6000828254611c3c9190612591565b90915550611c8d9050565b6007546001600160a01b0390811690861603611c8857600a600e541015611c7057506014611c75565b50600a545b6001600e6000828254611c3c9190612591565b50600b545b8015611cc65760006064611ca1838761257a565b611cab9190612558565b9050611cb7818661267b565b9450611cc4873083611e83565b505b60125460ff1615611dc1576001600160a01b03861660009081526011602052604090205460ff16158015611d1357506001600160a01b03851660009081526011602052604090205460ff16155b8015611d2d57506007546001600160a01b03868116911614155b15611dc1576001600160a01b038516600090815260208190526040902054601354611d588683612591565b1115611dbf5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b6064820152608401610998565b505b611dcc868686611e83565b505050505050565b600081471015611e265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610998565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b509095945050505050565b6001600160a01b038316611ee75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610998565b6001600160a01b038216611f495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610998565b6001600160a01b03831660009081526020819052604090205481811015611fc15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610998565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ff8908490612591565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161204491815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061208b5761208b61268e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210891906126a4565b8160018151811061211b5761211b61268e565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906121619086906000908690309042906004016126c1565b600060405180830381600087803b15801561217b57600080fd5b505af192505050801561218c575060015b61219557505050565b60006121a1834761267b565b600c549091506121ba906001600160a01b031682611dd4565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156122275785810183015185820160400152820161220b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176657600080fd5b6000806040838503121561227057600080fd5b823561227b81612248565b946020939093013593505050565b60006020828403121561229b57600080fd5b81356122a681612248565b9392505050565b6000806000606084860312156122c257600080fd5b83356122cd81612248565b925060208401356122dd81612248565b929592945050506040919091013590565b60006020828403121561230057600080fd5b5035919050565b801515811461176657600080fd5b60006020828403121561232757600080fd5b81356122a681612307565b6000806040838503121561234557600080fd5b823561235081612248565b9150602083013561236081612307565b809150509250929050565b6000806040838503121561237e57600080fd5b82359150602083013561236081612307565b600080604083850312156123a357600080fd5b50508035926020909101359150565b600080604083850312156123c557600080fd5b82356123d081612248565b9150602083013561236081612248565b600181811c908216806123f457607f821691505b60208210810361241457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124a05781600019048211156124865761248661244f565b8085161561249357918102915b93841c939080029061246a565b509250929050565b6000826124b757506001610908565b816124c457506000610908565b81600181146124da57600281146124e457612500565b6001915050610908565b60ff8411156124f5576124f561244f565b50506001821b610908565b5060208310610133831016604e8410600b8410161715612523575081810a610908565b61252d8383612465565b80600019048211156125415761254161244f565b029392505050565b60006122a660ff8416836124a8565b60008261257557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176109085761090861244f565b808201808211156109085761090861244f565b60208082526024908201527f4163636f756e7420697320616c72656164792073657420746f207468617420736040820152637461746560e01b606082015260800190565b6000602082840312156125fa57600080fd5b5051919050565b60006020828403121561261357600080fd5b81516122a681612307565b6020808252603b908201527f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560408201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000606082015260800190565b818103818111156109085761090861244f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126b657600080fd5b81516122a681612248565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127115784516001600160a01b0316835293830193918301916001016126ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201fba308671d8c78f099bf9bde4f8cd248321a575adca5799805fe1a7efc41e0c64736f6c63430008130033

Deployed Bytecode Sourcemap

10984:12658:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21710:39;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;21710:39:0;;;;;;;;14399:100;;;;;;;;;;-1:-1:-1;14465:26:0;;;;;;;;;;;;-1:-1:-1;;;14465:26:0;;;;14399:100;;;;;;;:::i;6896:::-;;;;;;;;;;;;;:::i;7809:169::-;;;;;;;;;;-1:-1:-1;7809:169:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7809:169:0;1205:187:1;11277:29:0;;;;;;;;;;;;;;;;11064:41;;;;;;;;;;-1:-1:-1;11064:41:0;;;;-1:-1:-1;;;;;11064:41:0;;;;;;-1:-1:-1;;;;;1586:32:1;;;1568:51;;1556:2;1541:18;11064:41:0;1397:228:1;7216:108:0;;;;;;;;;;-1:-1:-1;7304:12:0;;7216:108;;23498:141;;;;;;;;;;-1:-1:-1;23498:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;23597:34:0;23573:4;23597:34;;;:25;:34;;;;;;;;;23498:141;20118:36;;;;;;;;;;-1:-1:-1;20118:36:0;;;;;;;;7986:573;;;;;;;;;;-1:-1:-1;7986:573:0;;;;;:::i;:::-;;:::i;20696:340::-;;;;;;;;;;-1:-1:-1;20696:340:0;;;;;:::i;:::-;;:::i;:::-;;20408:280;;;;;;;;;;-1:-1:-1;20408:280:0;;;;;:::i;:::-;;:::i;21661:42::-;;;;;;;;;;-1:-1:-1;21661:42:0;;;;;;;;7116:92;;;;;;;;;;-1:-1:-1;7116:92:0;;7199:1;3039:36:1;;3027:2;3012:18;7116:92:0;2897:184:1;8567:215:0;;;;;;;;;;-1:-1:-1;8567:215:0;;;;;:::i;:::-;;:::i;11112:29::-;;;;;;;;;;-1:-1:-1;11112:29:0;;;;-1:-1:-1;;;;;11112:29:0;;;15620:26;;;;;;;;;;-1:-1:-1;15620:26:0;;;;;;;;;;;15115:125;;;;;;;;;;-1:-1:-1;15115:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;15204:28:0;15180:4;15204:28;;;:19;:28;;;;;;;;;15115:125;22075:311;;;;;;;;;;-1:-1:-1;22075:311:0;;;;;:::i;:::-;;:::i;21756:40::-;;;;;;;;;;;;;;;;11243:25;;;;;;;;;;;;;;;;11494:26;;;;;;;;;;-1:-1:-1;11494:26:0;;;;;;;;;;;7332:127;;;;;;;;;;-1:-1:-1;7332:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7433:18:0;7406:7;7433:18;;;;;;;;;;;;7332:127;6085:148;;;;;;;;;;;;;:::i;15302:256::-;;;;;;;;;;-1:-1:-1;15302:256:0;;;;;:::i;:::-;;:::i;23091:399::-;;;;;;;;;;-1:-1:-1;23091:399:0;;;;;:::i;:::-;;:::i;15655:229::-;;;;;;;;;;;;;:::i;5871:79::-;;;;;;;;;;-1:-1:-1;5936:6:0;;-1:-1:-1;;;;;5936:6:0;5871:79;;11351:26;;;;;;;;;;;;;;;;7004:104;;;;;;;;;;;;;:::i;8790:413::-;;;;;;;;;;-1:-1:-1;8790:413:0;;;;;:::i;:::-;;:::i;11384:27::-;;;;;;;;;;;;;;;;21443:145;;;;;;;;;;-1:-1:-1;21443:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;21542:38:0;21518:4;21542:38;;;:29;:38;;;;;;;;;21443:145;7467:175;;;;;;;;;;-1:-1:-1;7467:175:0;;;;;:::i;:::-;;:::i;20161:30::-;;;;;;;;;;;;;;;;18980:366;;;;;;;;;;-1:-1:-1;18980:366:0;;;;;:::i;:::-;;:::i;11315:27::-;;;;;;;;;;-1:-1:-1;11315:27:0;;;;-1:-1:-1;;;;;11315:27:0;;;22394:689;;;;;;;;;;-1:-1:-1;22394:689:0;;;;;:::i;:::-;;:::i;11212:24::-;;;;;;;;;;;;;;;;14922:185;;;;;;;;;;-1:-1:-1;14922:185:0;;;;;:::i;:::-;;:::i;21044:391::-;;;;;;;;;;-1:-1:-1;21044:391:0;;;;;:::i;:::-;;:::i;7650:151::-;;;;;;;;;;-1:-1:-1;7650:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7766:18:0;;;7739:7;7766:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7650:151;11420:34;;;;;;;;;;;;;;;;6241:244;;;;;;;;;;-1:-1:-1;6241:244:0;;;;;:::i;:::-;;:::i;14507:407::-;;;;;;;;;;-1:-1:-1;14507:407:0;;;;;:::i;:::-;;:::i;6896:100::-;6950:13;6983:5;6976:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:100;:::o;7809:169::-;7892:4;7909:39;5274:10;7932:7;7941:6;7909:8;:39::i;:::-;-1:-1:-1;7966:4:0;7809:169;;;;;:::o;7986:573::-;-1:-1:-1;;;;;8170:19:0;;8126:4;8170:19;;;:11;:19;;;;;;;;5274:10;8170:33;;;;;;;;-1:-1:-1;;8218:37:0;;8214:265;;8300:6;8280:16;:26;;8272:79;;;;-1:-1:-1;;;8272:79:0;;5228:2:1;8272:79:0;;;5210:21:1;5267:2;5247:18;;;5240:30;5306:34;5286:18;;;5279:62;-1:-1:-1;;;5357:18:1;;;5350:38;5405:19;;8272:79:0;;;;;;;;;8395:57;8404:6;5274:10;8445:6;8426:16;:25;8395:8;:57::i;:::-;8491:36;8501:6;8509:9;8520:6;8491:9;:36::i;:::-;-1:-1:-1;8547:4:0;;7986:573;-1:-1:-1;;;;7986:573:0:o;20696:340::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;20847:3:::1;20826:16;7199:1:::0;20826:2:::1;:16;:::i;:::-;7304:12:::0;;20809:34:::1;;;;:::i;:::-;20808:42;;;;:::i;:::-;20788:16;:62;;20780:120;;;::::0;-1:-1:-1;;;20780:120:0;;7735:2:1;20780:120:0::1;::::0;::::1;7717:21:1::0;7774:2;7754:18;;;7747:30;7813:34;7793:18;;;7786:62;-1:-1:-1;;;7864:18:1;;;7857:43;7917:19;;20780:120:0::1;7533:409:1::0;20780:120:0::1;20949:16;7199:1:::0;20949:2:::1;:16;:::i;:::-;20929:37;::::0;:16;:37:::1;:::i;:::-;20911:15;:55:::0;;;20984:44:::1;::::0;160:25:1;;;20984:44:0::1;::::0;148:2:1;133:18;20984:44:0::1;;;;;;;;20696:340:::0;:::o;20408:280::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;20502:21:::1;::::0;::::1;;20492:31;;::::0;::::1;;::::0;20484:88:::1;;;::::0;-1:-1:-1;;;20484:88:0;;8322:2:1;20484:88:0::1;::::0;::::1;8304:21:1::0;8361:2;8341:18;;;8334:30;8400:34;8380:18;;;8373:62;-1:-1:-1;;;8451:18:1;;;8444:43;8504:19;;20484:88:0::1;8120:409:1::0;20484:88:0::1;20583:21;:30:::0;;-1:-1:-1;;20583:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20631:49:::1;::::0;20583:30:::1;20658:21:::0;;;1370:14:1;1363:22;1345:41;;20631:49:0::1;::::0;1333:2:1;1318:18;20631:49:0::1;1205:187:1::0;8567:215:0;5274:10;8655:4;8704:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8704:34:0;;;;;;;;;;8655:4;;8672:80;;8695:7;;8704:47;;8741:10;;8704:47;:::i;:::-;8672:8;:80::i;22075:311::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;22174:26:::1;::::0;::::1;;22164:36;;::::0;::::1;;::::0;22156:99:::1;;;::::0;-1:-1:-1;;;22156:99:0;;8866:2:1;22156:99:0::1;::::0;::::1;8848:21:1::0;8905:2;8885:18;;;8878:30;8944:34;8924:18;;;8917:62;-1:-1:-1;;;8995:18:1;;;8988:48;9053:19;;22156:99:0::1;8664:414:1::0;22156:99:0::1;22266:26;:35:::0;;-1:-1:-1;;22266:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;22319:59:::1;::::0;22266:35:::1;22351:26:::0;;;1370:14:1;1363:22;1345:41;;22319:59:0::1;::::0;1333:2:1;1318:18;22319:59:0::1;1205:187:1::0;6085:148:0;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;6176:6:::1;::::0;6155:40:::1;::::0;6192:1:::1;::::0;-1:-1:-1;;;;;6176:6:0::1;::::0;6155:40:::1;::::0;6192:1;;6155:40:::1;6206:6;:19:::0;;-1:-1:-1;;;;;;6206:19:0::1;::::0;;6085:148::o;15302:256::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15388:26:0;::::1;15380:84;;;::::0;-1:-1:-1;;;15380:84:0;;9285:2:1;15380:84:0::1;::::0;::::1;9267:21:1::0;9324:2;9304:18;;;9297:30;9363:34;9343:18;;;9336:62;-1:-1:-1;;;9414:18:1;;;9407:43;9467:19;;15380:84:0::1;9083:409:1::0;15380:84:0::1;15475:11;:26:::0;;-1:-1:-1;;;;;;15475:26:0::1;-1:-1:-1::0;;;;;15475:26:0;::::1;::::0;;::::1;::::0;;;15519:31:::1;::::0;1568:51:1;;;15519:31:0::1;::::0;1556:2:1;1541:18;15519:31:0::1;1397:228:1::0;23091:399:0;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23201:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;:45;::::1;;:34;::::0;;::::1;:45;;::::0;23192:95:::1;;;;-1:-1:-1::0;;;23192:95:0::1;;;;;;;:::i;:::-;23325:4;-1:-1:-1::0;;;;;23306:24:0;::::1;::::0;23298:60:::1;;;::::0;-1:-1:-1;;;23298:60:0;;10104:2:1;23298:60:0::1;::::0;::::1;10086:21:1::0;10143:2;10123:18;;;10116:30;-1:-1:-1;;;10162:18:1;;;10155:53;10225:18;;23298:60:0::1;9902:347:1::0;23298:60:0::1;-1:-1:-1::0;;;;;23371:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;;;;:44;;-1:-1:-1;;23371:44:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23433:49;;1345:41:1;;;23433:49:0::1;::::0;1318:18:1;23433:49:0::1;;;;;;;;23091:399:::0;;:::o;15655:229::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;15718:14:::1;::::0;;;::::1;;;15717:15;15709:58;;;::::0;-1:-1:-1;;;15709:58:0;;10456:2:1;15709:58:0::1;::::0;::::1;10438:21:1::0;10495:2;10475:18;;;10468:30;10534:32;10514:18;;;10507:60;10584:18;;15709:58:0::1;10254:354:1::0;15709:58:0::1;15778:14;:21:::0;;15810:18;-1:-1:-1;;15810:18:0;;;;;;;;15846:30:::1;::::0;15778:21;15861:14;;::::1;15778:21;15861:14;1370::1::0;1363:22;1345:41;;15846:30:0::1;::::0;1333:2:1;1318:18;15846:30:0::1;;;;;;;15655:229::o:0;7004:104::-;7060:13;7093:7;7086:14;;;;;:::i;8790:413::-;5274:10;8883:4;8927:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8927:34:0;;;;;;;;;;8980:35;;;;8972:85;;;;-1:-1:-1;;;8972:85:0;;10815:2:1;8972:85:0;;;10797:21:1;10854:2;10834:18;;;10827:30;10893:34;10873:18;;;10866:62;-1:-1:-1;;;10944:18:1;;;10937:35;10989:19;;8972:85:0;10613:401:1;8972:85:0;9093:67;5274:10;9116:7;9144:15;9125:16;:34;9093:8;:67::i;:::-;-1:-1:-1;9191:4:0;;8790:413;-1:-1:-1;;;8790:413:0:o;7467:175::-;7553:4;7570:42;5274:10;7594:9;7605:6;7570:9;:42::i;18980:366::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;19114:9:::1;19098:13;7304:12:::0;;;7216:108;19098:13:::1;:25;;;;:::i;:::-;19086:9;:37;19078:119;;;::::0;-1:-1:-1;;;19078:119:0;;11221:2:1;19078:119:0::1;::::0;::::1;11203:21:1::0;11260:2;11240:18;;;11233:30;11299:34;11279:18;;;11272:62;11370:34;11350:18;;;11343:62;-1:-1:-1;;;11421:19:1;;;11414:36;11467:19;;19078:119:0::1;11019:473:1::0;19078:119:0::1;19208:18;:30:::0;;;19249:11:::1;:26:::0;;-1:-1:-1;;19249:26:0::1;;::::0;::::1;;;;::::0;;19293:45:::1;::::0;160:25:1;;;19293:45:0::1;::::0;148:2:1;133:18;19293:45:0::1;;;;;;;;18980:366:::0;;:::o;22394:689::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;22617:5:::1;22596:16;7199:1:::0;22596:2:::1;:16;:::i;:::-;7304:12:::0;;22579:34:::1;;;;:::i;:::-;22578:44;;;;:::i;:::-;22549:24;:73;;:164;;;;-1:-1:-1::0;22708:5:0::1;22687:16;7199:1:::0;22687:2:::1;:16;:::i;:::-;7304:12:::0;;22670:34:::1;;;;:::i;:::-;22669:44;;;;:::i;:::-;22640:25;:73;;22549:164;22527:278;;;::::0;-1:-1:-1;;;22527:278:0;;11699:2:1;22527:278:0::1;::::0;::::1;11681:21:1::0;11738:2;11718:18;;;11711:30;11777:34;11757:18;;;11750:62;11848:33;11828:18;;;11821:61;11899:19;;22527:278:0::1;11497:427:1::0;22527:278:0::1;22873:16;7199:1:::0;22873:2:::1;:16;:::i;:::-;22844:46;::::0;:24;:46:::1;:::i;:::-;22817:23;:73:::0;22957:16:::1;7199:1:::0;22957:2:::1;:16;:::i;:::-;22928:46;::::0;:25;:46:::1;:::i;:::-;22901:24;:73:::0;;;23025:23:::1;::::0;22992:83:::1;::::0;::::1;::::0;::::1;::::0;12103:25:1;;12159:2;12144:18;;12137:34;12091:2;12076:18;;11929:248;14922:185:0;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15008:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;15008:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15065:34;;1345:41:1;;;15065:34:0::1;::::0;1318:18:1;15065:34:0::1;1205:187:1::0;21044:391:0;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21144:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;21135:98:::1;;;;-1:-1:-1::0;;;21135:98:0::1;;;;;;;:::i;:::-;21271:4;-1:-1:-1::0;;;;;21252:24:0;::::1;::::0;21244:60:::1;;;::::0;-1:-1:-1;;;21244:60:0;;10104:2:1;21244:60:0::1;::::0;::::1;10086:21:1::0;10143:2;10123:18;;;10116:30;-1:-1:-1;;;10162:18:1;;;10155:53;10225:18;;21244:60:0::1;9902:347:1::0;21244:60:0::1;-1:-1:-1::0;;;;;21317:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;21317:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21383:44;;1345:41:1;;;21383:44:0::1;::::0;1318:18:1;21383:44:0::1;1205:187:1::0;6241:244:0;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6330:22:0;::::1;6322:73;;;::::0;-1:-1:-1;;;6322:73:0;;12384:2:1;6322:73:0::1;::::0;::::1;12366:21:1::0;12423:2;12403:18;;;12396:30;12462:34;12442:18;;;12435:62;-1:-1:-1;;;12513:18:1;;;12506:36;12559:19;;6322:73:0::1;12182:402:1::0;6322:73:0::1;6432:6;::::0;6411:38:::1;::::0;-1:-1:-1;;;;;6411:38:0;;::::1;::::0;6432:6:::1;::::0;6411:38:::1;::::0;6432:6:::1;::::0;6411:38:::1;6460:6;:17:::0;;-1:-1:-1;;;;;;6460:17:0::1;-1:-1:-1::0;;;;;6460:17:0;;;::::1;::::0;;;::::1;::::0;;6241:244::o;14507:407::-;5998:6;;-1:-1:-1;;;;;5998:6:0;5274:10;5998:22;5990:67;;;;-1:-1:-1;;;5990:67:0;;;;;;;:::i;:::-;14603:4:::1;-1:-1:-1::0;;;;;14586:22:0;::::1;::::0;14578:96:::1;;;::::0;-1:-1:-1;;;14578:96:0;;12791:2:1;14578:96:0::1;::::0;::::1;12773:21:1::0;12830:2;12810:18;;;12803:30;12869:34;12849:18;;;12842:62;12940:31;12920:18;;;12913:59;12989:19;;14578:96:0::1;12589:425:1::0;14578:96:0::1;-1:-1:-1::0;;;;;14689:21:0;::::1;14685:127;;14727:52;14735:10;14757:21;14727:29;:52::i;:::-;;14507:407:::0;:::o;14685:127::-:1;14867:38;::::0;-1:-1:-1;;;14867:38:0;;14899:4:::1;14867:38;::::0;::::1;1568:51:1::0;-1:-1:-1;;;;;14832:22:0;::::1;::::0;::::1;::::0;14855:10:::1;::::0;14832:22;;14867:23:::1;::::0;1541:18:1;;14867:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14832:74;::::0;-1:-1:-1;;;;;;14832:74:0::1;::::0;;;;;;-1:-1:-1;;;;;13400:32:1;;;14832:74:0::1;::::0;::::1;13382:51:1::0;13449:18;;;13442:34;13355:18;;14832:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6068:1::-;14507:407:::0;:::o;10597:380::-;-1:-1:-1;;;;;10733:19:0;;10725:68;;;;-1:-1:-1;;;10725:68:0;;13939:2:1;10725:68:0;;;13921:21:1;13978:2;13958:18;;;13951:30;14017:34;13997:18;;;13990:62;-1:-1:-1;;;14068:18:1;;;14061:34;14112:19;;10725:68:0;13737:400:1;10725:68:0;-1:-1:-1;;;;;10812:21:0;;10804:68;;;;-1:-1:-1;;;10804:68:0;;14344:2:1;10804:68:0;;;14326:21:1;14383:2;14363:18;;;14356:30;14422:34;14402:18;;;14395:62;-1:-1:-1;;;14473:18:1;;;14466:32;14515:19;;10804:68:0;14142:398:1;10804:68:0;-1:-1:-1;;;;;10885:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10937:32;;160:25:1;;;10937:32:0;;133:18:1;10937:32:0;;;;;;;10597:380;;;:::o;15892:3080::-;-1:-1:-1;;;;;15989:18:0;;15981:67;;;;-1:-1:-1;;;15981:67:0;;14747:2:1;15981:67:0;;;14729:21:1;14786:2;14766:18;;;14759:30;14825:34;14805:18;;;14798:62;-1:-1:-1;;;14876:18:1;;;14869:34;14920:19;;15981:67:0;14545:400:1;15981:67:0;-1:-1:-1;;;;;16067:16:0;;16059:63;;;;-1:-1:-1;;;16059:63:0;;15152:2:1;16059:63:0;;;15134:21:1;15191:2;15171:18;;;15164:30;15230:34;15210:18;;;15203:62;-1:-1:-1;;;15281:18:1;;;15274:32;15323:19;;16059:63:0;14950:398:1;16059:63:0;16141:14;;;;;;;;:43;;-1:-1:-1;;;;;;16159:25:0;;;;;;:19;:25;;;;;;;;16141:43;:70;;;-1:-1:-1;;;;;;16188:23:0;;;;;;:19;:23;;;;;;;;16141:70;16133:113;;;;-1:-1:-1;;;16133:113:0;;15555:2:1;16133:113:0;;;15537:21:1;15594:2;15574:18;;;15567:30;15633:32;15613:18;;;15606:60;15683:18;;16133:113:0;15353:354:1;16133:113:0;16270:6;16280:1;16270:11;16266:93;;16298:28;16314:4;16320:2;16324:1;16298:15;:28::i;:::-;15892:3080;;;:::o;16266:93::-;16375:26;;;;16371:752;;;16441:13;;-1:-1:-1;;;;;16433:21:0;;;16441:13;;16433:21;;:44;;-1:-1:-1;16464:13:0;;-1:-1:-1;;;;;16458:19:0;;;16464:13;;16458:19;16433:44;16432:99;;;;-1:-1:-1;;;;;;16500:31:0;;;;;;:25;:31;;;;;;;;16499:32;16432:99;:151;;;;-1:-1:-1;;;;;;16554:29:0;;;;;;:25;:29;;;;;;;;16553:30;16432:151;16428:684;;;16630:13;;-1:-1:-1;;;;;16630:13:0;;;16622:21;;;;16618:479;;16712:23;;16702:6;:33;;16668:180;;;;-1:-1:-1;;;16668:180:0;;;;;;;:::i;:::-;16618:479;;;16941:24;;16931:6;:34;;16897:180;;;;-1:-1:-1;;;16897:180:0;;;;;;;:::i;:::-;17178:4;17129:28;7433:18;;;;;;;;;;;17236;;17212:42;;;;;;;17271:33;;-1:-1:-1;17296:8:0;;;;17295:9;17271:33;:69;;;;-1:-1:-1;17327:13:0;;-1:-1:-1;;;;;17321:19:0;;;17327:13;;17321:19;17271:69;:110;;;;;17380:1;17368:9;;17357:8;;:20;;;;:::i;:::-;:24;17271:110;:153;;;;-1:-1:-1;;;;;;17399:25:0;;;;;;:19;:25;;;;;;;;17398:26;17271:153;:181;;;;-1:-1:-1;17441:11:0;;;;;;;17271:181;17267:330;;;17479:8;:15;;-1:-1:-1;;17479:15:0;17490:4;17479:15;;;17511:36;17526:20;17511:14;:36::i;:::-;17569:8;:16;;-1:-1:-1;;17569:16:0;;;17267:330;-1:-1:-1;;;;;17642:25:0;;17609:18;17642:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17671:23:0;;;;;;:19;:23;;;;;;;;17642:52;:64;;;-1:-1:-1;17698:8:0;;;;17642:64;17638:615;;;-1:-1:-1;17736:1:0;17638:615;;;17767:13;;-1:-1:-1;;;;;17767:13:0;;;17759:21;;;;17755:498;;17814:2;17801:10;;:15;17797:133;;;-1:-1:-1;17850:2:0;17797:133;;;-1:-1:-1;17906:8:0;;17797:133;17958:1;17944:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;17755:498:0;;-1:-1:-1;17755:498:0;;17987:13;;-1:-1:-1;;;;;17987:13:0;;;17981:19;;;;17977:276;;18035:2;18021:11;;:16;18017:135;;;-1:-1:-1;18071:2:0;18017:135;;;-1:-1:-1;18127:9:0;;18017:135;18181:1;18166:11;;:16;;;;;;;:::i;17977:276::-;-1:-1:-1;18228:13:0;;17977:276;18269:14;;18265:183;;18300:12;18339:3;18316:19;18325:10;18316:6;:19;:::i;:::-;18315:27;;;;:::i;:::-;18300:42;-1:-1:-1;18366:13:0;18300:42;18366:6;:13;:::i;:::-;18357:22;;18394:42;18410:4;18424;18431;18394:15;:42::i;:::-;18285:163;18265:183;18464:21;;;;18460:459;;;-1:-1:-1;;;;;18517:35:0;;;;;;:29;:35;;;;;;;;18516:36;:92;;;;-1:-1:-1;;;;;;18575:33:0;;;;;;:29;:33;;;;;;;;18574:34;18516:92;:132;;;;-1:-1:-1;18635:13:0;;-1:-1:-1;;;;;18629:19:0;;;18635:13;;18629:19;;18516:132;18512:396;;;-1:-1:-1;;;;;7433:18:0;;18683:15;7433:18;;;;;;;;;;;18784:15;;18764:16;18774:6;7433:18;18764:16;:::i;:::-;:35;;18734:158;;;;-1:-1:-1;;;18734:158:0;;16475:2:1;18734:158:0;;;16457:21:1;16514:2;16494:18;;;16487:30;16553:34;16533:18;;;16526:62;-1:-1:-1;;;16604:18:1;;;16597:46;16660:19;;18734:158:0;16273:412:1;18734:158:0;18664:244;18512:396;18931:33;18947:4;18953:2;18957:6;18931:15;:33::i;:::-;15970:3002;;;15892:3080;;;:::o;4869:285::-;4948:4;4997:6;4972:21;:31;;4964:73;;;;-1:-1:-1;;;4964:73:0;;16892:2:1;4964:73:0;;;16874:21:1;16931:2;16911:18;;;16904:30;16970:31;16950:18;;;16943:59;17019:18;;4964:73:0;16690:353:1;4964:73:0;5051:12;5069:9;-1:-1:-1;;;;;5069:14:0;5091:6;5069:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5050:52:0;;4869:285;-1:-1:-1;;;;;4869:285:0:o;9211:614::-;-1:-1:-1;;;;;9351:20:0;;9343:70;;;;-1:-1:-1;;;9343:70:0;;17460:2:1;9343:70:0;;;17442:21:1;17499:2;17479:18;;;17472:30;17538:34;17518:18;;;17511:62;-1:-1:-1;;;17589:18:1;;;17582:35;17634:19;;9343:70:0;17258:401:1;9343:70:0;-1:-1:-1;;;;;9432:23:0;;9424:71;;;;-1:-1:-1;;;9424:71:0;;17866:2:1;9424:71:0;;;17848:21:1;17905:2;17885:18;;;17878:30;17944:34;17924:18;;;17917:62;-1:-1:-1;;;17995:18:1;;;17988:33;18038:19;;9424:71:0;17664:399:1;9424:71:0;-1:-1:-1;;;;;9532:17:0;;9508:21;9532:17;;;;;;;;;;;9568:23;;;;9560:74;;;;-1:-1:-1;;;9560:74:0;;18270:2:1;9560:74:0;;;18252:21:1;18309:2;18289:18;;;18282:30;18348:34;18328:18;;;18321:62;-1:-1:-1;;;18399:18:1;;;18392:36;18445:19;;9560:74:0;18068:402:1;9560:74:0;-1:-1:-1;;;;;9670:17:0;;;:9;:17;;;;;;;;;;;9690:22;;;9670:42;;9734:20;;;;;;;;:30;;9706:6;;9670:9;9734:30;;9706:6;;9734:30;:::i;:::-;;;;;;;;9799:9;-1:-1:-1;;;;;9782:35:0;9791:6;-1:-1:-1;;;;;9782:35:0;;9810:6;9782:35;;;;160:25:1;;148:2;133:18;;14:177;9782:35:0;;;;;;;;9332:493;9211:614;;;:::o;19354:687::-;19501:16;;;19515:1;19501:16;;;;;;;;19443:21;;19418:22;;19501:16;19515:1;19501:16;;;;;;;;;;-1:-1:-1;19501:16:0;19477:40;;19546:4;19528;19533:1;19528:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19528:23:0;;;:7;;;;;;;;;;:23;;;;19572:15;;:22;;;-1:-1:-1;;;19572:22:0;;;;:15;;;;;:20;;:22;;;;;19528:7;;19572:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19562:4;19567:1;19562:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19562:32:0;;;:7;;;;;;;;;:32;19611:15;;:196;;-1:-1:-1;;;19611:196:0;;:15;;;:66;;:196;;19692:11;;19611:15;;19734:4;;19761;;19781:15;;19611:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19607:243;;19832:7;;19354:687;:::o;19607:243::-;19862:18;19883:38;19907:14;19883:21;:38;:::i;:::-;19942:11;;19862:59;;-1:-1:-1;19934:42:0;;-1:-1:-1;;;;;19942:11:0;19862:59;19934:30;:42::i;:::-;-1:-1:-1;19994:39:0;;;12103:25:1;;;12159:2;12144:18;;12137:34;;;19994:39:0;;12076:18:1;19994:39:0;;;;;;;19407:634;;;19354:687;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1630:247::-;1689:6;1742:2;1730:9;1721:7;1717:23;1713:32;1710:52;;;1758:1;1755;1748:12;1710:52;1797:9;1784:23;1816:31;1841:5;1816:31;:::i;:::-;1866:5;1630:247;-1:-1:-1;;;1630:247:1:o;1882:456::-;1959:6;1967;1975;2028:2;2016:9;2007:7;2003:23;1999:32;1996:52;;;2044:1;2041;2034:12;1996:52;2083:9;2070:23;2102:31;2127:5;2102:31;:::i;:::-;2152:5;-1:-1:-1;2209:2:1;2194:18;;2181:32;2222:33;2181:32;2222:33;:::i;:::-;1882:456;;2274:7;;-1:-1:-1;;;2328:2:1;2313:18;;;;2300:32;;1882:456::o;2343:180::-;2402:6;2455:2;2443:9;2434:7;2430:23;2426:32;2423:52;;;2471:1;2468;2461:12;2423:52;-1:-1:-1;2494:23:1;;2343:180;-1:-1:-1;2343:180:1:o;2528:118::-;2614:5;2607:13;2600:21;2593:5;2590:32;2580:60;;2636:1;2633;2626:12;2651:241;2707:6;2760:2;2748:9;2739:7;2735:23;2731:32;2728:52;;;2776:1;2773;2766:12;2728:52;2815:9;2802:23;2834:28;2856:5;2834:28;:::i;3294:382::-;3359:6;3367;3420:2;3408:9;3399:7;3395:23;3391:32;3388:52;;;3436:1;3433;3426:12;3388:52;3475:9;3462:23;3494:31;3519:5;3494:31;:::i;:::-;3544:5;-1:-1:-1;3601:2:1;3586:18;;3573:32;3614:30;3573:32;3614:30;:::i;:::-;3663:7;3653:17;;;3294:382;;;;;:::o;3681:309::-;3746:6;3754;3807:2;3795:9;3786:7;3782:23;3778:32;3775:52;;;3823:1;3820;3813:12;3775:52;3859:9;3846:23;3836:33;;3919:2;3908:9;3904:18;3891:32;3932:28;3954:5;3932:28;:::i;3995:248::-;4063:6;4071;4124:2;4112:9;4103:7;4099:23;4095:32;4092:52;;;4140:1;4137;4130:12;4092:52;-1:-1:-1;;4163:23:1;;;4233:2;4218:18;;;4205:32;;-1:-1:-1;3995:248:1:o;4248:388::-;4316:6;4324;4377:2;4365:9;4356:7;4352:23;4348:32;4345:52;;;4393:1;4390;4383:12;4345:52;4432:9;4419:23;4451:31;4476:5;4451:31;:::i;:::-;4501:5;-1:-1:-1;4558:2:1;4543:18;;4530:32;4571:33;4530:32;4571:33;:::i;4641:380::-;4720:1;4716:12;;;;4763;;;4784:61;;4838:4;4830:6;4826:17;4816:27;;4784:61;4891:2;4883:6;4880:14;4860:18;4857:38;4854:161;;4937:10;4932:3;4928:20;4925:1;4918:31;4972:4;4969:1;4962:15;5000:4;4997:1;4990:15;4854:161;;4641:380;;;:::o;5435:356::-;5637:2;5619:21;;;5656:18;;;5649:30;5715:34;5710:2;5695:18;;5688:62;5782:2;5767:18;;5435:356::o;5796:127::-;5857:10;5852:3;5848:20;5845:1;5838:31;5888:4;5885:1;5878:15;5912:4;5909:1;5902:15;5928:422;6017:1;6060:5;6017:1;6074:270;6095:7;6085:8;6082:21;6074:270;;;6154:4;6150:1;6146:6;6142:17;6136:4;6133:27;6130:53;;;6163:18;;:::i;:::-;6213:7;6203:8;6199:22;6196:55;;;6233:16;;;;6196:55;6312:22;;;;6272:15;;;;6074:270;;;6078:3;5928:422;;;;;:::o;6355:806::-;6404:5;6434:8;6424:80;;-1:-1:-1;6475:1:1;6489:5;;6424:80;6523:4;6513:76;;-1:-1:-1;6560:1:1;6574:5;;6513:76;6605:4;6623:1;6618:59;;;;6691:1;6686:130;;;;6598:218;;6618:59;6648:1;6639:10;;6662:5;;;6686:130;6723:3;6713:8;6710:17;6707:43;;;6730:18;;:::i;:::-;-1:-1:-1;;6786:1:1;6772:16;;6801:5;;6598:218;;6900:2;6890:8;6887:16;6881:3;6875:4;6872:13;6868:36;6862:2;6852:8;6849:16;6844:2;6838:4;6835:12;6831:35;6828:77;6825:159;;;-1:-1:-1;6937:19:1;;;6969:5;;6825:159;7016:34;7041:8;7035:4;7016:34;:::i;:::-;7086:6;7082:1;7078:6;7074:19;7065:7;7062:32;7059:58;;;7097:18;;:::i;:::-;7135:20;;6355:806;-1:-1:-1;;;6355:806:1:o;7166:140::-;7224:5;7253:47;7294:4;7284:8;7280:19;7274:4;7253:47;:::i;7311:217::-;7351:1;7377;7367:132;;7421:10;7416:3;7412:20;7409:1;7402:31;7456:4;7453:1;7446:15;7484:4;7481:1;7474:15;7367:132;-1:-1:-1;7513:9:1;;7311:217::o;7947:168::-;8020:9;;;8051;;8068:15;;;8062:22;;8048:37;8038:71;;8089:18;;:::i;8534:125::-;8599:9;;;8620:10;;;8617:36;;;8633:18;;:::i;9497:400::-;9699:2;9681:21;;;9738:2;9718:18;;;9711:30;9777:34;9772:2;9757:18;;9750:62;-1:-1:-1;;;9843:2:1;9828:18;;9821:34;9887:3;9872:19;;9497:400::o;13019:184::-;13089:6;13142:2;13130:9;13121:7;13117:23;13113:32;13110:52;;;13158:1;13155;13148:12;13110:52;-1:-1:-1;13181:16:1;;13019:184;-1:-1:-1;13019:184:1:o;13487:245::-;13554:6;13607:2;13595:9;13586:7;13582:23;13578:32;13575:52;;;13623:1;13620;13613:12;13575:52;13655:9;13649:16;13674:28;13696:5;13674:28;:::i;15712:423::-;15914:2;15896:21;;;15953:2;15933:18;;;15926:30;15992:34;15987:2;15972:18;;15965:62;16063:29;16058:2;16043:18;;16036:57;16125:3;16110:19;;15712:423::o;16140:128::-;16207:9;;;16228:11;;;16225:37;;;16242:18;;:::i;18607:127::-;18668:10;18663:3;18659:20;18656:1;18649:31;18699:4;18696:1;18689:15;18723:4;18720:1;18713:15;18739:251;18809:6;18862:2;18850:9;18841:7;18837:23;18833:32;18830:52;;;18878:1;18875;18868:12;18830:52;18910:9;18904:16;18929:31;18954:5;18929:31;:::i;18995:980::-;19257:4;19305:3;19294:9;19290:19;19336:6;19325:9;19318:25;19362:2;19400:6;19395:2;19384:9;19380:18;19373:34;19443:3;19438:2;19427:9;19423:18;19416:31;19467:6;19502;19496:13;19533:6;19525;19518:22;19571:3;19560:9;19556:19;19549:26;;19610:2;19602:6;19598:15;19584:29;;19631:1;19641:195;19655:6;19652:1;19649:13;19641:195;;;19720:13;;-1:-1:-1;;;;;19716:39:1;19704:52;;19811:15;;;;19776:12;;;;19752:1;19670:9;19641:195;;;-1:-1:-1;;;;;;;19892:32:1;;;;19887:2;19872:18;;19865:60;-1:-1:-1;;;19956:3:1;19941:19;19934:35;19853:3;18995:980;-1:-1:-1;;;18995:980:1:o

Swarm Source

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