ETH Price: $2,476.20 (+7.45%)

Token

BailOut (BailOut)
 

Overview

Max Total Supply

1,000,000,000,000 BailOut

Holders

13

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
BAILOUT

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-15
*/

/*
BailOut is here with constant random buybacks! Make a bad decision, don't worry we will bail you out!
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Pair {
    function sync() external;
}

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

    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

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

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

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

contract BAILOUT is Context, IERC20, IERC20Metadata, Ownable {
    // Openzeppelin variables
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    // My variables

    bool private inSwap;
    uint256 internal _vaultFeeCollected;

    uint256 public minTokensBeforeSwap;
    
    address public vault_wallet;

    IUniswapV2Router02 public router;
    address public pair;

    uint public _feeDecimal = 2;
    // index 0 = buy fee, index 1 = sell fee, index 2 = p2p fee
    uint[] public _vaultFee;

    bool public swapEnabled = true;
    bool public isFeeActive = false;

    mapping(address => bool) public isTaxless;

    bool txEnabled = true;

    event Swap(uint swaped);

    // Openzeppelin functions

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor() {
        // Editable
        _name = "BailOut";
        _symbol = "BailOut";
        vault_wallet = 0x323754892ba29abaed7aB70A6D156a02CA2050C2;
        uint e_totalSupply = 1_000_000_000_000 ether;
        minTokensBeforeSwap = 1_000_000_000;    // Off by default
        // End editable

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        router = _uniswapV2Router;

        _vaultFee.push(500);
        _vaultFee.push(500);
        _vaultFee.push(0);

        isTaxless[msg.sender] = true;
        isTaxless[address(this)] = true;
        isTaxless[vault_wallet] = true;
        isTaxless[address(0)] = true;

        _mint(msg.sender, e_totalSupply);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(txEnabled, "Transactions are not enabled.");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        // My implementation

        if (swapEnabled && !inSwap && from != pair) {
            swap();
        }

        uint256 feesCollected;
        if (isFeeActive && !isTaxless[from] && !isTaxless[to] && !inSwap) {
            bool sell = to == pair;
            bool p2p = from != pair && to != pair;
            feesCollected = calculateFee(p2p ? 2 : sell ? 1 : 0, amount);
        }

        amount -= feesCollected;
        _balances[from] -= feesCollected;
        _balances[address(this)] += feesCollected;
        // End my implementation

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    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);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    // My functions

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    function sendViaCall(address payable _to, uint amount) private {
        (bool sent, bytes memory data) = _to.call{value: amount}("");
        data;
        require(sent, "Failed to send Ether");
    }

    function swap() private lockTheSwap {
        if(minTokensBeforeSwap > _vaultFeeCollected) return;

        // Let's swap for eth now
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = router.WETH();       

        _approve(address(this), address(router), _vaultFeeCollected);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _vaultFeeCollected,
            0,
            sellPath,
            address(this),
            block.timestamp
        );

        // Send to marketing
        if(_vaultFeeCollected > 0) sendViaCall(payable(vault_wallet), address(this).balance);
        
        _vaultFeeCollected = 0;

        emit Swap(_vaultFeeCollected);
    }

    function calculateFee(uint256 feeIndex, uint256 amount) internal returns(uint256) {
        uint256 vaultFee = (amount * _vaultFee[feeIndex]) / (10**(_feeDecimal + 2));
        _vaultFeeCollected += vaultFee;
        return vaultFee;
    }

    function setMinTokensBeforeSwap(uint256 amount) external onlyOwner {
        minTokensBeforeSwap = amount;
    }

    function setVaultWallet(address wallet)  external onlyOwner {
        vault_wallet = wallet;
    }

    function setVaultFees(uint256 buy, uint256 sell, uint256 p2p) external onlyOwner {
        _vaultFee[0] = buy;
        _vaultFee[1] = sell;
        _vaultFee[2] = p2p;
    }

    function setSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function setFeeActive(bool value) external onlyOwner {
        isFeeActive = value;
    }

    function setTaxless(address account, bool value) external onlyOwner {
        isTaxless[account] = value;
    }

    function setTxEnabled(bool value) external onlyOwner {
        txEnabled = value;
    }

    function setName(string memory newName) external onlyOwner {
        _name = newName;
    }

    function setSymbol(string memory newSymbol) external onlyOwner {
        _symbol = newSymbol;
    }

    fallback() external payable {}
    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":false,"internalType":"uint256","name":"swaped","type":"uint256"}],"name":"Swap","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_feeDecimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_vaultFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":[{"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":"isFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensBeforeSwap","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSymbol","type":"string"}],"name":"setSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTaxless","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setTxEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"p2p","type":"uint256"}],"name":"setVaultFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setVaultWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600c55600e805461ffff191660019081179091556010805460ff191690911790553480156200003457600080fd5b50620000403362000332565b60408051808201909152600781526610985a5b13dd5d60ca1b60208201526004906200006d908262000513565b5060408051808201909152600781526610985a5b13dd5d60ca1b60208201526005906200009b908262000513565b50600980546001600160a01b03191673323754892ba29abaed7ab70a6d156a02ca2050c2179055633b9aca006008556040805163c45a015560e01b815290516c0c9f2c9cd04674edea4000000091737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a01559160048083019260209291908290030181865afa1580156200012c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001529190620005df565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c69190620005df565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a9190620005df565b600b80546001600160a01b03199081166001600160a01b0393841617909155600a8054909116838316179055600d8054600181810183556101f47fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592830181905583548083018555830155825480820190935560009290910182905533808352600f6020526040808420805460ff19908116851790915530855281852080548216851790556009549095168452832080548516831790559180527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3758054909316179091556200032a908362000382565b505062000639565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620003dd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060036000828254620003f1919062000611565b90915550506001600160a01b038216600090815260016020526040812080548392906200042090849062000611565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200049a57607f821691505b602082108103620004bb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200046a57600081815260208120601f850160051c81016020861015620004ea5750805b601f850160051c820191505b818110156200050b57828155600101620004f6565b505050505050565b81516001600160401b038111156200052f576200052f6200046f565b620005478162000540845462000485565b84620004c1565b602080601f8311600181146200057f5760008415620005665750858301515b600019600386901b1c1916600185901b1785556200050b565b600085815260208120601f198616915b82811015620005b0578886015182559484019460019091019084016200058f565b5085821015620005cf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005f257600080fd5b81516001600160a01b03811681146200060a57600080fd5b9392505050565b808201808211156200063357634e487b7160e01b600052601160045260246000fd5b92915050565b611a4380620006496000396000f3fe6080604052600436106101cf5760003560e01c8063a476d0bc116100f6578063d02d12871161008f578063e5d41c6b11610061578063e5d41c6b146105a5578063ea7553f0146105bb578063f2fde38b146105db578063f887ea40146105fb57005b8063d02d128714610500578063dd62ed3e14610520578063e01af92c14610566578063e43504da1461058657005b8063b7bfff65116100c8578063b7bfff6514610480578063b84c8246146104a0578063c0d77a88146104c0578063c47f0027146104e057005b8063a476d0bc146103f0578063a5ae2d2f14610410578063a8aa1b3114610440578063a9059cbb1461046057005b806347f2dc5b11610168578063715018a61161013a578063715018a6146103745780638da5cb5b1461038957806395d89b41146103bb578063a457c2d7146103d057005b806347f2dc5b146102e457806348a46473146103045780636ddd17131461032457806370a082311461033e57005b80631aa5d02c116101a15780631aa5d02c1461026857806323b872dd14610288578063313ce567146102a857806339509351146102c457005b806306fdde03146101d8578063095ea7b31461020357806318160ddd1461023357806319db457d1461025257005b366101d657005b005b3480156101e457600080fd5b506101ed61061b565b6040516101fa91906113e9565b60405180910390f35b34801561020f57600080fd5b5061022361021e36600461144c565b6106ad565b60405190151581526020016101fa565b34801561023f57600080fd5b506003545b6040519081526020016101fa565b34801561025e57600080fd5b50610244600c5481565b34801561027457600080fd5b506101d6610283366004611478565b6106c7565b34801561029457600080fd5b506102236102a33660046114a4565b610766565b3480156102b457600080fd5b50604051601281526020016101fa565b3480156102d057600080fd5b506102236102df36600461144c565b61078a565b3480156102f057600080fd5b506101d66102ff3660046114fa565b6107c9565b34801561031057600080fd5b506101d661031f36600461152f565b61081e565b34801561033057600080fd5b50600e546102239060ff1681565b34801561034a57600080fd5b50610244610359366004611548565b6001600160a01b031660009081526001602052604090205490565b34801561038057600080fd5b506101d661084d565b34801561039557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101fa565b3480156103c757600080fd5b506101ed610883565b3480156103dc57600080fd5b506102236103eb36600461144c565b610892565b3480156103fc57600080fd5b5061024461040b36600461152f565b610924565b34801561041c57600080fd5b5061022361042b366004611548565b600f6020526000908152604090205460ff1681565b34801561044c57600080fd5b50600b546103a3906001600160a01b031681565b34801561046c57600080fd5b5061022361047b36600461144c565b610945565b34801561048c57600080fd5b506101d661049b36600461156c565b610953565b3480156104ac57600080fd5b506101d66104bb36600461159d565b610997565b3480156104cc57600080fd5b506101d66104db366004611548565b6109d1565b3480156104ec57600080fd5b506101d66104fb36600461159d565b610a1d565b34801561050c57600080fd5b506101d661051b36600461156c565b610a53565b34801561052c57600080fd5b5061024461053b36600461164e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057257600080fd5b506101d661058136600461156c565b610a90565b34801561059257600080fd5b50600e5461022390610100900460ff1681565b3480156105b157600080fd5b5061024460085481565b3480156105c757600080fd5b506009546103a3906001600160a01b031681565b3480156105e757600080fd5b506101d66105f6366004611548565b610acd565b34801561060757600080fd5b50600a546103a3906001600160a01b031681565b60606004805461062a90611687565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611687565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610b68565b60019150505b92915050565b6000546001600160a01b031633146106fa5760405162461bcd60e51b81526004016106f1906116c1565b60405180910390fd5b82600d60008154811061070f5761070f6116f6565b906000526020600020018190555081600d600181548110610732576107326116f6565b906000526020600020018190555080600d600281548110610755576107556116f6565b600091825260209091200155505050565b600033610774858285610c8c565b61077f858585610d1e565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091906106bb90829086906107c4908790611722565b610b68565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016106f1906116c1565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016106f1906116c1565b600855565b6000546001600160a01b031633146108775760405162461bcd60e51b81526004016106f1906116c1565b61088160006110ac565b565b60606005805461062a90611687565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909190838110156109175760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f1565b61077f8286868403610b68565b600d818154811061093457600080fd5b600091825260209091200154905081565b6000336106bb818585610d1e565b6000546001600160a01b0316331461097d5760405162461bcd60e51b81526004016106f1906116c1565b600e80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146109c15760405162461bcd60e51b81526004016106f1906116c1565b60056109cd8282611783565b5050565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106f1906116c1565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a475760405162461bcd60e51b81526004016106f1906116c1565b60046109cd8282611783565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016106f1906116c1565b6010805460ff1916911515919091179055565b6000546001600160a01b03163314610aba5760405162461bcd60e51b81526004016106f1906116c1565b600e805460ff1916911515919091179055565b6000546001600160a01b03163314610af75760405162461bcd60e51b81526004016106f1906116c1565b6001600160a01b038116610b5c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f1565b610b65816110ac565b50565b6001600160a01b038316610bca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f1565b6001600160a01b038216610c2b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610d185781811015610d0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106f1565b610d188484848403610b68565b50505050565b60105460ff16610d705760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e7320617265206e6f7420656e61626c65642e00000060448201526064016106f1565b6001600160a01b038316610dd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f1565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f1565b600e5460ff168015610e4b575060065460ff16155b8015610e655750600b546001600160a01b03848116911614155b15610e7257610e72611101565b600e54600090610100900460ff168015610ea557506001600160a01b0384166000908152600f602052604090205460ff16155b8015610eca57506001600160a01b0383166000908152600f602052604090205460ff16155b8015610ed9575060065460ff16155b15610f4257600b546001600160a01b0384811691811691821491600091871614801590610f145750600b546001600160a01b03868116911614155b9050610f3d81610f315782610f2a576000610f34565b6001610f34565b60025b60ff16856112dc565b925050505b610f4c8183611843565b6001600160a01b038516600090815260016020526040812080549294508392909190610f79908490611843565b90915550503060009081526001602052604081208054839290610f9d908490611722565b90915550506001600160a01b0384166000908152600160205260409020548281101561101a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f1565b6001600160a01b03808616600090815260016020526040808220868503905591861681529081208054859290611051908490611722565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161109d91815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b505050565b6006805460ff19166001179055600754600854116112d057604080516002808252606082018352600092602083019080368337019050509050308160008151811061114e5761114e6116f6565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb9190611856565b816001815181106111de576111de6116f6565b6001600160a01b039283166020918202929092010152600a546007546112079230921690610b68565b600a5460075460405163791ac94760e01b81526001600160a01b039092169163791ac9479161124191600090869030904290600401611873565b600060405180830381600087803b15801561125b57600080fd5b505af115801561126f573d6000803e3d6000fd5b505050506000600754111561129457600954611294906001600160a01b03164761134d565b600060078190556040519081527f89f1d38d98c13362767fbcc2b0e375c1c3c4429b4648ea2a99839d962779b5d19060200160405180910390a1505b6006805460ff19169055565b600080600c5460026112ee9190611722565b6112f990600a6119c8565b600d858154811061130c5761130c6116f6565b90600052602060002001548461132291906119d4565b61132c91906119eb565b905080600760008282546113409190611722565b9091555090949350505050565b600080836001600160a01b03168360405160006040518083038185875af1925050503d806000811461139b576040519150601f19603f3d011682016040523d82523d6000602084013e6113a0565b606091505b509150915081610d185760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016106f1565b600060208083528351808285015260005b81811015611416578581018301518582016040015282016113fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6557600080fd5b6000806040838503121561145f57600080fd5b823561146a81611437565b946020939093013593505050565b60008060006060848603121561148d57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156114b957600080fd5b83356114c481611437565b925060208401356114d481611437565b929592945050506040919091013590565b803580151581146114f557600080fd5b919050565b6000806040838503121561150d57600080fd5b823561151881611437565b9150611526602084016114e5565b90509250929050565b60006020828403121561154157600080fd5b5035919050565b60006020828403121561155a57600080fd5b813561156581611437565b9392505050565b60006020828403121561157e57600080fd5b611565826114e5565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156115af57600080fd5b813567ffffffffffffffff808211156115c757600080fd5b818401915084601f8301126115db57600080fd5b8135818111156115ed576115ed611587565b604051601f8201601f19908116603f0116810190838211818310171561161557611615611587565b8160405282815287602084870101111561162e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561166157600080fd5b823561166c81611437565b9150602083013561167c81611437565b809150509250929050565b600181811c9082168061169b57607f821691505b6020821081036116bb57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106c1576106c161170c565b601f8211156110fc57600081815260208120601f850160051c8101602086101561175c5750805b601f850160051c820191505b8181101561177b57828155600101611768565b505050505050565b815167ffffffffffffffff81111561179d5761179d611587565b6117b1816117ab8454611687565b84611735565b602080601f8311600181146117e657600084156117ce5750858301515b600019600386901b1c1916600185901b17855561177b565b600085815260208120601f198616915b82811015611815578886015182559484019460019091019084016117f6565b50858210156118335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156106c1576106c161170c565b60006020828403121561186857600080fd5b815161156581611437565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c35784516001600160a01b03168352938301939183019160010161189e565b50506001600160a01b03969096166060850152505050608001529392505050565b600181815b8085111561191f5781600019048211156119055761190561170c565b8085161561191257918102915b93841c93908002906118e9565b509250929050565b600082611936575060016106c1565b81611943575060006106c1565b816001811461195957600281146119635761197f565b60019150506106c1565b60ff8411156119745761197461170c565b50506001821b6106c1565b5060208310610133831016604e8410600b84101617156119a2575081810a6106c1565b6119ac83836118e4565b80600019048211156119c0576119c061170c565b029392505050565b60006115658383611927565b80820281158282048414176106c1576106c161170c565b600082611a0857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c6aaae6aa89a64ee8708cacdd6a672a0e18cdb0150838305f7adf8ad6c57a8f064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101cf5760003560e01c8063a476d0bc116100f6578063d02d12871161008f578063e5d41c6b11610061578063e5d41c6b146105a5578063ea7553f0146105bb578063f2fde38b146105db578063f887ea40146105fb57005b8063d02d128714610500578063dd62ed3e14610520578063e01af92c14610566578063e43504da1461058657005b8063b7bfff65116100c8578063b7bfff6514610480578063b84c8246146104a0578063c0d77a88146104c0578063c47f0027146104e057005b8063a476d0bc146103f0578063a5ae2d2f14610410578063a8aa1b3114610440578063a9059cbb1461046057005b806347f2dc5b11610168578063715018a61161013a578063715018a6146103745780638da5cb5b1461038957806395d89b41146103bb578063a457c2d7146103d057005b806347f2dc5b146102e457806348a46473146103045780636ddd17131461032457806370a082311461033e57005b80631aa5d02c116101a15780631aa5d02c1461026857806323b872dd14610288578063313ce567146102a857806339509351146102c457005b806306fdde03146101d8578063095ea7b31461020357806318160ddd1461023357806319db457d1461025257005b366101d657005b005b3480156101e457600080fd5b506101ed61061b565b6040516101fa91906113e9565b60405180910390f35b34801561020f57600080fd5b5061022361021e36600461144c565b6106ad565b60405190151581526020016101fa565b34801561023f57600080fd5b506003545b6040519081526020016101fa565b34801561025e57600080fd5b50610244600c5481565b34801561027457600080fd5b506101d6610283366004611478565b6106c7565b34801561029457600080fd5b506102236102a33660046114a4565b610766565b3480156102b457600080fd5b50604051601281526020016101fa565b3480156102d057600080fd5b506102236102df36600461144c565b61078a565b3480156102f057600080fd5b506101d66102ff3660046114fa565b6107c9565b34801561031057600080fd5b506101d661031f36600461152f565b61081e565b34801561033057600080fd5b50600e546102239060ff1681565b34801561034a57600080fd5b50610244610359366004611548565b6001600160a01b031660009081526001602052604090205490565b34801561038057600080fd5b506101d661084d565b34801561039557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101fa565b3480156103c757600080fd5b506101ed610883565b3480156103dc57600080fd5b506102236103eb36600461144c565b610892565b3480156103fc57600080fd5b5061024461040b36600461152f565b610924565b34801561041c57600080fd5b5061022361042b366004611548565b600f6020526000908152604090205460ff1681565b34801561044c57600080fd5b50600b546103a3906001600160a01b031681565b34801561046c57600080fd5b5061022361047b36600461144c565b610945565b34801561048c57600080fd5b506101d661049b36600461156c565b610953565b3480156104ac57600080fd5b506101d66104bb36600461159d565b610997565b3480156104cc57600080fd5b506101d66104db366004611548565b6109d1565b3480156104ec57600080fd5b506101d66104fb36600461159d565b610a1d565b34801561050c57600080fd5b506101d661051b36600461156c565b610a53565b34801561052c57600080fd5b5061024461053b36600461164e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057257600080fd5b506101d661058136600461156c565b610a90565b34801561059257600080fd5b50600e5461022390610100900460ff1681565b3480156105b157600080fd5b5061024460085481565b3480156105c757600080fd5b506009546103a3906001600160a01b031681565b3480156105e757600080fd5b506101d66105f6366004611548565b610acd565b34801561060757600080fd5b50600a546103a3906001600160a01b031681565b60606004805461062a90611687565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611687565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610b68565b60019150505b92915050565b6000546001600160a01b031633146106fa5760405162461bcd60e51b81526004016106f1906116c1565b60405180910390fd5b82600d60008154811061070f5761070f6116f6565b906000526020600020018190555081600d600181548110610732576107326116f6565b906000526020600020018190555080600d600281548110610755576107556116f6565b600091825260209091200155505050565b600033610774858285610c8c565b61077f858585610d1e565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091906106bb90829086906107c4908790611722565b610b68565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016106f1906116c1565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016106f1906116c1565b600855565b6000546001600160a01b031633146108775760405162461bcd60e51b81526004016106f1906116c1565b61088160006110ac565b565b60606005805461062a90611687565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909190838110156109175760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f1565b61077f8286868403610b68565b600d818154811061093457600080fd5b600091825260209091200154905081565b6000336106bb818585610d1e565b6000546001600160a01b0316331461097d5760405162461bcd60e51b81526004016106f1906116c1565b600e80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146109c15760405162461bcd60e51b81526004016106f1906116c1565b60056109cd8282611783565b5050565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106f1906116c1565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a475760405162461bcd60e51b81526004016106f1906116c1565b60046109cd8282611783565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016106f1906116c1565b6010805460ff1916911515919091179055565b6000546001600160a01b03163314610aba5760405162461bcd60e51b81526004016106f1906116c1565b600e805460ff1916911515919091179055565b6000546001600160a01b03163314610af75760405162461bcd60e51b81526004016106f1906116c1565b6001600160a01b038116610b5c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f1565b610b65816110ac565b50565b6001600160a01b038316610bca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f1565b6001600160a01b038216610c2b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610d185781811015610d0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106f1565b610d188484848403610b68565b50505050565b60105460ff16610d705760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e7320617265206e6f7420656e61626c65642e00000060448201526064016106f1565b6001600160a01b038316610dd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f1565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f1565b600e5460ff168015610e4b575060065460ff16155b8015610e655750600b546001600160a01b03848116911614155b15610e7257610e72611101565b600e54600090610100900460ff168015610ea557506001600160a01b0384166000908152600f602052604090205460ff16155b8015610eca57506001600160a01b0383166000908152600f602052604090205460ff16155b8015610ed9575060065460ff16155b15610f4257600b546001600160a01b0384811691811691821491600091871614801590610f145750600b546001600160a01b03868116911614155b9050610f3d81610f315782610f2a576000610f34565b6001610f34565b60025b60ff16856112dc565b925050505b610f4c8183611843565b6001600160a01b038516600090815260016020526040812080549294508392909190610f79908490611843565b90915550503060009081526001602052604081208054839290610f9d908490611722565b90915550506001600160a01b0384166000908152600160205260409020548281101561101a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f1565b6001600160a01b03808616600090815260016020526040808220868503905591861681529081208054859290611051908490611722565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161109d91815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b505050565b6006805460ff19166001179055600754600854116112d057604080516002808252606082018352600092602083019080368337019050509050308160008151811061114e5761114e6116f6565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb9190611856565b816001815181106111de576111de6116f6565b6001600160a01b039283166020918202929092010152600a546007546112079230921690610b68565b600a5460075460405163791ac94760e01b81526001600160a01b039092169163791ac9479161124191600090869030904290600401611873565b600060405180830381600087803b15801561125b57600080fd5b505af115801561126f573d6000803e3d6000fd5b505050506000600754111561129457600954611294906001600160a01b03164761134d565b600060078190556040519081527f89f1d38d98c13362767fbcc2b0e375c1c3c4429b4648ea2a99839d962779b5d19060200160405180910390a1505b6006805460ff19169055565b600080600c5460026112ee9190611722565b6112f990600a6119c8565b600d858154811061130c5761130c6116f6565b90600052602060002001548461132291906119d4565b61132c91906119eb565b905080600760008282546113409190611722565b9091555090949350505050565b600080836001600160a01b03168360405160006040518083038185875af1925050503d806000811461139b576040519150601f19603f3d011682016040523d82523d6000602084013e6113a0565b606091505b509150915081610d185760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016106f1565b600060208083528351808285015260005b81811015611416578581018301518582016040015282016113fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6557600080fd5b6000806040838503121561145f57600080fd5b823561146a81611437565b946020939093013593505050565b60008060006060848603121561148d57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156114b957600080fd5b83356114c481611437565b925060208401356114d481611437565b929592945050506040919091013590565b803580151581146114f557600080fd5b919050565b6000806040838503121561150d57600080fd5b823561151881611437565b9150611526602084016114e5565b90509250929050565b60006020828403121561154157600080fd5b5035919050565b60006020828403121561155a57600080fd5b813561156581611437565b9392505050565b60006020828403121561157e57600080fd5b611565826114e5565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156115af57600080fd5b813567ffffffffffffffff808211156115c757600080fd5b818401915084601f8301126115db57600080fd5b8135818111156115ed576115ed611587565b604051601f8201601f19908116603f0116810190838211818310171561161557611615611587565b8160405282815287602084870101111561162e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561166157600080fd5b823561166c81611437565b9150602083013561167c81611437565b809150509250929050565b600181811c9082168061169b57607f821691505b6020821081036116bb57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106c1576106c161170c565b601f8211156110fc57600081815260208120601f850160051c8101602086101561175c5750805b601f850160051c820191505b8181101561177b57828155600101611768565b505050505050565b815167ffffffffffffffff81111561179d5761179d611587565b6117b1816117ab8454611687565b84611735565b602080601f8311600181146117e657600084156117ce5750858301515b600019600386901b1c1916600185901b17855561177b565b600085815260208120601f198616915b82811015611815578886015182559484019460019091019084016117f6565b50858210156118335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156106c1576106c161170c565b60006020828403121561186857600080fd5b815161156581611437565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c35784516001600160a01b03168352938301939183019160010161189e565b50506001600160a01b03969096166060850152505050608001529392505050565b600181815b8085111561191f5781600019048211156119055761190561170c565b8085161561191257918102915b93841c93908002906118e9565b509250929050565b600082611936575060016106c1565b81611943575060006106c1565b816001811461195957600281146119635761197f565b60019150506106c1565b60ff8411156119745761197461170c565b50506001821b6106c1565b5060208310610133831016604e8410600b84101617156119a2575081810a6106c1565b6119ac83836118e4565b80600019048211156119c0576119c061170c565b029392505050565b60006115658383611927565b80820281158282048414176106c1576106c161170c565b600082611a0857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c6aaae6aa89a64ee8708cacdd6a672a0e18cdb0150838305f7adf8ad6c57a8f064736f6c63430008110033

Deployed Bytecode Sourcemap

6691:16094:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8870:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11221:201;;;;;;;;;;-1:-1:-1;11221:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11221:201:0;1023:187:1;9990:108:0;;;;;;;;;;-1:-1:-1;10078:12:0;;9990:108;;;1361:25:1;;;1349:2;1334:18;9990:108:0;1215:177:1;7258:27:0;;;;;;;;;;;;;;;;21900:177;;;;;;;;;;-1:-1:-1;21900:177:0;;;;;:::i;:::-;;:::i;12002:295::-;;;;;;;;;;-1:-1:-1;12002:295:0;;;;;:::i;:::-;;:::i;9832:93::-;;;;;;;;;;-1:-1:-1;9832:93:0;;9915:2;2321:36:1;;2309:2;2294:18;9832:93:0;2179:184:1;12706:240:0;;;;;;;;;;-1:-1:-1;12706:240:0;;;;;:::i;:::-;;:::i;22289:113::-;;;;;;;;;;-1:-1:-1;22289:113:0;;;;;:::i;:::-;;:::i;21670:114::-;;;;;;;;;;-1:-1:-1;21670:114:0;;;;;:::i;:::-;;:::i;7389:30::-;;;;;;;;;;-1:-1:-1;7389:30:0;;;;;;;;10161:127;;;;;;;;;;-1:-1:-1;10161:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10262:18:0;10235:7;10262:18;;;:9;:18;;;;;;;10161:127;4548:103;;;;;;;;;;;;;:::i;3897:87::-;;;;;;;;;;-1:-1:-1;3943:7:0;3970:6;-1:-1:-1;;;;;3970:6:0;3897:87;;;-1:-1:-1;;;;;3454:32:1;;;3436:51;;3424:2;3409:18;3897:87:0;3290:203:1;9089:104:0;;;;;;;;;;;;;:::i;13449:438::-;;;;;;;;;;-1:-1:-1;13449:438:0;;;;;:::i;:::-;;:::i;7357:23::-;;;;;;;;;;-1:-1:-1;7357:23:0;;;;;:::i;:::-;;:::i;7466:41::-;;;;;;;;;;-1:-1:-1;7466:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7230:19;;;;;;;;;;-1:-1:-1;7230:19:0;;;;-1:-1:-1;;;;;7230:19:0;;;10494:193;;;;;;;;;;-1:-1:-1;10494:193:0;;;;;:::i;:::-;;:::i;22190:91::-;;;;;;;;;;-1:-1:-1;22190:91:0;;;;;:::i;:::-;;:::i;22608:101::-;;;;;;;;;;-1:-1:-1;22608:101:0;;;;;:::i;:::-;;:::i;21792:100::-;;;;;;;;;;-1:-1:-1;21792:100:0;;;;;:::i;:::-;;:::i;22507:93::-;;;;;;;;;;-1:-1:-1;22507:93:0;;;;;:::i;:::-;;:::i;22410:89::-;;;;;;;;;;-1:-1:-1;22410:89:0;;;;;:::i;:::-;;:::i;10750:151::-;;;;;;;;;;-1:-1:-1;10750:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10866:18:0;;;10839:7;10866:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10750:151;22085:97;;;;;;;;;;-1:-1:-1;22085:97:0;;;;;:::i;:::-;;:::i;7426:31::-;;;;;;;;;;-1:-1:-1;7426:31:0;;;;;;;;;;;7108:34;;;;;;;;;;;;;;;;7155:27;;;;;;;;;;-1:-1:-1;7155:27:0;;;;-1:-1:-1;;;;;7155:27:0;;;4806:201;;;;;;;;;;-1:-1:-1;4806:201:0;;;;;:::i;:::-;;:::i;7191:32::-;;;;;;;;;;-1:-1:-1;7191:32:0;;;;-1:-1:-1;;;;;7191:32:0;;;8870:100;8924:13;8957:5;8950:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8870:100;:::o;11221:201::-;11304:4;286:10;11360:32;286:10;11376:7;11385:6;11360:8;:32::i;:::-;11410:4;11403:11;;;11221:201;;;;;:::o;21900:177::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;;;;;;;;;22007:3:::1;21992:9;22002:1;21992:12;;;;;;;;:::i;:::-;;;;;;;;:18;;;;22036:4;22021:9;22031:1;22021:12;;;;;;;;:::i;:::-;;;;;;;;:19;;;;22066:3;22051:9;22061:1;22051:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:18:::0;-1:-1:-1;;;21900:177:0:o;12002:295::-;12133:4;286:10;12191:38;12207:4;286:10;12222:6;12191:15;:38::i;:::-;12240:27;12250:4;12256:2;12260:6;12240:9;:27::i;:::-;-1:-1:-1;12285:4:0;;12002:295;-1:-1:-1;;;;12002:295:0:o;12706:240::-;286:10;12794:4;12875:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;12875:27:0;;;;;;;;;;12794:4;;286:10;12850:66;;286:10;;12875:27;;:40;;12905:10;;12875:40;:::i;:::-;12850:8;:66::i;22289:113::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22368:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;22368:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22289:113::o;21670:114::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;21748:19:::1;:28:::0;21670:114::o;4548:103::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;4613:30:::1;4640:1;4613:18;:30::i;:::-;4548:103::o:0;9089:104::-;9145:13;9178:7;9171:14;;;;;:::i;13449:438::-;286:10;13542:4;13625:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13625:27:0;;;;;;;;;;13542:4;;286:10;13671:35;;;;13663:85;;;;-1:-1:-1;;;13663:85:0;;6711:2:1;13663:85:0;;;6693:21:1;6750:2;6730:18;;;6723:30;6789:34;6769:18;;;6762:62;-1:-1:-1;;;6840:18:1;;;6833:35;6885:19;;13663:85:0;6509:401:1;13663:85:0;13784:60;13793:5;13800:7;13828:15;13809:16;:34;13784:8;:60::i;7357:23::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7357:23:0;:::o;10494:193::-;10573:4;286:10;10629:28;286:10;10646:2;10650:6;10629:9;:28::i;22190:91::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;22254:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;22254:19:0;;::::1;::::0;;;::::1;::::0;;22190:91::o;22608:101::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;22682:7:::1;:19;22692:9:::0;22682:7;:19:::1;:::i;:::-;;22608:101:::0;:::o;21792:100::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;21863:12:::1;:21:::0;;-1:-1:-1;;;;;;21863:21:0::1;-1:-1:-1::0;;;;;21863:21:0;;;::::1;::::0;;;::::1;::::0;;21792:100::o;22507:93::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;22577:5:::1;:15;22585:7:::0;22577:5;:15:::1;:::i;22410:89::-:0;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;22474:9:::1;:17:::0;;-1:-1:-1;;22474:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22410:89::o;22085:97::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;22153:11:::1;:21:::0;;-1:-1:-1;;22153:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22085:97::o;4806:201::-;3943:7;3970:6;-1:-1:-1;;;;;3970:6:0;286:10;4117:23;4109:68;;;;-1:-1:-1;;;4109:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4895:22:0;::::1;4887:73;;;::::0;-1:-1:-1;;;4887:73:0;;9321:2:1;4887:73:0::1;::::0;::::1;9303:21:1::0;9360:2;9340:18;;;9333:30;9399:34;9379:18;;;9372:62;-1:-1:-1;;;9450:18:1;;;9443:36;9496:19;;4887:73:0::1;9119:402:1::0;4887:73:0::1;4971:28;4990:8;4971:18;:28::i;:::-;4806:201:::0;:::o;17719:380::-;-1:-1:-1;;;;;17855:19:0;;17847:68;;;;-1:-1:-1;;;17847:68:0;;9728:2:1;17847:68:0;;;9710:21:1;9767:2;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;-1:-1:-1;;;9857:18:1;;;9850:34;9901:19;;17847:68:0;9526:400:1;17847:68:0;-1:-1:-1;;;;;17934:21:0;;17926:68;;;;-1:-1:-1;;;17926:68:0;;10133:2:1;17926:68:0;;;10115:21:1;10172:2;10152:18;;;10145:30;10211:34;10191:18;;;10184:62;-1:-1:-1;;;10262:18:1;;;10255:32;10304:19;;17926:68:0;9931:398:1;17926:68:0;-1:-1:-1;;;;;18007:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18059:32;;1361:25:1;;;18059:32:0;;1334:18:1;18059:32:0;;;;;;;17719:380;;;:::o;18386:453::-;-1:-1:-1;;;;;10866:18:0;;;18521:24;10866:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;18588:37:0;;18584:248;;18670:6;18650:16;:26;;18642:68;;;;-1:-1:-1;;;18642:68:0;;10536:2:1;18642:68:0;;;10518:21:1;10575:2;10555:18;;;10548:30;10614:31;10594:18;;;10587:59;10663:18;;18642:68:0;10334:353:1;18642:68:0;18754:51;18763:5;18770:7;18798:6;18779:16;:25;18754:8;:51::i;:::-;18510:329;18386:453;;;:::o;14366:1305::-;14497:9;;;;14489:51;;;;-1:-1:-1;;;14489:51:0;;10894:2:1;14489:51:0;;;10876:21:1;10933:2;10913:18;;;10906:30;10972:31;10952:18;;;10945:59;11021:18;;14489:51:0;10692:353:1;14489:51:0;-1:-1:-1;;;;;14559:18:0;;14551:68;;;;-1:-1:-1;;;14551:68:0;;11252:2:1;14551:68:0;;;11234:21:1;11291:2;11271:18;;;11264:30;11330:34;11310:18;;;11303:62;-1:-1:-1;;;11381:18:1;;;11374:35;11426:19;;14551:68:0;11050:401:1;14551:68:0;-1:-1:-1;;;;;14638:16:0;;14630:64;;;;-1:-1:-1;;;14630:64:0;;11658:2:1;14630:64:0;;;11640:21:1;11697:2;11677:18;;;11670:30;11736:34;11716:18;;;11709:62;-1:-1:-1;;;11787:18:1;;;11780:33;11830:19;;14630:64:0;11456:399:1;14630:64:0;14794:11;;;;:22;;;;-1:-1:-1;14810:6:0;;;;14809:7;14794:22;:38;;;;-1:-1:-1;14828:4:0;;-1:-1:-1;;;;;14820:12:0;;;14828:4;;14820:12;;14794:38;14790:77;;;14849:6;:4;:6::i;:::-;14915:11;;14879:21;;14915:11;;;;;:31;;;;-1:-1:-1;;;;;;14931:15:0;;;;;;:9;:15;;;;;;;;14930:16;14915:31;:49;;;;-1:-1:-1;;;;;;14951:13:0;;;;;;:9;:13;;;;;;;;14950:14;14915:49;:60;;;;-1:-1:-1;14969:6:0;;;;14968:7;14915:60;14911:242;;;15010:4;;-1:-1:-1;;;;;15004:10:0;;;15010:4;;;15004:10;;;;14992:9;;15040:12;;;;;;:26;;-1:-1:-1;15062:4:0;;-1:-1:-1;;;;;15056:10:0;;;15062:4;;15056:10;;15040:26;15029:37;;15097:44;15110:3;:22;;15120:4;:12;;15131:1;15110:22;;15120:12;15127:1;15110:22;;;15116:1;15110:22;15097:44;;15134:6;15097:12;:44::i;:::-;15081:60;;14977:176;;14911:242;15165:23;15175:13;15165:23;;:::i;:::-;-1:-1:-1;;;;;15199:15:0;;;;;;:9;:15;;;;;:32;;15165:23;;-1:-1:-1;15218:13:0;;15199:15;;;:32;;15218:13;;15199:32;:::i;:::-;;;;-1:-1:-1;;15260:4:0;15242:24;;;;:9;:24;;;;;:41;;15270:13;;15242:24;:41;;15270:13;;15242:41;:::i;:::-;;;;-1:-1:-1;;;;;;;15352:15:0;;15330:19;15352:15;;;:9;:15;;;;;;15386:21;;;;15378:72;;;;-1:-1:-1;;;15378:72:0;;12195:2:1;15378:72:0;;;12177:21:1;12234:2;12214:18;;;12207:30;12273:34;12253:18;;;12246:62;-1:-1:-1;;;12324:18:1;;;12317:36;12370:19;;15378:72:0;11993:402:1;15378:72:0;-1:-1:-1;;;;;15486:15:0;;;;;;;:9;:15;;;;;;15504:20;;;15486:38;;15546:13;;;;;;;;:23;;15518:6;;15486:15;15546:23;;15518:6;;15546:23;:::i;:::-;;;;;;;;15602:2;-1:-1:-1;;;;;15587:26:0;15596:4;-1:-1:-1;;;;;15587:26:0;;15606:6;15587:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;15587:26:0;;;;;;;;14478:1193;;14366:1305;;;:::o;5167:191::-;5241:16;5260:6;;-1:-1:-1;;;;;5277:17:0;;;-1:-1:-1;;;;;;5277:17:0;;;;;;5310:40;;5260:6;;;;;;;5310:40;;5241:16;5310:40;5230:128;5167:191;:::o;19439:125::-;;;;:::o;20636:775::-;20357:6;:13;;-1:-1:-1;;20357:13:0;20366:4;20357:13;;;20708:18:::1;::::0;20686:19:::1;::::0;:40:::1;20728:7;20683:52;20810:16;::::0;;20824:1:::1;20810:16:::0;;;;;::::1;::::0;;20782:25:::1;::::0;20810:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20810:16:0::1;20782:44;;20859:4;20837:8;20846:1;20837:11;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20837:27:0;;::::1;:11;::::0;;::::1;::::0;;;;;;:27;;;;20889:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;20889:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;20837:11;;20889:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20875:8;20884:1;20875:11;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20875:27:0;;::::1;:11;::::0;;::::1;::::0;;;;;:27;20954:6:::1;::::0;20963:18:::1;::::0;20922:60:::1;::::0;20939:4:::1;::::0;20954:6:::1;::::0;20922:8:::1;:60::i;:::-;20993:6;::::0;21065:18:::1;::::0;20993:198:::1;::::0;-1:-1:-1;;;20993:198:0;;-1:-1:-1;;;;;20993:6:0;;::::1;::::0;:57:::1;::::0;:198:::1;::::0;:6:::1;::::0;21114:8;;21145:4:::1;::::0;21165:15:::1;::::0;20993:198:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21258:1;21237:18;;:22;21234:84;;;21281:12;::::0;21261:57:::1;::::0;-1:-1:-1;;;;;21281:12:0::1;21296:21;21261:11;:57::i;:::-;21360:1;21339:18;:22:::0;;;21379:24:::1;::::0;1361:25:1;;;21379:24:0::1;::::0;1349:2:1;1334:18;21379:24:0::1;;;;;;;20672:739;20381:1;20393:6:::0;:14;;-1:-1:-1;;20393:14:0;;;20636:775::o;21419:243::-;21492:7;21512:16;21570:11;;21584:1;21570:15;;;;:::i;:::-;21565:21;;:2;:21;:::i;:::-;21541:9;21551:8;21541:19;;;;;;;;:::i;:::-;;;;;;;;;21532:6;:28;;;;:::i;:::-;21531:56;;;;:::i;:::-;21512:75;;21620:8;21598:18;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;21646:8:0;;21419:243;-1:-1:-1;;;;21419:243:0:o;20423:205::-;20498:9;20509:17;20530:3;-1:-1:-1;;;;;20530:8:0;20546:6;20530:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20497:60;;;;20591:4;20583:37;;;;-1:-1:-1;;;20583:37:0;;15822:2:1;20583:37:0;;;15804:21:1;15861:2;15841:18;;;15834:30;-1:-1:-1;;;15880:18:1;;;15873:50;15940:18;;20583:37:0;15620:344:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:316::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;-1:-1:-1;;1582:23:1;;;1652:2;1637:18;;1624:32;;-1:-1:-1;1703:2:1;1688:18;;;1675:32;;1397:316;-1:-1:-1;1397:316:1:o;1718:456::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:52;;;1880:1;1877;1870:12;1832:52;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;-1:-1:-1;2045:2:1;2030:18;;2017:32;2058:33;2017:32;2058:33;:::i;:::-;1718:456;;2110:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1718:456::o;2368:160::-;2433:20;;2489:13;;2482:21;2472:32;;2462:60;;2518:1;2515;2508:12;2462:60;2368:160;;;:::o;2533:315::-;2598:6;2606;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2714:9;2701:23;2733:31;2758:5;2733:31;:::i;:::-;2783:5;-1:-1:-1;2807:35:1;2838:2;2823:18;;2807:35;:::i;:::-;2797:45;;2533:315;;;;;:::o;2853:180::-;2912:6;2965:2;2953:9;2944:7;2940:23;2936:32;2933:52;;;2981:1;2978;2971:12;2933:52;-1:-1:-1;3004:23:1;;2853:180;-1:-1:-1;2853:180:1:o;3038:247::-;3097:6;3150:2;3138:9;3129:7;3125:23;3121:32;3118:52;;;3166:1;3163;3156:12;3118:52;3205:9;3192:23;3224:31;3249:5;3224:31;:::i;:::-;3274:5;3038:247;-1:-1:-1;;;3038:247:1:o;3498:180::-;3554:6;3607:2;3595:9;3586:7;3582:23;3578:32;3575:52;;;3623:1;3620;3613:12;3575:52;3646:26;3662:9;3646:26;:::i;3683:127::-;3744:10;3739:3;3735:20;3732:1;3725:31;3775:4;3772:1;3765:15;3799:4;3796:1;3789:15;3815:922;3884:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:52;;;3953:1;3950;3943:12;3905:52;3993:9;3980:23;4022:18;4063:2;4055:6;4052:14;4049:34;;;4079:1;4076;4069:12;4049:34;4117:6;4106:9;4102:22;4092:32;;4162:7;4155:4;4151:2;4147:13;4143:27;4133:55;;4184:1;4181;4174:12;4133:55;4220:2;4207:16;4242:2;4238;4235:10;4232:36;;;4248:18;;:::i;:::-;4323:2;4317:9;4291:2;4377:13;;-1:-1:-1;;4373:22:1;;;4397:2;4369:31;4365:40;4353:53;;;4421:18;;;4441:22;;;4418:46;4415:72;;;4467:18;;:::i;:::-;4507:10;4503:2;4496:22;4542:2;4534:6;4527:18;4582:7;4577:2;4572;4568;4564:11;4560:20;4557:33;4554:53;;;4603:1;4600;4593:12;4554:53;4659:2;4654;4650;4646:11;4641:2;4633:6;4629:15;4616:46;4704:1;4682:15;;;4699:2;4678:24;4671:35;;;;-1:-1:-1;4686:6:1;3815:922;-1:-1:-1;;;;;3815:922:1:o;4742:388::-;4810:6;4818;4871:2;4859:9;4850:7;4846:23;4842:32;4839:52;;;4887:1;4884;4877:12;4839:52;4926:9;4913:23;4945:31;4970:5;4945:31;:::i;:::-;4995:5;-1:-1:-1;5052:2:1;5037:18;;5024:32;5065:33;5024:32;5065:33;:::i;:::-;5117:7;5107:17;;;4742:388;;;;;:::o;5369:380::-;5448:1;5444:12;;;;5491;;;5512:61;;5566:4;5558:6;5554:17;5544:27;;5512:61;5619:2;5611:6;5608:14;5588:18;5585:38;5582:161;;5665:10;5660:3;5656:20;5653:1;5646:31;5700:4;5697:1;5690:15;5728:4;5725:1;5718:15;5582:161;;5369:380;;;:::o;5754:356::-;5956:2;5938:21;;;5975:18;;;5968:30;6034:34;6029:2;6014:18;;6007:62;6101:2;6086:18;;5754:356::o;6115:127::-;6176:10;6171:3;6167:20;6164:1;6157:31;6207:4;6204:1;6197:15;6231:4;6228:1;6221:15;6247:127;6308:10;6303:3;6299:20;6296:1;6289:31;6339:4;6336:1;6329:15;6363:4;6360:1;6353:15;6379:125;6444:9;;;6465:10;;;6462:36;;;6478:18;;:::i;7041:545::-;7143:2;7138:3;7135:11;7132:448;;;7179:1;7204:5;7200:2;7193:17;7249:4;7245:2;7235:19;7319:2;7307:10;7303:19;7300:1;7296:27;7290:4;7286:38;7355:4;7343:10;7340:20;7337:47;;;-1:-1:-1;7378:4:1;7337:47;7433:2;7428:3;7424:12;7421:1;7417:20;7411:4;7407:31;7397:41;;7488:82;7506:2;7499:5;7496:13;7488:82;;;7551:17;;;7532:1;7521:13;7488:82;;;7492:3;;;7041:545;;;:::o;7762:1352::-;7888:3;7882:10;7915:18;7907:6;7904:30;7901:56;;;7937:18;;:::i;:::-;7966:97;8056:6;8016:38;8048:4;8042:11;8016:38;:::i;:::-;8010:4;7966:97;:::i;:::-;8118:4;;8182:2;8171:14;;8199:1;8194:663;;;;8901:1;8918:6;8915:89;;;-1:-1:-1;8970:19:1;;;8964:26;8915:89;-1:-1:-1;;7719:1:1;7715:11;;;7711:24;7707:29;7697:40;7743:1;7739:11;;;7694:57;9017:81;;8164:944;;8194:663;6988:1;6981:14;;;7025:4;7012:18;;-1:-1:-1;;8230:20:1;;;8348:236;8362:7;8359:1;8356:14;8348:236;;;8451:19;;;8445:26;8430:42;;8543:27;;;;8511:1;8499:14;;;;8378:19;;8348:236;;;8352:3;8612:6;8603:7;8600:19;8597:201;;;8673:19;;;8667:26;-1:-1:-1;;8756:1:1;8752:14;;;8768:3;8748:24;8744:37;8740:42;8725:58;8710:74;;8597:201;-1:-1:-1;;;;;8844:1:1;8828:14;;;8824:22;8811:36;;-1:-1:-1;7762:1352:1:o;11860:128::-;11927:9;;;11948:11;;;11945:37;;;11962:18;;:::i;12400:251::-;12470:6;12523:2;12511:9;12502:7;12498:23;12494:32;12491:52;;;12539:1;12536;12529:12;12491:52;12571:9;12565:16;12590:31;12615:5;12590:31;:::i;12656:980::-;12918:4;12966:3;12955:9;12951:19;12997:6;12986:9;12979:25;13023:2;13061:6;13056:2;13045:9;13041:18;13034:34;13104:3;13099:2;13088:9;13084:18;13077:31;13128:6;13163;13157:13;13194:6;13186;13179:22;13232:3;13221:9;13217:19;13210:26;;13271:2;13263:6;13259:15;13245:29;;13292:1;13302:195;13316:6;13313:1;13310:13;13302:195;;;13381:13;;-1:-1:-1;;;;;13377:39:1;13365:52;;13472:15;;;;13437:12;;;;13413:1;13331:9;13302:195;;;-1:-1:-1;;;;;;;13553:32:1;;;;13548:2;13533:18;;13526:60;-1:-1:-1;;;13617:3:1;13602:19;13595:35;13514:3;12656:980;-1:-1:-1;;;12656:980:1:o;13641:422::-;13730:1;13773:5;13730:1;13787:270;13808:7;13798:8;13795:21;13787:270;;;13867:4;13863:1;13859:6;13855:17;13849:4;13846:27;13843:53;;;13876:18;;:::i;:::-;13926:7;13916:8;13912:22;13909:55;;;13946:16;;;;13909:55;14025:22;;;;13985:15;;;;13787:270;;;13791:3;13641:422;;;;;:::o;14068:806::-;14117:5;14147:8;14137:80;;-1:-1:-1;14188:1:1;14202:5;;14137:80;14236:4;14226:76;;-1:-1:-1;14273:1:1;14287:5;;14226:76;14318:4;14336:1;14331:59;;;;14404:1;14399:130;;;;14311:218;;14331:59;14361:1;14352:10;;14375:5;;;14399:130;14436:3;14426:8;14423:17;14420:43;;;14443:18;;:::i;:::-;-1:-1:-1;;14499:1:1;14485:16;;14514:5;;14311:218;;14613:2;14603:8;14600:16;14594:3;14588:4;14585:13;14581:36;14575:2;14565:8;14562:16;14557:2;14551:4;14548:12;14544:35;14541:77;14538:159;;;-1:-1:-1;14650:19:1;;;14682:5;;14538:159;14729:34;14754:8;14748:4;14729:34;:::i;:::-;14799:6;14795:1;14791:6;14787:19;14778:7;14775:32;14772:58;;;14810:18;;:::i;:::-;14848:20;;14068:806;-1:-1:-1;;;14068:806:1:o;14879:131::-;14939:5;14968:36;14995:8;14989:4;14968:36;:::i;15015:168::-;15088:9;;;15119;;15136:15;;;15130:22;;15116:37;15106:71;;15157:18;;:::i;15188:217::-;15228:1;15254;15244:132;;15298:10;15293:3;15289:20;15286:1;15279:31;15333:4;15330:1;15323:15;15361:4;15358:1;15351:15;15244:132;-1:-1:-1;15390:9:1;;15188:217::o

Swarm Source

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