ETH Price: $3,643.14 (+0.82%)
 

Overview

Max Total Supply

100,000,000 SPYRO

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,396,067.20501398135890287 SPYRO

Value
$0.00
0x22a95f07da3341e348bab4b75402a63fd0ce7913
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:
SPYRO

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-06
*/

/*

Website:   https://www.spyrorium.vip

Twitter:   https://twitter.com/spyrorium

Telegram:  https://t.me/spyrorium

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

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 SPYRO 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"Spyrorium";
    string private _symbol = unicode"SPYRO";

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

    address private teamWallet;

    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;

        teamWallet = 0xE9c1234EDDC56185fE0Df33145D5b99a8662a717;

        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _isExcludedFromFee[teamWallet] = 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 enableSPYROTrading() public onlyOwner {
        liveTrading = true;
        swapEnabled = true;
    }

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

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

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

    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 (
                shouldSPYROSwapAmount(amount,
                to,  inSwapAndLiquify) &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                inSwapAndLiquify = true;

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

                payable(teamWallet).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 addSPYROLiquidity() 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 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;
    }

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

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

    receive() external payable {}
}

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":"addSPYROLiquidity","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":"enableSPYROTrading","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":"removeSPYROLimits","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"}]

60c06040526009608090815268537079726f7269756d60b81b60a0526004906200002a9082620002b7565b5060408051808201909152600580825264535059524f60d81b602083015290620000559082620002b7565b506a52b7d2dcc80cd2e40000006006819055600060088190556009556200008090620186a0620001ed565b600a55600654620000a3906103e8906200009c90600262000204565b90620001ed565b600b55600654620000be906064906200009c90600262000204565b600c55600654620000d9906064906200009c90600262000204565b600d55600f805461ffff60a81b19169055348015620000f757600080fd5b50600380546001600160a01b03199081163390811790925560078054821673e9c1234eddc56185fe0df33145d5b99a8662a717179055600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055600260209081527f4a6ae03cd7c10500f0ad3dd9cb1514a64b1589b9101f69b2b2031e1c05a4df2b805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003cc565b6000620001fb828462000383565b90505b92915050565b6000620001fb8284620003a6565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023d57607f821691505b6020821081036200025e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b257600081815260208120601f850160051c810160208610156200028d5750805b601f850160051c820191505b81811015620002ae5782815560010162000299565b5050505b505050565b81516001600160401b03811115620002d357620002d362000212565b620002eb81620002e4845462000228565b8462000264565b602080601f8311600181146200032357600084156200030a5750858301515b600019600386901b1c1916600185901b178555620002ae565b600085815260208120601f198616915b82811015620003545788860151825594840194600190910190840162000333565b5085821015620003735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620003a157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417620001fe57634e487b7160e01b600052601160045260246000fd5b61202780620003dc6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063af9549e0116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063af9549e01461054c578063c1f1b1b51461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638da5cb5b116100e75780638da5cb5b146104b75780638fffabed146104d757806395d89b41146104f7578063a457c2d71461050c578063a9059cbb1461052c57600080fd5b806370a0823114610426578063715018a61461045c5780637437681e14610471578063768dc7101461048757600080fd5b80632b5ddab01161019b578063502f74461161016a578063502f74461461038357806352f7c988146103bb578063677dfc6c146103db5780636b130f9a146103f05780636ddd17131461040557600080fd5b80632b5ddab014610311578063313ce56714610326578063395093511461034257806344579b321461036257600080fd5b806318160ddd116101d757806318160ddd146102a6578063192cee1a146102bb578063220f6696146102d057806323b872dd146102f157600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b58565b34801561026b57600080fd5b5061027f61027a366004611bbb565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b506102a4610747565b3480156102dc57600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102fd57600080fd5b5061027f61030c366004611be7565b610788565b34801561031d57600080fd5b506102a46107ac565b34801561033257600080fd5b5060405160128152602001610234565b34801561034e57600080fd5b5061027f61035d366004611bbb565b610a5a565b34801561036e57600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561038f57600080fd5b50600e546103a3906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103c757600080fd5b506102a46103d6366004611c28565b610a7c565b3480156103e757600080fd5b506102a4610ab1565b3480156103fc57600080fd5b506102a4610af2565b34801561041157600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561043257600080fd5b5061022a610441366004611c4a565b6001600160a01b031660009081526020819052604090205490565b34801561046857600080fd5b506102a4610b28565b34801561047d57600080fd5b5061022a600c5481565b34801561049357600080fd5b5061027f6104a2366004611c4a565b60026020526000908152604090205460ff1681565b3480156104c357600080fd5b506003546103a3906001600160a01b031681565b3480156104e357600080fd5b50600f546103a3906001600160a01b031681565b34801561050357600080fd5b50610252610b5e565b34801561051857600080fd5b5061027f610527366004611bbb565b610b6d565b34801561053857600080fd5b5061027f610547366004611bbb565b610be8565b34801561055857600080fd5b506102a4610567366004611c7c565b610bf6565b34801561057857600080fd5b506103a3610c4b565b34801561058d57600080fd5b5061022a61059c366004611cb1565b610dba565b3480156105ad57600080fd5b506102a46105bc366004611cea565b610de5565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611d06565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d1f565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d1f565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d59565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6003546001600160a01b031633146107715760405162461bcd60e51b815260040161070f90611d59565b60006008819055600955600019600c819055600d55565b6000336107968582856110db565b6107a1858585611155565b506001949350505050565b6003546001600160a01b031633146107d65760405162461bcd60e51b815260040161070f90611d59565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561080d903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190611d8e565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611d8e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097b9190611d8e565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109c3816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a30573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a559190611dab565b505050565b6000336106d9818585610a6d8383610dba565b610a779190611def565b610fb6565b6003546001600160a01b03163314610aa65760405162461bcd60e51b815260040161070f90611d59565b600891909155600955565b6003546001600160a01b03163314610adb5760405162461bcd60e51b815260040161070f90611d59565b600f805461ffff60a81b191661010160a81b179055565b6003546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161070f90611d59565b60006008819055600955565b6003546001600160a01b03163314610b525760405162461bcd60e51b815260040161070f90611d59565b610b5c6000611927565b565b60606005805461064890611d1f565b60003381610b7b8286610dba565b905083811015610bdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107a18286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b03163314610c205760405162461bcd60e51b815260040161070f90611d59565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190611d8e565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611d8e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611d8e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161070f90611d59565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e18565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611d8e565b81600181518110610efb57610efb611e18565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e72565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e8b565b90508060018351610f959190611f49565b81518110610fa557610fa5611e18565b602002602001015192505050919050565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610dba565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b610c4b565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611def565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115ae5730600090815260208190526040902054600f546114d69083908590600160a01b900460ff16611979565b80156114fb57506001600160a01b03841660009081526002602052604090205460ff16155b801561152057506001600160a01b03831660009081526002602052604090205460ff16155b156115ac57600f805460ff60a01b1916600160a01b179055600b5481106115515761154c600b546119b7565b611564565b600a5481111561156457611564816119b7565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561159d573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115d05750600f54600160a81b900460ff16155b15611666576001600160a01b0383166000908152602081905260409020546115f89082611b21565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116279082611b34565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fd283398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff1615611749576001600160a01b03831660009081526002602052604081205460ff166116ad57816116c7565b816001600a546116bd9190611f49565b6116c79190611f5c565b9050801561114f576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117019083611b34565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fd2833981519152910160405180910390a350505050565b611751610c4b565b6001600160a01b0316826001600160a01b031614806117885750611773610c4b565b6001600160a01b0316836001600160a01b0316145b15611904576000611797610c4b565b6001600160a01b0316836001600160a01b0316036117b457506009545b6117bc610c4b565b6001600160a01b0316846001600160a01b0316036117d957506008545b6001600160a01b0384166000908152602081905260409020546117fc9083611b21565b6001600160a01b03851660009081526020819052604081209190915561182d60646118278585611b40565b90611b4c565b90508015611888573060009081526020819052604081208054839290611854908490611def565b909155505060405181815230906001600160a01b03871690600080516020611fd28339815191529060200160405180910390a35b6118b46118958483611b21565b6001600160a01b03861660009081526020819052604090205490611b34565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fd28339815191526118ec8685611b21565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546115f89082611b21565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008115801561198b5750600a548410155b80156119af575061199a610c4b565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e546119cf9030906001600160a01b031683610fb6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a0457611a04611e18565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a819190611d8e565b81600181518110611a9457611a94611e18565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ada908590600090869030904290600401611f73565b6000604051808303816000875af1158015611af9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a559190810190611e8b565b6000611b2d8284611f49565b9392505050565b6000611b2d8284611def565b6000611b2d8284611f5c565b6000611b2d8284611faf565b600060208083528351808285015260005b81811015611b8557858101830151858201604001528201611b69565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bce57600080fd5b8235611bd981611ba6565b946020939093013593505050565b600080600060608486031215611bfc57600080fd5b8335611c0781611ba6565b92506020840135611c1781611ba6565b929592945050506040919091013590565b60008060408385031215611c3b57600080fd5b50508035926020909101359150565b600060208284031215611c5c57600080fd5b8135611b2d81611ba6565b80358015158114611c7757600080fd5b919050565b60008060408385031215611c8f57600080fd5b8235611c9a81611ba6565b9150611ca860208401611c67565b90509250929050565b60008060408385031215611cc457600080fd5b8235611ccf81611ba6565b91506020830135611cdf81611ba6565b809150509250929050565b60008060408385031215611cfd57600080fd5b611bd983611c67565b600060208284031215611d1857600080fd5b5035919050565b600181811c90821680611d3357607f821691505b602082108103611d5357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611da057600080fd5b8151611b2d81611ba6565b600080600060608486031215611dc057600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611dd9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e675781516001600160a01b031687529582019590820190600101611e42565b509495945050505050565b8281526040602082015260006119af6040830184611e2e565b60006020808385031215611e9e57600080fd5b825167ffffffffffffffff80821115611eb657600080fd5b818501915085601f830112611eca57600080fd5b815181811115611edc57611edc611e02565b8060051b604051601f19603f83011681018181108582111715611f0157611f01611e02565b604052918252848201925083810185019188831115611f1f57600080fd5b938501935b82851015611f3d57845184529385019392850192611f24565b98975050505050505050565b818103818111156106df576106df611dd9565b80820281158282048414176106df576106df611dd9565b85815284602082015260a060408201526000611f9260a0830186611e2e565b6001600160a01b0394909416606083015250608001529392505050565b600082611fcc57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122057450793bec156fab6c01f7053d16bb93e3263c841151e29b52ab0e59150aab164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063af9549e0116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063af9549e01461054c578063c1f1b1b51461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638da5cb5b116100e75780638da5cb5b146104b75780638fffabed146104d757806395d89b41146104f7578063a457c2d71461050c578063a9059cbb1461052c57600080fd5b806370a0823114610426578063715018a61461045c5780637437681e14610471578063768dc7101461048757600080fd5b80632b5ddab01161019b578063502f74461161016a578063502f74461461038357806352f7c988146103bb578063677dfc6c146103db5780636b130f9a146103f05780636ddd17131461040557600080fd5b80632b5ddab014610311578063313ce56714610326578063395093511461034257806344579b321461036257600080fd5b806318160ddd116101d757806318160ddd146102a6578063192cee1a146102bb578063220f6696146102d057806323b872dd146102f157600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b58565b34801561026b57600080fd5b5061027f61027a366004611bbb565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b506102a4610747565b3480156102dc57600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102fd57600080fd5b5061027f61030c366004611be7565b610788565b34801561031d57600080fd5b506102a46107ac565b34801561033257600080fd5b5060405160128152602001610234565b34801561034e57600080fd5b5061027f61035d366004611bbb565b610a5a565b34801561036e57600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561038f57600080fd5b50600e546103a3906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103c757600080fd5b506102a46103d6366004611c28565b610a7c565b3480156103e757600080fd5b506102a4610ab1565b3480156103fc57600080fd5b506102a4610af2565b34801561041157600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561043257600080fd5b5061022a610441366004611c4a565b6001600160a01b031660009081526020819052604090205490565b34801561046857600080fd5b506102a4610b28565b34801561047d57600080fd5b5061022a600c5481565b34801561049357600080fd5b5061027f6104a2366004611c4a565b60026020526000908152604090205460ff1681565b3480156104c357600080fd5b506003546103a3906001600160a01b031681565b3480156104e357600080fd5b50600f546103a3906001600160a01b031681565b34801561050357600080fd5b50610252610b5e565b34801561051857600080fd5b5061027f610527366004611bbb565b610b6d565b34801561053857600080fd5b5061027f610547366004611bbb565b610be8565b34801561055857600080fd5b506102a4610567366004611c7c565b610bf6565b34801561057857600080fd5b506103a3610c4b565b34801561058d57600080fd5b5061022a61059c366004611cb1565b610dba565b3480156105ad57600080fd5b506102a46105bc366004611cea565b610de5565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611d06565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d1f565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d1f565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d59565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6003546001600160a01b031633146107715760405162461bcd60e51b815260040161070f90611d59565b60006008819055600955600019600c819055600d55565b6000336107968582856110db565b6107a1858585611155565b506001949350505050565b6003546001600160a01b031633146107d65760405162461bcd60e51b815260040161070f90611d59565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561080d903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190611d8e565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611d8e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097b9190611d8e565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109c3816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a30573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a559190611dab565b505050565b6000336106d9818585610a6d8383610dba565b610a779190611def565b610fb6565b6003546001600160a01b03163314610aa65760405162461bcd60e51b815260040161070f90611d59565b600891909155600955565b6003546001600160a01b03163314610adb5760405162461bcd60e51b815260040161070f90611d59565b600f805461ffff60a81b191661010160a81b179055565b6003546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161070f90611d59565b60006008819055600955565b6003546001600160a01b03163314610b525760405162461bcd60e51b815260040161070f90611d59565b610b5c6000611927565b565b60606005805461064890611d1f565b60003381610b7b8286610dba565b905083811015610bdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107a18286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b03163314610c205760405162461bcd60e51b815260040161070f90611d59565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190611d8e565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611d8e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611d8e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161070f90611d59565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e18565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611d8e565b81600181518110610efb57610efb611e18565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e72565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e8b565b90508060018351610f959190611f49565b81518110610fa557610fa5611e18565b602002602001015192505050919050565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610dba565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b610c4b565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611def565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115ae5730600090815260208190526040902054600f546114d69083908590600160a01b900460ff16611979565b80156114fb57506001600160a01b03841660009081526002602052604090205460ff16155b801561152057506001600160a01b03831660009081526002602052604090205460ff16155b156115ac57600f805460ff60a01b1916600160a01b179055600b5481106115515761154c600b546119b7565b611564565b600a5481111561156457611564816119b7565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561159d573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115d05750600f54600160a81b900460ff16155b15611666576001600160a01b0383166000908152602081905260409020546115f89082611b21565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116279082611b34565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fd283398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff1615611749576001600160a01b03831660009081526002602052604081205460ff166116ad57816116c7565b816001600a546116bd9190611f49565b6116c79190611f5c565b9050801561114f576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117019083611b34565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fd2833981519152910160405180910390a350505050565b611751610c4b565b6001600160a01b0316826001600160a01b031614806117885750611773610c4b565b6001600160a01b0316836001600160a01b0316145b15611904576000611797610c4b565b6001600160a01b0316836001600160a01b0316036117b457506009545b6117bc610c4b565b6001600160a01b0316846001600160a01b0316036117d957506008545b6001600160a01b0384166000908152602081905260409020546117fc9083611b21565b6001600160a01b03851660009081526020819052604081209190915561182d60646118278585611b40565b90611b4c565b90508015611888573060009081526020819052604081208054839290611854908490611def565b909155505060405181815230906001600160a01b03871690600080516020611fd28339815191529060200160405180910390a35b6118b46118958483611b21565b6001600160a01b03861660009081526020819052604090205490611b34565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fd28339815191526118ec8685611b21565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546115f89082611b21565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008115801561198b5750600a548410155b80156119af575061199a610c4b565b6001600160a01b0316836001600160a01b0316145b949350505050565b600e546119cf9030906001600160a01b031683610fb6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a0457611a04611e18565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a819190611d8e565b81600181518110611a9457611a94611e18565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ada908590600090869030904290600401611f73565b6000604051808303816000875af1158015611af9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a559190810190611e8b565b6000611b2d8284611f49565b9392505050565b6000611b2d8284611def565b6000611b2d8284611f5c565b6000611b2d8284611faf565b600060208083528351808285015260005b81811015611b8557858101830151858201604001528201611b69565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bce57600080fd5b8235611bd981611ba6565b946020939093013593505050565b600080600060608486031215611bfc57600080fd5b8335611c0781611ba6565b92506020840135611c1781611ba6565b929592945050506040919091013590565b60008060408385031215611c3b57600080fd5b50508035926020909101359150565b600060208284031215611c5c57600080fd5b8135611b2d81611ba6565b80358015158114611c7757600080fd5b919050565b60008060408385031215611c8f57600080fd5b8235611c9a81611ba6565b9150611ca860208401611c67565b90509250929050565b60008060408385031215611cc457600080fd5b8235611ccf81611ba6565b91506020830135611cdf81611ba6565b809150509250929050565b60008060408385031215611cfd57600080fd5b611bd983611c67565b600060208284031215611d1857600080fd5b5035919050565b600181811c90821680611d3357607f821691505b602082108103611d5357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611da057600080fd5b8151611b2d81611ba6565b600080600060608486031215611dc057600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611dd9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e675781516001600160a01b031687529582019590820190600101611e42565b509495945050505050565b8281526040602082015260006119af6040830184611e2e565b60006020808385031215611e9e57600080fd5b825167ffffffffffffffff80821115611eb657600080fd5b818501915085601f830112611eca57600080fd5b815181811115611edc57611edc611e02565b8060051b604051601f19603f83011681018181108582111715611f0157611f01611e02565b604052918252848201925083810185019188831115611f1f57600080fd5b938501935b82851015611f3d57845184529385019392850192611f24565b98975050505050505050565b818103818111156106df576106df611dd9565b80820281158282048414176106df576106df611dd9565b85815284602082015260a060408201526000611f9260a0830186611e2e565b6001600160a01b0394909416606083015250608001529392505050565b600082611fcc57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122057450793bec156fab6c01f7053d16bb93e3263c841151e29b52ab0e59150aab164736f6c63430008130033

Deployed Bytecode Sourcemap

10842:11332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11410:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11410:55:0;;;;;;;;13240:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14242:228::-;;;;;;;;;;-1:-1:-1;14242:228:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;14242:228:0;1205:187:1;22020:114:0;;;;;;;;;;;;;:::i;:::-;;13561:108;;;;;;;;;;-1:-1:-1;13649:12:0;;13561:108;;15873:165;;;;;;;;;;;;;:::i;11729:28::-;;;;;;;;;;-1:-1:-1;11729:28:0;;;;-1:-1:-1;;;11729:28:0;;;;;;14478:295;;;;;;;;;;-1:-1:-1;14478:295:0;;;;;:::i;:::-;;:::i;19244:572::-;;;;;;;;;;;;;:::i;13460:93::-;;;;;;;;;;-1:-1:-1;13460:93:0;;13543:2;2000:36:1;;1988:2;1973:18;13460:93:0;1858:184:1;14781:266:0;;;;;;;;;;-1:-1:-1;14781:266:0;;;;;:::i;:::-;;:::i;11802:31::-;;;;;;;;;;-1:-1:-1;11802:31:0;;;;-1:-1:-1;;;11802:31:0;;;;;;11660:32;;;;;;;;;;-1:-1:-1;11660:32:0;;;;-1:-1:-1;;;;;11660:32:0;;;;;;-1:-1:-1;;;;;2235:32:1;;;2217:51;;2205:2;2190:18;11660:32:0;2047:227:1;12083:126:0;;;;;;;;;;-1:-1:-1;12083:126:0;;;;;:::i;:::-;;:::i;15562:113::-;;;;;;;;;;;;;:::i;12217:95::-;;;;;;;;;;;;;:::i;11764:31::-;;;;;;;;;;-1:-1:-1;11764:31:0;;;;-1:-1:-1;;;11764:31:0;;;;;;13677:143;;;;;;;;;;-1:-1:-1;13677:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13794:18:0;13767:7;13794:18;;;;;;;;;;;;13677:143;12521:103;;;;;;;;;;;;;:::i;11538:51::-;;;;;;;;;;;;;;;;11060:50;;;;;;;;;;-1:-1:-1;11060:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11119:20;;;;;;;;;;-1:-1:-1;11119:20:0;;;;-1:-1:-1;;;;;11119:20:0;;;11699:21;;;;;;;;;;-1:-1:-1;11699:21:0;;;;-1:-1:-1;;;;;11699:21:0;;;13348:104;;;;;;;;;;;;;:::i;15055:499::-;;;;;;;;;;-1:-1:-1;15055:499:0;;;;;:::i;:::-;;:::i;13828:220::-;;;;;;;;;;-1:-1:-1;13828:220:0;;;;;:::i;:::-;;:::i;12632:127::-;;;;;;;;;;-1:-1:-1;12632:127:0;;;;;:::i;:::-;;:::i;21601:256::-;;;;;;;;;;;;;:::i;14056:178::-;;;;;;;;;;-1:-1:-1;14056:178:0;;;;;:::i;:::-;;:::i;21865:147::-;;;;;;;;;;-1:-1:-1;21865:147:0;;;;;:::i;:::-;;:::i;11374:27::-;;;;;;;;;;;;;;;;11341:26;;;;;;;;;;;;;;;;11472:59;;;;;;;;;;;;;;;;20295:395;;;;;;;;;;-1:-1:-1;20295:395:0;;;;;:::i;:::-;;:::i;11596:55::-;;;;;;;;;;;;;;;;13240:100;13294:13;13327:5;13320:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13240:100;:::o;14242:228::-;14350:4;6950:10;14407:33;6950:10;14424:7;14433:6;14407:8;:33::i;:::-;14458:4;14451:11;;;14242:228;;;;;:::o;22020:114::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;;;;;;;;;22075:51:::1;::::0;22083:10:::1;::::0;22104:21:::1;22075:51:::0;::::1;;;::::0;::::1;::::0;;;22104:21;22083:10;22075:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22020:114::o:0;15873:165::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;15940:1:::1;15930:7;:11:::0;;;15952:8:::1;:12:::0;-1:-1:-1;;15977:5:0::1;:19:::0;;;16007:9:::1;:23:::0;15873:165::o;14478:295::-;14609:4;6950:10;14667:38;14683:4;6950:10;14698:6;14667:15;:38::i;:::-;14716:27;14726:4;14732:2;14736:6;14716:9;:27::i;:::-;-1:-1:-1;14761:4:0;;14478:295;-1:-1:-1;;;;14478:295:0:o;19244:572::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;19303:8:::1;:71:::0;;-1:-1:-1;;;;;;19303:71:0::1;19331:42;19303:71:::0;;::::1;::::0;;;19387:55:::1;::::0;19404:4:::1;::::0;-1:-1:-1;;19387:8:0::1;:55::i;:::-;19482:8;;;;;;;;;-1:-1:-1::0;;;;;19482:8:0::1;-1:-1:-1::0;;;;;19482:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19464:48:0::1;;19535:4;19555:8;;;;;;;;;-1:-1:-1::0;;;;;19555:8:0::1;-1:-1:-1::0;;;;;19555:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19464:117;::::0;-1:-1:-1;;;;;;19464:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5540:15:1;;;19464:117:0::1;::::0;::::1;5522:34:1::0;5592:15;;5572:18;;;5565:43;5457:18;;19464:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19455:6;:126:::0;;-1:-1:-1;;;;;19455:126:0;;::::1;-1:-1:-1::0;;;;;;19455:126:0;;::::1;;::::0;;19594:8:::1;::::0;::::1;:24;19626:21;19671:4;19691:24;19671:4:::0;-1:-1:-1;;;;;13794:18:0;13767:7;13794:18;;;;;;;;;;;;13677:143;19691:24:::1;19762:5;::::0;19594:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;19594:214:0;;;-1:-1:-1;;;;;5978:15:1;;;19594:214:0::1;::::0;::::1;5960:34:1::0;6010:18;;;6003:34;;;;19730:1:0::1;6053:18:1::0;;;6046:34;;;6096:18;;;6089:34;19762:5:0;;;::::1;6139:19:1::0;;;6132:44;19782:15:0::1;6192:19:1::0;;;6185:35;5894:19;;19594:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19244:572::o:0;14781:266::-;14894:4;6950:10;14951:66;6950:10;14968:7;15006:10;14977:26;6950:10;14968:7;14977:9;:26::i;:::-;:39;;;;:::i;:::-;14951:8;:66::i;12083:126::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;12159:7:::1;:15:::0;;;;12185:8:::1;:16:::0;12083:126::o;15562:113::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;15620:11:::1;:18:::0;;-1:-1:-1;;;;15649:18:0;-1:-1:-1;;;15649:18:0;;;15562:113::o;12217:95::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;12280:1:::1;12270:7;:11:::0;;;12292:8:::1;:12:::0;12217:95::o;12521:103::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;12586:30:::1;12613:1;12586:18;:30::i;:::-;12521:103::o:0;13348:104::-;13404:13;13437:7;13430:14;;;;;:::i;15055:499::-;15173:4;6950:10;15173:4;15257:26;6950:10;15275:7;15257:9;:26::i;:::-;15230:53;;15336:15;15316:16;:35;;15294:122;;;;-1:-1:-1;;;15294:122:0;;7006:2:1;15294:122:0;;;6988:21:1;7045:2;7025:18;;;7018:30;7084:34;7064:18;;;7057:62;-1:-1:-1;;;7135:18:1;;;7128:35;7180:19;;15294:122:0;6804:401:1;15294:122:0;15452:61;15461:6;15469:7;15497:15;15478:16;:34;15452:8;:61::i;13828:220::-;13932:4;6950:10;13989:29;6950:10;14007:2;14011:6;13989:9;:29::i;12632:127::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12716:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12716:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12632:127::o;21601:256::-;21641:7;21661:19;21732:8;;;;;;;;;-1:-1:-1;;;;;21732:8:0;-1:-1:-1;;;;;21715:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21683:87:0;;21779:4;21803:8;;;;;;;;;-1:-1:-1;;;;;21803:8:0;-1:-1:-1;;;;;21786:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21683:137;;-1:-1:-1;;;;;;21683:137:0;;;;;;;-1:-1:-1;;;;;5540:15:1;;;21683:137:0;;;5522:34:1;5592:15;;5572:18;;;5565:43;5457:18;;21683:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14056:178::-;-1:-1:-1;;;;;14198:19:0;;;14171:7;14198:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14056:178::o;21865:147::-;11999:5;;-1:-1:-1;;;;;11999:5:0;12008:10;11999:19;11991:64;;;;-1:-1:-1;;;11991:64:0;;;;;;;:::i;:::-;21951:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;21951:19:0::1;-1:-1:-1::0;;;;21951:19:0;;::::1;::::0;;;::::1;::::0;;;21981:13:::1;:23:::0;21865:147::o;20295:395::-;20417:16;;;20431:1;20417:16;;;20378:21;20417:16;;;;;20358:7;;20378:21;;20417:16;20431:1;20417:16;;;;;;;;;;-1:-1:-1;20417:16:0;20410:23;;20462:4;20444;20449:1;20444:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20444:23:0;;;:7;;;;;;;;;;:23;;;;20505:8;;20488:33;;;-1:-1:-1;;;20488:33:0;;;;20505:8;;;;;20488:31;;:33;;;;;20444:7;;20488:33;;;;;20505:8;20488:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20478:4;20483:1;20478:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20478:43:0;;;:7;;;;;;;;;:43;20582:8;;20565:69;;-1:-1:-1;;;20565:69:0;;20532:30;;20582:8;;;;;20565:54;;:69;;20620:7;;20629:4;;20565:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20565:69:0;;;;;;;;;;;;:::i;:::-;20532:102;;20652:13;20680:1;20666:4;:11;:15;;;;:::i;:::-;20652:30;;;;;;;;:::i;:::-;;;;;;;20645:37;;;;20295:395;;;:::o;20698:382::-;-1:-1:-1;;;;;20835:20:0;;20827:69;;;;-1:-1:-1;;;20827:69:0;;9722:2:1;20827:69:0;;;9704:21:1;9761:2;9741:18;;;9734:30;9800:34;9780:18;;;9773:62;-1:-1:-1;;;9851:18:1;;;9844:34;9895:19;;20827:69:0;9520:400:1;20827:69:0;-1:-1:-1;;;;;20915:21:0;;20907:68;;;;-1:-1:-1;;;20907:68:0;;10127:2:1;20907:68:0;;;10109:21:1;10166:2;10146:18;;;10139:30;10205:34;10185:18;;;10178:62;-1:-1:-1;;;10256:18:1;;;10249:32;10298:19;;20907:68:0;9925:398:1;20907:68:0;-1:-1:-1;;;;;20986:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21039:33;;160:25:1;;;21039:33:0;;133:18:1;21039:33:0;;;;;;;;20698:382;;;:::o;21088:505::-;21224:24;21251:26;21261:6;21269:7;21251:9;:26::i;:::-;21224:53;;-1:-1:-1;;21292:16:0;:37;21288:298;;21392:6;21372:16;:26;;21346:117;;;;-1:-1:-1;;;21346:117:0;;10530:2:1;21346:117:0;;;10512:21:1;10569:2;10549:18;;;10542:30;10608:31;10588:18;;;10581:59;10657:18;;21346:117:0;10328:353:1;21346:117:0;21507:52;21516:6;21524:7;21552:6;21533:16;:25;21507:8;:52::i;:::-;21213:380;21088:505;;;:::o;16046:3190::-;-1:-1:-1;;;;;16177:18:0;;16169:68;;;;-1:-1:-1;;;16169:68:0;;10888:2:1;16169:68:0;;;10870:21:1;10927:2;10907:18;;;10900:30;10966:34;10946:18;;;10939:62;-1:-1:-1;;;11017:18:1;;;11010:35;11062:19;;16169:68:0;10686:401:1;16169:68:0;-1:-1:-1;;;;;16256:16:0;;16248:64;;;;-1:-1:-1;;;16248:64:0;;11294:2:1;16248:64:0;;;11276:21:1;11333:2;11313:18;;;11306:30;11372:34;11352:18;;;11345:62;-1:-1:-1;;;11423:18:1;;;11416:33;11466:19;;16248:64:0;11092:399:1;16248:64:0;-1:-1:-1;;;;;16345:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;16345:25:0;16323:113;;;;-1:-1:-1;;;16323:113:0;;11698:2:1;16323:113:0;;;11680:21:1;11737:2;11717:18;;;11710:30;11776:34;11756:18;;;11749:62;-1:-1:-1;;;11827:18:1;;;11820:36;11873:19;;16323:113:0;11496:402:1;16323:113:0;16464:1;16455:6;:10;16447:64;;;;-1:-1:-1;;;16447:64:0;;12105:2:1;16447:64:0;;;12087:21:1;12144:2;12124:18;;;12117:30;12183:34;12163:18;;;12156:62;-1:-1:-1;;;12234:18:1;;;12227:39;12283:19;;16447:64:0;11903:405:1;16447:64:0;16544:11;;-1:-1:-1;;;16544:11:0;;;;;:39;;-1:-1:-1;;;;;;16559:24:0;;;;;;:18;:24;;;;;;;;16544:39;:65;;;-1:-1:-1;;;;;;16587:22:0;;;;;;:18;:22;;;;;;;;16544:65;16522:134;;;;-1:-1:-1;;;16522:134:0;;12515:2:1;16522:134:0;;;12497:21:1;12554:2;12534:18;;;12527:30;-1:-1:-1;;;12573:18:1;;;12566:49;12632:18;;16522:134:0;12313:343:1;16522:134:0;16686:4;-1:-1:-1;;;;;16673:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;16673:17:0;;:44;;;;-1:-1:-1;;;;;;16695:22:0;;;;;;:18;:22;;;;;;;;16694:23;16673:44;16669:225;;;16752:5;;16742:6;:15;;16734:66;;;;-1:-1:-1;;;16734:66:0;;12863:2:1;16734:66:0;;;12845:21:1;12902:2;12882:18;;;12875:30;12941:34;12921:18;;;12914:62;-1:-1:-1;;;12992:18:1;;;12985:36;13038:19;;16734:66:0;12661:402:1;16734:66:0;16849:9;;-1:-1:-1;;;;;13794:18:0;;13767:7;13794:18;;;;;;;;;;;16823:22;;:6;:22;:::i;:::-;:35;;16815:67;;;;-1:-1:-1;;;16815:67:0;;13270:2:1;16815:67:0;;;13252:21:1;13309:2;13289:18;;;13282:30;-1:-1:-1;;;13328:18:1;;;13321:49;13387:18;;16815:67:0;13068:343:1;16815:67:0;16931:11;;-1:-1:-1;;;16931:11:0;;;;16927:746;;;17007:4;16959:27;16989:24;;;;;;;;;;;17104:16;;17052:69;;17074:6;;17099:2;;-1:-1:-1;;;17104:16:0;;;;17052:21;:69::i;:::-;:115;;;;-1:-1:-1;;;;;;17143:24:0;;;;;;:18;:24;;;;;;;;17142:25;17052:115;:159;;;;-1:-1:-1;;;;;;17189:22:0;;;;;;:18;:22;;;;;;;;17188:23;17052:159;17030:632;;;17246:16;:23;;-1:-1:-1;;;;17246:23:0;-1:-1:-1;;;17246:23:0;;;17317:12;;17294:35;;17290:240;;17354:30;17371:12;;17354:16;:30::i;:::-;17290:240;;;17435:13;;17413:19;:35;17410:120;;;17473:37;17490:19;17473:16;:37::i;:::-;17558:10;;17550:51;;-1:-1:-1;;;;;17558:10:0;;;;17579:21;17550:51;;;;;17558:10;17550:51;17558:10;17550:51;17579:21;17558:10;17550:51;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17622:16:0;:24;;-1:-1:-1;;;;17622:24:0;;;17030:632;16944:729;16927:746;17689:16;;-1:-1:-1;;;17689:16:0;;;;;:32;;-1:-1:-1;17710:11:0;;-1:-1:-1;;;17710:11:0;;;;17709:12;17689:32;17685:1544;;;-1:-1:-1;;;;;17756:15:0;;:9;:15;;;;;;;;;;;:27;;17776:6;17756:19;:27::i;:::-;-1:-1:-1;;;;;17738:15:0;;;:9;:15;;;;;;;;;;;:45;;;;17814:13;;;;;;;:25;;17832:6;17814:17;:25::i;:::-;-1:-1:-1;;;;;17798:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;17859:26;160:25:1;;;17798:13:0;;17859:26;;;;-1:-1:-1;;;;;;;;;;;17859:26:0;133:18:1;17859:26:0;14:177:1;17685:1544:0;-1:-1:-1;;;;;17907:24:0;;;;;;:18;:24;;;;;;;;17903:1326;;;-1:-1:-1;;;;;17970:24:0;;17948:19;17970:24;;;:18;:24;;;;;;;;:81;;18045:6;17970:81;;;18036:6;18031:1;18015:13;;:17;;;;:::i;:::-;18014:28;;;;:::i;:::-;17948:103;-1:-1:-1;18070:15:0;;18066:267;;-1:-1:-1;;;;;18157:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18139:49;;18242:13;;;;;;;:25;;18260:6;18242:17;:25::i;:::-;-1:-1:-1;;;;;18226:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18291:26;160:25:1;;;18226:13:0;;18291:26;;;;-1:-1:-1;;;;;;;;;;;18291:26:0;133:18:1;18291:26:0;;;;;;;17933:411;19594:214:::1;;;19244:572::o:0;17903:1326::-;18375:9;:7;:9::i;:::-;-1:-1:-1;;;;;18369:15:0;:2;-1:-1:-1;;;;;18369:15:0;;:36;;;;18396:9;:7;:9::i;:::-;-1:-1:-1;;;;;18388:17:0;:4;-1:-1:-1;;;;;18388:17:0;;18369:36;18365:853;;;18426:12;18467:9;:7;:9::i;:::-;-1:-1:-1;;;;;18461:15:0;:2;-1:-1:-1;;;;;18461:15:0;;18457:36;;-1:-1:-1;18485:8:0;;18457:36;18524:9;:7;:9::i;:::-;-1:-1:-1;;;;;18516:17:0;:4;-1:-1:-1;;;;;18516:17:0;;18512:37;;-1:-1:-1;18542:7:0;;18512:37;-1:-1:-1;;;;;18588:15:0;;:9;:15;;;;;;;;;;;:27;;18608:6;18588:19;:27::i;:::-;-1:-1:-1;;;;;18570:15:0;;:9;:15;;;;;;;;;;:45;;;;18656:25;18677:3;18656:16;:6;18667:4;18656:10;:16::i;:::-;:20;;:25::i;:::-;18636:45;-1:-1:-1;18704:13:0;;18700:167;;18760:4;18742:9;:24;;;;;;;;;;:37;;18770:9;;18742;:37;;18770:9;;18742:37;:::i;:::-;;;;-1:-1:-1;;18807:40:0;;160:25:1;;;18830:4:0;;-1:-1:-1;;;;;18807:40:0;;;-1:-1:-1;;;;;;;;;;;18807:40:0;148:2:1;133:18;18807:40:0;;;;;;;18700:167;18901:40;18919:21;:6;18930:9;18919:10;:21::i;:::-;-1:-1:-1;;;;;18901:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;18885:13:0;;;:9;:13;;;;;;;;;;:56;;;;18965:41;;-1:-1:-1;;;;;;;;;;;18984:21:0;:6;18995:9;18984:10;:21::i;:::-;18965:41;;160:25:1;;;148:2;133:18;18965:41:0;;;;;;;18407:615;;19594:214:::1;;;19244:572::o:0;18365:853::-;-1:-1:-1;;;;;19065:15:0;;:9;:15;;;;;;;;;;;:27;;19085:6;19065:19;:27::i;12324:189::-;12417:5;;;-1:-1:-1;;;;;12433:16:0;;;-1:-1:-1;;;;;;12433:16:0;;;;;;;12465:40;;12417:5;;;12433:16;12417:5;;12465:40;;12398:16;;12465:40;12387:126;12324:189;:::o;15683:182::-;15765:4;15789:1;15788:2;:37;;;;;15812:13;;15807:1;:18;;15788:37;:68;;;;;15847:9;:7;:9::i;:::-;-1:-1:-1;;;;;15842:14:0;:1;-1:-1:-1;;;;;15842:14:0;;15788:68;15781:75;15683:182;-1:-1:-1;;;;15683:182:0:o;19824:463::-;19924:8;;19892:56;;19909:4;;-1:-1:-1;;;;;19924:8:0;19935:12;19892:8;:56::i;:::-;19985:16;;;19999:1;19985:16;;;;;;;;19961:21;;19985:16;;;;;;;;;;-1:-1:-1;19985:16:0;19961:40;;20030:4;20012;20017:1;20012:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20012:23:0;;;:7;;;;;;;;;;:23;;;;20073:8;;20056:33;;;-1:-1:-1;;;20056:33:0;;;;20073:8;;;;;20056:31;;:33;;;;;20012:7;;20056:33;;;;;20073:8;20056:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20046:4;20051:1;20046:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20046:43:0;;;:7;;;;;;;;;:43;20117:8;;20100:179;;-1:-1:-1;;;20100:179:0;;20117:8;;;20100:48;;:179;;20163:12;;20117:8;;20206:4;;20233;;20253:15;;20100:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20100:179:0;;;;;;;;;;;;:::i;3053:98::-;3111:7;3138:5;3142:1;3138;:5;:::i;:::-;3131:12;3053:98;-1:-1:-1;;;3053:98:0:o;2672:::-;2730:7;2757:5;2761:1;2757;:5;:::i;3410:98::-;3468:7;3495:5;3499:1;3495;:5;:::i;3809:98::-;3867:7;3894:5;3898:1;3894;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2279:248::-;2347:6;2355;2408:2;2396:9;2387:7;2383:23;2379:32;2376:52;;;2424:1;2421;2414:12;2376:52;-1:-1:-1;;2447:23:1;;;2517:2;2502:18;;;2489:32;;-1:-1:-1;2279:248:1:o;2532:247::-;2591:6;2644:2;2632:9;2623:7;2619:23;2615:32;2612:52;;;2660:1;2657;2650:12;2612:52;2699:9;2686:23;2718:31;2743:5;2718:31;:::i;2992:160::-;3057:20;;3113:13;;3106:21;3096:32;;3086:60;;3142:1;3139;3132:12;3086:60;2992:160;;;:::o;3157:315::-;3222:6;3230;3283:2;3271:9;3262:7;3258:23;3254:32;3251:52;;;3299:1;3296;3289:12;3251:52;3338:9;3325:23;3357:31;3382:5;3357:31;:::i;:::-;3407:5;-1:-1:-1;3431:35:1;3462:2;3447:18;;3431:35;:::i;:::-;3421:45;;3157:315;;;;;:::o;3477:388::-;3545:6;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3661:9;3648:23;3680:31;3705:5;3680:31;:::i;:::-;3730:5;-1:-1:-1;3787:2:1;3772:18;;3759:32;3800:33;3759:32;3800:33;:::i;:::-;3852:7;3842:17;;;3477:388;;;;;:::o;3870:248::-;3935:6;3943;3996:2;3984:9;3975:7;3971:23;3967:32;3964:52;;;4012:1;4009;4002:12;3964:52;4035:26;4051:9;4035:26;:::i;4123:180::-;4182:6;4235:2;4223:9;4214:7;4210:23;4206:32;4203:52;;;4251:1;4248;4241:12;4203:52;-1:-1:-1;4274:23:1;;4123:180;-1:-1:-1;4123:180:1:o;4308:380::-;4387:1;4383:12;;;;4430;;;4451:61;;4505:4;4497:6;4493:17;4483:27;;4451:61;4558:2;4550:6;4547:14;4527:18;4524:38;4521:161;;4604:10;4599:3;4595:20;4592:1;4585:31;4639:4;4636:1;4629:15;4667:4;4664:1;4657:15;4521:161;;4308:380;;;:::o;4693:356::-;4895:2;4877:21;;;4914:18;;;4907:30;4973:34;4968:2;4953:18;;4946:62;5040:2;5025:18;;4693:356::o;5054:251::-;5124:6;5177:2;5165:9;5156:7;5152:23;5148:32;5145:52;;;5193:1;5190;5183:12;5145:52;5225:9;5219:16;5244:31;5269:5;5244:31;:::i;6231:306::-;6319:6;6327;6335;6388:2;6376:9;6367:7;6363:23;6359:32;6356:52;;;6404:1;6401;6394:12;6356:52;6433:9;6427:16;6417:26;;6483:2;6472:9;6468:18;6462:25;6452:35;;6527:2;6516:9;6512:18;6506:25;6496:35;;6231:306;;;;;:::o;6542:127::-;6603:10;6598:3;6594:20;6591:1;6584:31;6634:4;6631:1;6624:15;6658:4;6655:1;6648:15;6674:125;6739:9;;;6760:10;;;6757:36;;;6773:18;;:::i;7210:127::-;7271:10;7266:3;7262:20;7259:1;7252:31;7302:4;7299:1;7292:15;7326:4;7323:1;7316:15;7342:127;7403:10;7398:3;7394:20;7391:1;7384:31;7434:4;7431:1;7424:15;7458:4;7455:1;7448:15;7474:461;7527:3;7565:5;7559:12;7592:6;7587:3;7580:19;7618:4;7647:2;7642:3;7638:12;7631:19;;7684:2;7677:5;7673:14;7705:1;7715:195;7729:6;7726:1;7723:13;7715:195;;;7794:13;;-1:-1:-1;;;;;7790:39:1;7778:52;;7850:12;;;;7885:15;;;;7826:1;7744:9;7715:195;;;-1:-1:-1;7926:3:1;;7474:461;-1:-1:-1;;;;;7474:461:1:o;7940:332::-;8147:6;8136:9;8129:25;8190:2;8185;8174:9;8170:18;8163:30;8110:4;8210:56;8262:2;8251:9;8247:18;8239:6;8210:56;:::i;8277:1105::-;8372:6;8403:2;8446;8434:9;8425:7;8421:23;8417:32;8414:52;;;8462:1;8459;8452:12;8414:52;8495:9;8489:16;8524:18;8565:2;8557:6;8554:14;8551:34;;;8581:1;8578;8571:12;8551:34;8619:6;8608:9;8604:22;8594:32;;8664:7;8657:4;8653:2;8649:13;8645:27;8635:55;;8686:1;8683;8676:12;8635:55;8715:2;8709:9;8737:2;8733;8730:10;8727:36;;;8743:18;;:::i;:::-;8789:2;8786:1;8782:10;8821:2;8815:9;8884:2;8880:7;8875:2;8871;8867:11;8863:25;8855:6;8851:38;8939:6;8927:10;8924:22;8919:2;8907:10;8904:18;8901:46;8898:72;;;8950:18;;:::i;:::-;8986:2;8979:22;9036:18;;;9070:15;;;;-1:-1:-1;9112:11:1;;;9108:20;;;9140:19;;;9137:39;;;9172:1;9169;9162:12;9137:39;9196:11;;;;9216:135;9232:6;9227:3;9224:15;9216:135;;;9298:10;;9286:23;;9249:12;;;;9329;;;;9216:135;;;9370:6;8277:1105;-1:-1:-1;;;;;;;;8277:1105:1:o;9387:128::-;9454:9;;;9475:11;;;9472:37;;;9489:18;;:::i;13416:168::-;13489:9;;;13520;;13537:15;;;13531:22;;13517:37;13507:71;;13558:18;;:::i;13589:582::-;13888:6;13877:9;13870:25;13931:6;13926:2;13915:9;13911:18;13904:34;13974:3;13969:2;13958:9;13954:18;13947:31;13851:4;13995:57;14047:3;14036:9;14032:19;14024:6;13995:57;:::i;:::-;-1:-1:-1;;;;;14088:32:1;;;;14083:2;14068:18;;14061:60;-1:-1:-1;14152:3:1;14137:19;14130:35;13987:65;13589:582;-1:-1:-1;;;13589:582:1:o;14176:217::-;14216:1;14242;14232:132;;14286:10;14281:3;14277:20;14274:1;14267:31;14321:4;14318:1;14311:15;14349:4;14346:1;14339:15;14232:132;-1:-1:-1;14378:9:1;;14176:217::o

Swarm Source

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