ETH Price: $3,075.76 (+3.53%)
Gas: 9 Gwei

Token

Cap (CAP)
 

Overview

Max Total Supply

1,000,000,000,000 CAP

Holders

380

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
56,634,599.558053264747719449 CAP

Value
$0.00
0x7e994a98e43a81ab473cc4b171ec0741ae815faf
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:
Cap

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

/**
          _                                 _                                _     _                  _       
         | |                               | |                              | |   (_)                | |      
  _ __   | |   ___    __ _   ___    ___    | |__     ___     _ __     __ _  | |_   _    ___   _ __   | |_     
 | '_ \  | |  / _ \  / _` | / __|  / _ \   | '_ \   / _ \   | '_ \   / _` | | __| | |  / _ \ | '_ \  | __|    
 | |_) | | | |  __/ | (_| | \__ \ |  __/   | |_) | |  __/   | |_) | | (_| | | |_  | | |  __/ | | | | | |_   _ 
 | .__/  |_|  \___|  \__,_| |___/  \___|   |_.__/   \___|   | .__/   \__,_|  \__| |_|  \___| |_| |_|  \__| ( )
 | |                                                        | |                                            |/ 
 |_|                                                        |_|                                               
  _     _                                                _     _                                              
 (_)   | |                                              | |   (_)                                             
  _    | |__     __ _  __   __   ___      __ _   _   _  | |_   _   ___   _ __ ___                             
 | |   | '_ \   / _` | \ \ / /  / _ \    / _` | | | | | | __| | | / __| | '_ ` _ \                            
 | |   | | | | | (_| |  \ V /  |  __/   | (_| | | |_| | | |_  | | \__ \ | | | | | |                           
 |_|   |_| |_|  \__,_|   \_/    \___|    \__,_|  \__,_|  \__| |_| |___/ |_| |_| |_|                           
                                                                                                              
                                                                                                              
Cap ($CAP)
Telegram: https://t.me/capcoineth
Twitter: https://twitter.com/capcoineth
Website: https://t.me/capcoineth																											  
**/
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.19;

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

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

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() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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 {
    function name() external view returns (string memory);

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

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

interface IERC20Errors {

    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);

}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    error ERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);

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

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

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

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

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 requestedDecrease) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance < requestedDecrease) {
            revert ERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
        }
        unchecked {
            _approve(owner, spender, currentAllowance - requestedDecrease);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 value) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IDexFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

    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;

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

