ETH Price: $2,522.22 (+0.28%)

Token

Pull That Up Jamie (WIKICHAN)
 

Overview

Max Total Supply

314,159,260 WIKICHAN

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,340,645.094872086603935658 WIKICHAN

Value
$0.00
0x788bf58998970dcece197a651d14f1c6c72c1217
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:
pullThatUpJamie

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-01
*/

//SPDX-License-Identifier: MIT

// Web : https://wikichantoken.com/
// Telegram : https://t.me/WikichanERC
// Twitter : https://twitter.com/WikichanToken

pragma solidity 0.8.22;


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


contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval (address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @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 default value returned by this function, unless
     * it's 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, allowance(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 = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * 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 {}
}

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

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

    function WETH() external pure returns (address);

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

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

contract pullThatUpJamie is ERC20, Ownable {
    
mapping(address => bool) private excluded;
mapping (address => Stake) public stakes;

address public devWallet = 0x617d6C936ED6A01760DF93eed065323e7ec777F9;
address public stakeWallet = 0x69B5898891fE9bFB36C6d5f2dD8bb03Acf667E81;

DexRouter public immutable uniswapRouter;
address public immutable pairAddress;

bool public swapAndLiquifyEnabled = true;
bool public isSwapping = false;
bool public tradingEnabled = false;
bool public revShare = false;

uint256 public constant _totalSupply = 314_159_260 * 1e18;
uint256 public maxWallet = (_totalSupply * 2) / 100;

uint256 public minStake = (_totalSupply * 1) / 100; //1% of total supply
uint256 public maxStake = (_totalSupply * 2) / 100; //3% of total supply
uint256 public minHoldingPercentage = (_totalSupply * 25) / 1000; //0.25% of total supply
uint256 public minStakeTime = 1 days;
uint256 public swapThreshold = (_totalSupply * 5) / 100;
uint256 public maxTokenSwap = (_totalSupply * 5) / 1000;

struct taxes {
    uint256 devRevTax;
}

taxes public buyTax = taxes(15);
taxes public sellTax = taxes(30);


struct Stake {
        uint256 amount;
        uint256 unlockTime;
        bool locked;
}


event TokenStaked (address indexed account, uint256 amount, uint256 unlockTime);
event UnstakeToken (address indexed staker);


    constructor() ERC20("Pull That Up Jamie", "WIKICHAN") {


       uniswapRouter = DexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
       pairAddress = DexFactory(uniswapRouter.factory()).createPair(address(this),uniswapRouter.WETH());

        excluded[msg.sender] = true;
        excluded[address(devWallet)] = true;
        excluded[address(stakeWallet)] = true;
        excluded[address(uniswapRouter)] = true;
        excluded[address(this)] = true;       
        
        _mint(msg.sender, _totalSupply);
 
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
    }

    function swapToETH(uint256 amount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), amount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function tokenSwap() internal {
        isSwapping = true;
        uint256 taxAmount = balanceOf(address(this)); 
        if (taxAmount == 0) {
            return;
        }
        swapToETH(maxTokenSwap);
        payable(devWallet).transfer(balanceOf(address(this)));
        isSwapping = false;
        
    }

    function handleTax(
        address from,
        address to,
        uint256 amount
    ) internal returns (uint256) {
        if (excluded[from] || excluded[to]) {
            return amount;
        }

        uint256 totalTax = 0;

        if (to == pairAddress) {
            totalTax = sellTax.devRevTax;
        } else if (from == pairAddress) {
            totalTax = buyTax.devRevTax;
        }

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

    function _transfer(
    address from,
    address to,
    uint256 amount
) internal virtual override {
    require(from != address(0), "transfer from address zero");
    require(to != address(0), "transfer to address zero");
    require(amount > 0, "Transfer amount must be greater than zero");

    if (!excluded[from] && !excluded[to] && to != address(0) && to != address(this) && to != pairAddress) {
        require(balanceOf(to) + amount <= maxWallet, "Exceeds maximum wallet amount");
    }

    uint256 amountToTransfer = handleTax(from, to, amount);

    bool canSwap = balanceOf(address(this)) >= swapThreshold;
    if (!excluded[from] && !excluded[to]) {
        require(tradingEnabled, "Trading not active");
        if (pairAddress == to && swapAndLiquifyEnabled && canSwap && !isSwapping) {
            tokenSwap();
        }
    }

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

    function manualSwap(uint256 amount)external onlyOwner {
        swapToETH(amount);
        uint256 devShareAmount = address(this).balance;
        payable(devWallet).transfer(devShareAmount); //
    }

    function updateBuyTax(uint256 _devRevTax) external onlyOwner {
        buyTax.devRevTax = _devRevTax;
        require(_devRevTax <= 30);
       
    }

    function updateSellTax(uint256 _devRevTax) external onlyOwner {
        sellTax.devRevTax = _devRevTax;
        require(_devRevTax <= 40);
       
    }

    function updateSwapThreshold(uint256 amount) external onlyOwner {
        swapThreshold = (_totalSupply * amount) / 1000;
        
    }

    function updateMaxWallet(uint256 amount) external onlyOwner {
        maxWallet = (_totalSupply * amount) / 100;
    }

    function excludeWallet(address wallet, bool value) external onlyOwner {
        excluded[wallet] = value;
    }

    function stakeTokens(uint256 amount, uint256 lockDurationInDays) external {

    require(!stakes[msg.sender].locked, "You are already staked");

    amount = amount * 10**18;

    require(amount >= minStake && amount <= maxStake, "min stake = 1% total supply, max stake = 3% total supply");
    require(lockDurationInDays >= 1);

    uint256 lockDurationInSeconds = lockDurationInDays * 1 days;
    
    uint256 unlockTime = block.timestamp + lockDurationInSeconds;

    super._transfer(msg.sender, stakeWallet, amount); 

    stakes[msg.sender] = Stake(amount, unlockTime, true);

    emit TokenStaked(msg.sender, amount, unlockTime);
    
}

    function unstakeTokens() external {
    Stake storage userStake = stakes[msg.sender];
    require(userStake.amount > 0, "You have nothing staked");
    require(block.timestamp >= userStake.unlockTime, "Tokens still locked");

    userStake.locked = false;

    super._transfer(stakeWallet, msg.sender, stakes[msg.sender].amount); 

    delete stakes[msg.sender];

    emit UnstakeToken(msg.sender);
}

    function unstakeTokens(address wallet) external onlyOwner {

    Stake storage userStake = stakes[wallet];
    require(userStake.amount > 0, "You have nothing staked");
    userStake.locked = false;
    super._transfer(stakeWallet, wallet, stakes[wallet].amount); 
    delete stakes[wallet];
    emit UnstakeToken(wallet);

}

    function updateStakingConditions(uint256 _minStake, uint256 _maxStake, uint256 _minHoldingPercentage, uint256 _minStakeTime) external onlyOwner {

    minStake = _minStake;
    maxStake = _maxStake;
    minHoldingPercentage = _minHoldingPercentage;
    minStakeTime = _minStakeTime * 1 days;

}

    function withdrawStuckTokens() external {
    require(msg.sender == devWallet);
    uint256 balance = IERC20(address(this)).balanceOf(address(this));
    IERC20(address(this)).transfer(msg.sender, balance);
    payable(msg.sender).transfer(address(this).balance);
}

    function withdrawStuckEth() external {
    require(msg.sender == devWallet);
    bool success;
    (success,) = address(msg.sender).call{value: 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":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"TokenStaked","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"}],"name":"UnstakeToken","type":"event"},{"inputs":[],"name":"_totalSupply","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":"buyTax","outputs":[{"internalType":"uint256","name":"devRevTax","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeWallet","outputs":[],"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":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenSwap","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":"minHoldingPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStakeTime","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":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revShare","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"devRevTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockDurationInDays","type":"uint256"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"locked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"uniswapRouter","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"unstakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devRevTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devRevTax","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minStake","type":"uint256"},{"internalType":"uint256","name":"_maxStake","type":"uint256"},{"internalType":"uint256","name":"_minHoldingPercentage","type":"uint256"},{"internalType":"uint256","name":"_minStakeTime","type":"uint256"}],"name":"updateStakingConditions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600880546001600160a01b03191673617d6c936ed6a01760df93eed065323e7ec777f9179055600980546001600160c01b031916740169b5898891fe9bfb36c6d5f2dd8bb03acf667e8117905560646200006c6b0103ddcf9c23d7d2c0f00000600262000527565b62000078919062000547565b600a556064620000966b0103ddcf9c23d7d2c0f00000600162000527565b620000a2919062000547565b600b556064620000c06b0103ddcf9c23d7d2c0f00000600262000527565b620000cc919062000547565b600c556103e8620000eb6b0103ddcf9c23d7d2c0f00000601962000527565b620000f7919062000547565b600d5562015180600e5560646200011c6b0103ddcf9c23d7d2c0f00000600562000527565b62000128919062000547565b600f556103e8620001476b0103ddcf9c23d7d2c0f00000600562000527565b62000153919062000547565b6010556040805160208082018352600f918290526011919091558151908101909152601e908190526012553480156200018a575f80fd5b506040518060400160405280601281526020017150756c6c2054686174205570204a616d696560701b815250604051806040016040528060088152602001672ba4a5a4a1a420a760c11b8152508160039081620001e8919062000604565b506004620001f7828262000604565b5050505f6200020b6200044660201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620002ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d29190620006d0565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000320573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003469190620006d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000391573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b79190620006d0565b6001600160a01b0390811660a052335f818152600660205260408082208054600160ff19918216811790925560085486168452828420805482168317905560095486168452828420805482168317905560805190951683528183208054861682179055308352912080549093161790915562000440906b0103ddcf9c23d7d2c0f000006200044a565b62000715565b3390565b6001600160a01b038216620004a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004b89190620006ff565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000541576200054162000513565b92915050565b5f826200056257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200059057607f821691505b602082108103620005af57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200050e57805f5260205f20601f840160051c81016020851015620005dc5750805b601f840160051c820191505b81811015620005fd575f8155600101620005e8565b5050505050565b81516001600160401b0381111562000620576200062062000567565b62000638816200063184546200057b565b84620005b5565b602080601f8311600181146200066e575f8415620006565750858301515b5f19600386901b1c1916600185901b178555620006c8565b5f85815260208120601f198616915b828110156200069e578886015182559484019460019091019084016200067d565b5085821015620006bc57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215620006e1575f80fd5b81516001600160a01b0381168114620006f8575f80fd5b9392505050565b8082018082111562000541576200054162000513565b60805160a051611ffd620007685f395f81816106c901528181611572015281816116e701528181611b070152611b4901525f81816105d70152818161195a01528181611a110152611a4d0152611ffd5ff3fe60806040526004361061026d575f3560e01c8063541166ec1161014a578063a5ce413b116100be578063cc274b2911610078578063cc274b291461075f578063dd62ed3e1461077e578063ea1b28e01461079d578063ec3d826d146107b2578063f828edbe146107c7578063f8b45b05146107e6575f80fd5b8063a5ce413b146106a4578063a8b08982146106b8578063a9059cbb146106eb578063b70143c91461070a578063b886311514610729578063cc1776d314610749575f80fd5b80638183b3c81161010f5780638183b3c81461060d5780638a8c523c146106215780638da5cb5b146106355780638ea5220f1461065257806395d89b4114610671578063a457c2d714610685575f80fd5b8063541166ec1461056957806370a082311461057e578063715018a6146105b2578063735de9f7146105c65780637fa787ba146105f9575f80fd5b80632d1ad8b8116101e15780633eaaf86b116101a65780633eaaf86b146104b6578063436d3340146104d55780634a74bb02146104f45780634ada218b146105145780634f4e6964146105345780634f7041a514610553575f80fd5b80632d1ad8b814610429578063313ce56714610448578063375b3c0a1461046357806339509351146104785780633b7b618814610497575f80fd5b806316934fc41161023257806316934fc41461034857806318160ddd146103a25780631b03ddc1146103b65780631c499ab0146103d65780631f7678ce146103f557806323b872dd1461040a575f80fd5b80630445b6671461027857806306fdde03146102a0578063095ea7b3146102c15780630f9154b5146102f057806312185a3914610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d600f5481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b46107fb565b6040516102979190611c5f565b3480156102cc575f80fd5b506102e06102db366004611cbf565b61088b565b6040519015158152602001610297565b3480156102fb575f80fd5b5060095461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610332575f80fd5b50610346610341366004611ce9565b6108a4565b005b348015610353575f80fd5b50610385610362366004611d00565b60076020525f908152604090208054600182015460029092015490919060ff1683565b604080519384526020840192909252151590820152606001610297565b3480156103ad575f80fd5b5060025461028d565b3480156103c1575f80fd5b506009546102e090600160b81b900460ff1681565b3480156103e1575f80fd5b506103466103f0366004611ce9565b6108ec565b348015610400575f80fd5b5061028d600e5481565b348015610415575f80fd5b506102e0610424366004611d1b565b61093e565b348015610434575f80fd5b50610346610443366004611d00565b610963565b348015610453575f80fd5b5060405160128152602001610297565b34801561046e575f80fd5b5061028d600b5481565b348015610483575f80fd5b506102e0610492366004611cbf565b610a7a565b3480156104a2575f80fd5b506103466104b1366004611d59565b610a9b565b3480156104c1575f80fd5b5061028d6b0103ddcf9c23d7d2c0f0000081565b3480156104e0575f80fd5b506103466104ef366004611ce9565b610c5d565b3480156104ff575f80fd5b506009546102e090600160a01b900460ff1681565b34801561051f575f80fd5b506009546102e090600160b01b900460ff1681565b34801561053f575f80fd5b5061034661054e366004611d79565b610c99565b34801561055e575f80fd5b5060115461028d9081565b348015610574575f80fd5b5061028d60105481565b348015610589575f80fd5b5061028d610598366004611d00565b6001600160a01b03165f9081526020819052604090205490565b3480156105bd575f80fd5b50610346610ce8565b3480156105d1575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610604575f80fd5b50610346610d5b565b348015610618575f80fd5b50610346610dbb565b34801561062c575f80fd5b50610346610ec6565b348015610640575f80fd5b506005546001600160a01b031661030f565b34801561065d575f80fd5b5060085461030f906001600160a01b031681565b34801561067c575f80fd5b506102b4610f5f565b348015610690575f80fd5b506102e061069f366004611cbf565b610f6e565b3480156106af575f80fd5b50610346610ff3565b3480156106c3575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106f6575f80fd5b506102e0610705366004611cbf565b611111565b348015610715575f80fd5b50610346610724366004611ce9565b61111e565b348015610734575f80fd5b506009546102e090600160a81b900460ff1681565b348015610754575f80fd5b5060125461028d9081565b34801561076a575f80fd5b50610346610779366004611ce9565b61118d565b348015610789575f80fd5b5061028d610798366004611da8565b6111e0565b3480156107a8575f80fd5b5061028d600c5481565b3480156107bd575f80fd5b5061028d600d5481565b3480156107d2575f80fd5b506103466107e1366004611dec565b61120a565b3480156107f1575f80fd5b5061028d600a5481565b60606003805461080a90611e18565b80601f016020809104026020016040519081016040528092919081815260200182805461083690611e18565b80156108815780601f1061085857610100808354040283529160200191610881565b820191905f5260205f20905b81548152906001019060200180831161086457829003601f168201915b5050505050905090565b5f3361089881858561125e565b60019150505b92915050565b6005546001600160a01b031633146108d75760405162461bcd60e51b81526004016108ce90611e50565b60405180910390fd5b601281905560288111156108e9575f80fd5b50565b6005546001600160a01b031633146109165760405162461bcd60e51b81526004016108ce90611e50565b606461092e826b0103ddcf9c23d7d2c0f00000611e99565b6109389190611eb0565b600a5550565b5f3361094b858285611381565b6109568585856113f3565b60019150505b9392505050565b6005546001600160a01b0316331461098d5760405162461bcd60e51b81526004016108ce90611e50565b6001600160a01b0381165f90815260076020526040902080546109ec5760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b60448201526064016108ce565b60028101805460ff191690556009546001600160a01b038381165f90815260076020526040902054610a249291909116908490611763565b6001600160a01b0382165f8181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a25050565b5f33610898818585610a8c83836111e0565b610a969190611ecf565b61125e565b335f9081526007602052604090206002015460ff1615610af65760405162461bcd60e51b8152602060048201526016602482015275165bdd48185c9948185b1c9958591e481cdd185ad95960521b60448201526064016108ce565b610b0882670de0b6b3a7640000611e99565b9150600b548210158015610b1e5750600c548211155b610b905760405162461bcd60e51b815260206004820152603860248201527f6d696e207374616b65203d20312520746f74616c20737570706c792c206d617860448201527f207374616b65203d20332520746f74616c20737570706c79000000000000000060648201526084016108ce565b6001811015610b9d575f80fd5b5f610bab8262015180611e99565b90505f610bb88242611ecf565b600954909150610bd39033906001600160a01b031686611763565b6040805160608101825285815260208082018481526001838501818152335f8181526007865287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905290917f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2910160405180910390a250505050565b6005546001600160a01b03163314610c875760405162461bcd60e51b81526004016108ce90611e50565b6011819055601e8111156108e9575f80fd5b6005546001600160a01b03163314610cc35760405162461bcd60e51b81526004016108ce90611e50565b600b849055600c839055600d829055610cdf8162015180611e99565b600e5550505050565b6005546001600160a01b03163314610d125760405162461bcd60e51b81526004016108ce90611e50565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6008546001600160a01b03163314610d71575f80fd5b6040515f90339047908381818185875af1925050503d805f8114610db0576040519150601f19603f3d011682016040523d82523d5f602084013e610db5565b606091505b50505050565b6008546001600160a01b03163314610dd1575f80fd5b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610e0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e309190611ee2565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303815f875af1158015610e74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e989190611ef9565b5060405133904780156108fc02915f818181858888f19350505050158015610ec2573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610ef05760405162461bcd60e51b81526004016108ce90611e50565b600954600160b01b900460ff1615610f4a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108ce565b6009805460ff60b01b1916600160b01b179055565b60606004805461080a90611e18565b5f3381610f7b82866111e0565b905083811015610fdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ce565b610fe8828686840361125e565b506001949350505050565b335f90815260076020526040902080546110495760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b60448201526064016108ce565b80600101544210156110935760405162461bcd60e51b8152602060048201526013602482015272151bdad95b9cc81cdd1a5b1b081b1bd8dad959606a1b60448201526064016108ce565b60028101805460ff19169055600954335f818152600760205260409020546110c5926001600160a01b03169190611763565b335f8181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a250565b5f336108988185856113f3565b6005546001600160a01b031633146111485760405162461bcd60e51b81526004016108ce90611e50565b61115181611905565b60085460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015611188573d5f803e3d5ffd5b505050565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016108ce90611e50565b6103e86111d0826b0103ddcf9c23d7d2c0f00000611e99565b6111da9190611eb0565b600f5550565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146112345760405162461bcd60e51b81526004016108ce90611e50565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6001600160a01b0383166112c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ce565b6001600160a01b0382166113215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61138c84846111e0565b90505f198114610db557818110156113e65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108ce565b610db5848484840361125e565b6001600160a01b0383166114495760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f00000000000060448201526064016108ce565b6001600160a01b03821661149f5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f000000000000000060448201526064016108ce565b5f81116115005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ce565b6001600160a01b0383165f9081526006602052604090205460ff1615801561154057506001600160a01b0382165f9081526006602052604090205460ff16155b801561155457506001600160a01b03821615155b801561156957506001600160a01b0382163014155b80156115a757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561162657600a54816115ce846001600160a01b03165f9081526020819052604090205490565b6115d89190611ecf565b11156116265760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e7400000060448201526064016108ce565b5f611632848484611abb565b600f54305f90815260208181526040808320546001600160a01b038a16845260069092529091205492935010159060ff1615801561168857506001600160a01b0384165f9081526006602052604090205460ff16155b1561175157600954600160b01b900460ff166116db5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016108ce565b836001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480156117255750600954600160a01b900460ff165b801561172e5750805b80156117445750600954600160a81b900460ff16155b1561175157611751611bc3565b61175c858584611763565b5050505050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ce565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ce565b6001600160a01b0383165f90815260208190526040902054818110156118a05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ce565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610db5565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061193857611938611f14565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d89190611f28565b816001815181106119eb576119eb611f14565b60200260200101906001600160a01b031690816001600160a01b031681525050611a36307f00000000000000000000000000000000000000000000000000000000000000008461125e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611a8a9085905f90869030904290600401611f43565b5f604051808303815f87803b158015611aa1575f80fd5b505af1158015611ab3573d5f803e3d5ffd5b505050505050565b6001600160a01b0383165f9081526006602052604081205460ff1680611af857506001600160a01b0383165f9081526006602052604090205460ff165b15611b0457508061095c565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611b475750601254611b85565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611b8557506011545b5f8115611baf576064611b988386611e99565b611ba29190611eb0565b9050611baf863083611763565b611bb98185611fb4565b9695505050505050565b6009805460ff60a81b1916600160a81b179055305f908152602081905260408120549050805f03611bf15750565b611bfc601054611905565b6008546001600160a01b03166108fc611c29306001600160a01b03165f9081526020819052604090205490565b6040518115909202915f818181858888f19350505050158015611c4e573d5f803e3d5ffd5b50506009805460ff60a81b19169055565b5f602080835283518060208501525f5b81811015611c8b57858101830151858201604001528201611c6f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e9575f80fd5b5f8060408385031215611cd0575f80fd5b8235611cdb81611cab565b946020939093013593505050565b5f60208284031215611cf9575f80fd5b5035919050565b5f60208284031215611d10575f80fd5b813561095c81611cab565b5f805f60608486031215611d2d575f80fd5b8335611d3881611cab565b92506020840135611d4881611cab565b929592945050506040919091013590565b5f8060408385031215611d6a575f80fd5b50508035926020909101359150565b5f805f8060808587031215611d8c575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611db9575f80fd5b8235611dc481611cab565b91506020830135611dd481611cab565b809150509250929050565b80151581146108e9575f80fd5b5f8060408385031215611dfd575f80fd5b8235611e0881611cab565b91506020830135611dd481611ddf565b600181811c90821680611e2c57607f821691505b602082108103611e4a57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761089e5761089e611e85565b5f82611eca57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561089e5761089e611e85565b5f60208284031215611ef2575f80fd5b5051919050565b5f60208284031215611f09575f80fd5b815161095c81611ddf565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f38575f80fd5b815161095c81611cab565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f935784516001600160a01b031683529383019391830191600101611f6e565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561089e5761089e611e8556fea2646970667358221220e80997a2fd088b7985a1ce1e2549e07ed4f63243faffeb1ab9187a39eb3117d664736f6c63430008160033

Deployed Bytecode

0x60806040526004361061026d575f3560e01c8063541166ec1161014a578063a5ce413b116100be578063cc274b2911610078578063cc274b291461075f578063dd62ed3e1461077e578063ea1b28e01461079d578063ec3d826d146107b2578063f828edbe146107c7578063f8b45b05146107e6575f80fd5b8063a5ce413b146106a4578063a8b08982146106b8578063a9059cbb146106eb578063b70143c91461070a578063b886311514610729578063cc1776d314610749575f80fd5b80638183b3c81161010f5780638183b3c81461060d5780638a8c523c146106215780638da5cb5b146106355780638ea5220f1461065257806395d89b4114610671578063a457c2d714610685575f80fd5b8063541166ec1461056957806370a082311461057e578063715018a6146105b2578063735de9f7146105c65780637fa787ba146105f9575f80fd5b80632d1ad8b8116101e15780633eaaf86b116101a65780633eaaf86b146104b6578063436d3340146104d55780634a74bb02146104f45780634ada218b146105145780634f4e6964146105345780634f7041a514610553575f80fd5b80632d1ad8b814610429578063313ce56714610448578063375b3c0a1461046357806339509351146104785780633b7b618814610497575f80fd5b806316934fc41161023257806316934fc41461034857806318160ddd146103a25780631b03ddc1146103b65780631c499ab0146103d65780631f7678ce146103f557806323b872dd1461040a575f80fd5b80630445b6671461027857806306fdde03146102a0578063095ea7b3146102c15780630f9154b5146102f057806312185a3914610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d600f5481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b46107fb565b6040516102979190611c5f565b3480156102cc575f80fd5b506102e06102db366004611cbf565b61088b565b6040519015158152602001610297565b3480156102fb575f80fd5b5060095461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610332575f80fd5b50610346610341366004611ce9565b6108a4565b005b348015610353575f80fd5b50610385610362366004611d00565b60076020525f908152604090208054600182015460029092015490919060ff1683565b604080519384526020840192909252151590820152606001610297565b3480156103ad575f80fd5b5060025461028d565b3480156103c1575f80fd5b506009546102e090600160b81b900460ff1681565b3480156103e1575f80fd5b506103466103f0366004611ce9565b6108ec565b348015610400575f80fd5b5061028d600e5481565b348015610415575f80fd5b506102e0610424366004611d1b565b61093e565b348015610434575f80fd5b50610346610443366004611d00565b610963565b348015610453575f80fd5b5060405160128152602001610297565b34801561046e575f80fd5b5061028d600b5481565b348015610483575f80fd5b506102e0610492366004611cbf565b610a7a565b3480156104a2575f80fd5b506103466104b1366004611d59565b610a9b565b3480156104c1575f80fd5b5061028d6b0103ddcf9c23d7d2c0f0000081565b3480156104e0575f80fd5b506103466104ef366004611ce9565b610c5d565b3480156104ff575f80fd5b506009546102e090600160a01b900460ff1681565b34801561051f575f80fd5b506009546102e090600160b01b900460ff1681565b34801561053f575f80fd5b5061034661054e366004611d79565b610c99565b34801561055e575f80fd5b5060115461028d9081565b348015610574575f80fd5b5061028d60105481565b348015610589575f80fd5b5061028d610598366004611d00565b6001600160a01b03165f9081526020819052604090205490565b3480156105bd575f80fd5b50610346610ce8565b3480156105d1575f80fd5b5061030f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610604575f80fd5b50610346610d5b565b348015610618575f80fd5b50610346610dbb565b34801561062c575f80fd5b50610346610ec6565b348015610640575f80fd5b506005546001600160a01b031661030f565b34801561065d575f80fd5b5060085461030f906001600160a01b031681565b34801561067c575f80fd5b506102b4610f5f565b348015610690575f80fd5b506102e061069f366004611cbf565b610f6e565b3480156106af575f80fd5b50610346610ff3565b3480156106c3575f80fd5b5061030f7f000000000000000000000000c66e4b063b7140e9514b5518da2826bc5586e06381565b3480156106f6575f80fd5b506102e0610705366004611cbf565b611111565b348015610715575f80fd5b50610346610724366004611ce9565b61111e565b348015610734575f80fd5b506009546102e090600160a81b900460ff1681565b348015610754575f80fd5b5060125461028d9081565b34801561076a575f80fd5b50610346610779366004611ce9565b61118d565b348015610789575f80fd5b5061028d610798366004611da8565b6111e0565b3480156107a8575f80fd5b5061028d600c5481565b3480156107bd575f80fd5b5061028d600d5481565b3480156107d2575f80fd5b506103466107e1366004611dec565b61120a565b3480156107f1575f80fd5b5061028d600a5481565b60606003805461080a90611e18565b80601f016020809104026020016040519081016040528092919081815260200182805461083690611e18565b80156108815780601f1061085857610100808354040283529160200191610881565b820191905f5260205f20905b81548152906001019060200180831161086457829003601f168201915b5050505050905090565b5f3361089881858561125e565b60019150505b92915050565b6005546001600160a01b031633146108d75760405162461bcd60e51b81526004016108ce90611e50565b60405180910390fd5b601281905560288111156108e9575f80fd5b50565b6005546001600160a01b031633146109165760405162461bcd60e51b81526004016108ce90611e50565b606461092e826b0103ddcf9c23d7d2c0f00000611e99565b6109389190611eb0565b600a5550565b5f3361094b858285611381565b6109568585856113f3565b60019150505b9392505050565b6005546001600160a01b0316331461098d5760405162461bcd60e51b81526004016108ce90611e50565b6001600160a01b0381165f90815260076020526040902080546109ec5760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b60448201526064016108ce565b60028101805460ff191690556009546001600160a01b038381165f90815260076020526040902054610a249291909116908490611763565b6001600160a01b0382165f8181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a25050565b5f33610898818585610a8c83836111e0565b610a969190611ecf565b61125e565b335f9081526007602052604090206002015460ff1615610af65760405162461bcd60e51b8152602060048201526016602482015275165bdd48185c9948185b1c9958591e481cdd185ad95960521b60448201526064016108ce565b610b0882670de0b6b3a7640000611e99565b9150600b548210158015610b1e5750600c548211155b610b905760405162461bcd60e51b815260206004820152603860248201527f6d696e207374616b65203d20312520746f74616c20737570706c792c206d617860448201527f207374616b65203d20332520746f74616c20737570706c79000000000000000060648201526084016108ce565b6001811015610b9d575f80fd5b5f610bab8262015180611e99565b90505f610bb88242611ecf565b600954909150610bd39033906001600160a01b031686611763565b6040805160608101825285815260208082018481526001838501818152335f8181526007865287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905290917f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2910160405180910390a250505050565b6005546001600160a01b03163314610c875760405162461bcd60e51b81526004016108ce90611e50565b6011819055601e8111156108e9575f80fd5b6005546001600160a01b03163314610cc35760405162461bcd60e51b81526004016108ce90611e50565b600b849055600c839055600d829055610cdf8162015180611e99565b600e5550505050565b6005546001600160a01b03163314610d125760405162461bcd60e51b81526004016108ce90611e50565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6008546001600160a01b03163314610d71575f80fd5b6040515f90339047908381818185875af1925050503d805f8114610db0576040519150601f19603f3d011682016040523d82523d5f602084013e610db5565b606091505b50505050565b6008546001600160a01b03163314610dd1575f80fd5b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610e0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e309190611ee2565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303815f875af1158015610e74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e989190611ef9565b5060405133904780156108fc02915f818181858888f19350505050158015610ec2573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610ef05760405162461bcd60e51b81526004016108ce90611e50565b600954600160b01b900460ff1615610f4a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108ce565b6009805460ff60b01b1916600160b01b179055565b60606004805461080a90611e18565b5f3381610f7b82866111e0565b905083811015610fdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ce565b610fe8828686840361125e565b506001949350505050565b335f90815260076020526040902080546110495760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b60448201526064016108ce565b80600101544210156110935760405162461bcd60e51b8152602060048201526013602482015272151bdad95b9cc81cdd1a5b1b081b1bd8dad959606a1b60448201526064016108ce565b60028101805460ff19169055600954335f818152600760205260409020546110c5926001600160a01b03169190611763565b335f8181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a250565b5f336108988185856113f3565b6005546001600160a01b031633146111485760405162461bcd60e51b81526004016108ce90611e50565b61115181611905565b60085460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015611188573d5f803e3d5ffd5b505050565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016108ce90611e50565b6103e86111d0826b0103ddcf9c23d7d2c0f00000611e99565b6111da9190611eb0565b600f5550565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146112345760405162461bcd60e51b81526004016108ce90611e50565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6001600160a01b0383166112c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ce565b6001600160a01b0382166113215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61138c84846111e0565b90505f198114610db557818110156113e65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108ce565b610db5848484840361125e565b6001600160a01b0383166114495760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f00000000000060448201526064016108ce565b6001600160a01b03821661149f5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f000000000000000060448201526064016108ce565b5f81116115005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ce565b6001600160a01b0383165f9081526006602052604090205460ff1615801561154057506001600160a01b0382165f9081526006602052604090205460ff16155b801561155457506001600160a01b03821615155b801561156957506001600160a01b0382163014155b80156115a757507f000000000000000000000000c66e4b063b7140e9514b5518da2826bc5586e0636001600160a01b0316826001600160a01b031614155b1561162657600a54816115ce846001600160a01b03165f9081526020819052604090205490565b6115d89190611ecf565b11156116265760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e7400000060448201526064016108ce565b5f611632848484611abb565b600f54305f90815260208181526040808320546001600160a01b038a16845260069092529091205492935010159060ff1615801561168857506001600160a01b0384165f9081526006602052604090205460ff16155b1561175157600954600160b01b900460ff166116db5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016108ce565b836001600160a01b03167f000000000000000000000000c66e4b063b7140e9514b5518da2826bc5586e0636001600160a01b03161480156117255750600954600160a01b900460ff165b801561172e5750805b80156117445750600954600160a81b900460ff16155b1561175157611751611bc3565b61175c858584611763565b5050505050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ce565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ce565b6001600160a01b0383165f90815260208190526040902054818110156118a05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ce565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610db5565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061193857611938611f14565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d89190611f28565b816001815181106119eb576119eb611f14565b60200260200101906001600160a01b031690816001600160a01b031681525050611a36307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461125e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611a8a9085905f90869030904290600401611f43565b5f604051808303815f87803b158015611aa1575f80fd5b505af1158015611ab3573d5f803e3d5ffd5b505050505050565b6001600160a01b0383165f9081526006602052604081205460ff1680611af857506001600160a01b0383165f9081526006602052604090205460ff165b15611b0457508061095c565b5f7f000000000000000000000000c66e4b063b7140e9514b5518da2826bc5586e0636001600160a01b0316846001600160a01b031603611b475750601254611b85565b7f000000000000000000000000c66e4b063b7140e9514b5518da2826bc5586e0636001600160a01b0316856001600160a01b031603611b8557506011545b5f8115611baf576064611b988386611e99565b611ba29190611eb0565b9050611baf863083611763565b611bb98185611fb4565b9695505050505050565b6009805460ff60a81b1916600160a81b179055305f908152602081905260408120549050805f03611bf15750565b611bfc601054611905565b6008546001600160a01b03166108fc611c29306001600160a01b03165f9081526020819052604090205490565b6040518115909202915f818181858888f19350505050158015611c4e573d5f803e3d5ffd5b50506009805460ff60a81b19169055565b5f602080835283518060208501525f5b81811015611c8b57858101830151858201604001528201611c6f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e9575f80fd5b5f8060408385031215611cd0575f80fd5b8235611cdb81611cab565b946020939093013593505050565b5f60208284031215611cf9575f80fd5b5035919050565b5f60208284031215611d10575f80fd5b813561095c81611cab565b5f805f60608486031215611d2d575f80fd5b8335611d3881611cab565b92506020840135611d4881611cab565b929592945050506040919091013590565b5f8060408385031215611d6a575f80fd5b50508035926020909101359150565b5f805f8060808587031215611d8c575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611db9575f80fd5b8235611dc481611cab565b91506020830135611dd481611cab565b809150509250929050565b80151581146108e9575f80fd5b5f8060408385031215611dfd575f80fd5b8235611e0881611cab565b91506020830135611dd481611ddf565b600181811c90821680611e2c57607f821691505b602082108103611e4a57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761089e5761089e611e85565b5f82611eca57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561089e5761089e611e85565b5f60208284031215611ef2575f80fd5b5051919050565b5f60208284031215611f09575f80fd5b815161095c81611ddf565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f38575f80fd5b815161095c81611cab565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f935784516001600160a01b031683529383019391830191600101611f6e565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561089e5761089e611e8556fea2646970667358221220e80997a2fd088b7985a1ce1e2549e07ed4f63243faffeb1ab9187a39eb3117d664736f6c63430008160033

Deployed Bytecode Sourcemap

14598:7598:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15511:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15511:55:0;;;;;;;;2771:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5131:201::-;;;;;;;;;;-1:-1:-1;5131:201:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;5131:201:0;1205:187:1;14811:71:0;;;;;;;;;;-1:-1:-1;14811:71:0;;;;-1:-1:-1;;;;;14811:71:0;;;;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;14811:71:0;1397:203:1;19403:156:0;;;;;;;;;;-1:-1:-1;19403:156:0;;;;;:::i;:::-;;:::i;:::-;;14694:40;;;;;;;;;;-1:-1:-1;14694:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2238:25:1;;;2294:2;2279:18;;2272:34;;;;2349:14;2342:22;2322:18;;;2315:50;2226:2;2211:18;14694:40:0;2042:329:1;3900:108:0;;;;;;;;;;-1:-1:-1;3988:12:0;;3900:108;;15084:28;;;;;;;;;;-1:-1:-1;15084:28:0;;;;-1:-1:-1;;;15084:28:0;;;;;;19714:120;;;;;;;;;;-1:-1:-1;19714:120:0;;;;;:::i;:::-;;:::i;15472:36::-;;;;;;;;;;;;;;;;5912:261;;;;;;;;;;-1:-1:-1;5912:261:0;;;;;:::i;:::-;;:::i;21052:334::-;;;;;;;;;;-1:-1:-1;21052:334:0;;;;;:::i;:::-;;:::i;3742:93::-;;;;;;;;;;-1:-1:-1;3742:93:0;;3825:2;2979:36:1;;2967:2;2952:18;3742:93:0;2837:184:1;15233:50:0;;;;;;;;;;;;;;;;6582:238;;;;;;;;;;-1:-1:-1;6582:238:0;;;;;:::i;:::-;;:::i;19963:661::-;;;;;;;;;;-1:-1:-1;19963:661:0;;;;;:::i;:::-;;:::i;15117:57::-;;;;;;;;;;;;15156:18;15117:57;;19241:154;;;;;;;;;;-1:-1:-1;19241:154:0;;;;;:::i;:::-;;:::i;14971:40::-;;;;;;;;;;-1:-1:-1;14971:40:0;;;;-1:-1:-1;;;14971:40:0;;;;;;15047:34;;;;;;;;;;-1:-1:-1;15047:34:0;;;;-1:-1:-1;;;15047:34:0;;;;;;21394:301;;;;;;;;;;-1:-1:-1;21394:301:0;;;;;:::i;:::-;;:::i;15674:31::-;;;;;;;;;;-1:-1:-1;15674:31:0;;;;;;15569:55;;;;;;;;;;;;;;;;4071:127;;;;;;;;;;-1:-1:-1;4071:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4172:18:0;4145:7;4172:18;;;;;;;;;;;;4071:127;862:148;;;;;;;;;;;;;:::i;14887:40::-;;;;;;;;;;;;;;;21981:177;;;;;;;;;;;;;:::i;21703:270::-;;;;;;;;;;;;;:::i;16528:149::-;;;;;;;;;;;;;:::i;648:79::-;;;;;;;;;;-1:-1:-1;713:6:0;;-1:-1:-1;;;;;713:6:0;648:79;;14739:69;;;;;;;;;;-1:-1:-1;14739:69:0;;;;-1:-1:-1;;;;;14739:69:0;;;2990:104;;;;;;;;;;;;;:::i;7323:436::-;;;;;;;;;;-1:-1:-1;7323:436:0;;;;;:::i;:::-;;:::i;20632:412::-;;;;;;;;;;;;;:::i;14930:36::-;;;;;;;;;;;;;;;4404:193;;;;;;;;;;-1:-1:-1;4404:193:0;;;;;:::i;:::-;;:::i;19029:204::-;;;;;;;;;;-1:-1:-1;19029:204:0;;;;;:::i;:::-;;:::i;15014:30::-;;;;;;;;;;-1:-1:-1;15014:30:0;;;;-1:-1:-1;;;15014:30:0;;;;;;15708:32;;;;;;;;;;-1:-1:-1;15708:32:0;;;;;;19567:139;;;;;;;;;;-1:-1:-1;19567:139:0;;;;;:::i;:::-;;:::i;4660:151::-;;;;;;;;;;-1:-1:-1;4660:151:0;;;;;:::i;:::-;;:::i;15307:50::-;;;;;;;;;;;;;;;;15381:64;;;;;;;;;;;;;;;;19842:113;;;;;;;;;;-1:-1:-1;19842:113:0;;;;;:::i;:::-;;:::i;15177:51::-;;;;;;;;;;;;;;;;2771:100;2825:13;2858:5;2851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:100;:::o;5131:201::-;5214:4;303:10;5270:32;303:10;5286:7;5295:6;5270:8;:32::i;:::-;5320:4;5313:11;;;5131:201;;;;;:::o;19403:156::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;;;;;;;;;19476:7:::1;:30:::0;;;19539:2:::1;19525:16:::0;::::1;;19517:25;;;::::0;::::1;;19403:156:::0;:::o;19714:120::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;19823:3:::1;19798:21;19813:6:::0;15156:18:::1;19798:21;:::i;:::-;19797:29;;;;:::i;:::-;19785:9;:41:::0;-1:-1:-1;19714:120:0:o;5912:261::-;6009:4;303:10;6067:38;6083:4;303:10;6098:6;6067:15;:38::i;:::-;6116:27;6126:4;6132:2;6136:6;6116:9;:27::i;:::-;6161:4;6154:11;;;5912:261;;;;;;:::o;21052:334::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21145:14:0;::::1;21119:23;21145:14:::0;;;:6:::1;:14;::::0;;;;21174:16;;21166:56:::1;;;::::0;-1:-1:-1;;;21166:56:0;;6272:2:1;21166:56:0::1;::::0;::::1;6254:21:1::0;6311:2;6291:18;;;6284:30;-1:-1:-1;;;6330:18:1;;;6323:53;6393:18;;21166:56:0::1;6070:347:1::0;21166:56:0::1;21229:16;::::0;::::1;:24:::0;;-1:-1:-1;;21229:24:0::1;::::0;;21276:11:::1;::::0;-1:-1:-1;;;;;21297:14:0;;::::1;21248:5;21297:14:::0;;;:6:::1;:14;::::0;;;;:21;21260:59:::1;::::0;21276:11;;;::::1;::::0;21289:6;;21260:15:::1;:59::i;:::-;-1:-1:-1::0;;;;;21334:14:0;::::1;;::::0;;;:6:::1;:14;::::0;;;;;21327:21;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;-1:-1:-1;;21327:21:0::1;::::0;;21360:20;::::1;::::0;21334:14;21360:20:::1;21110:276;21052:334:::0;:::o;6582:238::-;6670:4;303:10;6726:64;303:10;6742:7;6779:10;6751:25;303:10;6742:7;6751:9;:25::i;:::-;:38;;;;:::i;:::-;6726:8;:64::i;19963:661::-;20062:10;20055:18;;;;:6;:18;;;;;:25;;;;;20054:26;20046:61;;;;-1:-1:-1;;;20046:61:0;;6754:2:1;20046:61:0;;;6736:21:1;6793:2;6773:18;;;6766:30;-1:-1:-1;;;6812:18:1;;;6805:52;6874:18;;20046:61:0;6552:346:1;20046:61:0;20125:15;:6;20134;20125:15;:::i;:::-;20116:24;;20167:8;;20157:6;:18;;:40;;;;;20189:8;;20179:6;:18;;20157:40;20149:109;;;;-1:-1:-1;;;20149:109:0;;7105:2:1;20149:109:0;;;7087:21:1;7144:2;7124:18;;;7117:30;7183:34;7163:18;;;7156:62;7254:26;7234:18;;;7227:54;7298:19;;20149:109:0;6903:420:1;20149:109:0;20295:1;20273:18;:23;;20265:32;;;;;;20306:29;20338:27;:18;20359:6;20338:27;:::i;:::-;20306:59;-1:-1:-1;20378:18:0;20399:39;20306:59;20399:15;:39;:::i;:::-;20475:11;;20378:60;;-1:-1:-1;20447:48:0;;20463:10;;-1:-1:-1;;;;;20475:11:0;20488:6;20447:15;:48::i;:::-;20526:31;;;;;;;;;;;;;;;;;;20552:4;20526:31;;;;;;20512:10;-1:-1:-1;20505:18:0;;;:6;:18;;;;;:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20505:52:0;;;;;;;;;;;20571:43;;7502:25:1;;;7543:18;;;7536:34;;;20512:10:0;;20571:43;;7475:18:1;20571:43:0;;;;;;;20037:587;;19963:661;;:::o;19241:154::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;19313:6:::1;:29:::0;;;19375:2:::1;19361:16:::0;::::1;;19353:25;;;::::0;::::1;21394:301:::0;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;21547:8:::1;:20:::0;;;21574:8:::1;:20:::0;;;21601::::1;:44:::0;;;21667:22:::1;:13:::0;21683:6:::1;21667:22;:::i;:::-;21652:12;:37:::0;-1:-1:-1;;;;21394:301:0:o;862:148::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;953:6:::1;::::0;932:40:::1;::::0;969:1:::1;::::0;-1:-1:-1;;;;;953:6:0::1;::::0;932:40:::1;::::0;969:1;;932:40:::1;983:6;:19:::0;;-1:-1:-1;;;;;;983:19:0::1;::::0;;862:148::o;21981:177::-;22047:9;;-1:-1:-1;;;;;22047:9:0;22033:10;:23;22025:32;;;;;;22096:58;;22064:12;;22104:10;;22128:21;;22064:12;22096:58;22064:12;22096:58;22128:21;22104:10;22096:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;21981:177:0:o;21703:270::-;21772:9;;-1:-1:-1;;;;;21772:9:0;21758:10;:23;21750:32;;;;;;21807:46;;-1:-1:-1;;;21807:46:0;;21822:4;21807:46;;;1543:51:1;;;21789:15:0;;21807:31;;1516:18:1;;21807:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21860:51;;-1:-1:-1;;;21860:51:0;;21891:10;21860:51;;;8154::1;8221:18;;;8214:34;;;21789:64:0;;-1:-1:-1;21875:4:0;;21860:30;;8127:18:1;;21860:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21918:51:0;;21926:10;;21947:21;21918:51;;;;;;;;;21947:21;21926:10;21918:51;;;;;;;;;;;;;;;;;;;;;21743:230;21703:270::o;16528:149::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;16592:14:::1;::::0;-1:-1:-1;;;16592:14:0;::::1;;;16591:15;16583:54;;;::::0;-1:-1:-1;;;16583:54:0;;8711:2:1;16583:54:0::1;::::0;::::1;8693:21:1::0;8750:2;8730:18;;;8723:30;8789:28;8769:18;;;8762:56;8835:18;;16583:54:0::1;8509:350:1::0;16583:54:0::1;16648:14;:21:::0;;-1:-1:-1;;;;16648:21:0::1;-1:-1:-1::0;;;16648:21:0::1;::::0;;16528:149::o;2990:104::-;3046:13;3079:7;3072:14;;;;;:::i;7323:436::-;7416:4;303:10;7416:4;7499:25;303:10;7516:7;7499:9;:25::i;:::-;7472:52;;7563:15;7543:16;:35;;7535:85;;;;-1:-1:-1;;;7535:85:0;;9066:2:1;7535:85:0;;;9048:21:1;9105:2;9085:18;;;9078:30;9144:34;9124:18;;;9117:62;-1:-1:-1;;;9195:18:1;;;9188:35;9240:19;;7535:85:0;8864:401:1;7535:85:0;7656:60;7665:5;7672:7;7700:15;7681:16;:34;7656:8;:60::i;:::-;-1:-1:-1;7747:4:0;;7323:436;-1:-1:-1;;;;7323:436:0:o;20632:412::-;20706:10;20673:23;20699:18;;;:6;:18;;;;;20732:16;;20724:56;;;;-1:-1:-1;;;20724:56:0;;6272:2:1;20724:56:0;;;6254:21:1;6311:2;6291:18;;;6284:30;-1:-1:-1;;;6330:18:1;;;6323:53;6393:18;;20724:56:0;6070:347:1;20724:56:0;20814:9;:20;;;20795:15;:39;;20787:71;;;;-1:-1:-1;;;20787:71:0;;9472:2:1;20787:71:0;;;9454:21:1;9511:2;9491:18;;;9484:30;-1:-1:-1;;;9530:18:1;;;9523:49;9589:18;;20787:71:0;9270:343:1;20787:71:0;20867:16;;;:24;;-1:-1:-1;;20867:24:0;;;20916:11;;20929:10;20886:5;20941:18;;;:6;:18;;;;;:25;20900:67;;-1:-1:-1;;;;;20916:11:0;;20929:10;20900:15;:67::i;:::-;20991:10;20984:18;;;;:6;:18;;;;;;20977:25;;;;;;;;;;;;;-1:-1:-1;;20977:25:0;;;21016:24;;;20984:18;21016:24;20666:378;20632:412::o;4404:193::-;4483:4;303:10;4539:28;303:10;4556:2;4560:6;4539:9;:28::i;19029:204::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;19094:17:::1;19104:6;19094:9;:17::i;:::-;19187:9;::::0;19179:43:::1;::::0;19147:21:::1;::::0;-1:-1:-1;;;;;19187:9:0::1;::::0;19179:43;::::1;;;::::0;19147:21;;19122:22:::1;19179:43:::0;19122:22;19179:43;19147:21;19187:9;19179:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19083:150;19029:204:::0;:::o;19567:139::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;19684:4:::1;19659:21;19674:6:::0;15156:18:::1;19659:21;:::i;:::-;19658:30;;;;:::i;:::-;19642:13;:46:::0;-1:-1:-1;19567:139:0:o;4660:151::-;-1:-1:-1;;;;;4776:18:0;;;4749:7;4776:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4660:151::o;19842:113::-;775:6;;-1:-1:-1;;;;;775:6:0;303:10;775:22;767:67;;;;-1:-1:-1;;;767:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19923:16:0;;;::::1;;::::0;;;:8:::1;:16;::::0;;;;:24;;-1:-1:-1;;19923:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19842:113::o;11316:346::-;-1:-1:-1;;;;;11418:19:0;;11410:68;;;;-1:-1:-1;;;11410:68:0;;9820:2:1;11410:68:0;;;9802:21:1;9859:2;9839:18;;;9832:30;9898:34;9878:18;;;9871:62;-1:-1:-1;;;9949:18:1;;;9942:34;9993:19;;11410:68:0;9618:400:1;11410:68:0;-1:-1:-1;;;;;11497:21:0;;11489:68;;;;-1:-1:-1;;;11489:68:0;;10225:2:1;11489:68:0;;;10207:21:1;10264:2;10244:18;;;10237:30;10303:34;10283:18;;;10276:62;-1:-1:-1;;;10354:18:1;;;10347:32;10396:19;;11489:68:0;10023:398:1;11489:68:0;-1:-1:-1;;;;;11570:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11622:32;;160:25:1;;;11622:32:0;;133:18:1;11622:32:0;;;;;;;11316:346;;;:::o;11953:419::-;12054:24;12081:25;12091:5;12098:7;12081:9;:25::i;:::-;12054:52;;-1:-1:-1;;12121:16:0;:37;12117:248;;12203:6;12183:16;:26;;12175:68;;;;-1:-1:-1;;;12175:68:0;;10628:2:1;12175:68:0;;;10610:21:1;10667:2;10647:18;;;10640:30;10706:31;10686:18;;;10679:59;10755:18;;12175:68:0;10426:353:1;12175:68:0;12287:51;12296:5;12303:7;12331:6;12312:16;:25;12287:8;:51::i;18101:920::-;-1:-1:-1;;;;;18221:18:0;;18213:57;;;;-1:-1:-1;;;18213:57:0;;10986:2:1;18213:57:0;;;10968:21:1;11025:2;11005:18;;;10998:30;11064:28;11044:18;;;11037:56;11110:18;;18213:57:0;10784:350:1;18213:57:0;-1:-1:-1;;;;;18285:16:0;;18277:53;;;;-1:-1:-1;;;18277:53:0;;11341:2:1;18277:53:0;;;11323:21:1;11380:2;11360:18;;;11353:30;11419:26;11399:18;;;11392:54;11463:18;;18277:53:0;11139:348:1;18277:53:0;18354:1;18345:6;:10;18337:64;;;;-1:-1:-1;;;18337:64:0;;11694:2:1;18337:64:0;;;11676:21:1;11733:2;11713:18;;;11706:30;11772:34;11752:18;;;11745:62;-1:-1:-1;;;11823:18:1;;;11816:39;11872:19;;18337:64:0;11492:405:1;18337:64:0;-1:-1:-1;;;;;18415:14:0;;;;;;:8;:14;;;;;;;;18414:15;:32;;;;-1:-1:-1;;;;;;18434:12:0;;;;;;:8;:12;;;;;;;;18433:13;18414:32;:52;;;;-1:-1:-1;;;;;;18450:16:0;;;;18414:52;:75;;;;-1:-1:-1;;;;;;18470:19:0;;18484:4;18470:19;;18414:75;:96;;;;;18499:11;-1:-1:-1;;;;;18493:17:0;:2;-1:-1:-1;;;;;18493:17:0;;;18414:96;18410:198;;;18557:9;;18547:6;18531:13;18541:2;-1:-1:-1;;;;;4172:18:0;4145:7;4172:18;;;;;;;;;;;;4071:127;18531:13;:22;;;;:::i;:::-;:35;;18523:77;;;;-1:-1:-1;;;18523:77:0;;12104:2:1;18523:77:0;;;12086:21:1;12143:2;12123:18;;;12116:30;12182:31;12162:18;;;12155:59;12231:18;;18523:77:0;11902:353:1;18523:77:0;18616:24;18643:27;18653:4;18659:2;18663:6;18643:9;:27::i;:::-;18722:13;;18712:4;18679:12;4172:18;;;;;;;;;;;;-1:-1:-1;;;;;18747:14:0;;;;:8;:14;;;;;;;18616:54;;-1:-1:-1;;18694:41:0;;18747:14;;18746:15;:32;;;;-1:-1:-1;;;;;;18766:12:0;;;;;;:8;:12;;;;;;;;18765:13;18746:32;18742:224;;;18799:14;;-1:-1:-1;;;18799:14:0;;;;18791:45;;;;-1:-1:-1;;;18791:45:0;;12462:2:1;18791:45:0;;;12444:21:1;12501:2;12481:18;;;12474:30;-1:-1:-1;;;12520:18:1;;;12513:48;12578:18;;18791:45:0;12260:342:1;18791:45:0;18866:2;-1:-1:-1;;;;;18851:17:0;:11;-1:-1:-1;;;;;18851:17:0;;:42;;;;-1:-1:-1;18872:21:0;;-1:-1:-1;;;18872:21:0;;;;18851:42;:53;;;;;18897:7;18851:53;:68;;;;-1:-1:-1;18909:10:0;;-1:-1:-1;;;18909:10:0;;;;18908:11;18851:68;18847:112;;;18936:11;:9;:11::i;:::-;18974:43;18990:4;18996:2;19000:16;18974:15;:43::i;:::-;18206:815;;18101:920;;;:::o;8229:806::-;-1:-1:-1;;;;;8326:18:0;;8318:68;;;;-1:-1:-1;;;8318:68:0;;12809:2:1;8318:68:0;;;12791:21:1;12848:2;12828:18;;;12821:30;12887:34;12867:18;;;12860:62;-1:-1:-1;;;12938:18:1;;;12931:35;12983:19;;8318:68:0;12607:401:1;8318:68:0;-1:-1:-1;;;;;8405:16:0;;8397:64;;;;-1:-1:-1;;;8397:64:0;;13215:2:1;8397:64:0;;;13197:21:1;13254:2;13234:18;;;13227:30;13293:34;13273:18;;;13266:62;-1:-1:-1;;;13344:18:1;;;13337:33;13387:19;;8397:64:0;13013:399:1;8397:64:0;-1:-1:-1;;;;;8547:15:0;;8525:19;8547:15;;;;;;;;;;;8581:21;;;;8573:72;;;;-1:-1:-1;;;8573:72:0;;13619:2:1;8573:72:0;;;13601:21:1;13658:2;13638:18;;;13631:30;13697:34;13677:18;;;13670:62;-1:-1:-1;;;13748:18:1;;;13741:36;13794:19;;8573:72:0;13417:402:1;8573:72:0;-1:-1:-1;;;;;8681:15:0;;;:9;:15;;;;;;;;;;;8699:20;;;8681:38;;8899:13;;;;;;;;;;:23;;;;;;8951:26;;160:25:1;;;8899:13:0;;8951:26;;133:18:1;8951:26:0;;;;;;;8990:37;19029:204;16685:444;16764:16;;;16778:1;16764:16;;;;;;;;16740:21;;16764:16;;;;;;;;;;-1:-1:-1;16764:16:0;16740:40;;16809:4;16791;16796:1;16791:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16791:23:0;;;-1:-1:-1;;;;;16791:23:0;;;;;16835:13;-1:-1:-1;;;;;16835:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16825:4;16830:1;16825:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;16825:30:0;;;-1:-1:-1;;;;;16825:30:0;;;;;16866:55;16883:4;16898:13;16914:6;16866:8;:55::i;:::-;16932:189;;-1:-1:-1;;;16932:189:0;;-1:-1:-1;;;;;16932:13:0;:64;;;;:189;;17011:6;;17032:1;;17048:4;;17075;;17095:15;;16932:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16729:400;16685:444;:::o;17467:626::-;-1:-1:-1;;;;;17604:14:0;;17580:7;17604:14;;;:8;:14;;;;;;;;;:30;;-1:-1:-1;;;;;;17622:12:0;;;;;;:8;:12;;;;;;;;17604:30;17600:76;;;-1:-1:-1;17658:6:0;17651:13;;17600:76;17688:16;17731:11;-1:-1:-1;;;;;17725:17:0;:2;-1:-1:-1;;;;;17725:17:0;;17721:163;;-1:-1:-1;17770:7:0;:17;17721:163;;;17817:11;-1:-1:-1;;;;;17809:19:0;:4;-1:-1:-1;;;;;17809:19:0;;17805:79;;-1:-1:-1;17856:6:0;:16;17805:79;17896:11;17926:12;;17922:132;;17983:3;17962:17;17971:8;17962:6;:17;:::i;:::-;17961:25;;;;:::i;:::-;17955:31;;18001:41;18017:4;18031;18038:3;18001:15;:41::i;:::-;18072:12;18081:3;18072:6;:12;:::i;:::-;18064:21;17467:626;-1:-1:-1;;;;;;17467:626:0:o;17137:322::-;17178:10;:17;;-1:-1:-1;;;;17178:17:0;-1:-1:-1;;;17178:17:0;;;17244:4;-1:-1:-1;4172:18:0;;;;;;;;;;;17206:44;;17266:9;17279:1;17266:14;17262:53;;17297:7;17137:322::o;17262:53::-;17325:23;17335:12;;17325:9;:23::i;:::-;17367:9;;-1:-1:-1;;;;;17367:9:0;17359:53;17387:24;17405:4;-1:-1:-1;;;;;4172:18:0;4145:7;4172:18;;;;;;;;;;;;4071:127;17387:24;17359:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17423:10:0;:18;;-1:-1:-1;;;;17423:18:0;;;17137:322::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1605:180::-;1664:6;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;-1:-1:-1;1756:23:1;;1605:180;-1:-1:-1;1605:180:1:o;1790:247::-;1849:6;1902:2;1890:9;1881:7;1877:23;1873:32;1870:52;;;1918:1;1915;1908:12;1870:52;1957:9;1944:23;1976:31;2001:5;1976:31;:::i;2376:456::-;2453:6;2461;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2577:9;2564:23;2596:31;2621:5;2596:31;:::i;:::-;2646:5;-1:-1:-1;2703:2:1;2688:18;;2675:32;2716:33;2675:32;2716:33;:::i;:::-;2376:456;;2768:7;;-1:-1:-1;;;2822:2:1;2807:18;;;;2794:32;;2376:456::o;3026:248::-;3094:6;3102;3155:2;3143:9;3134:7;3130:23;3126:32;3123:52;;;3171:1;3168;3161:12;3123:52;-1:-1:-1;;3194:23:1;;;3264:2;3249:18;;;3236:32;;-1:-1:-1;3026:248:1:o;3279:385::-;3365:6;3373;3381;3389;3442:3;3430:9;3421:7;3417:23;3413:33;3410:53;;;3459:1;3456;3449:12;3410:53;-1:-1:-1;;3482:23:1;;;3552:2;3537:18;;3524:32;;-1:-1:-1;3603:2:1;3588:18;;3575:32;;3654:2;3639:18;3626:32;;-1:-1:-1;3279:385:1;-1:-1:-1;3279:385:1:o;3894:388::-;3962:6;3970;4023:2;4011:9;4002:7;3998:23;3994:32;3991:52;;;4039:1;4036;4029:12;3991:52;4078:9;4065:23;4097:31;4122:5;4097:31;:::i;:::-;4147:5;-1:-1:-1;4204:2:1;4189:18;;4176:32;4217:33;4176:32;4217:33;:::i;:::-;4269:7;4259:17;;;3894:388;;;;;:::o;4287:118::-;4373:5;4366:13;4359:21;4352:5;4349:32;4339:60;;4395:1;4392;4385:12;4410:382;4475:6;4483;4536:2;4524:9;4515:7;4511:23;4507:32;4504:52;;;4552:1;4549;4542:12;4504:52;4591:9;4578:23;4610:31;4635:5;4610:31;:::i;:::-;4660:5;-1:-1:-1;4717:2:1;4702:18;;4689:32;4730:30;4689:32;4730:30;:::i;4797:380::-;4876:1;4872:12;;;;4919;;;4940:61;;4994:4;4986:6;4982:17;4972:27;;4940:61;5047:2;5039:6;5036:14;5016:18;5013:38;5010:161;;5093:10;5088:3;5084:20;5081:1;5074:31;5128:4;5125:1;5118:15;5156:4;5153:1;5146:15;5010:161;;4797:380;;;:::o;5182:356::-;5384:2;5366:21;;;5403:18;;;5396:30;5462:34;5457:2;5442:18;;5435:62;5529:2;5514:18;;5182:356::o;5543:127::-;5604:10;5599:3;5595:20;5592:1;5585:31;5635:4;5632:1;5625:15;5659:4;5656:1;5649:15;5675:168;5748:9;;;5779;;5796:15;;;5790:22;;5776:37;5766:71;;5817:18;;:::i;5848:217::-;5888:1;5914;5904:132;;5958:10;5953:3;5949:20;5946:1;5939:31;5993:4;5990:1;5983:15;6021:4;6018:1;6011:15;5904:132;-1:-1:-1;6050:9:1;;5848:217::o;6422:125::-;6487:9;;;6508:10;;;6505:36;;;6521:18;;:::i;7791:184::-;7861:6;7914:2;7902:9;7893:7;7889:23;7885:32;7882:52;;;7930:1;7927;7920:12;7882:52;-1:-1:-1;7953:16:1;;7791:184;-1:-1:-1;7791:184:1:o;8259:245::-;8326:6;8379:2;8367:9;8358:7;8354:23;8350:32;8347:52;;;8395:1;8392;8385:12;8347:52;8427:9;8421:16;8446:28;8468:5;8446:28;:::i;13956:127::-;14017:10;14012:3;14008:20;14005:1;13998:31;14048:4;14045:1;14038:15;14072:4;14069:1;14062:15;14088:251;14158:6;14211:2;14199:9;14190:7;14186:23;14182:32;14179:52;;;14227:1;14224;14217:12;14179:52;14259:9;14253:16;14278:31;14303:5;14278:31;:::i;14344:980::-;14606:4;14654:3;14643:9;14639:19;14685:6;14674:9;14667:25;14711:2;14749:6;14744:2;14733:9;14729:18;14722:34;14792:3;14787:2;14776:9;14772:18;14765:31;14816:6;14851;14845:13;14882:6;14874;14867:22;14920:3;14909:9;14905:19;14898:26;;14959:2;14951:6;14947:15;14933:29;;14980:1;14990:195;15004:6;15001:1;14998:13;14990:195;;;15069:13;;-1:-1:-1;;;;;15065:39:1;15053:52;;15160:15;;;;15125:12;;;;15101:1;15019:9;14990:195;;;-1:-1:-1;;;;;;;15241:32:1;;;;15236:2;15221:18;;15214:60;-1:-1:-1;;;15305:3:1;15290:19;15283:35;15202:3;14344:980;-1:-1:-1;;;14344:980:1:o;15329:128::-;15396:9;;;15417:11;;;15414:37;;;15431:18;;:::i

Swarm Source

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