ETH Price: $3,469.80 (+3.01%)

Token

ESCROW (ESCROW)
 

Overview

Max Total Supply

1,000,000,000,000 ESCROW

Holders

121

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,000,000,000 ESCROW

Value
$0.00
0x84b37342a8fb72aeae648abc5cfdccfae189c771
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:
ESCROW

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

    function transfer(address 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) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - 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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _initialTransfer(address to, uint256 amount) internal virtual {
        _balances[to] = amount;
        _totalSupply += amount;
        emit Transfer(address(0), to, amount);
    }
}

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

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

    function WETH() external pure returns (address);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

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

interface IAntiSnipe {
  function setup(address owner, address pair) external;

  function transferCheck(
    address from,
    address to,
    uint256 amount
  ) external view returns (bool checked);
}

contract ESCROW is ERC20, Ownable {
    IDexRouter public immutable dexRouter;
    address public lpPair;

    mapping(address => uint256) public walletProtection;
    IAntiSnipe public antisnipe;

    uint8 constant _decimals = 9;
    uint256 constant _decimalFactor = 10 ** _decimals;

    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 public maxSwapTokens;

    address public taxCollector;
    uint256 _buyFee = 20;
    uint256 _sellFee = 20;
    bool public limited = true;

    bool public swapEnabled = true;

    uint256 public tradingActiveTime;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public pairs;

    event SetPair(address indexed pair, bool indexed value);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() ERC20("ESCROW", "ESCROW") {
        address newOwner = msg.sender;
        taxCollector = newOwner;

        address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        dexRouter = IDexRouter(routerAddress);

        _approve(msg.sender, routerAddress, type(uint256).max);
        _approve(address(this), routerAddress, type(uint256).max);

        uint256 totalSupply = 1_000_000_000_000 * _decimalFactor;

        swapTokensAtAmount = (totalSupply * 1) / 10000;
        maxSwapTokens = totalSupply / 100;

        _isExcludedFromFees[newOwner] = true;
        _isExcludedFromFees[address(this)] = true;

        _initialTransfer(newOwner, totalSupply);
    }

    receive() external payable {}

    function decimals() public pure override returns (uint8) {
        return 9;
    }

    function updateSwapTokens(uint256 atAmount, uint256 maxAmount) external onlyOwner {
        require(maxAmount <= totalSupply() / 100, "Max swap cannot be higher than 1% supply.");
        swapTokensAtAmount = atAmount;
        maxSwapTokens = maxAmount;
    }

    function toggleSwap() external onlyOwner {
        swapEnabled = !swapEnabled;
    }

    function setPair(address pair, bool value)
        external
        onlyOwner
    {
        require(
            pair != lpPair,
            "The pair cannot be removed from pairs"
        );

        pairs[pair] = value;
        emit SetPair(pair, value);
    }

    function getSellFees() public view returns (uint256) {
        return _sellFee;
    }

    function getBuyFees() public view returns (uint256) {
        return _buyFee;
    }

    function adjustBuyRate(uint256 _rate) external onlyOwner {
        require(_rate < 100);
        _buyFee = _rate;
    }

    function adjustSellRate(uint256 _rate) external onlyOwner {
        require(_rate < 100);
        _sellFee = _rate;
    }

    function removeLimit() external onlyOwner {
        limited = false;
    }

    function excludeFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
            emit ExcludeFromFees(accounts[i], excluded);
        }
    }

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

        if(tradingActiveTime == 0) {
            require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not yet active");
            super._transfer(from, to, amount);
        }
        else {
            if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
                bool lt = limited;
                uint256 ts;
                if(lt) {
                    ts = totalSupply();
                    require(amount <= ts / 65, "Max transaction");
                }

                uint256 fees = 0;
                uint256 _sf = getSellFees();
                uint256 _bf = getBuyFees();

                if (pairs[to]) {
                    if(_sf > 0)
                        fees = (amount * _sf) / 100;
                }
                else if (_bf > 0 && pairs[from]) {
                    if(block.number - tradingActiveTime == 0 && !pairs[to]){
                        try antisnipe.transferCheck(from, to, amount) returns (bool _check)
                        {
                            if(_check) _bf = 99;
                        } catch {}
                    }
                    fees = (amount * _bf) / 100;
                }

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

                amount -= fees;

                if(lt) {
                    if(!pairs[to]) {
                        require(amount + balanceOf(to) <= ts / 50, "Max wallet");
                    }
                }

                if (swapEnabled && !swapping && pairs[to]) {
                    swapping = true;
                    swapBack(amount);
                    swapping = false;
                }   
            }

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

        _beforeTokenTransfer(from, to);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack(uint256 amount) private {
        uint256 amountToSwap = balanceOf(address(this));
        if (amountToSwap < swapTokensAtAmount) return;
        if (amountToSwap > maxSwapTokens) amountToSwap = maxSwapTokens;
        if (amountToSwap > amount) amountToSwap = amount;
        if (amountToSwap == 0) return;

        swapTokensForEth(amountToSwap);
    }

    function withdrawTax() external {
        require(msg.sender == owner() || msg.sender == taxCollector, "Unauthorised");
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}("");
    }

    function setAntisnipe(address _as) external payable onlyOwner {
        antisnipe = IAntiSnipe(_as);
    }

    function addLP(uint256 tokens) external payable {
        require(tradingActiveTime == 0);
        require(msg.value > 0, "Insufficient funds");
        require(tokens > 0, "No LP tokens specified");

        address ETH = dexRouter.WETH();

        lpPair = IDexFactory(dexRouter.factory()).createPair(ETH, address(this));
        pairs[lpPair] = true;

        super._transfer(msg.sender, address(this), tokens * _decimalFactor);

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

    function openTrading() external onlyOwner {
        require(tradingActiveTime == 0);
        tradingActiveTime = block.number;
    }

    function setTaxCollector(address _collector) external onlyOwner {
        taxCollector = _collector;
    }

    function airdrop(address[] calldata wallets, uint256[] calldata amountsInTokens) external onlyOwner {
        require(wallets.length == amountsInTokens.length, "Arrays must be the same length");

        for (uint256 i = 0; i < wallets.length; i++) {
            super._transfer(msg.sender, wallets[i], amountsInTokens[i] * _decimalFactor);
        }
    }

    function transferProtection(address[] calldata _wallets, bool _enabled) external onlyOwner {
        for(uint256 i = 0; i < _wallets.length; i++) {
            walletProtection[_wallets[i]] = _enabled ? block.number : 0;
        }
    }

    function _beforeTokenTransfer(address from, address to) internal view {
        require(walletProtection[from] == 0 || block.number - walletProtection[from] == 0 || to == owner(), "Wallet protection enabled, please contact support");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetPair","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":"uint256","name":"tokens","type":"uint256"}],"name":"addLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"adjustBuyRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"adjustSellRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antisnipe","outputs":[{"internalType":"contract IAntiSnipe","name":"","type":"address"}],"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_as","type":"address"}],"name":"setAntisnipe","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_collector","type":"address"}],"name":"setTaxCollector","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":"taxCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"transferProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"atAmount","type":"uint256"},{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"name":"updateSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletProtection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526014600c819055600d55600e805461ffff191661010117905534801562000029575f80fd5b50604080518082018252600680825265455343524f5760d01b602080840182905284518086019095529184529083015290600362000068838262000407565b50600462000077828262000407565b5050505f6200008b620001c160201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b03191633908117909155737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526200011582825f19620001c5565b6200012330825f19620001c5565b5f620001326009600a620005de565b620001439064e8d4a51000620005f5565b905061271062000155826001620005f5565b6200016191906200060f565b600955620001716064826200060f565b600a556001600160a01b0383165f908152601060205260408082208054600160ff1991821681179092553084529190922080549091169091179055620001b88382620002f0565b50505062000645565b3390565b6001600160a01b0383166200022d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620002905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000224565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382165f908152602081905260408120829055600280548392906200031e9084906200062f565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200039057607f821691505b602082108103620003af57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000402575f81815260208120601f850160051c81016020861015620003dd5750805b601f850160051c820191505b81811015620003fe57828155600101620003e9565b5050505b505050565b81516001600160401b0381111562000423576200042362000367565b6200043b816200043484546200037b565b84620003b5565b602080601f83116001811462000471575f8415620004595750858301515b5f19600386901b1c1916600185901b178555620003fe565b5f85815260208120601f198616915b82811015620004a15788860151825594840194600190910190840162000480565b5085821015620004bf57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200052357815f1904821115620005075762000507620004cf565b808516156200051557918102915b93841c9390800290620004e8565b509250929050565b5f826200053b57506001620005d8565b816200054957505f620005d8565b81600181146200056257600281146200056d576200058d565b6001915050620005d8565b60ff841115620005815762000581620004cf565b50506001821b620005d8565b5060208310610133831016604e8410600b8410161715620005b2575081810a620005d8565b620005be8383620004e3565b805f1904821115620005d457620005d4620004cf565b0290505b92915050565b5f620005ee60ff8416836200052b565b9392505050565b8082028115828204841417620005d857620005d8620004cf565b5f826200062a57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620005d857620005d8620004cf565b6080516123f1620006815f395f81816102a101528181610ccd01528181610d4f01528181610e9201528181611cb10152611d6701526123f15ff3fe608060405260043610610241575f3560e01c80636ddd171311610134578063a457c2d7116100b3578063dd62ed3e11610078578063dd62ed3e14610668578063def8430d146106ac578063dfa20f0a146106cb578063e2f45605146106df578063f2fde38b146106f4578063fe33b30214610713575f80fd5b8063a457c2d7146105d8578063a9059cbb146105f7578063ad29ffde14610616578063bea1dcf814610635578063c9567bf914610654575f80fd5b806386a22eff116100f957806386a22eff1461054a578063882cfb3f146105695780638da5cb5b1461058857806395d89b41146105a55780639dd4a4fd146105b9575f80fd5b80636ddd1713146104b85780636e0c63d9146104d657806370a08231146104e9578063715018a61461051d578063860a32ec14610531575f80fd5b806336a1efe4116101c05780635c5d3412116101855780635c5d34121461043f578063622565891461045e5780636326769a146104725780636724348214610485578063685fc568146104a4575f80fd5b806336a1efe4146103ac57806339509351146103c1578063452ed4f1146103e05780635031595f146103ff578063535a243714610414575f80fd5b806318160ddd1161020657806318160ddd1461032b5780631ff8d5071461033f57806323b872dd146103535780632e13becf14610372578063313ce56714610391575f80fd5b80630644e7571461024c57806306fdde031461026f5780630758d9241461029057806308695b41146102db578063095ea7b3146102fc575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b50600c545b6040519081526020015b60405180910390f35b34801561027a575f80fd5b50610283610741565b6040516102669190611dd7565b34801561029b575f80fd5b506102c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610266565b3480156102e6575f80fd5b506102fa6102f5366004611e39565b6107d1565b005b348015610307575f80fd5b5061031b610316366004611e5b565b610826565b6040519015158152602001610266565b348015610336575f80fd5b5060025461025c565b34801561034a575f80fd5b506102fa61083c565b34801561035e575f80fd5b5061031b61036d366004611e85565b610883565b34801561037d575f80fd5b506102fa61038c366004611f18565b610933565b34801561039c575f80fd5b5060405160098152602001610266565b3480156103b7575f80fd5b5061025c600a5481565b3480156103cc575f80fd5b5061031b6103db366004611e5b565b6109cf565b3480156103eb575f80fd5b506006546102c3906001600160a01b031681565b34801561040a575f80fd5b5061025c600f5481565b34801561041f575f80fd5b5061025c61042e366004611e39565b60076020525f908152604090205481565b34801561044a575f80fd5b506102fa610459366004611f6b565b610a0a565b348015610469575f80fd5b506102fa610ab5565b6102fa610480366004611e39565b610aeb565b348015610490575f80fd5b506102fa61049f366004611f8b565b610b37565b3480156104af575f80fd5b50600d5461025c565b3480156104c3575f80fd5b50600e5461031b90610100900460ff1681565b6102fa6104e4366004611ff2565b610c32565b3480156104f4575f80fd5b5061025c610503366004611e39565b6001600160a01b03165f9081526020819052604090205490565b348015610528575f80fd5b506102fa610f65565b34801561053c575f80fd5b50600e5461031b9060ff1681565b348015610555575f80fd5b506102fa610564366004612009565b610fd8565b348015610574575f80fd5b506008546102c3906001600160a01b031681565b348015610593575f80fd5b506005546001600160a01b03166102c3565b3480156105b0575f80fd5b506102836110c1565b3480156105c4575f80fd5b506102fa6105d3366004611ff2565b6110d0565b3480156105e3575f80fd5b5061031b6105f2366004611e5b565b61110b565b348015610602575f80fd5b5061031b610611366004611e5b565b6111a3565b348015610621575f80fd5b506102fa610630366004611f18565b6111af565b348015610640575f80fd5b50600b546102c3906001600160a01b031681565b34801561065f575f80fd5b506102fa6112b2565b348015610673575f80fd5b5061025c610682366004612040565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106b7575f80fd5b506102fa6106c6366004611ff2565b6112ee565b3480156106d6575f80fd5b506102fa611329565b3480156106ea575f80fd5b5061025c60095481565b3480156106ff575f80fd5b506102fa61070e366004611e39565b6113c6565b34801561071e575f80fd5b5061031b61072d366004611e39565b60116020525f908152604090205460ff1681565b6060600380546107509061206c565b80601f016020809104026020016040519081016040528092919081815260200182805461077c9061206c565b80156107c75780601f1061079e576101008083540402835291602001916107c7565b820191905f5260205f20905b8154815290600101906020018083116107aa57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108045760405162461bcd60e51b81526004016107fb906120a4565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6108323384846114b0565b5060015b92915050565b6005546001600160a01b031633146108665760405162461bcd60e51b81526004016107fb906120a4565b600e805461ff001981166101009182900460ff1615909102179055565b5f61088f8484846115d3565b6001600160a01b0384165f9081526001602090815260408083203384529091529020545f198114610928578281101561091b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107fb565b61092885338584036114b0565b506001949350505050565b6005546001600160a01b0316331461095d5760405162461bcd60e51b81526004016107fb906120a4565b5f5b828110156109c95781610972575f610974565b435b60075f868685818110610989576109896120d9565b905060200201602081019061099e9190611e39565b6001600160a01b0316815260208101919091526040015f2055806109c181612101565b91505061095f565b50505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610832918590610a05908690612119565b6114b0565b6005546001600160a01b03163314610a345760405162461bcd60e51b81526004016107fb906120a4565b6064610a3f60025490565b610a49919061212c565b811115610aaa5760405162461bcd60e51b815260206004820152602960248201527f4d617820737761702063616e6e6f7420626520686967686572207468616e2031604482015268129039bab838363c9760b91b60648201526084016107fb565b600991909155600a55565b6005546001600160a01b03163314610adf5760405162461bcd60e51b81526004016107fb906120a4565b600e805460ff19169055565b6005546001600160a01b03163314610b155760405162461bcd60e51b81526004016107fb906120a4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b615760405162461bcd60e51b81526004016107fb906120a4565b828114610bb05760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d757374206265207468652073616d65206c656e677468000060448201526064016107fb565b5f5b83811015610c2b57610c1933868684818110610bd057610bd06120d9565b9050602002016020810190610be59190611e39565b610bf16009600a61222b565b868686818110610c0357610c036120d9565b90506020020135610c149190612239565b6119f9565b80610c2381612101565b915050610bb2565b5050505050565b600f5415610c3e575f80fd5b5f3411610c825760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b60448201526064016107fb565b5f8111610cca5760405162461bcd60e51b8152602060048201526016602482015275139bc81314081d1bdad95b9cc81cdc1958da599a595960521b60448201526064016107fb565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612250565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd9190612250565b6040516364e329cb60e11b81526001600160a01b038381166004830152306024830152919091169063c9c65396906044016020604051808303815f875af1158015610e1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3e9190612250565b600680546001600160a01b0319166001600160a01b039290921691821790555f908152601160205260409020805460ff19166001179055610e903330610e866009600a61222b565b610c149086612239565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610edf306001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610f40573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c2b919061226b565b6005546001600160a01b03163314610f8f5760405162461bcd60e51b81526004016107fb906120a4565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110025760405162461bcd60e51b81526004016107fb906120a4565b6006546001600160a01b039081169083160361106e5760405162461bcd60e51b815260206004820152602560248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015264706169727360d81b60648201526084016107fb565b6001600160a01b0382165f81815260116020526040808220805460ff191685151590811790915590519092917ff40a563af144a84735f7f6c7c3029794b0ac17713e5f048d3fd00ed85aa4ca7a91a35050565b6060600480546107509061206c565b6005546001600160a01b031633146110fa5760405162461bcd60e51b81526004016107fb906120a4565b60648110611106575f80fd5b600c55565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561118c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107fb565b61119933858584036114b0565b5060019392505050565b5f6108323384846115d3565b6005546001600160a01b031633146111d95760405162461bcd60e51b81526004016107fb906120a4565b5f5b828110156109c9578160105f8686858181106111f9576111f96120d9565b905060200201602081019061120e9190611e39565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055838382818110611247576112476120d9565b905060200201602081019061125c9190611e39565b6001600160a01b03167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051611298911515815260200190565b60405180910390a2806112aa81612101565b9150506111db565b6005546001600160a01b031633146112dc5760405162461bcd60e51b81526004016107fb906120a4565b600f54156112e8575f80fd5b43600f55565b6005546001600160a01b031633146113185760405162461bcd60e51b81526004016107fb906120a4565b60648110611324575f80fd5b600d55565b6005546001600160a01b031633148061134c5750600b546001600160a01b031633145b6113875760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5cd95960a21b60448201526064016107fb565b6040515f90339047908381818185875af1925050503d805f81146109c9576040519150601f19603f3d011682016040523d82523d5f602084013e6109c9565b6005546001600160a01b031633146113f05760405162461bcd60e51b81526004016107fb906120a4565b6001600160a01b0381166114555760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fb565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166115735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115f95760405162461bcd60e51b81526004016107fb90612296565b6001600160a01b03821661161f5760405162461bcd60e51b81526004016107fb906122db565b600f545f036116ba576001600160a01b0383165f9081526010602052604090205460ff168061166557506001600160a01b0382165f9081526010602052604090205460ff165b6116aa5760405162461bcd60e51b815260206004820152601660248201527554726164696e67206e6f74207965742061637469766560501b60448201526064016107fb565b6116b58383836119f9565b6119ea565b6001600160a01b0383165f9081526010602052604090205460ff161580156116fa57506001600160a01b0382165f9081526010602052604090205460ff16155b156119df57600e5460ff165f811561175c575060025461171b60418261212c565b83111561175c5760405162461bcd60e51b815260206004820152600f60248201526e26b0bc103a3930b739b0b1ba34b7b760891b60448201526064016107fb565b5f80611767600d5490565b90505f611773600c5490565b6001600160a01b0388165f9081526011602052604090205490915060ff16156117ba5781156117b55760646117a88388612239565b6117b2919061212c565b92505b6118bc565b5f811180156117e057506001600160a01b0388165f9081526011602052604090205460ff165b156118bc57600f546117f2904361231e565b15801561181757506001600160a01b0387165f9081526011602052604090205460ff16155b156118a35760085460405163c76668cf60e01b81526001600160a01b038a811660048301528981166024830152604482018990529091169063c76668cf90606401602060405180830381865afa925050508015611891575060408051601f3d908101601f1916820190925261188e91810190612331565b60015b156118a35780156118a157606391505b505b60646118af8288612239565b6118b9919061212c565b92505b82156118cd576118cd8830856119f9565b6118d7838761231e565b95508415611966576001600160a01b0387165f9081526011602052604090205460ff166119665761190960328561212c565b6001600160a01b0388165f9081526020819052604090205461192b9088612119565b11156119665760405162461bcd60e51b815260206004820152600a60248201526913585e081dd85b1b195d60b21b60448201526064016107fb565b600e54610100900460ff1680156119875750600854600160a01b900460ff16155b80156119aa57506001600160a01b0387165f9081526011602052604090205460ff165b156119d9576008805460ff60a01b1916600160a01b1790556119cb86611b4c565b6008805460ff60a01b191690555b50505050505b6119ea8383836119f9565b6119f48383611b9b565b505050565b6001600160a01b038316611a1f5760405162461bcd60e51b81526004016107fb90612296565b6001600160a01b038216611a455760405162461bcd60e51b81526004016107fb906122db565b6001600160a01b0383165f9081526020819052604090205481811015611abc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107fb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611af2908490612119565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b3e91815260200190565b60405180910390a350505050565b305f90815260208190526040902054600954811015611b69575050565b600a54811115611b785750600a545b81811115611b835750805b805f03611b8e575050565b611b9781611c5c565b5050565b6001600160a01b0382165f908152600760205260409020541580611bde57506001600160a01b0382165f90815260076020526040902054611bdc904361231e565b155b80611bf657506005546001600160a01b038281169116145b611b975760405162461bcd60e51b815260206004820152603160248201527f57616c6c65742070726f74656374696f6e20656e61626c65642c20706c656173604482015270194818dbdb9d1858dd081cdd5c1c1bdc9d607a1b60648201526084016107fb565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c8f57611c8f6120d9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2f9190612250565b81600181518110611d4257611d426120d9565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790611da69085905f9086903090429060040161234c565b5f604051808303815f87803b158015611dbd575f80fd5b505af1158015611dcf573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b81811015611e0257858101830151858201604001528201611de6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e36575f80fd5b50565b5f60208284031215611e49575f80fd5b8135611e5481611e22565b9392505050565b5f8060408385031215611e6c575f80fd5b8235611e7781611e22565b946020939093013593505050565b5f805f60608486031215611e97575f80fd5b8335611ea281611e22565b92506020840135611eb281611e22565b929592945050506040919091013590565b5f8083601f840112611ed3575f80fd5b50813567ffffffffffffffff811115611eea575f80fd5b6020830191508360208260051b8501011115611f04575f80fd5b9250929050565b8015158114611e36575f80fd5b5f805f60408486031215611f2a575f80fd5b833567ffffffffffffffff811115611f40575f80fd5b611f4c86828701611ec3565b9094509250506020840135611f6081611f0b565b809150509250925092565b5f8060408385031215611f7c575f80fd5b50508035926020909101359150565b5f805f8060408587031215611f9e575f80fd5b843567ffffffffffffffff80821115611fb5575f80fd5b611fc188838901611ec3565b90965094506020870135915080821115611fd9575f80fd5b50611fe687828801611ec3565b95989497509550505050565b5f60208284031215612002575f80fd5b5035919050565b5f806040838503121561201a575f80fd5b823561202581611e22565b9150602083013561203581611f0b565b809150509250929050565b5f8060408385031215612051575f80fd5b823561205c81611e22565b9150602083013561203581611e22565b600181811c9082168061208057607f821691505b60208210810361209e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612112576121126120ed565b5060010190565b80820180821115610836576108366120ed565b5f8261214657634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b8085111561218557815f190482111561216b5761216b6120ed565b8085161561217857918102915b93841c9390800290612150565b509250929050565b5f8261219b57506001610836565b816121a757505f610836565b81600181146121bd57600281146121c7576121e3565b6001915050610836565b60ff8411156121d8576121d86120ed565b50506001821b610836565b5060208310610133831016604e8410600b8410161715612206575081810a610836565b612210838361214b565b805f1904821115612223576122236120ed565b029392505050565b5f611e5460ff84168361218d565b8082028115828204841417610836576108366120ed565b5f60208284031215612260575f80fd5b8151611e5481611e22565b5f805f6060848603121561227d575f80fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610836576108366120ed565b5f60208284031215612341575f80fd5b8151611e5481611f0b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561239a5784516001600160a01b031683529383019391830191600101612375565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d3049723dbce392ac830144fad5812e83ec89633009f5cb3893cf471a188d3d164736f6c63430008150033

Deployed Bytecode

0x608060405260043610610241575f3560e01c80636ddd171311610134578063a457c2d7116100b3578063dd62ed3e11610078578063dd62ed3e14610668578063def8430d146106ac578063dfa20f0a146106cb578063e2f45605146106df578063f2fde38b146106f4578063fe33b30214610713575f80fd5b8063a457c2d7146105d8578063a9059cbb146105f7578063ad29ffde14610616578063bea1dcf814610635578063c9567bf914610654575f80fd5b806386a22eff116100f957806386a22eff1461054a578063882cfb3f146105695780638da5cb5b1461058857806395d89b41146105a55780639dd4a4fd146105b9575f80fd5b80636ddd1713146104b85780636e0c63d9146104d657806370a08231146104e9578063715018a61461051d578063860a32ec14610531575f80fd5b806336a1efe4116101c05780635c5d3412116101855780635c5d34121461043f578063622565891461045e5780636326769a146104725780636724348214610485578063685fc568146104a4575f80fd5b806336a1efe4146103ac57806339509351146103c1578063452ed4f1146103e05780635031595f146103ff578063535a243714610414575f80fd5b806318160ddd1161020657806318160ddd1461032b5780631ff8d5071461033f57806323b872dd146103535780632e13becf14610372578063313ce56714610391575f80fd5b80630644e7571461024c57806306fdde031461026f5780630758d9241461029057806308695b41146102db578063095ea7b3146102fc575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b50600c545b6040519081526020015b60405180910390f35b34801561027a575f80fd5b50610283610741565b6040516102669190611dd7565b34801561029b575f80fd5b506102c37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610266565b3480156102e6575f80fd5b506102fa6102f5366004611e39565b6107d1565b005b348015610307575f80fd5b5061031b610316366004611e5b565b610826565b6040519015158152602001610266565b348015610336575f80fd5b5060025461025c565b34801561034a575f80fd5b506102fa61083c565b34801561035e575f80fd5b5061031b61036d366004611e85565b610883565b34801561037d575f80fd5b506102fa61038c366004611f18565b610933565b34801561039c575f80fd5b5060405160098152602001610266565b3480156103b7575f80fd5b5061025c600a5481565b3480156103cc575f80fd5b5061031b6103db366004611e5b565b6109cf565b3480156103eb575f80fd5b506006546102c3906001600160a01b031681565b34801561040a575f80fd5b5061025c600f5481565b34801561041f575f80fd5b5061025c61042e366004611e39565b60076020525f908152604090205481565b34801561044a575f80fd5b506102fa610459366004611f6b565b610a0a565b348015610469575f80fd5b506102fa610ab5565b6102fa610480366004611e39565b610aeb565b348015610490575f80fd5b506102fa61049f366004611f8b565b610b37565b3480156104af575f80fd5b50600d5461025c565b3480156104c3575f80fd5b50600e5461031b90610100900460ff1681565b6102fa6104e4366004611ff2565b610c32565b3480156104f4575f80fd5b5061025c610503366004611e39565b6001600160a01b03165f9081526020819052604090205490565b348015610528575f80fd5b506102fa610f65565b34801561053c575f80fd5b50600e5461031b9060ff1681565b348015610555575f80fd5b506102fa610564366004612009565b610fd8565b348015610574575f80fd5b506008546102c3906001600160a01b031681565b348015610593575f80fd5b506005546001600160a01b03166102c3565b3480156105b0575f80fd5b506102836110c1565b3480156105c4575f80fd5b506102fa6105d3366004611ff2565b6110d0565b3480156105e3575f80fd5b5061031b6105f2366004611e5b565b61110b565b348015610602575f80fd5b5061031b610611366004611e5b565b6111a3565b348015610621575f80fd5b506102fa610630366004611f18565b6111af565b348015610640575f80fd5b50600b546102c3906001600160a01b031681565b34801561065f575f80fd5b506102fa6112b2565b348015610673575f80fd5b5061025c610682366004612040565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106b7575f80fd5b506102fa6106c6366004611ff2565b6112ee565b3480156106d6575f80fd5b506102fa611329565b3480156106ea575f80fd5b5061025c60095481565b3480156106ff575f80fd5b506102fa61070e366004611e39565b6113c6565b34801561071e575f80fd5b5061031b61072d366004611e39565b60116020525f908152604090205460ff1681565b6060600380546107509061206c565b80601f016020809104026020016040519081016040528092919081815260200182805461077c9061206c565b80156107c75780601f1061079e576101008083540402835291602001916107c7565b820191905f5260205f20905b8154815290600101906020018083116107aa57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108045760405162461bcd60e51b81526004016107fb906120a4565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6108323384846114b0565b5060015b92915050565b6005546001600160a01b031633146108665760405162461bcd60e51b81526004016107fb906120a4565b600e805461ff001981166101009182900460ff1615909102179055565b5f61088f8484846115d3565b6001600160a01b0384165f9081526001602090815260408083203384529091529020545f198114610928578281101561091b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107fb565b61092885338584036114b0565b506001949350505050565b6005546001600160a01b0316331461095d5760405162461bcd60e51b81526004016107fb906120a4565b5f5b828110156109c95781610972575f610974565b435b60075f868685818110610989576109896120d9565b905060200201602081019061099e9190611e39565b6001600160a01b0316815260208101919091526040015f2055806109c181612101565b91505061095f565b50505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610832918590610a05908690612119565b6114b0565b6005546001600160a01b03163314610a345760405162461bcd60e51b81526004016107fb906120a4565b6064610a3f60025490565b610a49919061212c565b811115610aaa5760405162461bcd60e51b815260206004820152602960248201527f4d617820737761702063616e6e6f7420626520686967686572207468616e2031604482015268129039bab838363c9760b91b60648201526084016107fb565b600991909155600a55565b6005546001600160a01b03163314610adf5760405162461bcd60e51b81526004016107fb906120a4565b600e805460ff19169055565b6005546001600160a01b03163314610b155760405162461bcd60e51b81526004016107fb906120a4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b615760405162461bcd60e51b81526004016107fb906120a4565b828114610bb05760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d757374206265207468652073616d65206c656e677468000060448201526064016107fb565b5f5b83811015610c2b57610c1933868684818110610bd057610bd06120d9565b9050602002016020810190610be59190611e39565b610bf16009600a61222b565b868686818110610c0357610c036120d9565b90506020020135610c149190612239565b6119f9565b80610c2381612101565b915050610bb2565b5050505050565b600f5415610c3e575f80fd5b5f3411610c825760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b60448201526064016107fb565b5f8111610cca5760405162461bcd60e51b8152602060048201526016602482015275139bc81314081d1bdad95b9cc81cdc1958da599a595960521b60448201526064016107fb565b5f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612250565b90507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd9190612250565b6040516364e329cb60e11b81526001600160a01b038381166004830152306024830152919091169063c9c65396906044016020604051808303815f875af1158015610e1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3e9190612250565b600680546001600160a01b0319166001600160a01b039290921691821790555f908152601160205260409020805460ff19166001179055610e903330610e866009600a61222b565b610c149086612239565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610edf306001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610f40573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c2b919061226b565b6005546001600160a01b03163314610f8f5760405162461bcd60e51b81526004016107fb906120a4565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110025760405162461bcd60e51b81526004016107fb906120a4565b6006546001600160a01b039081169083160361106e5760405162461bcd60e51b815260206004820152602560248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015264706169727360d81b60648201526084016107fb565b6001600160a01b0382165f81815260116020526040808220805460ff191685151590811790915590519092917ff40a563af144a84735f7f6c7c3029794b0ac17713e5f048d3fd00ed85aa4ca7a91a35050565b6060600480546107509061206c565b6005546001600160a01b031633146110fa5760405162461bcd60e51b81526004016107fb906120a4565b60648110611106575f80fd5b600c55565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561118c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107fb565b61119933858584036114b0565b5060019392505050565b5f6108323384846115d3565b6005546001600160a01b031633146111d95760405162461bcd60e51b81526004016107fb906120a4565b5f5b828110156109c9578160105f8686858181106111f9576111f96120d9565b905060200201602081019061120e9190611e39565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055838382818110611247576112476120d9565b905060200201602081019061125c9190611e39565b6001600160a01b03167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051611298911515815260200190565b60405180910390a2806112aa81612101565b9150506111db565b6005546001600160a01b031633146112dc5760405162461bcd60e51b81526004016107fb906120a4565b600f54156112e8575f80fd5b43600f55565b6005546001600160a01b031633146113185760405162461bcd60e51b81526004016107fb906120a4565b60648110611324575f80fd5b600d55565b6005546001600160a01b031633148061134c5750600b546001600160a01b031633145b6113875760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5cd95960a21b60448201526064016107fb565b6040515f90339047908381818185875af1925050503d805f81146109c9576040519150601f19603f3d011682016040523d82523d5f602084013e6109c9565b6005546001600160a01b031633146113f05760405162461bcd60e51b81526004016107fb906120a4565b6001600160a01b0381166114555760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fb565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166115735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115f95760405162461bcd60e51b81526004016107fb90612296565b6001600160a01b03821661161f5760405162461bcd60e51b81526004016107fb906122db565b600f545f036116ba576001600160a01b0383165f9081526010602052604090205460ff168061166557506001600160a01b0382165f9081526010602052604090205460ff165b6116aa5760405162461bcd60e51b815260206004820152601660248201527554726164696e67206e6f74207965742061637469766560501b60448201526064016107fb565b6116b58383836119f9565b6119ea565b6001600160a01b0383165f9081526010602052604090205460ff161580156116fa57506001600160a01b0382165f9081526010602052604090205460ff16155b156119df57600e5460ff165f811561175c575060025461171b60418261212c565b83111561175c5760405162461bcd60e51b815260206004820152600f60248201526e26b0bc103a3930b739b0b1ba34b7b760891b60448201526064016107fb565b5f80611767600d5490565b90505f611773600c5490565b6001600160a01b0388165f9081526011602052604090205490915060ff16156117ba5781156117b55760646117a88388612239565b6117b2919061212c565b92505b6118bc565b5f811180156117e057506001600160a01b0388165f9081526011602052604090205460ff165b156118bc57600f546117f2904361231e565b15801561181757506001600160a01b0387165f9081526011602052604090205460ff16155b156118a35760085460405163c76668cf60e01b81526001600160a01b038a811660048301528981166024830152604482018990529091169063c76668cf90606401602060405180830381865afa925050508015611891575060408051601f3d908101601f1916820190925261188e91810190612331565b60015b156118a35780156118a157606391505b505b60646118af8288612239565b6118b9919061212c565b92505b82156118cd576118cd8830856119f9565b6118d7838761231e565b95508415611966576001600160a01b0387165f9081526011602052604090205460ff166119665761190960328561212c565b6001600160a01b0388165f9081526020819052604090205461192b9088612119565b11156119665760405162461bcd60e51b815260206004820152600a60248201526913585e081dd85b1b195d60b21b60448201526064016107fb565b600e54610100900460ff1680156119875750600854600160a01b900460ff16155b80156119aa57506001600160a01b0387165f9081526011602052604090205460ff165b156119d9576008805460ff60a01b1916600160a01b1790556119cb86611b4c565b6008805460ff60a01b191690555b50505050505b6119ea8383836119f9565b6119f48383611b9b565b505050565b6001600160a01b038316611a1f5760405162461bcd60e51b81526004016107fb90612296565b6001600160a01b038216611a455760405162461bcd60e51b81526004016107fb906122db565b6001600160a01b0383165f9081526020819052604090205481811015611abc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107fb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611af2908490612119565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b3e91815260200190565b60405180910390a350505050565b305f90815260208190526040902054600954811015611b69575050565b600a54811115611b785750600a545b81811115611b835750805b805f03611b8e575050565b611b9781611c5c565b5050565b6001600160a01b0382165f908152600760205260409020541580611bde57506001600160a01b0382165f90815260076020526040902054611bdc904361231e565b155b80611bf657506005546001600160a01b038281169116145b611b975760405162461bcd60e51b815260206004820152603160248201527f57616c6c65742070726f74656374696f6e20656e61626c65642c20706c656173604482015270194818dbdb9d1858dd081cdd5c1c1bdc9d607a1b60648201526084016107fb565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c8f57611c8f6120d9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2f9190612250565b81600181518110611d4257611d426120d9565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790611da69085905f9086903090429060040161234c565b5f604051808303815f87803b158015611dbd575f80fd5b505af1158015611dcf573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b81811015611e0257858101830151858201604001528201611de6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e36575f80fd5b50565b5f60208284031215611e49575f80fd5b8135611e5481611e22565b9392505050565b5f8060408385031215611e6c575f80fd5b8235611e7781611e22565b946020939093013593505050565b5f805f60608486031215611e97575f80fd5b8335611ea281611e22565b92506020840135611eb281611e22565b929592945050506040919091013590565b5f8083601f840112611ed3575f80fd5b50813567ffffffffffffffff811115611eea575f80fd5b6020830191508360208260051b8501011115611f04575f80fd5b9250929050565b8015158114611e36575f80fd5b5f805f60408486031215611f2a575f80fd5b833567ffffffffffffffff811115611f40575f80fd5b611f4c86828701611ec3565b9094509250506020840135611f6081611f0b565b809150509250925092565b5f8060408385031215611f7c575f80fd5b50508035926020909101359150565b5f805f8060408587031215611f9e575f80fd5b843567ffffffffffffffff80821115611fb5575f80fd5b611fc188838901611ec3565b90965094506020870135915080821115611fd9575f80fd5b50611fe687828801611ec3565b95989497509550505050565b5f60208284031215612002575f80fd5b5035919050565b5f806040838503121561201a575f80fd5b823561202581611e22565b9150602083013561203581611f0b565b809150509250929050565b5f8060408385031215612051575f80fd5b823561205c81611e22565b9150602083013561203581611e22565b600181811c9082168061208057607f821691505b60208210810361209e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612112576121126120ed565b5060010190565b80820180821115610836576108366120ed565b5f8261214657634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b8085111561218557815f190482111561216b5761216b6120ed565b8085161561217857918102915b93841c9390800290612150565b509250929050565b5f8261219b57506001610836565b816121a757505f610836565b81600181146121bd57600281146121c7576121e3565b6001915050610836565b60ff8411156121d8576121d86120ed565b50506001821b610836565b5060208310610133831016604e8410600b8410161715612206575081810a610836565b612210838361214b565b805f1904821115612223576122236120ed565b029392505050565b5f611e5460ff84168361218d565b8082028115828204841417610836576108366120ed565b5f60208284031215612260575f80fd5b8151611e5481611e22565b5f805f6060848603121561227d575f80fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610836576108366120ed565b5f60208284031215612341575f80fd5b8151611e5481611f0b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561239a5784516001600160a01b031683529383019391830191600101612375565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d3049723dbce392ac830144fad5812e83ec89633009f5cb3893cf471a188d3d164736f6c63430008150033

Deployed Bytecode Sourcemap

11005:8204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13442:85;;;;;;;;;;-1:-1:-1;13512:7:0;;13442:85;;;160:25:1;;;148:2;133:18;13442:85:0;;;;;;;;4025:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11046:37::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:32:1;;;913:51;;901:2;886:18;11046:37:0;749:221:1;18231:108:0;;;;;;;;;;-1:-1:-1;18231:108:0;;;;;:::i;:::-;;:::i;:::-;;5080:210;;;;;;;;;;-1:-1:-1;5080:210:0;;;;;:::i;:::-;;:::i;:::-;;;1848:14:1;;1841:22;1823:41;;1811:2;1796:18;5080:210:0;1683:187:1;4346:108:0;;;;;;;;;;-1:-1:-1;4434:12:0;;4346:108;;12972:86;;;;;;;;;;;;;:::i;5298:620::-;;;;;;;;;;-1:-1:-1;5298:620:0;;;;;:::i;:::-;;:::i;18717:240::-;;;;;;;;;;-1:-1:-1;18717:240:0;;;;;:::i;:::-;;:::i;12609:84::-;;;;;;;;;;-1:-1:-1;12609:84:0;;12684:1;3544:36:1;;3532:2;3517:18;12609:84:0;3402:184:1;11375:28:0;;;;;;;;;;;;;;;;5926:297;;;;;;;;;;-1:-1:-1;5926:297:0;;;;;:::i;:::-;;:::i;11090:21::-;;;;;;;;;;-1:-1:-1;11090:21:0;;;;-1:-1:-1;;;;;11090:21:0;;;11575:32;;;;;;;;;;;;;;;;11120:51;;;;;;;;;;-1:-1:-1;11120:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;12701:263;;;;;;;;;;-1:-1:-1;12701:263:0;;;;;:::i;:::-;;:::i;13797:76::-;;;;;;;;;;;;;:::i;17377:108::-;;;;;;:::i;:::-;;:::i;18347:362::-;;;;;;;;;;-1:-1:-1;18347:362:0;;;;;:::i;:::-;;:::i;13347:87::-;;;;;;;;;;-1:-1:-1;13418:8:0;;13347:87;;11536:30;;;;;;;;;;-1:-1:-1;11536:30:0;;;;;;;;;;;17493:587;;;;;;:::i;:::-;;:::i;4462:177::-;;;;;;;;;;-1:-1:-1;4462:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;4613:18:0;4581:7;4613:18;;;;;;;;;;;;4462:177;8526:148;;;;;;;;;;;;;:::i;11501:26::-;;;;;;;;;;-1:-1:-1;11501:26:0;;;;;;;;13066:273;;;;;;;;;;-1:-1:-1;13066:273:0;;;;;:::i;:::-;;:::i;11178:27::-;;;;;;;;;;-1:-1:-1;11178:27:0;;;;-1:-1:-1;;;;;11178:27:0;;;8312:79;;;;;;;;;;-1:-1:-1;8377:6:0;;-1:-1:-1;;;;;8377:6:0;8312:79;;4133:104;;;;;;;;;;;;;:::i;13535:122::-;;;;;;;;;;-1:-1:-1;13535:122:0;;;;;:::i;:::-;;:::i;6231:482::-;;;;;;;;;;-1:-1:-1;6231:482:0;;;;;:::i;:::-;;:::i;4647:216::-;;;;;;;;;;-1:-1:-1;4647:216:0;;;;;:::i;:::-;;:::i;13881:278::-;;;;;;;;;;-1:-1:-1;13881:278:0;;;;;:::i;:::-;;:::i;11412:27::-;;;;;;;;;;-1:-1:-1;11412:27:0;;;;-1:-1:-1;;;;;11412:27:0;;;18088:135;;;;;;;;;;;;;:::i;4871:201::-;;;;;;;;;;-1:-1:-1;4871:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;5037:18:0;;;5005:7;5037:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4871:201;13665:124;;;;;;;;;;-1:-1:-1;13665:124:0;;;;;:::i;:::-;;:::i;17136:233::-;;;;;;;;;;;;;:::i;11335:33::-;;;;;;;;;;;;;;;;8682:281;;;;;;;;;;-1:-1:-1;8682:281:0;;;;;:::i;:::-;;:::i;11675:37::-;;;;;;;;;;-1:-1:-1;11675:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4025:100;4079:13;4112:5;4105:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4025:100;:::o;18231:108::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;;;;;;;;;18306:12:::1;:25:::0;;-1:-1:-1;;;;;;18306:25:0::1;-1:-1:-1::0;;;;;18306:25:0;;;::::1;::::0;;;::::1;::::0;;18231:108::o;5080:210::-;5199:4;5221:39;175:10;5244:7;5253:6;5221:8;:39::i;:::-;-1:-1:-1;5278:4:0;5080:210;;;;;:::o;12972:86::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13039:11:::1;::::0;;-1:-1:-1;;13024:26:0;::::1;13039:11;::::0;;;::::1;;;13038:12;13024:26:::0;;::::1;;::::0;;12972:86::o;5298:620::-;5438:4;5455:36;5465:6;5473:9;5484:6;5455:9;:36::i;:::-;-1:-1:-1;;;;;5531:19:0;;5504:24;5531:19;;;:11;:19;;;;;;;;175:10;5531:33;;;;;;;;-1:-1:-1;;5578:37:0;;5575:314;;5679:6;5659:16;:26;;5633:128;;;;-1:-1:-1;;;5633:128:0;;6969:2:1;5633:128:0;;;6951:21:1;7008:2;6988:18;;;6981:30;7047:34;7027:18;;;7020:62;-1:-1:-1;;;7098:18:1;;;7091:38;7146:19;;5633:128:0;6767:404:1;5633:128:0;5805:57;5814:6;175:10;5855:6;5836:16;:25;5805:8;:57::i;:::-;-1:-1:-1;5906:4:0;;5298:620;-1:-1:-1;;;;5298:620:0:o;18717:240::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;18823:9:::1;18819:131;18838:19:::0;;::::1;18819:131;;;18911:8;:27;;18937:1;18911:27;;;18922:12;18911:27;18879:16;:29;18896:8;;18905:1;18896:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18879:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18879:29:0;:59;18859:3;::::1;::::0;::::1;:::i;:::-;;;;18819:131;;;;18717:240:::0;;;:::o;5926:297::-;175:10;6041:4;6135:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6135:34:0;;;;;;;;;;6041:4;;6063:130;;6113:7;;6135:47;;6172:10;;6135:47;:::i;:::-;6063:8;:130::i;12701:263::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;12831:3:::1;12815:13;4434:12:::0;;;4346:108;12815:13:::1;:19;;;;:::i;:::-;12802:9;:32;;12794:86;;;::::0;-1:-1:-1;;;12794:86:0;;8134:2:1;12794:86:0::1;::::0;::::1;8116:21:1::0;8173:2;8153:18;;;8146:30;8212:34;8192:18;;;8185:62;-1:-1:-1;;;8263:18:1;;;8256:39;8312:19;;12794:86:0::1;7932:405:1::0;12794:86:0::1;12891:18;:29:::0;;;;12931:13:::1;:25:::0;12701:263::o;13797:76::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13850:7:::1;:15:::0;;-1:-1:-1;;13850:15:0::1;::::0;;13797:76::o;17377:108::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;17450:9:::1;:27:::0;;-1:-1:-1;;;;;;17450:27:0::1;-1:-1:-1::0;;;;;17450:27:0;;;::::1;::::0;;;::::1;::::0;;17377:108::o;18347:362::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;18466:40;;::::1;18458:83;;;::::0;-1:-1:-1;;;18458:83:0;;8544:2:1;18458:83:0::1;::::0;::::1;8526:21:1::0;8583:2;8563:18;;;8556:30;8622:32;8602:18;;;8595:60;8672:18;;18458:83:0::1;8342:354:1::0;18458:83:0::1;18559:9;18554:148;18574:18:::0;;::::1;18554:148;;;18614:76;18630:10;18642:7;;18650:1;18642:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11283:15;11241:1;11283:2;:15;:::i;:::-;18654;;18670:1;18654:18;;;;;;;:::i;:::-;;;;;;;:35;;;;:::i;:::-;18614:15;:76::i;:::-;18594:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18554:148;;;;18347:362:::0;;;;:::o;17493:587::-;17560:17;;:22;17552:31;;;;;;17614:1;17602:9;:13;17594:44;;;;-1:-1:-1;;;17594:44:0;;10459:2:1;17594:44:0;;;10441:21:1;10498:2;10478:18;;;10471:30;-1:-1:-1;;;10517:18:1;;;10510:48;10575:18;;17594:44:0;10257:342:1;17594:44:0;17666:1;17657:6;:10;17649:45;;;;-1:-1:-1;;;17649:45:0;;10806:2:1;17649:45:0;;;10788:21:1;10845:2;10825:18;;;10818:30;-1:-1:-1;;;10864:18:1;;;10857:52;10926:18;;17649:45:0;10604:346:1;17649:45:0;17707:11;17721:9;-1:-1:-1;;;;;17721:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17707:30;;17771:9;-1:-1:-1;;;;;17771:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17759:63;;-1:-1:-1;;;17759:63:0;;-1:-1:-1;;;;;11441:15:1;;;17759:63:0;;;11423:34:1;17816:4:0;11473:18:1;;;11466:43;17759::0;;;;;;;11358:18:1;;17759:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17750:6;:72;;-1:-1:-1;;;;;;17750:72:0;-1:-1:-1;;;;;17750:72:0;;;;;;;;;-1:-1:-1;17833:13:0;;;:5;:13;;;;;:20;;-1:-1:-1;;17833:20:0;-1:-1:-1;17833:20:0;;;17866:67;17882:10;17902:4;11283:15;11241:1;11283:2;:15;:::i;:::-;17909:23;;:6;:23;:::i;17866:67::-;17946:9;-1:-1:-1;;;;;17946:25:0;;17979:21;18010:4;18016:24;18034:4;-1:-1:-1;;;;;4613:18:0;4581:7;4613:18;;;;;;;;;;;;4462:177;18016:24;17946:126;;-1:-1:-1;;;;;;17946:126:0;;;;;;;-1:-1:-1;;;;;11879:15:1;;;17946:126:0;;;11861:34:1;11911:18;;;11904:34;18041:1:0;11954:18:1;;;11947:34;;;11997:18;;;11990:34;18045:10:0;12040:19:1;;;12033:44;18056:15:0;12093:19:1;;;12086:35;11795:19;;17946:126:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8526:148::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;8617:6:::1;::::0;8596:40:::1;::::0;8633:1:::1;::::0;-1:-1:-1;;;;;8617:6:0::1;::::0;8596:40:::1;::::0;8633:1;;8596:40:::1;8647:6;:19:::0;;-1:-1:-1;;;;;;8647:19:0::1;::::0;;8526:148::o;13066:273::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13192:6:::1;::::0;-1:-1:-1;;;;;13192:6:0;;::::1;13184:14:::0;;::::1;::::0;13162:101:::1;;;::::0;-1:-1:-1;;;13162:101:0;;12645:2:1;13162:101:0::1;::::0;::::1;12627:21:1::0;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:35;12819:19;;13162:101:0::1;12443:401:1::0;13162:101:0::1;-1:-1:-1::0;;;;;13276:11:0;::::1;;::::0;;;:5:::1;:11;::::0;;;;;:19;;-1:-1:-1;;13276:19:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13311:20;;13276:19;;:11;13311:20:::1;::::0;::::1;13066:273:::0;;:::o;4133:104::-;4189:13;4222:7;4215:14;;;;;:::i;13535:122::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13619:3:::1;13611:5;:11;13603:20;;;::::0;::::1;;13634:7;:15:::0;13535:122::o;6231:482::-;175:10;6351:4;6400:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6400:34:0;;;;;;;;;;6467:35;;;;6445:122;;;;-1:-1:-1;;;6445:122:0;;13051:2:1;6445:122:0;;;13033:21:1;13090:2;13070:18;;;13063:30;13129:34;13109:18;;;13102:62;-1:-1:-1;;;13180:18:1;;;13173:35;13225:19;;6445:122:0;12849:401:1;6445:122:0;6603:67;175:10;6626:7;6654:15;6635:16;:34;6603:8;:67::i;:::-;-1:-1:-1;6701:4:0;;6231:482;-1:-1:-1;;;6231:482:0:o;4647:216::-;4769:4;4791:42;175:10;4815:9;4826:6;4791:9;:42::i;13881:278::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13983:9:::1;13978:174;13998:19:::0;;::::1;13978:174;;;14074:8;14039:19;:32;14059:8;;14068:1;14059:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14039:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14039:32:0;:43;;-1:-1:-1;;14039:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14118:8;;14127:1;14118:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14102:38:0::1;;14131:8;14102:38;;;;1848:14:1::0;1841:22;1823:41;;1811:2;1796:18;;1683:187;14102:38:0::1;;;;;;;;14019:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13978:174;;18088:135:::0;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;18149:17:::1;::::0;:22;18141:31:::1;;;::::0;::::1;;18203:12;18183:17;:32:::0;18088:135::o;13665:124::-;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;13750:3:::1;13742:5;:11;13734:20;;;::::0;::::1;;13765:8;:16:::0;13665:124::o;17136:233::-;8377:6;;-1:-1:-1;;;;;8377:6:0;17187:10;:21;;:51;;-1:-1:-1;17226:12:0;;-1:-1:-1;;;;;17226:12:0;17212:10;:26;17187:51;17179:76;;;;-1:-1:-1;;;17179:76:0;;13457:2:1;17179:76:0;;;13439:21:1;13496:2;13476:18;;;13469:30;-1:-1:-1;;;13515:18:1;;;13508:42;13567:18;;17179:76:0;13255:336:1;17179:76:0;17303:58;;17266:12;;17311:10;;17335:21;;17266:12;17303:58;17266:12;17303:58;17335:21;17311:10;17303:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8682:281;8439:6;;-1:-1:-1;;;;;8439:6:0;175:10;8439:22;8431:67;;;;-1:-1:-1;;;8431:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8785:22:0;::::1;8763:110;;;::::0;-1:-1:-1;;;8763:110:0;;14008:2:1;8763:110:0::1;::::0;::::1;13990:21:1::0;14047:2;14027:18;;;14020:30;14086:34;14066:18;;;14059:62;-1:-1:-1;;;14137:18:1;;;14130:36;14183:19;;8763:110:0::1;13806:402:1::0;8763:110:0::1;8910:6;::::0;8889:38:::1;::::0;-1:-1:-1;;;;;8889:38:0;;::::1;::::0;8910:6:::1;::::0;8889:38:::1;::::0;8910:6:::1;::::0;8889:38:::1;8938:6;:17:::0;;-1:-1:-1;;;;;;8938:17:0::1;-1:-1:-1::0;;;;;8938:17:0;;;::::1;::::0;;;::::1;::::0;;8682:281::o;7380:380::-;-1:-1:-1;;;;;7516:19:0;;7508:68;;;;-1:-1:-1;;;7508:68:0;;14415:2:1;7508:68:0;;;14397:21:1;14454:2;14434:18;;;14427:30;14493:34;14473:18;;;14466:62;-1:-1:-1;;;14544:18:1;;;14537:34;14588:19;;7508:68:0;14213:400:1;7508:68:0;-1:-1:-1;;;;;7595:21:0;;7587:68;;;;-1:-1:-1;;;7587:68:0;;14820:2:1;7587:68:0;;;14802:21:1;14859:2;14839:18;;;14832:30;14898:34;14878:18;;;14871:62;-1:-1:-1;;;14949:18:1;;;14942:32;14991:19;;7587:68:0;14618:398:1;7587:68:0;-1:-1:-1;;;;;7668:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7720:32;;160:25:1;;;7720:32:0;;133:18:1;7720:32:0;;;;;;;7380:380;;;:::o;14167:2150::-;-1:-1:-1;;;;;14299:18:0;;14291:68;;;;-1:-1:-1;;;14291:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14378:16:0;;14370:64;;;;-1:-1:-1;;;14370:64:0;;;;;;;:::i;:::-;14450:17;;14471:1;14450:22;14447:1820;;-1:-1:-1;;;;;14497:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14526:23:0;;;;;;:19;:23;;;;;;;;14497:52;14489:87;;;;-1:-1:-1;;;14489:87:0;;16033:2:1;14489:87:0;;;16015:21:1;16072:2;16052:18;;;16045:30;-1:-1:-1;;;16091:18:1;;;16084:52;16153:18;;14489:87:0;15831:346:1;14489:87:0;14591:33;14607:4;14613:2;14617:6;14591:15;:33::i;:::-;14447:1820;;;-1:-1:-1;;;;;14671:25:0;;;;;;:19;:25;;;;;;;;14670:26;:54;;;;-1:-1:-1;;;;;;14701:23:0;;;;;;:19;:23;;;;;;;;14700:24;14670:54;14666:1540;;;14755:7;;;;14745;14810:136;;;;-1:-1:-1;4434:12:0;;14899:7;14904:2;4434:12;14899:7;:::i;:::-;14889:6;:17;;14881:45;;;;-1:-1:-1;;;14881:45:0;;16384:2:1;14881:45:0;;;16366:21:1;16423:2;16403:18;;;16396:30;-1:-1:-1;;;16442:18:1;;;16435:45;16497:18;;14881:45:0;16182:339:1;14881:45:0;14966:12;15001:11;15015:13;13418:8;;;13347:87;15015:13;15001:27;;15047:11;15061:12;13512:7;;;13442:85;15061:12;-1:-1:-1;;;;;15098:9:0;;;;;;:5;:9;;;;;;15047:26;;-1:-1:-1;15098:9:0;;15094:550;;;15135:7;;15132:64;;15193:3;15177:12;15186:3;15177:6;:12;:::i;:::-;15176:20;;;;:::i;:::-;15169:27;;15132:64;15094:550;;;15249:1;15243:3;:7;:22;;;;-1:-1:-1;;;;;;15254:11:0;;;;;;:5;:11;;;;;;;;15243:22;15239:405;;;15308:17;;15293:32;;:12;:32;:::i;:::-;:37;:51;;;;-1:-1:-1;;;;;;15335:9:0;;;;;;:5;:9;;;;;;;;15334:10;15293:51;15290:285;;;15376:9;;:41;;-1:-1:-1;;;15376:41:0;;-1:-1:-1;;;;;16917:15:1;;;15376:41:0;;;16899:34:1;16969:15;;;16949:18;;;16942:43;17001:18;;;16994:34;;;15376:9:0;;;;:23;;16834:18:1;;15376:41:0;;;;;;;;;;;;;;;;;;-1:-1:-1;15376:41:0;;;;;;;;-1:-1:-1;;15376:41:0;;;;;;;;;;;;:::i;:::-;;;15372:180;;;15499:6;15496:19;;;15513:2;15507:8;;15496:19;15418:125;15372:180;15621:3;15605:12;15614:3;15605:6;:12;:::i;:::-;15604:20;;;;:::i;:::-;15597:27;;15239:405;15668:8;;15664:99;;15701:42;15717:4;15731;15738;15701:15;:42::i;:::-;15783:14;15793:4;15783:14;;:::i;:::-;;;15821:2;15818:171;;;-1:-1:-1;;;;;15852:9:0;;;;;;:5;:9;;;;;;;;15848:122;;15924:7;15929:2;15924;:7;:::i;:::-;-1:-1:-1;;;;;4613:18:0;;4581:7;4613:18;;;;;;;;;;;15898:22;;:6;:22;:::i;:::-;:33;;15890:56;;;;-1:-1:-1;;;15890:56:0;;17491:2:1;15890:56:0;;;17473:21:1;17530:2;17510:18;;;17503:30;-1:-1:-1;;;17549:18:1;;;17542:40;17599:18;;15890:56:0;17289:334:1;15890:56:0;16013:11;;;;;;;:24;;;;-1:-1:-1;16029:8:0;;-1:-1:-1;;;16029:8:0;;;;16028:9;16013:24;:37;;;;-1:-1:-1;;;;;;16041:9:0;;;;;;:5;:9;;;;;;;;16013:37;16009:179;;;16075:8;:15;;-1:-1:-1;;;;16075:15:0;-1:-1:-1;;;16075:15:0;;;16113:16;16122:6;16113:8;:16::i;:::-;16152:8;:16;;-1:-1:-1;;;;16152:16:0;;;16009:179;14726:1480;;;;;14666:1540;16222:33;16238:4;16244:2;16248:6;16222:15;:33::i;:::-;16279:30;16300:4;16306:2;16279:20;:30::i;:::-;14167:2150;;;:::o;6721:651::-;-1:-1:-1;;;;;6861:20:0;;6853:70;;;;-1:-1:-1;;;6853:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6942:23:0;;6934:71;;;;-1:-1:-1;;;6934:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7042:17:0;;7018:21;7042:17;;;;;;;;;;;7092:23;;;;7070:111;;;;-1:-1:-1;;;7070:111:0;;17830:2:1;7070:111:0;;;17812:21:1;17869:2;17849:18;;;17842:30;17908:34;17888:18;;;17881:62;-1:-1:-1;;;17959:18:1;;;17952:36;18005:19;;7070:111:0;17628:402:1;7070:111:0;-1:-1:-1;;;;;7217:17:0;;;:9;:17;;;;;;;;;;;7237:22;;;7217:42;;7281:20;;;;;;;;:30;;7253:6;;7217:9;7281:30;;7253:6;;7281:30;:::i;:::-;;;;;;;;7346:9;-1:-1:-1;;;;;7329:35:0;7338:6;-1:-1:-1;;;;;7329:35:0;;7357:6;7329:35;;;;160:25:1;;148:2;133:18;;14:177;7329:35:0;;;;;;;;6842:530;6721:651;;;:::o;16749:379::-;16843:4;16802:20;4613:18;;;;;;;;;;;16879;;16864:33;;16860:46;;;16899:7;16749:379;:::o;16860:46::-;16935:13;;16920:12;:28;16916:62;;;-1:-1:-1;16965:13:0;;16916:62;17008:6;16993:12;:21;16989:48;;;-1:-1:-1;17031:6:0;16989:48;17052:12;17068:1;17052:17;17048:30;;17071:7;16749:379;:::o;17048:30::-;17090;17107:12;17090:16;:30::i;:::-;16791:337;16749:379;:::o;18965:241::-;-1:-1:-1;;;;;19054:22:0;;;;;;:16;:22;;;;;;:27;;:73;;-1:-1:-1;;;;;;19100:22:0;;;;;;:16;:22;;;;;;19085:37;;:12;:37;:::i;:::-;:42;19054:73;:90;;;-1:-1:-1;8377:6:0;;-1:-1:-1;;;;;19131:13:0;;;8377:6;;19131:13;19054:90;19046:152;;;;-1:-1:-1;;;19046:152:0;;18237:2:1;19046:152:0;;;18219:21:1;18276:2;18256:18;;;18249:30;18315:34;18295:18;;;18288:62;-1:-1:-1;;;18366:18:1;;;18359:47;18423:19;;19046:152:0;18035:413:1;16325:416:0;16415:16;;;16429:1;16415:16;;;;;;;;16391:21;;16415:16;;;;;;;;;;-1:-1:-1;16415:16:0;16391:40;;16460:4;16442;16447:1;16442:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16442:23:0;;;-1:-1:-1;;;;;16442:23:0;;;;;16486:9;-1:-1:-1;;;;;16486:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16476:4;16481:1;16476:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16476:26:0;;;:7;;;;;;;;;:26;16515:218;;-1:-1:-1;;;16515:218:0;;:9;:60;;;;;;:218;;16590:11;;16616:1;;16660:4;;16687;;16707:15;;16515:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16380:361;16325:416;:::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;975:131::-;-1:-1:-1;;;;;1050:31:1;;1040:42;;1030:70;;1096:1;1093;1086:12;1030:70;975:131;:::o;1111:247::-;1170:6;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;1278:9;1265:23;1297:31;1322:5;1297:31;:::i;:::-;1347:5;1111:247;-1:-1:-1;;;1111:247:1:o;1363:315::-;1431:6;1439;1492:2;1480:9;1471:7;1467:23;1463:32;1460:52;;;1508:1;1505;1498:12;1460:52;1547:9;1534:23;1566:31;1591:5;1566:31;:::i;:::-;1616:5;1668:2;1653:18;;;;1640:32;;-1:-1:-1;;;1363:315:1:o;1875:456::-;1952:6;1960;1968;2021:2;2009:9;2000:7;1996:23;1992:32;1989:52;;;2037:1;2034;2027:12;1989:52;2076:9;2063:23;2095:31;2120:5;2095:31;:::i;:::-;2145:5;-1:-1:-1;2202:2:1;2187:18;;2174:32;2215:33;2174:32;2215:33;:::i;:::-;1875:456;;2267:7;;-1:-1:-1;;;2321:2:1;2306:18;;;;2293:32;;1875:456::o;2336:367::-;2399:8;2409:6;2463:3;2456:4;2448:6;2444:17;2440:27;2430:55;;2481:1;2478;2471:12;2430:55;-1:-1:-1;2504:20:1;;2547:18;2536:30;;2533:50;;;2579:1;2576;2569:12;2533:50;2616:4;2608:6;2604:17;2592:29;;2676:3;2669:4;2659:6;2656:1;2652:14;2644:6;2640:27;2636:38;2633:47;2630:67;;;2693:1;2690;2683:12;2630:67;2336:367;;;;;:::o;2708:118::-;2794:5;2787:13;2780:21;2773:5;2770:32;2760:60;;2816:1;2813;2806:12;2831:566;2923:6;2931;2939;2992:2;2980:9;2971:7;2967:23;2963:32;2960:52;;;3008:1;3005;2998:12;2960:52;3048:9;3035:23;3081:18;3073:6;3070:30;3067:50;;;3113:1;3110;3103:12;3067:50;3152:70;3214:7;3205:6;3194:9;3190:22;3152:70;:::i;:::-;3241:8;;-1:-1:-1;3126:96:1;-1:-1:-1;;3326:2:1;3311:18;;3298:32;3339:28;3298:32;3339:28;:::i;:::-;3386:5;3376:15;;;2831:566;;;;;:::o;3799:248::-;3867:6;3875;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;-1:-1:-1;;3967:23:1;;;4037:2;4022:18;;;4009:32;;-1:-1:-1;3799:248:1:o;4052:773::-;4174:6;4182;4190;4198;4251:2;4239:9;4230:7;4226:23;4222:32;4219:52;;;4267:1;4264;4257:12;4219:52;4307:9;4294:23;4336:18;4377:2;4369:6;4366:14;4363:34;;;4393:1;4390;4383:12;4363:34;4432:70;4494:7;4485:6;4474:9;4470:22;4432:70;:::i;:::-;4521:8;;-1:-1:-1;4406:96:1;-1:-1:-1;4609:2:1;4594:18;;4581:32;;-1:-1:-1;4625:16:1;;;4622:36;;;4654:1;4651;4644:12;4622:36;;4693:72;4757:7;4746:8;4735:9;4731:24;4693:72;:::i;:::-;4052:773;;;;-1:-1:-1;4784:8:1;-1:-1:-1;;;;4052:773:1:o;4830:180::-;4889:6;4942:2;4930:9;4921:7;4917:23;4913:32;4910:52;;;4958:1;4955;4948:12;4910:52;-1:-1:-1;4981:23:1;;4830:180;-1:-1:-1;4830:180:1:o;5015:382::-;5080:6;5088;5141:2;5129:9;5120:7;5116:23;5112:32;5109:52;;;5157:1;5154;5147:12;5109:52;5196:9;5183:23;5215:31;5240:5;5215:31;:::i;:::-;5265:5;-1:-1:-1;5322:2:1;5307:18;;5294:32;5335:30;5294:32;5335:30;:::i;:::-;5384:7;5374:17;;;5015:382;;;;;:::o;5628:388::-;5696:6;5704;5757:2;5745:9;5736:7;5732:23;5728:32;5725:52;;;5773:1;5770;5763:12;5725:52;5812:9;5799:23;5831:31;5856:5;5831:31;:::i;:::-;5881:5;-1:-1:-1;5938:2:1;5923:18;;5910:32;5951:33;5910:32;5951:33;:::i;6021:380::-;6100:1;6096:12;;;;6143;;;6164:61;;6218:4;6210:6;6206:17;6196:27;;6164:61;6271:2;6263:6;6260:14;6240:18;6237:38;6234:161;;6317:10;6312:3;6308:20;6305:1;6298:31;6352:4;6349:1;6342:15;6380:4;6377:1;6370:15;6234:161;;6021:380;;;:::o;6406:356::-;6608:2;6590:21;;;6627:18;;;6620:30;6686:34;6681:2;6666:18;;6659:62;6753:2;6738:18;;6406:356::o;7176:127::-;7237:10;7232:3;7228:20;7225:1;7218:31;7268:4;7265:1;7258:15;7292:4;7289:1;7282:15;7308:127;7369:10;7364:3;7360:20;7357:1;7350:31;7400:4;7397:1;7390:15;7424:4;7421:1;7414:15;7440:135;7479:3;7500:17;;;7497:43;;7520:18;;:::i;:::-;-1:-1:-1;7567:1:1;7556:13;;7440:135::o;7580:125::-;7645:9;;;7666:10;;;7663:36;;;7679:18;;:::i;7710:217::-;7750:1;7776;7766:132;;7820:10;7815:3;7811:20;7808:1;7801:31;7855:4;7852:1;7845:15;7883:4;7880:1;7873:15;7766:132;-1:-1:-1;7912:9:1;;7710:217::o;8701:422::-;8790:1;8833:5;8790:1;8847:270;8868:7;8858:8;8855:21;8847:270;;;8927:4;8923:1;8919:6;8915:17;8909:4;8906:27;8903:53;;;8936:18;;:::i;:::-;8986:7;8976:8;8972:22;8969:55;;;9006:16;;;;8969:55;9085:22;;;;9045:15;;;;8847:270;;;8851:3;8701:422;;;;;:::o;9128:806::-;9177:5;9207:8;9197:80;;-1:-1:-1;9248:1:1;9262:5;;9197:80;9296:4;9286:76;;-1:-1:-1;9333:1:1;9347:5;;9286:76;9378:4;9396:1;9391:59;;;;9464:1;9459:130;;;;9371:218;;9391:59;9421:1;9412:10;;9435:5;;;9459:130;9496:3;9486:8;9483:17;9480:43;;;9503:18;;:::i;:::-;-1:-1:-1;;9559:1:1;9545:16;;9574:5;;9371:218;;9673:2;9663:8;9660:16;9654:3;9648:4;9645:13;9641:36;9635:2;9625:8;9622:16;9617:2;9611:4;9608:12;9604:35;9601:77;9598:159;;;-1:-1:-1;9710:19:1;;;9742:5;;9598:159;9789:34;9814:8;9808:4;9789:34;:::i;:::-;9859:6;9855:1;9851:6;9847:19;9838:7;9835:32;9832:58;;;9870:18;;:::i;:::-;9908:20;;9128:806;-1:-1:-1;;;9128:806:1:o;9939:140::-;9997:5;10026:47;10067:4;10057:8;10053:19;10047:4;10026:47;:::i;10084:168::-;10157:9;;;10188;;10205:15;;;10199:22;;10185:37;10175:71;;10226:18;;:::i;10955:251::-;11025:6;11078:2;11066:9;11057:7;11053:23;11049:32;11046:52;;;11094:1;11091;11084:12;11046:52;11126:9;11120:16;11145:31;11170:5;11145:31;:::i;12132:306::-;12220:6;12228;12236;12289:2;12277:9;12268:7;12264:23;12260:32;12257:52;;;12305:1;12302;12295:12;12257:52;12334:9;12328:16;12318:26;;12384:2;12373:9;12369:18;12363:25;12353:35;;12428:2;12417:9;12413:18;12407:25;12397:35;;12132:306;;;;;:::o;15021:401::-;15223:2;15205:21;;;15262:2;15242:18;;;15235:30;15301:34;15296:2;15281:18;;15274:62;-1:-1:-1;;;15367:2:1;15352:18;;15345:35;15412:3;15397:19;;15021:401::o;15427:399::-;15629:2;15611:21;;;15668:2;15648:18;;;15641:30;15707:34;15702:2;15687:18;;15680:62;-1:-1:-1;;;15773:2:1;15758:18;;15751:33;15816:3;15801:19;;15427:399::o;16526:128::-;16593:9;;;16614:11;;;16611:37;;;16628:18;;:::i;17039:245::-;17106:6;17159:2;17147:9;17138:7;17134:23;17130:32;17127:52;;;17175:1;17172;17165:12;17127:52;17207:9;17201:16;17226:28;17248:5;17226:28;:::i;18585:980::-;18847:4;18895:3;18884:9;18880:19;18926:6;18915:9;18908:25;18952:2;18990:6;18985:2;18974:9;18970:18;18963:34;19033:3;19028:2;19017:9;19013:18;19006:31;19057:6;19092;19086:13;19123:6;19115;19108:22;19161:3;19150:9;19146:19;19139:26;;19200:2;19192:6;19188:15;19174:29;;19221:1;19231:195;19245:6;19242:1;19239:13;19231:195;;;19310:13;;-1:-1:-1;;;;;19306:39:1;19294:52;;19401:15;;;;19366:12;;;;19342:1;19260:9;19231:195;;;-1:-1:-1;;;;;;;19482:32:1;;;;19477:2;19462:18;;19455:60;-1:-1:-1;;;19546:3:1;19531:19;19524:35;19443:3;18585:980;-1:-1:-1;;;18585:980:1:o

Swarm Source

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