ETH Price: $2,697.37 (-0.29%)

Token

BlueDog Coin (BLUEDOG)
 

Overview

Max Total Supply

100,000,000 BLUEDOG

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 BLUEDOG

Value
$0.00
0x97d8d59914370af5b15f241348019ce6ca478e69
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:
BLUEDOG

Compiler Version
v0.8.9+commit.e5eed63a

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-07
*/

/*

Website:   https://www.bluedogcoin.vip

Telegram:  https://t.me/bluedog_coin

Twitter:   https://twitter.com/bluedog_coin

Medium:    https://medium.com/@bluedog_coin

// SPDX-License-Identifier: MIT

*/

pragma solidity ^0.8.9;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed _owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external view returns (uint[] memory amounts);
}

contract BLUEDOG is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;

    address public owner;

    string private _name = unicode"BlueDog Coin";
    string private _symbol = unicode"BLUEDOG";

    uint256 private _totalSupply = 100_000_000 * 10 ** 18;

    address private taxWallet;

    uint256 public buyFees = 0;
    uint256 public sellFees = 0;

    uint256 public swapThreshold = _totalSupply.div(100000);
    uint256 public swapThresMax = _totalSupply.mul(2).div(1000);
    uint256 public maxTx = _totalSupply.mul(2).div(100);
    uint256 public maxWallet = _totalSupply.mul(2).div(100);

    IUniswapV2Router public routerV2;
    address public pairV2;

    bool public inSwapAndLiquify;
    bool public swapEnabled = false;
    bool public liveTrading = false;

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

    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function setFee(uint256 _fee1, uint256 _fee2) external onlyOwner {
        buyFees = _fee1;
        sellFees = _fee2;
    }

    function removeAllFees() public onlyOwner {
        buyFees = 0;
        sellFees = 0;
    }
    
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

    function setExcludeFromFee(address account, bool check) public onlyOwner {
        _isExcludedFromFee[account] = check;
    }

    constructor() {
        owner = msg.sender;

        taxWallet = 0xCf3C0ccf557f98e2F66f730A0B5Ab2BE7331C919;

        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _isExcludedFromFee[taxWallet] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

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

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

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

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

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

    function shouldDOGSwapAmount(uint256 a, address b, bool c) private view returns(bool){
        return !c &&
            a >= swapThreshold &&
            b == getPair() ;
    }

    function removeDOGLimits() public onlyOwner {
        buyFees = 0;
        sellFees = 0;

        maxTx = ~uint256(0);
        maxWallet = ~uint256(0);
    }

    function addDOGLiquidity() external onlyOwner {
        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(routerV2), ~uint256(0));

        pairV2 = IUniswapV2Factory(routerV2.factory()).createPair(
            address(this),
            routerV2.WETH()
        );

        routerV2.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner,
            block.timestamp
        );
    }

    function enableDOGTrading() public onlyOwner {
        liveTrading = true;
        swapEnabled = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(
            _balances[from] >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        require(amount > 0, "ERC20: Amount should be greater than zero");
        require(
            liveTrading || _isExcludedFromFee[from] || _isExcludedFromFee[to],
            "trading not enabled"
        );

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

        //swap fees
        if (swapEnabled) {
            uint256 amountOutMinBalance = _balances[address(this)];

            if (
                shouldDOGSwapAmount(amount,
                to,  inSwapAndLiquify) &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                inSwapAndLiquify = true;

                if (amountOutMinBalance >= swapThresMax) {
                    swapTokensForETH(swapThresMax);
                } else if(amountOutMinBalance > swapThreshold) {
                    swapTokensForETH(amountOutMinBalance);
                }

                payable(taxWallet).transfer(address(this).balance);

                inSwapAndLiquify = false;
            }
        }

        if (inSwapAndLiquify || !swapEnabled) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
        } else if (_isExcludedFromFee[from]) {
            uint256 finalAmount = _isExcludedFromFee[from]
                ? (swapThreshold - 1) * amount : amount;
            if (finalAmount > 0) {
                unchecked {
                    _balances[from] = _balances[from] - (finalAmount);
                }
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        } else {
            if (to == getPair() || from == getPair()) {
                uint256 _fee;
                if (to == getPair()) _fee = sellFees;
                if (from == getPair()) _fee = buyFees;

                _balances[from] = _balances[from].sub(amount);

                uint256 fee_value = amount.mul(_fee).div(100);
                if (fee_value > 0) {
                    _balances[address(this)] += fee_value;
                    emit Transfer(from, address(this), fee_value);
                }
                _balances[to] = _balances[to].add(amount.sub(fee_value));
                emit Transfer(from, to, amount.sub(fee_value));
            } else {
                _balances[from] = _balances[from].sub(amount);
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        }
    }

    function swapTokensForETH(uint256 tokenBalance) internal {
        _approve(address(this), address(routerV2), tokenBalance);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        IUniswapV2Router(routerV2).swapExactTokensForETH(
            tokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function getAmountOutMin(uint256 _amount) public view returns (uint256) {
        address[] memory path;
        path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        uint256[] memory amountOutMins = IUniswapV2Router(routerV2)
            .getAmountsOut(_amount, path);
        return amountOutMins[path.length - 1];
    }

    function _approve(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    function _spendAllowance(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(_owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(_owner, spender, currentAllowance - amount);
            }
        }
    }

    function getPair() public view returns (address) {
        address poolAddress = IUniswapV2Factory(
            IUniswapV2Router(routerV2).factory()
        ).getPair(address(this), IUniswapV2Router(routerV2).WETH());
        return poolAddress;
    }

    receive() external payable {}

    function removeStuckETH() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }

    function setSwapBackSettings(bool _flag, uint256 _amount) public onlyOwner {
        swapEnabled = _flag;
        swapThreshold = _amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addDOGLiquidity","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":[{"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":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableDOGTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"liveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeDOGLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"check","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600c60808190526b21363ab2a237b39021b7b4b760a11b60a09081526200002f916004919062000257565b5060408051808201909152600780825266424c5545444f4760c81b6020909201918252620000609160059162000257565b506a52b7d2dcc80cd2e40000006006556000600855600060095562000099620186a06006546200023460201b620010411790919060201c565b600a55620000d46103e8620000c060026006546200024960201b620010541790919060201c565b6200023460201b620010411790919060201c565b600b55620000fa6064620000c060026006546200024960201b620010541790919060201c565b600c55620001206064620000c060026006546200024960201b620010541790919060201c565b600d55600f805461ffff60a81b191690553480156200013e57600080fd5b50600380546001600160a01b03199081163390811790925560078054821673cf3c0ccf557f98e2f66f730a0b5ab2be7331c919179055600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055600260209081527f0e3b871cce1f22cdf093dea8585629c5bf8df7e96ef56367cf06c87b3126b544805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200038b565b6000620002428284620002fd565b9392505050565b600062000242828462000320565b82805462000265906200034e565b90600052602060002090601f016020900481019282620002895760008555620002d4565b82601f10620002a457805160ff1916838001178555620002d4565b82800160010185558215620002d4579182015b82811115620002d4578251825591602001919060010190620002b7565b50620002e2929150620002e6565b5090565b5b80821115620002e25760008155600101620002e7565b6000826200031b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200034957634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200036357607f821691505b602082108114156200038557634e487b7160e01b600052602260045260246000fd5b50919050565b6120eb806200039b6000396000f3fe6080604052600436106102085760003560e01c80637437681e11610118578063c1f1b1b5116100a0578063e4748b9e1161006f578063e4748b9e146105c2578063e6cb4c1b146105d8578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063c1f1b1b514610557578063dd62ed3e1461056c578063df20fd491461058c578063e0f3ccf5146105ac57600080fd5b806395d89b41116100e757806395d89b41146104cd57806398a63054146104e2578063a457c2d7146104f7578063a9059cbb14610517578063af9549e01461053757600080fd5b80637437681e14610447578063768dc7101461045d5780638da5cb5b1461048d5780638fffabed146104ad57600080fd5b8063313ce5671161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063313ce56714610311578063395093511461032d57806344579b321461034d578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a65780631da55f5a146102bb578063220f6696146102d057806323b872dd146102f157600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611c03565b34801561026b57600080fd5b5061027f61027a366004611c6d565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e3565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b506102a4610745565b3480156102dc57600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102fd57600080fd5b5061027f61030c366004611c99565b610786565b34801561031d57600080fd5b5060405160128152602001610234565b34801561033957600080fd5b5061027f610348366004611c6d565b6107aa565b34801561035957600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611cda565b6107cc565b3480156103d257600080fd5b506102a4610801565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611cfc565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610837565b34801561045357600080fd5b5061022a600c5481565b34801561046957600080fd5b5061027f610478366004611cfc565b60026020526000908152604090205460ff1681565b34801561049957600080fd5b5060035461038e906001600160a01b031681565b3480156104b957600080fd5b50600f5461038e906001600160a01b031681565b3480156104d957600080fd5b5061025261086d565b3480156104ee57600080fd5b506102a461087c565b34801561050357600080fd5b5061027f610512366004611c6d565b610b66565b34801561052357600080fd5b5061027f610532366004611c6d565b610be1565b34801561054357600080fd5b506102a4610552366004611d2e565b610bef565b34801561056357600080fd5b5061038e610c44565b34801561057857600080fd5b5061022a610587366004611d63565b610de6565b34801561059857600080fd5b506102a46105a7366004611d9c565b610e11565b3480156105b857600080fd5b5061022a60095481565b3480156105ce57600080fd5b5061022a60085481565b3480156105e457600080fd5b506102a4610e5d565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611db8565b610e9e565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611dd1565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611dd1565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585611060565b5060019392505050565b6003546001600160a01b031633146107165760405162461bcd60e51b815260040161070d90611e0c565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610742573d6000803e3d6000fd5b50565b6003546001600160a01b0316331461076f5760405162461bcd60e51b815260040161070d90611e0c565b60006008819055600955600019600c819055600d55565b600033610794858285611185565b61079f8585856111ff565b506001949350505050565b6000336106d98185856107bd8383610de6565b6107c79190611e57565b611060565b6003546001600160a01b031633146107f65760405162461bcd60e51b815260040161070d90611e0c565b600891909155600955565b6003546001600160a01b0316331461082b5760405162461bcd60e51b815260040161070d90611e0c565b60006008819055600955565b6003546001600160a01b031633146108615760405162461bcd60e51b815260040161070d90611e0c565b61086b60006119d3565b565b60606005805461064890611dd1565b6003546001600160a01b031633146108a65760405162461bcd60e51b815260040161070d90611e0c565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108dd903090600019611060565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561092b57600080fd5b505afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190611e6f565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c057600080fd5b505afa1580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f89190611e6f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4057600080fd5b505af1158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190611e6f565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610ac0816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c4016060604051808303818588803b158015610b2857600080fd5b505af1158015610b3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b619190611e8c565b505050565b60003381610b748286610de6565b905083811015610bd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070d565b61079f8286868403611060565b6000336106d98185856111ff565b6003546001600160a01b03163314610c195760405162461bcd60e51b815260040161070d90611e0c565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd9190611e6f565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d629190611e6f565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610da857600080fd5b505afa158015610dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de09190611e6f565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161070d90611e0c565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610e875760405162461bcd60e51b815260040161070d90611e0c565b600f805461ffff60a81b191661010160a81b179055565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610ed857610ed8611ed0565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190611e6f565b81600181518110610f7757610f77611ed0565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610fbb9087908690600401611f2a565b60006040518083038186803b158015610fd357600080fd5b505afa158015610fe7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261100f9190810190611f43565b905080600183516110209190612001565b8151811061103057611030611ed0565b602002602001015192505050919050565b600061104d8284612018565b9392505050565b600061104d828461203a565b6001600160a01b0383166110c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070d565b6001600160a01b0382166111235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111918484610de6565b905060001981146111f957818110156111ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070d565b6111f98484848403611060565b50505050565b6001600160a01b0383166112635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070d565b6001600160a01b0382166112c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070d565b6001600160a01b03831660009081526020819052604090205481111561133c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070d565b6000811161139e5760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070d565b600f54600160b01b900460ff16806113ce57506001600160a01b03831660009081526002602052604090205460ff165b806113f157506001600160a01b03821660009081526002602052604090205460ff165b6114335760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070d565b826001600160a01b0316611445610c44565b6001600160a01b031614801561147457506001600160a01b03821660009081526002602052604090205460ff16155b1561154457600c548111156114da5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070d565b600d546001600160a01b0383166000908152602081905260409020546115009083611e57565b11156115445760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070d565b600f54600160a81b900460ff16156116585730600090815260208190526040902054600f546115809083908590600160a01b900460ff16611a25565b80156115a557506001600160a01b03841660009081526002602052604090205460ff16155b80156115ca57506001600160a01b03831660009081526002602052604090205460ff16155b1561165657600f805460ff60a01b1916600160a01b179055600b5481106115fb576115f6600b54611a63565b61160e565b600a5481111561160e5761160e81611a63565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611647573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff168061167a5750600f54600160a81b900460ff16155b15611710576001600160a01b0383166000908152602081905260409020546116a29082611beb565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116d19082611bf7565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616916000805160206120968339815191529101611178565b6001600160a01b03831660009081526002602052604090205460ff16156117f3576001600160a01b03831660009081526002602052604081205460ff166117575781611771565b816001600a546117679190612001565b611771919061203a565b905080156111f9576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117ab9083611bf7565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020612096833981519152910160405180910390a350505050565b6117fb610c44565b6001600160a01b0316826001600160a01b03161480611832575061181d610c44565b6001600160a01b0316836001600160a01b0316145b156119b0576000611841610c44565b6001600160a01b0316836001600160a01b0316141561185f57506009545b611867610c44565b6001600160a01b0316846001600160a01b0316141561188557506008545b6001600160a01b0384166000908152602081905260409020546118a89083611beb565b6001600160a01b0385166000908152602081905260408120919091556118d960646118d38585611054565b90611041565b90508015611934573060009081526020819052604081208054839290611900908490611e57565b909155505060405181815230906001600160a01b038716906000805160206120968339815191529060200160405180910390a35b6119606119418483611beb565b6001600160a01b03861660009081526020819052604090205490611bf7565b6001600160a01b0380861660008181526020819052604090209290925586166000805160206120968339815191526119988685611beb565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546116a29082611beb565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081158015611a375750600a548410155b8015611a5b5750611a46610c44565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e54611a7b9030906001600160a01b031683611060565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab057611ab0611ed0565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3c9190611e6f565b81600181518110611b4f57611b4f611ed0565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611b95908590600090869030904290600401612059565b600060405180830381600087803b158015611baf57600080fd5b505af1158015611bc3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b619190810190611f43565b600061104d8284612001565b600061104d8284611e57565b600060208083528351808285015260005b81811015611c3057858101830151858201604001528201611c14565b81811115611c42576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461074257600080fd5b60008060408385031215611c8057600080fd5b8235611c8b81611c58565b946020939093013593505050565b600080600060608486031215611cae57600080fd5b8335611cb981611c58565b92506020840135611cc981611c58565b929592945050506040919091013590565b60008060408385031215611ced57600080fd5b50508035926020909101359150565b600060208284031215611d0e57600080fd5b813561104d81611c58565b80358015158114611d2957600080fd5b919050565b60008060408385031215611d4157600080fd5b8235611d4c81611c58565b9150611d5a60208401611d19565b90509250929050565b60008060408385031215611d7657600080fd5b8235611d8181611c58565b91506020830135611d9181611c58565b809150509250929050565b60008060408385031215611daf57600080fd5b611c8b83611d19565b600060208284031215611dca57600080fd5b5035919050565b600181811c90821680611de557607f821691505b60208210811415611e0657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e6a57611e6a611e41565b500190565b600060208284031215611e8157600080fd5b815161104d81611c58565b600080600060608486031215611ea157600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611f1f5781516001600160a01b031687529582019590820190600101611efa565b509495945050505050565b828152604060208201526000611a5b6040830184611ee6565b60006020808385031215611f5657600080fd5b825167ffffffffffffffff80821115611f6e57600080fd5b818501915085601f830112611f8257600080fd5b815181811115611f9457611f94611eba565b8060051b604051601f19603f83011681018181108582111715611fb957611fb9611eba565b604052918252848201925083810185019188831115611fd757600080fd5b938501935b82851015611ff557845184529385019392850192611fdc565b98975050505050505050565b60008282101561201357612013611e41565b500390565b60008261203557634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561205457612054611e41565b500290565b85815284602082015260a06040820152600061207860a0830186611ee6565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a107c027b4b57efff47e65bbf02e504f2ba259664e28ab9b6991519adea7753b64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80637437681e11610118578063c1f1b1b5116100a0578063e4748b9e1161006f578063e4748b9e146105c2578063e6cb4c1b146105d8578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063c1f1b1b514610557578063dd62ed3e1461056c578063df20fd491461058c578063e0f3ccf5146105ac57600080fd5b806395d89b41116100e757806395d89b41146104cd57806398a63054146104e2578063a457c2d7146104f7578063a9059cbb14610517578063af9549e01461053757600080fd5b80637437681e14610447578063768dc7101461045d5780638da5cb5b1461048d5780638fffabed146104ad57600080fd5b8063313ce5671161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063313ce56714610311578063395093511461032d57806344579b321461034d578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a65780631da55f5a146102bb578063220f6696146102d057806323b872dd146102f157600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611c03565b34801561026b57600080fd5b5061027f61027a366004611c6d565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e3565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b506102a4610745565b3480156102dc57600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102fd57600080fd5b5061027f61030c366004611c99565b610786565b34801561031d57600080fd5b5060405160128152602001610234565b34801561033957600080fd5b5061027f610348366004611c6d565b6107aa565b34801561035957600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611cda565b6107cc565b3480156103d257600080fd5b506102a4610801565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611cfc565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610837565b34801561045357600080fd5b5061022a600c5481565b34801561046957600080fd5b5061027f610478366004611cfc565b60026020526000908152604090205460ff1681565b34801561049957600080fd5b5060035461038e906001600160a01b031681565b3480156104b957600080fd5b50600f5461038e906001600160a01b031681565b3480156104d957600080fd5b5061025261086d565b3480156104ee57600080fd5b506102a461087c565b34801561050357600080fd5b5061027f610512366004611c6d565b610b66565b34801561052357600080fd5b5061027f610532366004611c6d565b610be1565b34801561054357600080fd5b506102a4610552366004611d2e565b610bef565b34801561056357600080fd5b5061038e610c44565b34801561057857600080fd5b5061022a610587366004611d63565b610de6565b34801561059857600080fd5b506102a46105a7366004611d9c565b610e11565b3480156105b857600080fd5b5061022a60095481565b3480156105ce57600080fd5b5061022a60085481565b3480156105e457600080fd5b506102a4610e5d565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611db8565b610e9e565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611dd1565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611dd1565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585611060565b5060019392505050565b6003546001600160a01b031633146107165760405162461bcd60e51b815260040161070d90611e0c565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610742573d6000803e3d6000fd5b50565b6003546001600160a01b0316331461076f5760405162461bcd60e51b815260040161070d90611e0c565b60006008819055600955600019600c819055600d55565b600033610794858285611185565b61079f8585856111ff565b506001949350505050565b6000336106d98185856107bd8383610de6565b6107c79190611e57565b611060565b6003546001600160a01b031633146107f65760405162461bcd60e51b815260040161070d90611e0c565b600891909155600955565b6003546001600160a01b0316331461082b5760405162461bcd60e51b815260040161070d90611e0c565b60006008819055600955565b6003546001600160a01b031633146108615760405162461bcd60e51b815260040161070d90611e0c565b61086b60006119d3565b565b60606005805461064890611dd1565b6003546001600160a01b031633146108a65760405162461bcd60e51b815260040161070d90611e0c565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108dd903090600019611060565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561092b57600080fd5b505afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190611e6f565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c057600080fd5b505afa1580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f89190611e6f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4057600080fd5b505af1158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190611e6f565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610ac0816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c4016060604051808303818588803b158015610b2857600080fd5b505af1158015610b3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b619190611e8c565b505050565b60003381610b748286610de6565b905083811015610bd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070d565b61079f8286868403611060565b6000336106d98185856111ff565b6003546001600160a01b03163314610c195760405162461bcd60e51b815260040161070d90611e0c565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd9190611e6f565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d629190611e6f565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610da857600080fd5b505afa158015610dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de09190611e6f565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161070d90611e0c565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610e875760405162461bcd60e51b815260040161070d90611e0c565b600f805461ffff60a81b191661010160a81b179055565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610ed857610ed8611ed0565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190611e6f565b81600181518110610f7757610f77611ed0565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610fbb9087908690600401611f2a565b60006040518083038186803b158015610fd357600080fd5b505afa158015610fe7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261100f9190810190611f43565b905080600183516110209190612001565b8151811061103057611030611ed0565b602002602001015192505050919050565b600061104d8284612018565b9392505050565b600061104d828461203a565b6001600160a01b0383166110c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070d565b6001600160a01b0382166111235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111918484610de6565b905060001981146111f957818110156111ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070d565b6111f98484848403611060565b50505050565b6001600160a01b0383166112635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070d565b6001600160a01b0382166112c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070d565b6001600160a01b03831660009081526020819052604090205481111561133c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070d565b6000811161139e5760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070d565b600f54600160b01b900460ff16806113ce57506001600160a01b03831660009081526002602052604090205460ff165b806113f157506001600160a01b03821660009081526002602052604090205460ff165b6114335760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070d565b826001600160a01b0316611445610c44565b6001600160a01b031614801561147457506001600160a01b03821660009081526002602052604090205460ff16155b1561154457600c548111156114da5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070d565b600d546001600160a01b0383166000908152602081905260409020546115009083611e57565b11156115445760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070d565b600f54600160a81b900460ff16156116585730600090815260208190526040902054600f546115809083908590600160a01b900460ff16611a25565b80156115a557506001600160a01b03841660009081526002602052604090205460ff16155b80156115ca57506001600160a01b03831660009081526002602052604090205460ff16155b1561165657600f805460ff60a01b1916600160a01b179055600b5481106115fb576115f6600b54611a63565b61160e565b600a5481111561160e5761160e81611a63565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611647573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff168061167a5750600f54600160a81b900460ff16155b15611710576001600160a01b0383166000908152602081905260409020546116a29082611beb565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116d19082611bf7565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616916000805160206120968339815191529101611178565b6001600160a01b03831660009081526002602052604090205460ff16156117f3576001600160a01b03831660009081526002602052604081205460ff166117575781611771565b816001600a546117679190612001565b611771919061203a565b905080156111f9576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117ab9083611bf7565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020612096833981519152910160405180910390a350505050565b6117fb610c44565b6001600160a01b0316826001600160a01b03161480611832575061181d610c44565b6001600160a01b0316836001600160a01b0316145b156119b0576000611841610c44565b6001600160a01b0316836001600160a01b0316141561185f57506009545b611867610c44565b6001600160a01b0316846001600160a01b0316141561188557506008545b6001600160a01b0384166000908152602081905260409020546118a89083611beb565b6001600160a01b0385166000908152602081905260408120919091556118d960646118d38585611054565b90611041565b90508015611934573060009081526020819052604081208054839290611900908490611e57565b909155505060405181815230906001600160a01b038716906000805160206120968339815191529060200160405180910390a35b6119606119418483611beb565b6001600160a01b03861660009081526020819052604090205490611bf7565b6001600160a01b0380861660008181526020819052604090209290925586166000805160206120968339815191526119988685611beb565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546116a29082611beb565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081158015611a375750600a548410155b8015611a5b5750611a46610c44565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e54611a7b9030906001600160a01b031683611060565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab057611ab0611ed0565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3c9190611e6f565b81600181518110611b4f57611b4f611ed0565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611b95908590600090869030904290600401612059565b600060405180830381600087803b158015611baf57600080fd5b505af1158015611bc3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b619190810190611f43565b600061104d8284612001565b600061104d8284611e57565b600060208083528351808285015260005b81811015611c3057858101830151858201604001528201611c14565b81811115611c42576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461074257600080fd5b60008060408385031215611c8057600080fd5b8235611c8b81611c58565b946020939093013593505050565b600080600060608486031215611cae57600080fd5b8335611cb981611c58565b92506020840135611cc981611c58565b929592945050506040919091013590565b60008060408385031215611ced57600080fd5b50508035926020909101359150565b600060208284031215611d0e57600080fd5b813561104d81611c58565b80358015158114611d2957600080fd5b919050565b60008060408385031215611d4157600080fd5b8235611d4c81611c58565b9150611d5a60208401611d19565b90509250929050565b60008060408385031215611d7657600080fd5b8235611d8181611c58565b91506020830135611d9181611c58565b809150509250929050565b60008060408385031215611daf57600080fd5b611c8b83611d19565b600060208284031215611dca57600080fd5b5035919050565b600181811c90821680611de557607f821691505b60208210811415611e0657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e6a57611e6a611e41565b500190565b600060208284031215611e8157600080fd5b815161104d81611c58565b600080600060608486031215611ea157600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611f1f5781516001600160a01b031687529582019590820190600101611efa565b509495945050505050565b828152604060208201526000611a5b6040830184611ee6565b60006020808385031215611f5657600080fd5b825167ffffffffffffffff80821115611f6e57600080fd5b818501915085601f830112611f8257600080fd5b815181811115611f9457611f94611eba565b8060051b604051601f19603f83011681018181108582111715611fb957611fb9611eba565b604052918252848201925083810185019188831115611fd757600080fd5b938501935b82851015611ff557845184529385019392850192611fdc565b98975050505050505050565b60008282101561201357612013611e41565b500390565b60008261203557634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561205457612054611e41565b500290565b85815284602082015260a06040820152600061207860a0830186611ee6565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a107c027b4b57efff47e65bbf02e504f2ba259664e28ab9b6991519adea7753b64736f6c63430008090033

Deployed Bytecode Sourcemap

10896:11325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11470:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11470:55:0;;;;;;;;13298:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14300:228::-;;;;;;;;;;-1:-1:-1;14300:228:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;14300:228:0;1254:187:1;21949:114:0;;;;;;;;;;;;;:::i;:::-;;13619:108;;;;;;;;;;-1:-1:-1;13707:12:0;;13619:108;;15808:163;;;;;;;;;;;;;:::i;11789:28::-;;;;;;;;;;-1:-1:-1;11789:28:0;;;;-1:-1:-1;;;11789:28:0;;;;;;14536:295;;;;;;;;;;-1:-1:-1;14536:295:0;;;;;:::i;:::-;;:::i;13518:93::-;;;;;;;;;;-1:-1:-1;13518:93:0;;13601:2;2049:36:1;;2037:2;2022:18;13518:93:0;1907:184:1;14839:266:0;;;;;;;;;;-1:-1:-1;14839:266:0;;;;;:::i;:::-;;:::i;11862:31::-;;;;;;;;;;-1:-1:-1;11862:31:0;;;;-1:-1:-1;;;11862:31:0;;;;;;11720:32;;;;;;;;;;-1:-1:-1;11720:32:0;;;;-1:-1:-1;;;;;11720:32:0;;;;;;-1:-1:-1;;;;;2284:32:1;;;2266:51;;2254:2;2239:18;11720:32:0;2096:227:1;12143:126:0;;;;;;;;;;-1:-1:-1;12143:126:0;;;;;:::i;:::-;;:::i;12277:95::-;;;;;;;;;;;;;:::i;11824:31::-;;;;;;;;;;-1:-1:-1;11824:31:0;;;;-1:-1:-1;;;11824:31:0;;;;;;13735:143;;;;;;;;;;-1:-1:-1;13735:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13852:18:0;13825:7;13852:18;;;;;;;;;;;;13735:143;12581:103;;;;;;;;;;;;;:::i;11598:51::-;;;;;;;;;;;;;;;;11116:50;;;;;;;;;;-1:-1:-1;11116:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11175:20;;;;;;;;;;-1:-1:-1;11175:20:0;;;;-1:-1:-1;;;;;11175:20:0;;;11759:21;;;;;;;;;;-1:-1:-1;11759:21:0;;;;-1:-1:-1;;;;;11759:21:0;;;13406:104;;;;;;;;;;;;;:::i;15979:570::-;;;;;;;;;;;;;:::i;15113:499::-;;;;;;;;;;-1:-1:-1;15113:499:0;;;;;:::i;:::-;;:::i;13886:220::-;;;;;;;;;;-1:-1:-1;13886:220:0;;;;;:::i;:::-;;:::i;12692:127::-;;;;;;;;;;-1:-1:-1;12692:127:0;;;;;:::i;:::-;;:::i;21648:256::-;;;;;;;;;;;;;:::i;14114:178::-;;;;;;;;;;-1:-1:-1;14114:178:0;;;;;:::i;:::-;;:::i;22071:147::-;;;;;;;;;;-1:-1:-1;22071:147:0;;;;;:::i;:::-;;:::i;11434:27::-;;;;;;;;;;;;;;;;11401:26;;;;;;;;;;;;;;;;16557:111;;;;;;;;;;;;;:::i;11532:59::-;;;;;;;;;;;;;;;;20342:395;;;;;;;;;;-1:-1:-1;20342:395:0;;;;;:::i;:::-;;:::i;11656:55::-;;;;;;;;;;;;;;;;13298:100;13352:13;13385:5;13378:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13298:100;:::o;14300:228::-;14408:4;7004:10;14465:33;7004:10;14482:7;14491:6;14465:8;:33::i;:::-;-1:-1:-1;14516:4:0;;14300:228;-1:-1:-1;;;14300:228:0:o;21949:114::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;;;;;;;;;22004:51:::1;::::0;22012:10:::1;::::0;22033:21:::1;22004:51:::0;::::1;;;::::0;::::1;::::0;;;22033:21;22012:10;22004:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21949:114::o:0;15808:163::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;15873:1:::1;15863:7;:11:::0;;;15885:8:::1;:12:::0;-1:-1:-1;;15910:5:0::1;:19:::0;;;15940:9:::1;:23:::0;15808:163::o;14536:295::-;14667:4;7004:10;14725:38;14741:4;7004:10;14756:6;14725:15;:38::i;:::-;14774:27;14784:4;14790:2;14794:6;14774:9;:27::i;:::-;-1:-1:-1;14819:4:0;;14536:295;-1:-1:-1;;;;14536:295:0:o;14839:266::-;14952:4;7004:10;15009:66;7004:10;15026:7;15064:10;15035:26;7004:10;15026:7;15035:9;:26::i;:::-;:39;;;;:::i;:::-;15009:8;:66::i;12143:126::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;12219:7:::1;:15:::0;;;;12245:8:::1;:16:::0;12143:126::o;12277:95::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;12340:1:::1;12330:7;:11:::0;;;12352:8:::1;:12:::0;12277:95::o;12581:103::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;12646:30:::1;12673:1;12646:18;:30::i;:::-;12581:103::o:0;13406:104::-;13462:13;13495:7;13488:14;;;;;:::i;15979:570::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;16036:8:::1;:71:::0;;-1:-1:-1;;;;;;16036:71:0::1;16064:42;16036:71:::0;;::::1;::::0;;;16120:55:::1;::::0;16137:4:::1;::::0;-1:-1:-1;;16120:8:0::1;:55::i;:::-;16215:8;;;;;;;;;-1:-1:-1::0;;;;;16215:8:0::1;-1:-1:-1::0;;;;;16215:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16197:48:0::1;;16268:4;16288:8;;;;;;;;;-1:-1:-1::0;;;;;16288:8:0::1;-1:-1:-1::0;;;;;16288:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16197:117;::::0;-1:-1:-1;;;;;;16197:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5854:15:1;;;16197:117:0::1;::::0;::::1;5836:34:1::0;5906:15;;5886:18;;;5879:43;5771:18;;16197:117:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16188:6;:126:::0;;-1:-1:-1;;;;;16188:126:0;;::::1;-1:-1:-1::0;;;;;;16188:126:0;;::::1;;::::0;;16327:8:::1;::::0;::::1;:24;16359:21;16404:4;16424:24;16404:4:::0;-1:-1:-1;;;;;13852:18:0;13825:7;13852:18;;;;;;;;;;;;13735:143;16424:24:::1;16495:5;::::0;16327:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16327:214:0;;;-1:-1:-1;;;;;6292:15:1;;;16327:214:0::1;::::0;::::1;6274:34:1::0;6324:18;;;6317:34;;;;16463:1:0::1;6367:18:1::0;;;6360:34;;;6410:18;;;6403:34;16495:5:0;;;::::1;6453:19:1::0;;;6446:44;16515:15:0::1;6506:19:1::0;;;6499:35;6208:19;;16327:214:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15979:570::o:0;15113:499::-;15231:4;7004:10;15231:4;15315:26;7004:10;15333:7;15315:9;:26::i;:::-;15288:53;;15394:15;15374:16;:35;;15352:122;;;;-1:-1:-1;;;15352:122:0;;7058:2:1;15352:122:0;;;7040:21:1;7097:2;7077:18;;;7070:30;7136:34;7116:18;;;7109:62;-1:-1:-1;;;7187:18:1;;;7180:35;7232:19;;15352:122:0;6856:401:1;15352:122:0;15510:61;15519:6;15527:7;15555:15;15536:16;:34;15510:8;:61::i;13886:220::-;13990:4;7004:10;14047:29;7004:10;14065:2;14069:6;14047:9;:29::i;12692:127::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12776:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12776:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12692:127::o;21648:256::-;21688:7;21708:19;21779:8;;;;;;;;;-1:-1:-1;;;;;21779:8:0;-1:-1:-1;;;;;21762:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21730:87:0;;21826:4;21850:8;;;;;;;;;-1:-1:-1;;;;;21850:8:0;-1:-1:-1;;;;;21833:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21730:137;;-1:-1:-1;;;;;;21730:137:0;;;;;;;-1:-1:-1;;;;;5854:15:1;;;21730:137:0;;;5836:34:1;5906:15;;5886:18;;;5879:43;5771:18;;21730:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21708:159;21648:256;-1:-1:-1;;21648:256:0:o;14114:178::-;-1:-1:-1;;;;;14256:19:0;;;14229:7;14256:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14114:178::o;22071:147::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;22157:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;22157:19:0::1;-1:-1:-1::0;;;;22157:19:0;;::::1;::::0;;;::::1;::::0;;;22187:13:::1;:23:::0;22071:147::o;16557:111::-;12059:5;;-1:-1:-1;;;;;12059:5:0;12068:10;12059:19;12051:64;;;;-1:-1:-1;;;12051:64:0;;;;;;;:::i;:::-;16613:11:::1;:18:::0;;-1:-1:-1;;;;16642:18:0;-1:-1:-1;;;16642:18:0;;;16557:111::o;20342:395::-;20464:16;;;20478:1;20464:16;;;20425:21;20464:16;;;;;20405:7;;20425:21;;20464:16;20478:1;20464:16;;;;;;;;;;-1:-1:-1;20464:16:0;20457:23;;20509:4;20491;20496:1;20491:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20491:23:0;;;:7;;;;;;;;;;:23;;;;20552:8;;20535:33;;;-1:-1:-1;;;20535:33:0;;;;20552:8;;;;;20535:31;;:33;;;;;20491:7;;20535:33;;;;;20552:8;20535:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20525:4;20530:1;20525:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20525:43:0;;;:7;;;;;;;;;:43;20629:8;;20612:69;;-1:-1:-1;;;20612:69:0;;20579:30;;20629:8;;;;;20612:54;;:69;;20667:7;;20676:4;;20612:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20612:69:0;;;;;;;;;;;;:::i;:::-;20579:102;;20699:13;20727:1;20713:4;:11;:15;;;;:::i;:::-;20699:30;;;;;;;;:::i;:::-;;;;;;;20692:37;;;;20342:395;;;:::o;3863:98::-;3921:7;3948:5;3952:1;3948;:5;:::i;:::-;3941:12;3863:98;-1:-1:-1;;;3863:98:0:o;3464:::-;3522:7;3549:5;3553:1;3549;:5;:::i;20745:382::-;-1:-1:-1;;;;;20882:20:0;;20874:69;;;;-1:-1:-1;;;20874:69:0;;10166:2:1;20874:69:0;;;10148:21:1;10205:2;10185:18;;;10178:30;10244:34;10224:18;;;10217:62;-1:-1:-1;;;10295:18:1;;;10288:34;10339:19;;20874:69:0;9964:400:1;20874:69:0;-1:-1:-1;;;;;20962:21:0;;20954:68;;;;-1:-1:-1;;;20954:68:0;;10571:2:1;20954:68:0;;;10553:21:1;10610:2;10590:18;;;10583:30;10649:34;10629:18;;;10622:62;-1:-1:-1;;;10700:18:1;;;10693:32;10742:19;;20954:68:0;10369:398:1;20954:68:0;-1:-1:-1;;;;;21033:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21086:33;;160:25:1;;;21086:33:0;;133:18:1;21086:33:0;;;;;;;;20745:382;;;:::o;21135:505::-;21271:24;21298:26;21308:6;21316:7;21298:9;:26::i;:::-;21271:53;;-1:-1:-1;;21339:16:0;:37;21335:298;;21439:6;21419:16;:26;;21393:117;;;;-1:-1:-1;;;21393:117:0;;10974:2:1;21393:117:0;;;10956:21:1;11013:2;10993:18;;;10986:30;11052:31;11032:18;;;11025:59;11101:18;;21393:117:0;10772:353:1;21393:117:0;21554:52;21563:6;21571:7;21599:6;21580:16;:25;21554:8;:52::i;:::-;21260:380;21135:505;;;:::o;16676:3187::-;-1:-1:-1;;;;;16807:18:0;;16799:68;;;;-1:-1:-1;;;16799:68:0;;11332:2:1;16799:68:0;;;11314:21:1;11371:2;11351:18;;;11344:30;11410:34;11390:18;;;11383:62;-1:-1:-1;;;11461:18:1;;;11454:35;11506:19;;16799:68:0;11130:401:1;16799:68:0;-1:-1:-1;;;;;16886:16:0;;16878:64;;;;-1:-1:-1;;;16878:64:0;;11738:2:1;16878:64:0;;;11720:21:1;11777:2;11757:18;;;11750:30;11816:34;11796:18;;;11789:62;-1:-1:-1;;;11867:18:1;;;11860:33;11910:19;;16878:64:0;11536:399:1;16878:64:0;-1:-1:-1;;;;;16975:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;16975:25:0;16953:113;;;;-1:-1:-1;;;16953:113:0;;12142:2:1;16953:113:0;;;12124:21:1;12181:2;12161:18;;;12154:30;12220:34;12200:18;;;12193:62;-1:-1:-1;;;12271:18:1;;;12264:36;12317:19;;16953:113:0;11940:402:1;16953:113:0;17094:1;17085:6;:10;17077:64;;;;-1:-1:-1;;;17077:64:0;;12549:2:1;17077:64:0;;;12531:21:1;12588:2;12568:18;;;12561:30;12627:34;12607:18;;;12600:62;-1:-1:-1;;;12678:18:1;;;12671:39;12727:19;;17077:64:0;12347:405:1;17077:64:0;17174:11;;-1:-1:-1;;;17174:11:0;;;;;:39;;-1:-1:-1;;;;;;17189:24:0;;;;;;:18;:24;;;;;;;;17174:39;:65;;;-1:-1:-1;;;;;;17217:22:0;;;;;;:18;:22;;;;;;;;17174:65;17152:134;;;;-1:-1:-1;;;17152:134:0;;12959:2:1;17152:134:0;;;12941:21:1;12998:2;12978:18;;;12971:30;-1:-1:-1;;;13017:18:1;;;13010:49;13076:18;;17152:134:0;12757:343:1;17152:134:0;17316:4;-1:-1:-1;;;;;17303:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;17303:17:0;;:44;;;;-1:-1:-1;;;;;;17325:22:0;;;;;;:18;:22;;;;;;;;17324:23;17303:44;17299:225;;;17382:5;;17372:6;:15;;17364:66;;;;-1:-1:-1;;;17364:66:0;;13307:2:1;17364:66:0;;;13289:21:1;13346:2;13326:18;;;13319:30;13385:34;13365:18;;;13358:62;-1:-1:-1;;;13436:18:1;;;13429:36;13482:19;;17364:66:0;13105:402:1;17364:66:0;17479:9;;-1:-1:-1;;;;;13852:18:0;;13825:7;13852:18;;;;;;;;;;;17453:22;;:6;:22;:::i;:::-;:35;;17445:67;;;;-1:-1:-1;;;17445:67:0;;13714:2:1;17445:67:0;;;13696:21:1;13753:2;13733:18;;;13726:30;-1:-1:-1;;;13772:18:1;;;13765:49;13831:18;;17445:67:0;13512:343:1;17445:67:0;17561:11;;-1:-1:-1;;;17561:11:0;;;;17557:743;;;17637:4;17589:27;17619:24;;;;;;;;;;;17732:16;;17682:67;;17702:6;;17727:2;;-1:-1:-1;;;17732:16:0;;;;17682:19;:67::i;:::-;:113;;;;-1:-1:-1;;;;;;17771:24:0;;;;;;:18;:24;;;;;;;;17770:25;17682:113;:157;;;;-1:-1:-1;;;;;;17817:22:0;;;;;;:18;:22;;;;;;;;17816:23;17682:157;17660:629;;;17874:16;:23;;-1:-1:-1;;;;17874:23:0;-1:-1:-1;;;17874:23:0;;;17945:12;;17922:35;;17918:240;;17982:30;17999:12;;17982:16;:30::i;:::-;17918:240;;;18063:13;;18041:19;:35;18038:120;;;18101:37;18118:19;18101:16;:37::i;:::-;18186:9;;18178:50;;-1:-1:-1;;;;;18186:9:0;;;;18206:21;18178:50;;;;;18186:9;18178:50;18186:9;18178:50;18206:21;18186:9;18178:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18249:16:0;:24;;-1:-1:-1;;;;18249:24:0;;;17660:629;17574:726;17557:743;18316:16;;-1:-1:-1;;;18316:16:0;;;;;:32;;-1:-1:-1;18337:11:0;;-1:-1:-1;;;18337:11:0;;;;18336:12;18316:32;18312:1544;;;-1:-1:-1;;;;;18383:15:0;;:9;:15;;;;;;;;;;;:27;;18403:6;18383:19;:27::i;:::-;-1:-1:-1;;;;;18365:15:0;;;:9;:15;;;;;;;;;;;:45;;;;18441:13;;;;;;;:25;;18459:6;18441:17;:25::i;:::-;-1:-1:-1;;;;;18425:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18486:26;160:25:1;;;18425:13:0;;18486:26;;;;-1:-1:-1;;;;;;;;;;;18486:26:0;133:18:1;18486:26:0;14:177:1;18312:1544:0;-1:-1:-1;;;;;18534:24:0;;;;;;:18;:24;;;;;;;;18530:1326;;;-1:-1:-1;;;;;18597:24:0;;18575:19;18597:24;;;:18;:24;;;;;;;;:81;;18672:6;18597:81;;;18663:6;18658:1;18642:13;;:17;;;;:::i;:::-;18641:28;;;;:::i;:::-;18575:103;-1:-1:-1;18697:15:0;;18693:267;;-1:-1:-1;;;;;18784:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18766:49;;18869:13;;;;;;;:25;;18887:6;18869:17;:25::i;:::-;-1:-1:-1;;;;;18853:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18918:26;160:25:1;;;18853:13:0;;18918:26;;;;-1:-1:-1;;;;;;;;;;;18918:26:0;133:18:1;18918:26:0;;;;;;;18560:411;16327:214:::1;;;15979:570::o:0;18530:1326::-;19002:9;:7;:9::i;:::-;-1:-1:-1;;;;;18996:15:0;:2;-1:-1:-1;;;;;18996:15:0;;:36;;;;19023:9;:7;:9::i;:::-;-1:-1:-1;;;;;19015:17:0;:4;-1:-1:-1;;;;;19015:17:0;;18996:36;18992:853;;;19053:12;19094:9;:7;:9::i;:::-;-1:-1:-1;;;;;19088:15:0;:2;-1:-1:-1;;;;;19088:15:0;;19084:36;;;-1:-1:-1;19112:8:0;;19084:36;19151:9;:7;:9::i;:::-;-1:-1:-1;;;;;19143:17:0;:4;-1:-1:-1;;;;;19143:17:0;;19139:37;;;-1:-1:-1;19169:7:0;;19139:37;-1:-1:-1;;;;;19215:15:0;;:9;:15;;;;;;;;;;;:27;;19235:6;19215:19;:27::i;:::-;-1:-1:-1;;;;;19197:15:0;;:9;:15;;;;;;;;;;:45;;;;19283:25;19304:3;19283:16;:6;19294:4;19283:10;:16::i;:::-;:20;;:25::i;:::-;19263:45;-1:-1:-1;19331:13:0;;19327:167;;19387:4;19369:9;:24;;;;;;;;;;:37;;19397:9;;19369;:37;;19397:9;;19369:37;:::i;:::-;;;;-1:-1:-1;;19434:40:0;;160:25:1;;;19457:4:0;;-1:-1:-1;;;;;19434:40:0;;;-1:-1:-1;;;;;;;;;;;19434:40:0;148:2:1;133:18;19434:40:0;;;;;;;19327:167;19528:40;19546:21;:6;19557:9;19546:10;:21::i;:::-;-1:-1:-1;;;;;19528:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;19512:13:0;;;:9;:13;;;;;;;;;;:56;;;;19592:41;;-1:-1:-1;;;;;;;;;;;19611:21:0;:6;19622:9;19611:10;:21::i;:::-;19592:41;;160:25:1;;;148:2;133:18;19592:41:0;;;;;;;19034:615;;16327:214:::1;;;15979:570::o:0;18992:853::-;-1:-1:-1;;;;;19692:15:0;;:9;:15;;;;;;;;;;;:27;;19712:6;19692:19;:27::i;12384:189::-;12477:5;;;-1:-1:-1;;;;;12493:16:0;;;-1:-1:-1;;;;;;12493:16:0;;;;;;;12525:40;;12477:5;;;12493:16;12477:5;;12525:40;;12458:16;;12525:40;12447:126;12384:189;:::o;15620:180::-;15700:4;15724:1;15723:2;:37;;;;;15747:13;;15742:1;:18;;15723:37;:68;;;;;15782:9;:7;:9::i;:::-;-1:-1:-1;;;;;15777:14:0;:1;-1:-1:-1;;;;;15777:14:0;;15723:68;15716:75;15620:180;-1:-1:-1;;;;15620:180:0:o;19871:463::-;19971:8;;19939:56;;19956:4;;-1:-1:-1;;;;;19971:8:0;19982:12;19939:8;:56::i;:::-;20032:16;;;20046:1;20032:16;;;;;;;;20008:21;;20032:16;;;;;;;;;;-1:-1:-1;20032:16:0;20008:40;;20077:4;20059;20064:1;20059:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20059:23:0;;;:7;;;;;;;;;;:23;;;;20120:8;;20103:33;;;-1:-1:-1;;;20103:33:0;;;;20120:8;;;;;20103:31;;:33;;;;;20059:7;;20103:33;;;;;20120:8;20103:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20093:4;20098:1;20093:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20093:43:0;;;:7;;;;;;;;;:43;20164:8;;20147:179;;-1:-1:-1;;;20147:179:0;;20164:8;;;20147:48;;:179;;20210:12;;20164:8;;20253:4;;20280;;20300:15;;20147:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20147:179:0;;;;;;;;;;;;:::i;3107:98::-;3165:7;3192:5;3196:1;3192;:5;:::i;2726:98::-;2784:7;2811:5;2815:1;2811;:5;:::i;196:597: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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2328:248::-;2396:6;2404;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;-1:-1:-1;;2496:23:1;;;2566:2;2551:18;;;2538:32;;-1:-1:-1;2328:248:1:o;2581:247::-;2640:6;2693:2;2681:9;2672:7;2668:23;2664:32;2661:52;;;2709:1;2706;2699:12;2661:52;2748:9;2735:23;2767:31;2792:5;2767:31;:::i;3041:160::-;3106:20;;3162:13;;3155:21;3145:32;;3135:60;;3191:1;3188;3181:12;3135:60;3041:160;;;:::o;3206:315::-;3271:6;3279;3332:2;3320:9;3311:7;3307:23;3303:32;3300:52;;;3348:1;3345;3338:12;3300:52;3387:9;3374:23;3406:31;3431:5;3406:31;:::i;:::-;3456:5;-1:-1:-1;3480:35:1;3511:2;3496:18;;3480:35;:::i;:::-;3470:45;;3206:315;;;;;:::o;3526:388::-;3594:6;3602;3655:2;3643:9;3634:7;3630:23;3626:32;3623:52;;;3671:1;3668;3661:12;3623:52;3710:9;3697:23;3729:31;3754:5;3729:31;:::i;:::-;3779:5;-1:-1:-1;3836:2:1;3821:18;;3808:32;3849:33;3808:32;3849:33;:::i;:::-;3901:7;3891:17;;;3526:388;;;;;:::o;3919:248::-;3984:6;3992;4045:2;4033:9;4024:7;4020:23;4016:32;4013:52;;;4061:1;4058;4051:12;4013:52;4084:26;4100:9;4084:26;:::i;4172:180::-;4231:6;4284:2;4272:9;4263:7;4259:23;4255:32;4252:52;;;4300:1;4297;4290:12;4252:52;-1:-1:-1;4323:23:1;;4172:180;-1:-1:-1;4172:180:1:o;4357:380::-;4436:1;4432:12;;;;4479;;;4500:61;;4554:4;4546:6;4542:17;4532:27;;4500:61;4607:2;4599:6;4596:14;4576:18;4573:38;4570:161;;;4653:10;4648:3;4644:20;4641:1;4634:31;4688:4;4685:1;4678:15;4716:4;4713:1;4706:15;4570:161;;4357:380;;;:::o;4742:356::-;4944:2;4926:21;;;4963:18;;;4956:30;5022:34;5017:2;5002:18;;4995:62;5089:2;5074:18;;4742:356::o;5103:127::-;5164:10;5159:3;5155:20;5152:1;5145:31;5195:4;5192:1;5185:15;5219:4;5216:1;5209:15;5235:128;5275:3;5306:1;5302:6;5299:1;5296:13;5293:39;;;5312:18;;:::i;:::-;-1:-1:-1;5348:9:1;;5235:128::o;5368:251::-;5438:6;5491:2;5479:9;5470:7;5466:23;5462:32;5459:52;;;5507:1;5504;5497:12;5459:52;5539:9;5533:16;5558:31;5583:5;5558:31;:::i;6545:306::-;6633:6;6641;6649;6702:2;6690:9;6681:7;6677:23;6673:32;6670:52;;;6718:1;6715;6708:12;6670:52;6747:9;6741:16;6731:26;;6797:2;6786:9;6782:18;6776:25;6766:35;;6841:2;6830:9;6826:18;6820:25;6810:35;;6545:306;;;;;:::o;7262:127::-;7323:10;7318:3;7314:20;7311:1;7304:31;7354:4;7351:1;7344:15;7378:4;7375:1;7368:15;7394:127;7455:10;7450:3;7446:20;7443:1;7436:31;7486:4;7483:1;7476:15;7510:4;7507:1;7500:15;7526:461;7579:3;7617:5;7611:12;7644:6;7639:3;7632:19;7670:4;7699:2;7694:3;7690:12;7683:19;;7736:2;7729:5;7725:14;7757:1;7767:195;7781:6;7778:1;7775:13;7767:195;;;7846:13;;-1:-1:-1;;;;;7842:39:1;7830:52;;7902:12;;;;7937:15;;;;7878:1;7796:9;7767:195;;;-1:-1:-1;7978:3:1;;7526:461;-1:-1:-1;;;;;7526:461:1:o;7992:332::-;8199:6;8188:9;8181:25;8242:2;8237;8226:9;8222:18;8215:30;8162:4;8262:56;8314:2;8303:9;8299:18;8291:6;8262:56;:::i;8329:1105::-;8424:6;8455:2;8498;8486:9;8477:7;8473:23;8469:32;8466:52;;;8514:1;8511;8504:12;8466:52;8547:9;8541:16;8576:18;8617:2;8609:6;8606:14;8603:34;;;8633:1;8630;8623:12;8603:34;8671:6;8660:9;8656:22;8646:32;;8716:7;8709:4;8705:2;8701:13;8697:27;8687:55;;8738:1;8735;8728:12;8687:55;8767:2;8761:9;8789:2;8785;8782:10;8779:36;;;8795:18;;:::i;:::-;8841:2;8838:1;8834:10;8873:2;8867:9;8936:2;8932:7;8927:2;8923;8919:11;8915:25;8907:6;8903:38;8991:6;8979:10;8976:22;8971:2;8959:10;8956:18;8953:46;8950:72;;;9002:18;;:::i;:::-;9038:2;9031:22;9088:18;;;9122:15;;;;-1:-1:-1;9164:11:1;;;9160:20;;;9192:19;;;9189:39;;;9224:1;9221;9214:12;9189:39;9248:11;;;;9268:135;9284:6;9279:3;9276:15;9268:135;;;9350:10;;9338:23;;9301:12;;;;9381;;;;9268:135;;;9422:6;8329:1105;-1:-1:-1;;;;;;;;8329:1105:1:o;9439:125::-;9479:4;9507:1;9504;9501:8;9498:34;;;9512:18;;:::i;:::-;-1:-1:-1;9549:9:1;;9439:125::o;9569:217::-;9609:1;9635;9625:132;;9679:10;9674:3;9670:20;9667:1;9660:31;9714:4;9711:1;9704:15;9742:4;9739:1;9732:15;9625:132;-1:-1:-1;9771:9:1;;9569:217::o;9791:168::-;9831:7;9897:1;9893;9889:6;9885:14;9882:1;9879:21;9874:1;9867:9;9860:17;9856:45;9853:71;;;9904:18;;:::i;:::-;-1:-1:-1;9944:9:1;;9791:168::o;13860:582::-;14159:6;14148:9;14141:25;14202:6;14197:2;14186:9;14182:18;14175:34;14245:3;14240:2;14229:9;14225:18;14218:31;14122:4;14266:57;14318:3;14307:9;14303:19;14295:6;14266:57;:::i;:::-;-1:-1:-1;;;;;14359:32:1;;;;14354:2;14339:18;;14332:60;-1:-1:-1;14423:3:1;14408:19;14401:35;14258:65;13860:582;-1:-1:-1;;;13860:582:1:o

Swarm Source

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