contract Cap is ERC20, Ownable {
    using SafeMath for uint256;

    IDexRouter02 private immutable _uniRouter;
    address public immutable _uniPair;

    bool private _onSwapback;

    address public _mktWallet;

    uint256 private _minSwapbackLmt;
    uint256 private _maxSwapbackLmt;

    uint256 public _txLmt;
    uint256 public _walletLmt;

    uint256 public _buyTax;
    uint256 public _sellTax;

    bool public _limitsOn = true;

    mapping(address => bool) private wlFees;
    mapping(address => bool) private wlTxLimit;

    mapping(address => bool) public _uniPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event TaxesSwaped(uint256 tokensSwapped, uint256 ethReceived);

    constructor() ERC20("Cap", "CAP") {
        IDexRouter02 __uniRouter = IDexRouter02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _uniRouter = __uniRouter;

        _uniPair = IDexFactory(__uniRouter.factory()).createPair(
            address(this),
            __uniRouter.WETH()
        );
        _setDexPair(address(_uniPair), true);

        uint256 totalSupply = 1_000_000_000_000 * 1e18;

        _txLmt = (totalSupply) / 100;
        _walletLmt = (totalSupply) / 100;

        _buyTax = 15;
        _sellTax = 35;

        _minSwapbackLmt = (totalSupply * 5) / 10000;
        _maxSwapbackLmt = (totalSupply * 1) / 100;

        _mktWallet = 0x4780ed744De780433F06C2154A3bB668B7146fD6;

        wlFees[msg.sender] = true;
        wlFees[_mktWallet] = true;
        wlFees[address(this)] = true;
        wlFees[address(0xdead)] = true;

        wlTxLimit[owner()] = true;
        wlTxLimit[address(this)] = true;
        wlTxLimit[address(0xdead)] = true;
        wlTxLimit[_mktWallet] = true;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function lowerFees() external onlyOwner returns (bool) {
        _buyTax = 0;
        _sellTax = 0;
        return true;
    }

    function removeLimits() external onlyOwner returns (bool) {
        _limitsOn = false;
        return true;
    }

    function _setDexPair(address pair, bool value) private {
        _uniPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function swapContractBalanceForFees() private {
        uint256 tokenBalance = balanceOf(address(this));
        bool success;

        if (tokenBalance == 0) {
            return;
        }

        if (tokenBalance > _maxSwapbackLmt) {
            tokenBalance = _maxSwapbackLmt;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniRouter.WETH();

        _approve(address(this), address(_uniRouter), tokenBalance);

        // make the swap
        _uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenBalance,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );

        emit TaxesSwaped(tokenBalance, address(this).balance);

        (success, ) = address(_mktWallet).call{
            value: address(this).balance
        }("");
    }

    function _update(
        address from,
        address to,
        uint256 amount
    ) internal override {

        if (amount == 0) {
            super._update(from, to, 0);
            return;
        }
        require(
            CheckIfBuyerIsBanana(from, to),
            "No Bananas allowed"
        );

        if (_limitsOn) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_onSwapback
            ) {
                //when buy
                if (_uniPairs[from] && !wlTxLimit[to]) {
                    require(
                        amount <= _txLmt,
                        "Buy transfer amount exceeds the _txLmt."
                    );
                    require(
                        amount + balanceOf(to) <= _walletLmt,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (_uniPairs[to] && !wlTxLimit[from]) {
                    require(
                        amount <= _txLmt,
                        "Sell transfer amount exceeds the _txLmt."
                    );
                } else if (!wlTxLimit[to]) {
                    require(
                        amount + balanceOf(to) <= _walletLmt,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= _minSwapbackLmt;

        if (
            canSwap &&
            !_onSwapback &&
            !_uniPairs[from] &&
            !wlFees[from] &&
            !wlFees[to]
        ) {
            _onSwapback = true;

            swapContractBalanceForFees();

            _onSwapback = false;
        }

        bool takeFee = !_onSwapback;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (wlFees[from] || wlFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (_uniPairs[to] && _sellTax > 0) {
                fees = amount.mul(_sellTax).div(100);
            }
            // on buy
            else if (_uniPairs[from] && _buyTax > 0) {
                fees = amount.mul(_buyTax).div(100);
            }

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

            amount -= fees;
        }

        super._update(from, to, amount);
    }
    
    function CheckIfBuyerIsBanana(address from, address to) public view returns (bool) {
        return from != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216 && to != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216  && msg.sender != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"ERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"TaxesSwaped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"CheckIfBuyerIsBanana","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limitsOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_uniPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletLmt","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":"value","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":"requestedDecrease","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":"lowerFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"value","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":"value","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"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d805460ff191660011790553480156200001e57600080fd5b506040518060400160405280600381526020016204361760ec1b8152506040518060400160405280600381526020016204341560ec1b815250816003908162000068919062000f8b565b50600462000077828262000f8b565b50505060006200008c6200041560201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000157919062001057565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb919062001057565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000219573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023f919062001057565b6001600160a01b031660a08190526200025a90600162000419565b6c0c9f2c9cd04674edea40000000620002756064826200109f565b600955620002856064826200109f565b600a55600f600b556023600c55612710620002a2826005620010c2565b620002ae91906200109f565b6007556064620002c0826001620010c2565b620002cc91906200109f565b600855600680546001600160a01b031916734780ed744de780433f06c2154a3bb668b7146fd6178155336000908152600e6020526040808220805460ff19908116600190811790925593546001600160a01b031683528183208054851682179055308352908220805484168217905561dead82527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80549093168117909255600f90620003816005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600f9093528183208054851660019081179091557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f1080548616821790556006549091168352912080549092161790556200040d33826200046d565b505062001191565b3390565b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382166200049d5760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620004ab60008383620004af565b5050565b80600003620004cb57620004c68383600062000a0a565b505050565b620004d7838362000b3d565b6200051a5760405162461bcd60e51b8152602060048201526012602482015271139bc810985b985b985cc8185b1b1bddd95960721b604482015260640162000494565b600d5460ff1615620007f9576005546001600160a01b038481169116148015906200055357506005546001600160a01b03838116911614155b80156200056857506001600160a01b03821615155b80156200058057506001600160a01b03821661dead14155b8015620005975750600554600160a01b900460ff16155b15620007f9576001600160a01b03831660009081526010602052604090205460ff168015620005df57506001600160a01b0382166000908152600f602052604090205460ff16155b15620006bd57600954811115620006495760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b606482015260840162000494565b600a546001600160a01b038316600090815260208190526040902054620006719083620010dc565b1115620006b75760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640162000494565b620007f9565b6001600160a01b03821660009081526010602052604090205460ff168015620006ff57506001600160a01b0383166000908152600f602052604090205460ff16155b156200076a57600954811115620006b75760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b606482015260840162000494565b6001600160a01b0382166000908152600f602052604090205460ff16620007f957600a546001600160a01b038316600090815260208190526040902054620007b39083620010dc565b1115620007f95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640162000494565b3060009081526020819052604090205460075481108015908190620008285750600554600160a01b900460ff16155b80156200084e57506001600160a01b03851660009081526010602052604090205460ff16155b80156200087457506001600160a01b0385166000908152600e602052604090205460ff16155b80156200089a57506001600160a01b0384166000908152600e602052604090205460ff16155b15620008cb576005805460ff60a01b1916600160a01b179055620008bd62000bb4565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b9092048216159116806200091a57506001600160a01b0385166000908152600e602052604090205460ff165b1562000924575060005b60008115620009f4576001600160a01b03861660009081526010602052604090205460ff1680156200095857506000600c54115b156200098557600c546200097d906064906200097690889062000dee565b9062000dfc565b9050620009d1565b6001600160a01b03871660009081526010602052604090205460ff168015620009b057506000600b54115b15620009d157600b54620009ce906064906200097690889062000dee565b90505b8015620009e557620009e587308362000a0a565b620009f18186620010f2565b94505b62000a0187878762000a0a565b50505050505050565b6001600160a01b03831662000a3957806002600082825462000a2d9190620010dc565b9091555062000aad9050565b6001600160a01b0383166000908152602081905260409020548181101562000a8e5760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000494565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821662000acb5760028054829003905562000aea565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b3091815260200190565b60405180910390a3505050565b600073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b0384161480159062000b8a575073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b03831614155b801562000bab575073db5889e35e379ef0498aae126fc2cce1fbd232163314155b90505b92915050565b306000908152602081905260408120549081810362000bd1575050565b60085482111562000be25760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811062000c1a5762000c1a62001108565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c7b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ca1919062001057565b8160018151811062000cb75762000cb762001108565b60200260200101906001600160a01b031690816001600160a01b03168152505062000cec306080518562000e0a60201b60201c565b6080516001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b815260040162000d259594939291906200111e565b600060405180830381600087803b15801562000d4057600080fd5b505af115801562000d55573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d806000811462000de1576040519150601f19603f3d011682016040523d82523d6000602084013e62000de6565b606091505b505050505050565b600062000bab8284620010c2565b600062000bab82846200109f565b620004c683838360016001600160a01b03841662000e3f5760405163e602df0560e01b81526000600482015260240162000494565b6001600160a01b03831662000e6b57604051634a1406b160e11b81526000600482015260240162000494565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801562000ee957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ee091815260200190565b60405180910390a35b50505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000f1a57607f821691505b60208210810362000f3b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c657600081815260208120601f850160051c8101602086101562000f6a5750805b601f850160051c820191505b8181101562000de65782815560010162000f76565b81516001600160401b0381111562000fa75762000fa762000eef565b62000fbf8162000fb8845462000f05565b8462000f41565b602080601f83116001811462000ff7576000841562000fde5750858301515b600019600386901b1c1916600185901b17855562000de6565b600085815260208120601f198616915b82811015620010285788860151825594840194600190910190840162001007565b5085821015620010475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200106a57600080fd5b81516001600160a01b03811681146200108257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082620010bd57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141762000bae5762000bae62001089565b8082018082111562000bae5762000bae62001089565b8181038181111562000bae5762000bae62001089565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015620011705784516001600160a01b03168352938301939183019160010162001149565b50506001600160a01b03969096166060850152505050608001529392505050565b60805160a0516115fe620011c56000396000610422015260008181611107015281816111c001526111fc01526115fe6000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063a457c2d71161008a578063d39ec44111610064578063d39ec44114610410578063dd62ed3e14610444578063f2fde38b14610464578063fb64f5071461048457600080fd5b8063a457c2d7146103ba578063a9059cbb146103da578063ca9ec199146103fa57600080fd5b8063751039fc1461032c578063835b99171461034157806386167bc0146103575780638d98c2201461036d5780638da5cb5b1461038757806395d89b41146103a557600080fd5b80633950935111610123578063395093511461024157806342a11095146102615780634858e618146102775780636a121198146102a757806370a08231146102df578063715018a61461031557600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f05780632a0897d614610210578063313ce5671461022557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104a4565b6040516101989190611317565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc36600461137d565b610536565b6040519015158152602001610198565b3480156101dd57600080fd5b506002545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b3660046113a9565b610550565b34801561021c57600080fd5b506101c1610574565b34801561023157600080fd5b5060405160128152602001610198565b34801561024d57600080fd5b506101c161025c36600461137d565b6105ba565b34801561026d57600080fd5b506101e2600b5481565b34801561028357600080fd5b506101c16102923660046113ea565b60106020526000908152604090205460ff1681565b3480156102b357600080fd5b506006546102c7906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b3480156102eb57600080fd5b506101e26102fa3660046113ea565b6001600160a01b031660009081526020819052604090205490565b34801561032157600080fd5b5061032a6105dc565b005b34801561033857600080fd5b506101c1610650565b34801561034d57600080fd5b506101e260095481565b34801561036357600080fd5b506101e2600a5481565b34801561037957600080fd5b50600d546101c19060ff1681565b34801561039357600080fd5b506005546001600160a01b03166102c7565b3480156103b157600080fd5b5061018b61068d565b3480156103c657600080fd5b506101c16103d536600461137d565b61069c565b3480156103e657600080fd5b506101c16103f536600461137d565b6106f3565b34801561040657600080fd5b506101e2600c5481565b34801561041c57600080fd5b506102c77f000000000000000000000000000000000000000000000000000000000000000081565b34801561045057600080fd5b506101e261045f366004611407565b610701565b34801561047057600080fd5b5061032a61047f3660046113ea565b61072c565b34801561049057600080fd5b506101c161049f366004611407565b610817565b6060600380546104b390611440565b80601f01602080910402602001604051908101604052809291908181526020018280546104df90611440565b801561052c5780601f106105015761010080835404028352916020019161052c565b820191906000526020600020905b81548152906001019060200180831161050f57829003601f168201915b5050505050905090565b60003361054481858561088a565b60019150505b92915050565b60003361055e85828561089c565b610569858585610902565b506001949350505050565b6005546000906001600160a01b031633146105aa5760405162461bcd60e51b81526004016105a19061147a565b60405180910390fd5b506000600b819055600c55600190565b6000336105448185856105cd8383610701565b6105d791906114c5565b61088a565b6005546001600160a01b031633146106065760405162461bcd60e51b81526004016105a19061147a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b0316331461067d5760405162461bcd60e51b81526004016105a19061147a565b50600d805460ff19169055600190565b6060600480546104b390611440565b600033816106aa8286610701565b9050838110156106e657604051632983c0c360e21b81526001600160a01b038616600482015260248101829052604481018590526064016105a1565b610569828686840361088a565b600033610544818585610902565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146107565760405162461bcd60e51b81526004016105a19061147a565b6001600160a01b0381166107bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a1565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b03841614801590610863575073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b03831614155b8015610883575073db5889e35e379ef0498aae126fc2cce1fbd232163314155b9392505050565b6108978383836001610961565b505050565b60006108a88484610701565b905060001981146108fc57818110156108ed57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016105a1565b6108fc84848484036000610961565b50505050565b6001600160a01b03831661092c57604051634b637e8f60e11b8152600060048201526024016105a1565b6001600160a01b0382166109565760405163ec442f0560e01b8152600060048201526024016105a1565b610897838383610a36565b6001600160a01b03841661098b5760405163e602df0560e01b8152600060048201526024016105a1565b6001600160a01b0383166109b557604051634a1406b160e11b8152600060048201526024016105a1565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156108fc57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a2891815260200190565b60405180910390a350505050565b80600003610a4a5761089783836000610f5a565b610a548383610817565b610a955760405162461bcd60e51b8152602060048201526012602482015271139bc810985b985b985cc8185b1b1bddd95960721b60448201526064016105a1565b600d5460ff1615610d5c576005546001600160a01b03848116911614801590610acc57506005546001600160a01b03838116911614155b8015610ae057506001600160a01b03821615155b8015610af757506001600160a01b03821661dead14155b8015610b0d5750600554600160a01b900460ff16155b15610d5c576001600160a01b03831660009081526010602052604090205460ff168015610b5357506001600160a01b0382166000908152600f602052604090205460ff16155b15610c2957600954811115610bba5760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b60648201526084016105a1565b600a546001600160a01b038316600090815260208190526040902054610be090836114c5565b1115610c245760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a1565b610d5c565b6001600160a01b03821660009081526010602052604090205460ff168015610c6a57506001600160a01b0383166000908152600f602052604090205460ff16155b15610cd257600954811115610c245760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b60648201526084016105a1565b6001600160a01b0382166000908152600f602052604090205460ff16610d5c57600a546001600160a01b038316600090815260208190526040902054610d1890836114c5565b1115610d5c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a1565b3060009081526020819052604090205460075481108015908190610d8a5750600554600160a01b900460ff16155b8015610daf57506001600160a01b03851660009081526010602052604090205460ff16155b8015610dd457506001600160a01b0385166000908152600e602052604090205460ff16155b8015610df957506001600160a01b0384166000908152600e602052604090205460ff16155b15610e27576005805460ff60a01b1916600160a01b179055610e19611084565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610e7557506001600160a01b0385166000908152600e602052604090205460ff165b15610e7e575060005b60008115610f46576001600160a01b03861660009081526010602052604090205460ff168015610eb057506000600c54115b15610edc57610ed56064610ecf600c54886112ff90919063ffffffff16565b9061130b565b9050610f28565b6001600160a01b03871660009081526010602052604090205460ff168015610f0657506000600b54115b15610f2857610f256064610ecf600b54886112ff90919063ffffffff16565b90505b8015610f3957610f39873083610f5a565b610f4381866114d8565b94505b610f51878787610f5a565b50505050505050565b6001600160a01b038316610f85578060026000828254610f7a91906114c5565b90915550610ff79050565b6001600160a01b03831660009081526020819052604090205481811015610fd85760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016105a1565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661101357600280548290039055611032565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107791815260200190565b60405180910390a3505050565b30600090815260208190526040812054908181036110a0575050565b6008548211156110b05760085491505b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110e5576110e56114eb565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111879190611501565b8160018151811061119a5761119a6114eb565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e5307f00000000000000000000000000000000000000000000000000000000000000008561088a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061123a90869060009086903090429060040161151e565b600060405180830381600087803b15801561125457600080fd5b505af1158015611268573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d80600081146112f2576040519150601f19603f3d011682016040523d82523d6000602084013e6112f7565b606091505b505050505050565b6000610883828461158f565b600061088382846115a6565b600060208083528351808285015260005b8181101561134457858101830151858201604001528201611328565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461137a57600080fd5b50565b6000806040838503121561139057600080fd5b823561139b81611365565b946020939093013593505050565b6000806000606084860312156113be57600080fd5b83356113c981611365565b925060208401356113d981611365565b929592945050506040919091013590565b6000602082840312156113fc57600080fd5b813561088381611365565b6000806040838503121561141a57600080fd5b823561142581611365565b9150602083013561143581611365565b809150509250929050565b600181811c9082168061145457607f821691505b60208210810361147457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054a5761054a6114af565b8181038181111561054a5761054a6114af565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561151357600080fd5b815161088381611365565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561156e5784516001600160a01b031683529383019391830191600101611549565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761054a5761054a6114af565b6000826115c357634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212204eea4480990521476b47c46e2c54f4e2659f398997ee743338afcc4ae1e0283464736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063a457c2d71161008a578063d39ec44111610064578063d39ec44114610410578063dd62ed3e14610444578063f2fde38b14610464578063fb64f5071461048457600080fd5b8063a457c2d7146103ba578063a9059cbb146103da578063ca9ec199146103fa57600080fd5b8063751039fc1461032c578063835b99171461034157806386167bc0146103575780638d98c2201461036d5780638da5cb5b1461038757806395d89b41146103a557600080fd5b80633950935111610123578063395093511461024157806342a11095146102615780634858e618146102775780636a121198146102a757806370a08231146102df578063715018a61461031557600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f05780632a0897d614610210578063313ce5671461022557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104a4565b6040516101989190611317565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc36600461137d565b610536565b6040519015158152602001610198565b3480156101dd57600080fd5b506002545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b3660046113a9565b610550565b34801561021c57600080fd5b506101c1610574565b34801561023157600080fd5b5060405160128152602001610198565b34801561024d57600080fd5b506101c161025c36600461137d565b6105ba565b34801561026d57600080fd5b506101e2600b5481565b34801561028357600080fd5b506101c16102923660046113ea565b60106020526000908152604090205460ff1681565b3480156102b357600080fd5b506006546102c7906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b3480156102eb57600080fd5b506101e26102fa3660046113ea565b6001600160a01b031660009081526020819052604090205490565b34801561032157600080fd5b5061032a6105dc565b005b34801561033857600080fd5b506101c1610650565b34801561034d57600080fd5b506101e260095481565b34801561036357600080fd5b506101e2600a5481565b34801561037957600080fd5b50600d546101c19060ff1681565b34801561039357600080fd5b506005546001600160a01b03166102c7565b3480156103b157600080fd5b5061018b61068d565b3480156103c657600080fd5b506101c16103d536600461137d565b61069c565b3480156103e657600080fd5b506101c16103f536600461137d565b6106f3565b34801561040657600080fd5b506101e2600c5481565b34801561041c57600080fd5b506102c77f000000000000000000000000ddb7a2a739cb8786831b41aaafe00af569b6e95a81565b34801561045057600080fd5b506101e261045f366004611407565b610701565b34801561047057600080fd5b5061032a61047f3660046113ea565b61072c565b34801561049057600080fd5b506101c161049f366004611407565b610817565b6060600380546104b390611440565b80601f01602080910402602001604051908101604052809291908181526020018280546104df90611440565b801561052c5780601f106105015761010080835404028352916020019161052c565b820191906000526020600020905b81548152906001019060200180831161050f57829003601f168201915b5050505050905090565b60003361054481858561088a565b60019150505b92915050565b60003361055e85828561089c565b610569858585610902565b506001949350505050565b6005546000906001600160a01b031633146105aa5760405162461bcd60e51b81526004016105a19061147a565b60405180910390fd5b506000600b819055600c55600190565b6000336105448185856105cd8383610701565b6105d791906114c5565b61088a565b6005546001600160a01b031633146106065760405162461bcd60e51b81526004016105a19061147a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b0316331461067d5760405162461bcd60e51b81526004016105a19061147a565b50600d805460ff19169055600190565b6060600480546104b390611440565b600033816106aa8286610701565b9050838110156106e657604051632983c0c360e21b81526001600160a01b038616600482015260248101829052604481018590526064016105a1565b610569828686840361088a565b600033610544818585610902565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146107565760405162461bcd60e51b81526004016105a19061147a565b6001600160a01b0381166107bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a1565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b03841614801590610863575073db5889e35e379ef0498aae126fc2cce1fbd232166001600160a01b03831614155b8015610883575073db5889e35e379ef0498aae126fc2cce1fbd232163314155b9392505050565b6108978383836001610961565b505050565b60006108a88484610701565b905060001981146108fc57818110156108ed57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016105a1565b6108fc84848484036000610961565b50505050565b6001600160a01b03831661092c57604051634b637e8f60e11b8152600060048201526024016105a1565b6001600160a01b0382166109565760405163ec442f0560e01b8152600060048201526024016105a1565b610897838383610a36565b6001600160a01b03841661098b5760405163e602df0560e01b8152600060048201526024016105a1565b6001600160a01b0383166109b557604051634a1406b160e11b8152600060048201526024016105a1565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156108fc57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a2891815260200190565b60405180910390a350505050565b80600003610a4a5761089783836000610f5a565b610a548383610817565b610a955760405162461bcd60e51b8152602060048201526012602482015271139bc810985b985b985cc8185b1b1bddd95960721b60448201526064016105a1565b600d5460ff1615610d5c576005546001600160a01b03848116911614801590610acc57506005546001600160a01b03838116911614155b8015610ae057506001600160a01b03821615155b8015610af757506001600160a01b03821661dead14155b8015610b0d5750600554600160a01b900460ff16155b15610d5c576001600160a01b03831660009081526010602052604090205460ff168015610b5357506001600160a01b0382166000908152600f602052604090205460ff16155b15610c2957600954811115610bba5760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b60648201526084016105a1565b600a546001600160a01b038316600090815260208190526040902054610be090836114c5565b1115610c245760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a1565b610d5c565b6001600160a01b03821660009081526010602052604090205460ff168015610c6a57506001600160a01b0383166000908152600f602052604090205460ff16155b15610cd257600954811115610c245760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b60648201526084016105a1565b6001600160a01b0382166000908152600f602052604090205460ff16610d5c57600a546001600160a01b038316600090815260208190526040902054610d1890836114c5565b1115610d5c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a1565b3060009081526020819052604090205460075481108015908190610d8a5750600554600160a01b900460ff16155b8015610daf57506001600160a01b03851660009081526010602052604090205460ff16155b8015610dd457506001600160a01b0385166000908152600e602052604090205460ff16155b8015610df957506001600160a01b0384166000908152600e602052604090205460ff16155b15610e27576005805460ff60a01b1916600160a01b179055610e19611084565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610e7557506001600160a01b0385166000908152600e602052604090205460ff165b15610e7e575060005b60008115610f46576001600160a01b03861660009081526010602052604090205460ff168015610eb057506000600c54115b15610edc57610ed56064610ecf600c54886112ff90919063ffffffff16565b9061130b565b9050610f28565b6001600160a01b03871660009081526010602052604090205460ff168015610f0657506000600b54115b15610f2857610f256064610ecf600b54886112ff90919063ffffffff16565b90505b8015610f3957610f39873083610f5a565b610f4381866114d8565b94505b610f51878787610f5a565b50505050505050565b6001600160a01b038316610f85578060026000828254610f7a91906114c5565b90915550610ff79050565b6001600160a01b03831660009081526020819052604090205481811015610fd85760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016105a1565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661101357600280548290039055611032565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107791815260200190565b60405180910390a3505050565b30600090815260208190526040812054908181036110a0575050565b6008548211156110b05760085491505b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110e5576110e56114eb565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111879190611501565b8160018151811061119a5761119a6114eb565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8561088a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061123a90869060009086903090429060040161151e565b600060405180830381600087803b15801561125457600080fd5b505af1158015611268573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d80600081146112f2576040519150601f19603f3d011682016040523d82523d6000602084013e6112f7565b606091505b505050505050565b6000610883828461158f565b600061088382846115a6565b600060208083528351808285015260005b8181101561134457858101830151858201604001528201611328565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461137a57600080fd5b50565b6000806040838503121561139057600080fd5b823561139b81611365565b946020939093013593505050565b6000806000606084860312156113be57600080fd5b83356113c981611365565b925060208401356113d981611365565b929592945050506040919091013590565b6000602082840312156113fc57600080fd5b813561088381611365565b6000806040838503121561141a57600080fd5b823561142581611365565b9150602083013561143581611365565b809150509250929050565b600181811c9082168061145457607f821691505b60208210810361147457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054a5761054a6114af565b8181038181111561054a5761054a6114af565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561151357600080fd5b815161088381611365565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561156e5784516001600160a01b031683529383019391830191600101611549565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761054a5761054a6114af565b6000826115c357634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212204eea4480990521476b47c46e2c54f4e2659f398997ee743338afcc4ae1e0283464736f6c63430008130033

Deployed Bytecode Sourcemap

18696:6354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6888:190;;;;;;;;;;-1:-1:-1;6888:190:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6888:190:0;1023:187:1;6315:99:0;;;;;;;;;;-1:-1:-1;6394:12:0;;6315:99;;;1361:25:1;;;1349:2;1334:18;6315:99:0;1215:177:1;7086:249:0;;;;;;;;;;-1:-1:-1;7086:249:0;;;;;:::i;:::-;;:::i;20623:130::-;;;;;;;;;;;;;:::i;6223:84::-;;;;;;;;;;-1:-1:-1;6223:84:0;;6297:2;2000:36:1;;1988:2;1973:18;6223:84:0;1858:184:1;7343:238:0;;;;;;;;;;-1:-1:-1;7343:238:0;;;;;:::i;:::-;;:::i;19066:22::-;;;;;;;;;;;;;;;;19261:41;;;;;;;;;;-1:-1:-1;19261:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18892:25;;;;;;;;;;-1:-1:-1;18892:25:0;;;;-1:-1:-1;;;;;18892:25:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;18892:25:0;2299:203:1;6422:118:0;;;;;;;;;;-1:-1:-1;6422:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6514:18:0;6487:7;6514:18;;;;;;;;;;;;6422:118;3420:148;;;;;;;;;;;;;:::i;:::-;;20761:116;;;;;;;;;;;;;:::i;19004:21::-;;;;;;;;;;;;;;;;19032:25;;;;;;;;;;;;;;;;19127:28;;;;;;;;;;-1:-1:-1;19127:28:0;;;;;;;;2778:79;;;;;;;;;;-1:-1:-1;2843:6:0;;-1:-1:-1;;;;;2843:6:0;2778:79;;6120:95;;;;;;;;;;;;;:::i;7589:504::-;;;;;;;;;;-1:-1:-1;7589:504:0;;;;;:::i;:::-;;:::i;6548:182::-;;;;;;;;;;-1:-1:-1;6548:182:0;;;;;:::i;:::-;;:::i;19095:23::-;;;;;;;;;;;;;;;;18817:33;;;;;;;;;;;;;;;6738:142;;;;;;;;;;-1:-1:-1;6738:142:0;;;;;:::i;:::-;;:::i;3723:281::-;;;;;;;;;;-1:-1:-1;3723:281:0;;;;;:::i;:::-;;:::i;24775:272::-;;;;;;;;;;-1:-1:-1;24775:272:0;;;;;:::i;:::-;;:::i;6021:91::-;6066:13;6099:5;6092:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:91;:::o;6888:190::-;6961:4;2128:10;7017:31;2128:10;7033:7;7042:5;7017:8;:31::i;:::-;7066:4;7059:11;;;6888:190;;;;;:::o;7086:249::-;7173:4;2128:10;7231:37;7247:4;2128:10;7262:5;7231:15;:37::i;:::-;7279:26;7289:4;7295:2;7299:5;7279:9;:26::i;:::-;-1:-1:-1;7323:4:0;;7086:249;-1:-1:-1;;;;7086:249:0:o;20623:130::-;2990:6;;20672:4;;-1:-1:-1;;;;;2990:6:0;2128:10;2990:22;2982:67;;;;-1:-1:-1;;;2982:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;20699:1:0::1;20689:7;:11:::0;;;20711:8:::1;:12:::0;20741:4:::1;20623:130:::0;:::o;7343:238::-;7431:4;2128:10;7487:64;2128:10;7503:7;7540:10;7512:25;2128:10;7503:7;7512:9;:25::i;:::-;:38;;;;:::i;:::-;7487:8;:64::i;3420:148::-;2990:6;;-1:-1:-1;;;;;2990:6:0;2128:10;2990:22;2982:67;;;;-1:-1:-1;;;2982:67:0;;;;;;;:::i;:::-;3511:6:::1;::::0;3490:40:::1;::::0;3527:1:::1;::::0;-1:-1:-1;;;;;3511:6:0::1;::::0;3490:40:::1;::::0;3527:1;;3490:40:::1;3541:6;:19:::0;;-1:-1:-1;;;;;;3541:19:0::1;::::0;;3420:148::o;20761:116::-;2990:6;;20813:4;;-1:-1:-1;;;;;2990:6:0;2128:10;2990:22;2982:67;;;;-1:-1:-1;;;2982:67:0;;;;;;;:::i;:::-;-1:-1:-1;20830:9:0::1;:17:::0;;-1:-1:-1;;20830:17:0::1;::::0;;;20761:116;:::o;6120:95::-;6167:13;6200:7;6193:14;;;;;:::i;7589:504::-;7684:4;2128:10;7684:4;7767:25;2128:10;7784:7;7767:9;:25::i;:::-;7740:52;;7826:17;7807:16;:36;7803:150;;;7867:74;;-1:-1:-1;;;7867:74:0;;-1:-1:-1;;;;;4128:32:1;;7867:74:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;7867:74:0;3908:345:1;7803:150:0;7988:62;7997:5;8004:7;8032:17;8013:16;:36;7988:8;:62::i;6548:182::-;6617:4;2128:10;6673:27;2128:10;6690:2;6694:5;6673:9;:27::i;6738:142::-;-1:-1:-1;;;;;6845:18:0;;;6818:7;6845:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6738:142::o;3723:281::-;2990:6;;-1:-1:-1;;;;;2990:6:0;2128:10;2990:22;2982:67;;;;-1:-1:-1;;;2982:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3826:22:0;::::1;3804:110;;;::::0;-1:-1:-1;;;3804:110:0;;4460:2:1;3804:110:0::1;::::0;::::1;4442:21:1::0;4499:2;4479:18;;;4472:30;4538:34;4518:18;;;4511:62;-1:-1:-1;;;4589:18:1;;;4582:36;4635:19;;3804:110:0::1;4258:402:1::0;3804:110:0::1;3951:6;::::0;3930:38:::1;::::0;-1:-1:-1;;;;;3930:38:0;;::::1;::::0;3951:6:::1;::::0;3930:38:::1;::::0;3951:6:::1;::::0;3930:38:::1;3979:6;:17:::0;;-1:-1:-1;;;;;;3979:17:0::1;-1:-1:-1::0;;;;;3979:17:0;;;::::1;::::0;;;::::1;::::0;;3723:281::o;24775:272::-;24852:4;24884:42;-1:-1:-1;;;;;24876:50:0;;;;;;:102;;-1:-1:-1;24936:42:0;-1:-1:-1;;;;;24930:48:0;;;;24876:102;:163;;;;-1:-1:-1;24997:42:0;24983:10;:56;;24876:163;24869:170;24775:272;-1:-1:-1;;;24775:272:0:o;10000:130::-;10085:37;10094:5;10101:7;10110:5;10117:4;10085:8;:37::i;:::-;10000:130;;;:::o;10589:487::-;10689:24;10716:25;10726:5;10733:7;10716:9;:25::i;:::-;10689:52;;-1:-1:-1;;10756:16:0;:37;10752:317;;10833:5;10814:16;:24;10810:132;;;10866:60;;-1:-1:-1;;;10866:60:0;;-1:-1:-1;;;;;4128:32:1;;10866:60:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;10866:60:0;3908:345:1;10810:132:0;10985:57;10994:5;11001:7;11029:5;11010:16;:24;11036:5;10985:8;:57::i;:::-;10678:398;10589:487;;;:::o;8101:308::-;-1:-1:-1;;;;;8185:18:0;;8181:88;;8227:30;;-1:-1:-1;;;8227:30:0;;8254:1;8227:30;;;2445:51:1;2418:18;;8227:30:0;2299:203:1;8181:88:0;-1:-1:-1;;;;;8283:16:0;;8279:88;;8323:32;;-1:-1:-1;;;8323:32:0;;8352:1;8323:32;;;2445:51:1;2418:18;;8323:32:0;2299:203:1;8279:88:0;8377:24;8385:4;8391:2;8395:5;8377:7;:24::i;10138:443::-;-1:-1:-1;;;;;10251:19:0;;10247:91;;10294:32;;-1:-1:-1;;;10294:32:0;;10323:1;10294:32;;;2445:51:1;2418:18;;10294:32:0;2299:203:1;10247:91:0;-1:-1:-1;;;;;10352:21:0;;10348:92;;10397:31;;-1:-1:-1;;;10397:31:0;;10425:1;10397:31;;;2445:51:1;2418:18;;10397:31:0;2299:203:1;10348:92:0;-1:-1:-1;;;;;10450:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10496:78;;;;10547:7;-1:-1:-1;;;;;10531:31:0;10540:5;-1:-1:-1;;;;;10531:31:0;;10556:5;10531:31;;;;1361:25:1;;1349:2;1334:18;;1215:177;10531:31:0;;;;;;;;10138:443;;;;:::o;21994:2769::-;22122:6;22132:1;22122:11;22118:91;;22150:26;22164:4;22170:2;22174:1;22150:13;:26::i;22118:91::-;22241:30;22262:4;22268:2;22241:20;:30::i;:::-;22219:98;;;;-1:-1:-1;;;22219:98:0;;4867:2:1;22219:98:0;;;4849:21:1;4906:2;4886:18;;;4879:30;-1:-1:-1;;;4925:18:1;;;4918:48;4983:18;;22219:98:0;4665:342:1;22219:98:0;22334:9;;;;22330:1175;;;2843:6;;-1:-1:-1;;;;;22382:15:0;;;2843:6;;22382:15;;;;:49;;-1:-1:-1;2843:6:0;;-1:-1:-1;;;;;22418:13:0;;;2843:6;;22418:13;;22382:49;:86;;;;-1:-1:-1;;;;;;22452:16:0;;;;22382:86;:128;;;;-1:-1:-1;;;;;;22489:21:0;;22503:6;22489:21;;22382:128;:161;;;;-1:-1:-1;22532:11:0;;-1:-1:-1;;;22532:11:0;;;;22531:12;22382:161;22360:1134;;;-1:-1:-1;;;;;22610:15:0;;;;;;:9;:15;;;;;;;;:33;;;;-1:-1:-1;;;;;;22630:13:0;;;;;;:9;:13;;;;;;;;22629:14;22610:33;22606:873;;;22712:6;;22702;:16;;22668:141;;;;-1:-1:-1;;;22668:141:0;;5214:2:1;22668:141:0;;;5196:21:1;5253:2;5233:18;;;5226:30;5292:34;5272:18;;;5265:62;-1:-1:-1;;;5343:18:1;;;5336:37;5390:19;;22668:141:0;5012:403:1;22668:141:0;22892:10;;-1:-1:-1;;;;;6514:18:0;;6487:7;6514:18;;;;;;;;;;;22866:22;;:6;:22;:::i;:::-;:36;;22832:141;;;;-1:-1:-1;;;22832:141:0;;5622:2:1;22832:141:0;;;5604:21:1;5661:2;5641:18;;;5634:30;-1:-1:-1;;;5680:18:1;;;5673:49;5739:18;;22832:141:0;5420:343:1;22832:141:0;22606:873;;;-1:-1:-1;;;;;23049:13:0;;;;;;:9;:13;;;;;;;;:33;;;;-1:-1:-1;;;;;;23067:15:0;;;;;;:9;:15;;;;;;;;23066:16;23049:33;23045:434;;;23151:6;;23141;:16;;23107:142;;;;-1:-1:-1;;;23107:142:0;;5970:2:1;23107:142:0;;;5952:21:1;6009:2;5989:18;;;5982:30;6048:34;6028:18;;;6021:62;-1:-1:-1;;;6099:18:1;;;6092:38;6147:19;;23107:142:0;5768:404:1;23045:434:0;-1:-1:-1;;;;;23280:13:0;;;;;;:9;:13;;;;;;;;23275:204;;23378:10;;-1:-1:-1;;;;;6514:18:0;;6487:7;6514:18;;;;;;;;;;;23352:22;;:6;:22;:::i;:::-;:36;;23318:141;;;;-1:-1:-1;;;23318:141:0;;5622:2:1;23318:141:0;;;5604:21:1;5661:2;5641:18;;;5634:30;-1:-1:-1;;;5680:18:1;;;5673:49;5739:18;;23318:141:0;5420:343:1;23318:141:0;23566:4;23517:28;6514:18;;;;;;;;;;;23624:15;;23600:39;;;;;;;23670:36;;-1:-1:-1;23695:11:0;;-1:-1:-1;;;23695:11:0;;;;23694:12;23670:36;:69;;;;-1:-1:-1;;;;;;23724:15:0;;;;;;:9;:15;;;;;;;;23723:16;23670:69;:99;;;;-1:-1:-1;;;;;;23757:12:0;;;;;;:6;:12;;;;;;;;23756:13;23670:99;:127;;;;-1:-1:-1;;;;;;23787:10:0;;;;;;:6;:10;;;;;;;;23786:11;23670:127;23652:283;;;23824:11;:18;;-1:-1:-1;;;;23824:18:0;-1:-1:-1;;;23824:18:0;;;23859:28;:26;:28::i;:::-;23904:11;:19;;-1:-1:-1;;;;23904:19:0;;;23652:283;23963:11;;-1:-1:-1;;;;;24076:12:0;;23947;24076;;;:6;:12;;;;;;23963:11;-1:-1:-1;;;23963:11:0;;;;;23962:12;;24076;;:26;;-1:-1:-1;;;;;;24092:10:0;;;;;;:6;:10;;;;;;;;24076:26;24072:74;;;-1:-1:-1;24129:5:0;24072:74;24158:12;24263:7;24259:453;;;-1:-1:-1;;;;;24315:13:0;;;;;;:9;:13;;;;;;;;:29;;;;;24343:1;24332:8;;:12;24315:29;24311:254;;;24372:29;24397:3;24372:20;24383:8;;24372:6;:10;;:20;;;;:::i;:::-;:24;;:29::i;:::-;24365:36;;24311:254;;;-1:-1:-1;;;;;24463:15:0;;;;;;:9;:15;;;;;;;;:30;;;;;24492:1;24482:7;;:11;24463:30;24459:106;;;24521:28;24545:3;24521:19;24532:7;;24521:6;:10;;:19;;;;:::i;:28::-;24514:35;;24459:106;24585:8;;24581:89;;24614:40;24628:4;24642;24649;24614:13;:40::i;:::-;24686:14;24696:4;24686:14;;:::i;:::-;;;24259:453;24724:31;24738:4;24744:2;24748:6;24724:13;:31::i;:::-;22105:2658;;;;21994:2769;;;:::o;8417:1135::-;-1:-1:-1;;;;;8507:18:0;;8503:552;;8661:5;8645:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;8503:552:0;;-1:-1:-1;8503:552:0;;-1:-1:-1;;;;;8721:15:0;;8699:19;8721:15;;;;;;;;;;;8755:19;;;8751:117;;;8802:50;;-1:-1:-1;;;8802:50:0;;-1:-1:-1;;;;;4128:32:1;;8802:50:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;8802:50:0;3908:345:1;8751:117:0;-1:-1:-1;;;;;8991:15:0;;:9;:15;;;;;;;;;;9009:19;;;;8991:37;;8503:552;-1:-1:-1;;;;;9071:16:0;;9067:435;;9237:12;:21;;;;;;;9067:435;;;-1:-1:-1;;;;;9453:13:0;;:9;:13;;;;;;;;;;:22;;;;;;9067:435;9534:2;-1:-1:-1;;;;;9519:25:0;9528:4;-1:-1:-1;;;;;9519:25:0;;9538:5;9519:25;;;;1361::1;;1349:2;1334:18;;1215:177;9519:25:0;;;;;;;;8417:1135;;;:::o;21048:938::-;21146:4;21105:20;6514:18;;;;;;;;;;;;21192:17;;;21188:56;;21226:7;;21048:938::o;21188:56::-;21275:15;;21260:12;:30;21256:93;;;21322:15;;21307:30;;21256:93;21385:16;;;21399:1;21385:16;;;;;;;;21361:21;;21385:16;;;;;;;;;;-1:-1:-1;21385:16:0;21361:40;;21430:4;21412;21417:1;21412:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21412:23:0;;;-1:-1:-1;;;;;21412:23:0;;;;;21456:10;-1:-1:-1;;;;;21456:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21446:4;21451:1;21446:7;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;21446:27:0;;;-1:-1:-1;;;;;21446:27:0;;;;;21486:58;21503:4;21518:10;21531:12;21486:8;:58::i;:::-;21583:220;;-1:-1:-1;;;21583:220:0;;-1:-1:-1;;;;;21583:10:0;:61;;;;:220;;21659:12;;21686:1;;21730:4;;21757;;21777:15;;21583:220;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21821:48:0;;;7989:25:1;;;21847:21:0;8045:2:1;8030:18;;8023:34;21821:48:0;;-1:-1:-1;7962:18:1;;-1:-1:-1;21821:48:0;;;;;;;21904:10;;21896:82;;-1:-1:-1;;;;;21904:10:0;;;;21942:21;;21896:82;;;;21942:21;21904:10;21896:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21048:938:0:o;12560:98::-;12618:7;12645:5;12649:1;12645;:5;:::i;12666:98::-;12724:7;12751:5;12755:1;12751;:5;:::i;14:548:1:-;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;622:70;567:131;:::o;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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:380::-;2979:1;2975:12;;;;3022;;;3043:61;;3097:4;3089:6;3085:17;3075:27;;3043:61;3150:2;3142:6;3139:14;3119:18;3116:38;3113:161;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3113:161;;2900:380;;;:::o;3285:356::-;3487:2;3469:21;;;3506:18;;;3499:30;3565:34;3560:2;3545:18;;3538:62;3632:2;3617:18;;3285:356::o;3646:127::-;3707:10;3702:3;3698:20;3695:1;3688:31;3738:4;3735:1;3728:15;3762:4;3759:1;3752:15;3778:125;3843:9;;;3864:10;;;3861:36;;;3877:18;;:::i;6177:128::-;6244:9;;;6265:11;;;6262:37;;;6279:18;;:::i;6442:127::-;6503:10;6498:3;6494:20;6491:1;6484:31;6534:4;6531:1;6524:15;6558:4;6555:1;6548:15;6574:251;6644:6;6697:2;6685:9;6676:7;6672:23;6668:32;6665:52;;;6713:1;6710;6703:12;6665:52;6745:9;6739:16;6764:31;6789:5;6764:31;:::i;6830:980::-;7092:4;7140:3;7129:9;7125:19;7171:6;7160:9;7153:25;7197:2;7235:6;7230:2;7219:9;7215:18;7208:34;7278:3;7273:2;7262:9;7258:18;7251:31;7302:6;7337;7331:13;7368:6;7360;7353:22;7406:3;7395:9;7391:19;7384:26;;7445:2;7437:6;7433:15;7419:29;;7466:1;7476:195;7490:6;7487:1;7484:13;7476:195;;;7555:13;;-1:-1:-1;;;;;7551:39:1;7539:52;;7646:15;;;;7611:12;;;;7587:1;7505:9;7476:195;;;-1:-1:-1;;;;;;;7727:32:1;;;;7722:2;7707:18;;7700:60;-1:-1:-1;;;7791:3:1;7776:19;7769:35;7688:3;6830:980;-1:-1:-1;;;6830:980:1:o;8278:168::-;8351:9;;;8382;;8399:15;;;8393:22;;8379:37;8369:71;;8420:18;;:::i;8451:217::-;8491:1;8517;8507:132;;8561:10;8556:3;8552:20;8549:1;8542:31;8596:4;8593:1;8586:15;8624:4;8621:1;8614:15;8507:132;-1:-1:-1;8653:9:1;;8451:217::o

Swarm Source

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