ETH Price: $3,405.76 (-1.66%)
Gas: 9 Gwei

Token

PIRB (PIRB)
 

Overview

Max Total Supply

69,420,000 PIRB

Holders

318 (0.00%)

Total Transfers

-

Market

Price

$0.02 @ 0.000006 ETH (-1.94%)

Onchain Market Cap

$1,395,371.16

Circulating Supply Market Cap

$1,395,471.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PIRB is a master coder who creates superior TG bots for crypto frens! Receive revenue share from all bot incomes for holding $PIRB!

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PIRB

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Website: https://PIRB.tech
Telegram: https://t.me/PIRB_ERC20
Twitter: https://twitter.com/PIRB_ERC20

Bots:
- https://t.me/PIRBXBot
- https://t.me/PIRBViewBot
- https://t.me/PIRBViewPROBot
- https://t.me/PIRBAIBot
- https://t.me/PIRBRateBot
*/

pragma solidity 0.8.23;

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);
}

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

abstract 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() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        external
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        external
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    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 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 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 IUniswapV2Router01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

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

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

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

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

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

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

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

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

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

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

    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 PIRB is ERC20, Ownable {
    uint256 public feeOnBuy = 4;
    uint256 public feeOnSell = 4;
    address public marketingWallet = 0x06162ef217D7bcDef277afE76B03840643e1c533;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    bool private swapping;
    uint256 public swapTokensAtAmount;

    bool public isTradeOpen = false;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isLimitExempt;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event MarketingWalletChanged(
        address indexed newMarketingWallet
    );
    event SwapAndSendFee(uint256 tokensSwapped, uint256 ethSend);
    event SwapTokensAtAmountChanged(uint256 newAmount);

    constructor() ERC20("PIRB", "PIRB") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;

        _isLimitExempt[owner()] = true;

        _mint(owner(), 69420000 * (10**18));
        swapTokensAtAmount = totalSupply() / 5000;
    }

    receive() external payable {}

    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendETH(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
    function enableTrade() external onlyOwner{
        require(isTradeOpen == false, "Trade is already open!");
        isTradeOpen = true;
    }

    function excludeFromFees(address account, bool excluded)
        external
        onlyOwner
    {
        require(
            _isExcludedFromFees[account] != excluded,
            "Account is already the value of 'excluded'"
        );
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function exemptFromLimit(address account, bool exempt)
        external
        onlyOwner
    {
        require(
            _isLimitExempt[account] != exempt,
            "Account is already the value of 'exempt'"
        );
        _isLimitExempt[account] = exempt;
    }


    function isExcludedFromFees(address account) external view returns (bool) {
        return _isExcludedFromFees[account];
    }


    function changeMarketingWallet(address _marketingWallet)
        external
        onlyOwner
    {
        require(
            _marketingWallet != marketingWallet,
            " wallet is already that address"
        );
        require(
            _marketingWallet != address(0),
            " wallet cannot be the zero address"
        );
        require(
            !isContract(_marketingWallet),
            " wallet cannot be a contract"
        );
        marketingWallet = _marketingWallet;
        _isExcludedFromFees[marketingWallet] = true;
        emit MarketingWalletChanged(marketingWallet);
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(
            newAmount > totalSupply() / 100000,
            "SwapTokensAtAmount must be greater than 0.001% of total supply"
        );
        swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountChanged(newAmount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(isTradeOpen || _isLimitExempt[from]||_isLimitExempt[to], "Trading is not open!");


        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap && !swapping && to == uniswapV2Pair) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);

            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        if (takeFee) {
            uint256 fees;
            if (from == uniswapV2Pair) {
                fees = (amount * feeOnBuy) / 100;
            } else if (to == uniswapV2Pair) {
                fees = (amount * feeOnSell) / 100;
            } else {
                fees = 0;
            }
            amount -= fees;
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
        }

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

    function swapAndSendFee(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );

        uint256 newBalance = address(this).balance;
        uint256 addressBalance = address(this).balance;

        sendETH(
            payable(marketingWallet),
            addressBalance
        );

        emit SwapAndSendFee(tokenAmount, newBalance);
    }

}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"SwapTokensAtAmountChanged","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":"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":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","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":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFromLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260046006819055600755600880546001600160a01b0319167306162ef217d7bcdef277afe76b03840643e1c533179055600c805460ff191690553480156200004a575f80fd5b506040805180820182526004808252632824a92160e11b60208084018290528451808601909552918452908301529060036200008783826200066e565b5060046200009682826200066e565b5050505f620000aa620003bb60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200017391906200073a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e591906200073a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000230573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025691906200073a565b600980546001600160a01b038086166001600160a01b03199283168117909355600a805491851691909216179055909150620002969030905f19620003bf565b6001600d5f620002ae6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600d9093527fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a8054851660019081179091553084528284208054861682179055600854909116835290822080549093168117909255600e90620003466005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905562000396620003846005546001600160a01b031690565b6a396c41bd9e54ada3800000620004ea565b611388620003a360025490565b620003af919062000769565b600b5550620007af9050565b3390565b6001600160a01b038316620004275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200048a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200041e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620005425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200041e565b8060025f82825462000555919062000789565b90915550506001600160a01b0382165f90815260208190526040812080548392906200058390849062000789565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005fa57607f821691505b6020821081036200061957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005cc57805f5260205f20601f840160051c81016020851015620006465750805b601f840160051c820191505b8181101562000667575f815560010162000652565b5050505050565b81516001600160401b038111156200068a576200068a620005d1565b620006a2816200069b8454620005e5565b846200061f565b602080601f831160018114620006d8575f8415620006c05750858301515b5f19600386901b1c1916600185901b17855562000732565b5f85815260208120601f198616915b828110156200070857888601518255948401946001909101908401620006e7565b50858210156200072657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156200074b575f80fd5b81516001600160a01b038116811462000762575f80fd5b9392505050565b5f826200078457634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620007a957634e487b7160e01b5f52601160045260245ffd5b92915050565b6118d480620007bd5f395ff3fe608060405260043610610197575f3560e01c8063715018a6116100e7578063bb85c6d111610087578063d0973f1011610062578063d0973f101461048b578063dd62ed3e146104aa578063e2f45605146104ee578063f2fde38b14610503575f80fd5b8063bb85c6d114610438578063bb8c3ee014610457578063c02466681461046c575f80fd5b806395d89b41116100c257806395d89b41146103c7578063a457c2d7146103db578063a9059cbb146103fa578063afa4f3b214610419575f80fd5b8063715018a61461037757806375f0a8741461038b5780638da5cb5b146103aa575f80fd5b8063313ce567116101525780634fbee1931161012d5780634fbee193146102de578063609014441461031557806365048d081461032e57806370a0823114610343575f80fd5b8063313ce5671461028557806339509351146102a057806349bd5a5e146102bf575f80fd5b806299d386146101a257806306fdde03146101b8578063095ea7b3146101e25780631694505e1461021157806318160ddd1461024857806323b872dd14610266575f80fd5b3661019e57005b5f80fd5b3480156101ad575f80fd5b506101b6610522565b005b3480156101c3575f80fd5b506101cc6105b0565b6040516101d9919061152e565b60405180910390f35b3480156101ed575f80fd5b506102016101fc366004611591565b610640565b60405190151581526020016101d9565b34801561021c575f80fd5b50600954610230906001600160a01b031681565b6040516001600160a01b0390911681526020016101d9565b348015610253575f80fd5b506002545b6040519081526020016101d9565b348015610271575f80fd5b506102016102803660046115bb565b610656565b348015610290575f80fd5b50604051601281526020016101d9565b3480156102ab575f80fd5b506102016102ba366004611591565b610705565b3480156102ca575f80fd5b50600a54610230906001600160a01b031681565b3480156102e9575f80fd5b506102016102f83660046115f9565b6001600160a01b03165f908152600d602052604090205460ff1690565b348015610320575f80fd5b50600c546102019060ff1681565b348015610339575f80fd5b5061025860075481565b34801561034e575f80fd5b5061025861035d3660046115f9565b6001600160a01b03165f9081526020819052604090205490565b348015610382575f80fd5b506101b6610740565b348015610396575f80fd5b50600854610230906001600160a01b031681565b3480156103b5575f80fd5b506005546001600160a01b0316610230565b3480156103d2575f80fd5b506101cc6107b3565b3480156103e6575f80fd5b506102016103f5366004611591565b6107c2565b348015610405575f80fd5b50610201610414366004611591565b61085a565b348015610424575f80fd5b506101b661043336600461161b565b610866565b348015610443575f80fd5b506101b66104523660046115f9565b610956565b348015610462575f80fd5b5061025860065481565b348015610477575f80fd5b506101b6610486366004611632565b610afc565b348015610496575f80fd5b506101b66104a5366004611632565b610c06565b3480156104b5575f80fd5b506102586104c436600461166d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156104f9575f80fd5b50610258600b5481565b34801561050e575f80fd5b506101b661051d3660046115f9565b610cda565b6005546001600160a01b031633146105555760405162461bcd60e51b815260040161054c90611699565b60405180910390fd5b600c5460ff16156105a15760405162461bcd60e51b8152602060048201526016602482015275547261646520697320616c7265616479206f70656e2160501b604482015260640161054c565b600c805460ff19166001179055565b6060600380546105bf906116ce565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906116ce565b80156106365780601f1061060d57610100808354040283529160200191610636565b820191905f5260205f20905b81548152906001019060200180831161061957829003601f168201915b5050505050905090565b5f61064c338484610dc4565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1981146106ef57828110156106e25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054c565b6106ef8533858403610dc4565b6106fa858585610ee7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161064c91859061073b90869061171a565b610dc4565b6005546001600160a01b0316331461076a5760405162461bcd60e51b815260040161054c90611699565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6060600480546105bf906116ce565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108435760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161054c565b6108503385858403610dc4565b5060019392505050565b5f61064c338484610ee7565b6005546001600160a01b031633146108905760405162461bcd60e51b815260040161054c90611699565b620186a061089d60025490565b6108a7919061172d565b811161091b5760405162461bcd60e51b815260206004820152603e60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000606482015260840161054c565b600b8190556040518181527fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd9060200160405180910390a150565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161054c90611699565b6008546001600160a01b03908116908216036109de5760405162461bcd60e51b815260206004820152601f60248201527f2077616c6c657420697320616c72656164792074686174206164647265737300604482015260640161054c565b6001600160a01b038116610a3f5760405162461bcd60e51b815260206004820152602260248201527f2077616c6c65742063616e6e6f7420626520746865207a65726f206164647265604482015261737360f01b606482015260840161054c565b6001600160a01b0381163b15610a975760405162461bcd60e51b815260206004820152601c60248201527f2077616c6c65742063616e6e6f74206265206120636f6e747261637400000000604482015260640161054c565b600880546001600160a01b0319166001600160a01b0383811691821783555f918252600d6020526040808320805460ff19166001179055925492519216917fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b9190a250565b6005546001600160a01b03163314610b265760405162461bcd60e51b815260040161054c90611699565b6001600160a01b0382165f908152600d602052604090205481151560ff909116151503610ba85760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161054c565b6001600160a01b0382165f818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c305760405162461bcd60e51b815260040161054c90611699565b6001600160a01b0382165f908152600e602052604090205481151560ff909116151503610cb05760405162461bcd60e51b815260206004820152602860248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015267276578656d70742760c01b606482015260840161054c565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d045760405162461bcd60e51b815260040161054c90611699565b6001600160a01b038116610d695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054c565b6001600160a01b038216610e875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f0d5760405162461bcd60e51b815260040161054c9061174c565b6001600160a01b038216610f335760405162461bcd60e51b815260040161054c90611791565b600c5460ff1680610f5b57506001600160a01b0383165f908152600e602052604090205460ff165b80610f7d57506001600160a01b0382165f908152600e602052604090205460ff165b610fc05760405162461bcd60e51b815260206004820152601460248201527354726164696e67206973206e6f74206f70656e2160601b604482015260640161054c565b805f03610fd757610fd283835f61113a565b505050565b305f90815260208190526040902054600b54811080159081906110045750600a54600160a01b900460ff16155b801561101d5750600a546001600160a01b038581169116145b1561104c57600a805460ff60a01b1916600160a01b17905561103e8261128d565b600a805460ff60a01b191690555b600a546001600160a01b0386165f908152600d602052604090205460ff600160a01b90920482161591168061109857506001600160a01b0385165f908152600d602052604090205460ff165b156110a057505f5b801561112757600a545f906001600160a01b03908116908816036110df576064600654866110ce91906117d4565b6110d8919061172d565b9050611108565b600a546001600160a01b0390811690871603611105576064600754866110ce91906117d4565b505f5b61111281866117eb565b945080156111255761112587308361113a565b505b61113286868661113a565b505050505050565b6001600160a01b0383166111605760405162461bcd60e51b815260040161054c9061174c565b6001600160a01b0382166111865760405162461bcd60e51b815260040161054c90611791565b6001600160a01b0383165f90815260208190526040902054818110156111fd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054c565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061123390849061171a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161127f91815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c0576112c06117fe565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190611812565b8160018151811061134e5761134e6117fe565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906113939085905f9086903090429060040161182d565b5f604051808303815f87803b1580156113aa575f80fd5b505af11580156113bc573d5f803e3d5ffd5b50506008544792504791506113da906001600160a01b031682611419565b60408051858152602081018490527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b804710156114695760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161054c565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146114b2576040519150601f19603f3d011682016040523d82523d5f602084013e6114b7565b606091505b5050905080610fd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161054c565b5f602080835283518060208501525f5b8181101561155a5785810183015185820160400152820161153e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461158e575f80fd5b50565b5f80604083850312156115a2575f80fd5b82356115ad8161157a565b946020939093013593505050565b5f805f606084860312156115cd575f80fd5b83356115d88161157a565b925060208401356115e88161157a565b929592945050506040919091013590565b5f60208284031215611609575f80fd5b81356116148161157a565b9392505050565b5f6020828403121561162b575f80fd5b5035919050565b5f8060408385031215611643575f80fd5b823561164e8161157a565b915060208301358015158114611662575f80fd5b809150509250929050565b5f806040838503121561167e575f80fd5b82356116898161157a565b915060208301356116628161157a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806116e257607f821691505b60208210810361170057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561065057610650611706565b5f8261174757634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761065057610650611706565b8181038181111561065057610650611706565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611822575f80fd5b81516116148161157a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561187d5784516001600160a01b031683529383019391830191600101611858565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dd8cc5de27b26a295fd58e612d0bd5315d058d99f51c8686a92f2e188638f8e564736f6c63430008170033

Deployed Bytecode

0x608060405260043610610197575f3560e01c8063715018a6116100e7578063bb85c6d111610087578063d0973f1011610062578063d0973f101461048b578063dd62ed3e146104aa578063e2f45605146104ee578063f2fde38b14610503575f80fd5b8063bb85c6d114610438578063bb8c3ee014610457578063c02466681461046c575f80fd5b806395d89b41116100c257806395d89b41146103c7578063a457c2d7146103db578063a9059cbb146103fa578063afa4f3b214610419575f80fd5b8063715018a61461037757806375f0a8741461038b5780638da5cb5b146103aa575f80fd5b8063313ce567116101525780634fbee1931161012d5780634fbee193146102de578063609014441461031557806365048d081461032e57806370a0823114610343575f80fd5b8063313ce5671461028557806339509351146102a057806349bd5a5e146102bf575f80fd5b806299d386146101a257806306fdde03146101b8578063095ea7b3146101e25780631694505e1461021157806318160ddd1461024857806323b872dd14610266575f80fd5b3661019e57005b5f80fd5b3480156101ad575f80fd5b506101b6610522565b005b3480156101c3575f80fd5b506101cc6105b0565b6040516101d9919061152e565b60405180910390f35b3480156101ed575f80fd5b506102016101fc366004611591565b610640565b60405190151581526020016101d9565b34801561021c575f80fd5b50600954610230906001600160a01b031681565b6040516001600160a01b0390911681526020016101d9565b348015610253575f80fd5b506002545b6040519081526020016101d9565b348015610271575f80fd5b506102016102803660046115bb565b610656565b348015610290575f80fd5b50604051601281526020016101d9565b3480156102ab575f80fd5b506102016102ba366004611591565b610705565b3480156102ca575f80fd5b50600a54610230906001600160a01b031681565b3480156102e9575f80fd5b506102016102f83660046115f9565b6001600160a01b03165f908152600d602052604090205460ff1690565b348015610320575f80fd5b50600c546102019060ff1681565b348015610339575f80fd5b5061025860075481565b34801561034e575f80fd5b5061025861035d3660046115f9565b6001600160a01b03165f9081526020819052604090205490565b348015610382575f80fd5b506101b6610740565b348015610396575f80fd5b50600854610230906001600160a01b031681565b3480156103b5575f80fd5b506005546001600160a01b0316610230565b3480156103d2575f80fd5b506101cc6107b3565b3480156103e6575f80fd5b506102016103f5366004611591565b6107c2565b348015610405575f80fd5b50610201610414366004611591565b61085a565b348015610424575f80fd5b506101b661043336600461161b565b610866565b348015610443575f80fd5b506101b66104523660046115f9565b610956565b348015610462575f80fd5b5061025860065481565b348015610477575f80fd5b506101b6610486366004611632565b610afc565b348015610496575f80fd5b506101b66104a5366004611632565b610c06565b3480156104b5575f80fd5b506102586104c436600461166d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156104f9575f80fd5b50610258600b5481565b34801561050e575f80fd5b506101b661051d3660046115f9565b610cda565b6005546001600160a01b031633146105555760405162461bcd60e51b815260040161054c90611699565b60405180910390fd5b600c5460ff16156105a15760405162461bcd60e51b8152602060048201526016602482015275547261646520697320616c7265616479206f70656e2160501b604482015260640161054c565b600c805460ff19166001179055565b6060600380546105bf906116ce565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906116ce565b80156106365780601f1061060d57610100808354040283529160200191610636565b820191905f5260205f20905b81548152906001019060200180831161061957829003601f168201915b5050505050905090565b5f61064c338484610dc4565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1981146106ef57828110156106e25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054c565b6106ef8533858403610dc4565b6106fa858585610ee7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161064c91859061073b90869061171a565b610dc4565b6005546001600160a01b0316331461076a5760405162461bcd60e51b815260040161054c90611699565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6060600480546105bf906116ce565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108435760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161054c565b6108503385858403610dc4565b5060019392505050565b5f61064c338484610ee7565b6005546001600160a01b031633146108905760405162461bcd60e51b815260040161054c90611699565b620186a061089d60025490565b6108a7919061172d565b811161091b5760405162461bcd60e51b815260206004820152603e60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000606482015260840161054c565b600b8190556040518181527fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd9060200160405180910390a150565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161054c90611699565b6008546001600160a01b03908116908216036109de5760405162461bcd60e51b815260206004820152601f60248201527f2077616c6c657420697320616c72656164792074686174206164647265737300604482015260640161054c565b6001600160a01b038116610a3f5760405162461bcd60e51b815260206004820152602260248201527f2077616c6c65742063616e6e6f7420626520746865207a65726f206164647265604482015261737360f01b606482015260840161054c565b6001600160a01b0381163b15610a975760405162461bcd60e51b815260206004820152601c60248201527f2077616c6c65742063616e6e6f74206265206120636f6e747261637400000000604482015260640161054c565b600880546001600160a01b0319166001600160a01b0383811691821783555f918252600d6020526040808320805460ff19166001179055925492519216917fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b9190a250565b6005546001600160a01b03163314610b265760405162461bcd60e51b815260040161054c90611699565b6001600160a01b0382165f908152600d602052604090205481151560ff909116151503610ba85760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161054c565b6001600160a01b0382165f818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c305760405162461bcd60e51b815260040161054c90611699565b6001600160a01b0382165f908152600e602052604090205481151560ff909116151503610cb05760405162461bcd60e51b815260206004820152602860248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015267276578656d70742760c01b606482015260840161054c565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d045760405162461bcd60e51b815260040161054c90611699565b6001600160a01b038116610d695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054c565b6001600160a01b038216610e875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f0d5760405162461bcd60e51b815260040161054c9061174c565b6001600160a01b038216610f335760405162461bcd60e51b815260040161054c90611791565b600c5460ff1680610f5b57506001600160a01b0383165f908152600e602052604090205460ff165b80610f7d57506001600160a01b0382165f908152600e602052604090205460ff165b610fc05760405162461bcd60e51b815260206004820152601460248201527354726164696e67206973206e6f74206f70656e2160601b604482015260640161054c565b805f03610fd757610fd283835f61113a565b505050565b305f90815260208190526040902054600b54811080159081906110045750600a54600160a01b900460ff16155b801561101d5750600a546001600160a01b038581169116145b1561104c57600a805460ff60a01b1916600160a01b17905561103e8261128d565b600a805460ff60a01b191690555b600a546001600160a01b0386165f908152600d602052604090205460ff600160a01b90920482161591168061109857506001600160a01b0385165f908152600d602052604090205460ff165b156110a057505f5b801561112757600a545f906001600160a01b03908116908816036110df576064600654866110ce91906117d4565b6110d8919061172d565b9050611108565b600a546001600160a01b0390811690871603611105576064600754866110ce91906117d4565b505f5b61111281866117eb565b945080156111255761112587308361113a565b505b61113286868661113a565b505050505050565b6001600160a01b0383166111605760405162461bcd60e51b815260040161054c9061174c565b6001600160a01b0382166111865760405162461bcd60e51b815260040161054c90611791565b6001600160a01b0383165f90815260208190526040902054818110156111fd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054c565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061123390849061171a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161127f91815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c0576112c06117fe565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190611812565b8160018151811061134e5761134e6117fe565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906113939085905f9086903090429060040161182d565b5f604051808303815f87803b1580156113aa575f80fd5b505af11580156113bc573d5f803e3d5ffd5b50506008544792504791506113da906001600160a01b031682611419565b60408051858152602081018490527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b804710156114695760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161054c565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146114b2576040519150601f19603f3d011682016040523d82523d5f602084013e6114b7565b606091505b5050905080610fd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161054c565b5f602080835283518060208501525f5b8181101561155a5785810183015185820160400152820161153e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461158e575f80fd5b50565b5f80604083850312156115a2575f80fd5b82356115ad8161157a565b946020939093013593505050565b5f805f606084860312156115cd575f80fd5b83356115d88161157a565b925060208401356115e88161157a565b929592945050506040919091013590565b5f60208284031215611609575f80fd5b81356116148161157a565b9392505050565b5f6020828403121561162b575f80fd5b5035919050565b5f8060408385031215611643575f80fd5b823561164e8161157a565b915060208301358015158114611662575f80fd5b809150509250929050565b5f806040838503121561167e575f80fd5b82356116898161157a565b915060208301356116628161157a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806116e257607f821691505b60208210810361170057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561065057610650611706565b5f8261174757634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761065057610650611706565b8181038181111561065057610650611706565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611822575f80fd5b81516116148161157a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561187d5784516001600160a01b031683529383019391830191600101611858565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dd8cc5de27b26a295fd58e612d0bd5315d058d99f51c8686a92f2e188638f8e564736f6c63430008170033

Deployed Bytecode Sourcemap

16563:6339:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18822:144;;;;;;;;;;;;;:::i;:::-;;2909:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3974:212;;;;;;;;;;-1:-1:-1;3974:212:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3974:212:0;1023:187:1;16755:41:0;;;;;;;;;;-1:-1:-1;16755:41:0;;;;-1:-1:-1;;;;;16755:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;16755:41:0;1215:230:1;3236:108:0;;;;;;;;;;-1:-1:-1;3324:12:0;;3236:108;;;1596:25:1;;;1584:2;1569:18;3236:108:0;1450:177:1;4194:624:0;;;;;;;;;;-1:-1:-1;4194:624:0;;;;;:::i;:::-;;:::i;3133:95::-;;;;;;;;;;-1:-1:-1;3133:95:0;;3218:2;2235:36:1;;2223:2;2208:18;3133:95:0;2093:184:1;4826:299:0;;;;;;;;;;-1:-1:-1;4826:299:0;;;;;:::i;:::-;;:::i;16803:28::-;;;;;;;;;;-1:-1:-1;16803:28:0;;;;-1:-1:-1;;;;;16803:28:0;;;19626:128;;;;;;;;;;-1:-1:-1;19626:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;19718:28:0;19694:4;19718:28;;;:19;:28;;;;;;;;;19626:128;16989:31;;;;;;;;;;-1:-1:-1;16989:31:0;;;;;;;;16636:28;;;;;;;;;;;;;;;;3352:177;;;;;;;;;;-1:-1:-1;3352:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;3503:18:0;3471:7;3503:18;;;;;;;;;;;;3352:177;2055:150;;;;;;;;;;;;;:::i;16671:75::-;;;;;;;;;;-1:-1:-1;16671:75:0;;;;-1:-1:-1;;;;;16671:75:0;;;1841:79;;;;;;;;;;-1:-1:-1;1906:6:0;;-1:-1:-1;;;;;1906:6:0;1841:79;;3019:106;;;;;;;;;;;;;:::i;5133:484::-;;;;;;;;;;-1:-1:-1;5133:484:0;;;;;:::i;:::-;;:::i;3537:218::-;;;;;;;;;;-1:-1:-1;3537:218:0;;;;;:::i;:::-;;:::i;20403:327::-;;;;;;;;;;-1:-1:-1;20403:327:0;;;;;:::i;:::-;;:::i;19764:631::-;;;;;;;;;;-1:-1:-1;19764:631:0;;;;;:::i;:::-;;:::i;16602:27::-;;;;;;;;;;;;;;;;18974:352;;;;;;;;;;-1:-1:-1;18974:352:0;;;;;:::i;:::-;;:::i;19334:282::-;;;;;;;;;;-1:-1:-1;19334:282:0;;;;;:::i;:::-;;:::i;3763:203::-;;;;;;;;;;-1:-1:-1;3763:203:0;;;;;:::i;:::-;-1:-1:-1;;;;;3931:18:0;;;3899:7;3931:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3763:203;16947:33;;;;;;;;;;;;;;;;2213:283;;;;;;;;;;-1:-1:-1;2213:283:0;;;;;:::i;:::-;;:::i;18822:144::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;;;;;;;;;18882:11:::1;::::0;::::1;;:20;18874:55;;;::::0;-1:-1:-1;;;18874:55:0;;4304:2:1;18874:55:0::1;::::0;::::1;4286:21:1::0;4343:2;4323:18;;;4316:30;-1:-1:-1;;;4362:18:1;;;4355:52;4424:18;;18874:55:0::1;4102:346:1::0;18874:55:0::1;18940:11;:18:::0;;-1:-1:-1;;18940:18:0::1;18954:4;18940:18;::::0;;18822:144::o;2909:102::-;2965:13;2998:5;2991:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2909:102;:::o;3974:212::-;4095:4;4117:39;1463:10;4140:7;4149:6;4117:8;:39::i;:::-;-1:-1:-1;4174:4:0;3974:212;;;;;:::o;4194:624::-;-1:-1:-1;;;;;4380:19:0;;4336:4;4380:19;;;:11;:19;;;;;;;;1463:10;4380:33;;;;;;;;-1:-1:-1;;4428:37:0;;4424:314;;4528:6;4508:16;:26;;4482:128;;;;-1:-1:-1;;;4482:128:0;;5040:2:1;4482:128:0;;;5022:21:1;5079:2;5059:18;;;5052:30;5118:34;5098:18;;;5091:62;-1:-1:-1;;;5169:18:1;;;5162:38;5217:19;;4482:128:0;4838:404:1;4482:128:0;4654:57;4663:6;1463:10;4704:6;4685:16;:25;4654:8;:57::i;:::-;4750:36;4760:6;4768:9;4779:6;4750:9;:36::i;:::-;-1:-1:-1;4806:4:0;;4194:624;-1:-1:-1;;;;4194:624:0:o;4826:299::-;1463:10;4943:4;5037:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5037:34:0;;;;;;;;;;4943:4;;4965:130;;5015:7;;5037:47;;5074:10;;5037:47;:::i;:::-;4965:8;:130::i;2055:150::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;2148:6:::1;::::0;2127:40:::1;::::0;2164:1:::1;::::0;-1:-1:-1;;;;;2148:6:0::1;::::0;2127:40:::1;::::0;2164:1;;2127:40:::1;2178:6;:19:::0;;-1:-1:-1;;;;;;2178:19:0::1;::::0;;2055:150::o;3019:106::-;3077:13;3110:7;3103:14;;;;;:::i;5133:484::-;1463:10;5255:4;5304:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5304:34:0;;;;;;;;;;5371:35;;;;5349:122;;;;-1:-1:-1;;;5349:122:0;;5711:2:1;5349:122:0;;;5693:21:1;5750:2;5730:18;;;5723:30;5789:34;5769:18;;;5762:62;-1:-1:-1;;;5840:18:1;;;5833:35;5885:19;;5349:122:0;5509:401:1;5349:122:0;5507:67;1463:10;5530:7;5558:15;5539:16;:34;5507:8;:67::i;:::-;-1:-1:-1;5605:4:0;;5133:484;-1:-1:-1;;;5133:484:0:o;3537:218::-;3661:4;3683:42;1463:10;3707:9;3718:6;3683:9;:42::i;20403:327::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;20533:6:::1;20517:13;3324:12:::0;;;3236:108;20517:13:::1;:22;;;;:::i;:::-;20505:9;:34;20483:146;;;::::0;-1:-1:-1;;;20483:146:0;;6339:2:1;20483:146:0::1;::::0;::::1;6321:21:1::0;6378:2;6358:18;;;6351:30;6417:34;6397:18;;;6390:62;6488:32;6468:18;;;6461:60;6538:19;;20483:146:0::1;6137:426:1::0;20483:146:0::1;20640:18;:30:::0;;;20686:36:::1;::::0;1596:25:1;;;20686:36:0::1;::::0;1584:2:1;1569:18;20686:36:0::1;;;;;;;20403:327:::0;:::o;19764:631::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;19916:15:::1;::::0;-1:-1:-1;;;;;19916:15:0;;::::1;19896:35:::0;;::::1;::::0;19874:116:::1;;;::::0;-1:-1:-1;;;19874:116:0;;6770:2:1;19874:116:0::1;::::0;::::1;6752:21:1::0;6809:2;6789:18;;;6782:30;6848:33;6828:18;;;6821:61;6899:18;;19874:116:0::1;6568:355:1::0;19874:116:0::1;-1:-1:-1::0;;;;;20023:30:0;::::1;20001:114;;;::::0;-1:-1:-1;;;20001:114:0;;7130:2:1;20001:114:0::1;::::0;::::1;7112:21:1::0;7169:2;7149:18;;;7142:30;7208:34;7188:18;;;7181:62;-1:-1:-1;;;7259:18:1;;;7252:32;7301:19;;20001:114:0::1;6928:398:1::0;20001:114:0::1;-1:-1:-1::0;;;;;18388:19:0;;;:23;20126:107:::1;;;::::0;-1:-1:-1;;;20126:107:0;;7533:2:1;20126:107:0::1;::::0;::::1;7515:21:1::0;7572:2;7552:18;;;7545:30;7611;7591:18;;;7584:58;7659:18;;20126:107:0::1;7331:352:1::0;20126:107:0::1;20244:15;:34:::0;;-1:-1:-1;;;;;;20244:34:0::1;-1:-1:-1::0;;;;;20244:34:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;20289:36:0;;;:19:::1;:36;::::0;;;;;:43;;-1:-1:-1;;20289:43:0::1;-1:-1:-1::0;20289:43:0::1;::::0;;20371:15;;20348:39;;20371:15;::::1;::::0;20348:39:::1;::::0;-1:-1:-1;20348:39:0::1;19764:631:::0;:::o;18974:352::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19106:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;19084:132:::1;;;::::0;-1:-1:-1;;;19084:132:0;;7890:2:1;19084:132:0::1;::::0;::::1;7872:21:1::0;7929:2;7909:18;;;7902:30;7968:34;7948:18;;;7941:62;-1:-1:-1;;;8019:18:1;;;8012:40;8069:19;;19084:132:0::1;7688:406:1::0;19084:132:0::1;-1:-1:-1::0;;;;;19227:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;19227:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19284:34;;1163:41:1;;;19284:34:0::1;::::0;1136:18:1;19284:34:0::1;;;;;;;18974:352:::0;;:::o;19334:282::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19464:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:33;::::1;;:23;::::0;;::::1;:33;;::::0;19442:123:::1;;;::::0;-1:-1:-1;;;19442:123:0;;8301:2:1;19442:123:0::1;::::0;::::1;8283:21:1::0;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;-1:-1:-1;;;8430:18:1;;;8423:38;8478:19;;19442:123:0::1;8099:404:1::0;19442:123:0::1;-1:-1:-1::0;;;;;19576:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:32;;-1:-1:-1;;19576:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19334:282::o;2213:283::-;1968:6;;-1:-1:-1;;;;;1968:6:0;1463:10;1968:22;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2318:22:0;::::1;2296:110;;;::::0;-1:-1:-1;;;2296:110:0;;8710:2:1;2296:110:0::1;::::0;::::1;8692:21:1::0;8749:2;8729:18;;;8722:30;8788:34;8768:18;;;8761:62;-1:-1:-1;;;8839:18:1;;;8832:36;8885:19;;2296:110:0::1;8508:402:1::0;2296:110:0::1;2443:6;::::0;2422:38:::1;::::0;-1:-1:-1;;;;;2422:38:0;;::::1;::::0;2443:6:::1;::::0;2422:38:::1;::::0;2443:6:::1;::::0;2422:38:::1;2471:6;:17:::0;;-1:-1:-1;;;;;;2471:17:0::1;-1:-1:-1::0;;;;;2471:17:0;;;::::1;::::0;;;::::1;::::0;;2213:283::o;6810:380::-;-1:-1:-1;;;;;6946:19:0;;6938:68;;;;-1:-1:-1;;;6938:68:0;;9117:2:1;6938:68:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:34;9290:19;;6938:68:0;8915:400:1;6938:68:0;-1:-1:-1;;;;;7025:21:0;;7017:68;;;;-1:-1:-1;;;7017:68:0;;9522:2:1;7017:68:0;;;9504:21:1;9561:2;9541:18;;;9534:30;9600:34;9580:18;;;9573:62;-1:-1:-1;;;9651:18:1;;;9644:32;9693:19;;7017:68:0;9320:398:1;7017:68:0;-1:-1:-1;;;;;7098:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7150:32;;1596:25:1;;;7150:32:0;;1569:18:1;7150:32:0;;;;;;;6810:380;;;:::o;20738:1457::-;-1:-1:-1;;;;;20870:18:0;;20862:68;;;;-1:-1:-1;;;20862:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20949:16:0;;20941:64;;;;-1:-1:-1;;;20941:64:0;;;;;;;:::i;:::-;21024:11;;;;;:35;;-1:-1:-1;;;;;;21039:20:0;;;;;;:14;:20;;;;;;;;21024:35;:55;;;-1:-1:-1;;;;;;21061:18:0;;;;;;:14;:18;;;;;;;;21024:55;21016:88;;;;-1:-1:-1;;;21016:88:0;;10735:2:1;21016:88:0;;;10717:21:1;10774:2;10754:18;;;10747:30;-1:-1:-1;;;10793:18:1;;;10786:50;10853:18;;21016:88:0;10533:344:1;21016:88:0;21123:6;21133:1;21123:11;21119:93;;21151:28;21167:4;21173:2;21177:1;21151:15;:28::i;:::-;20738:1457;;;:::o;21119:93::-;21273:4;21224:28;3503:18;;;;;;;;;;;21331;;21307:42;;;;;;;21366:20;;-1:-1:-1;21378:8:0;;-1:-1:-1;;;21378:8:0;;;;21377:9;21366:20;:43;;;;-1:-1:-1;21396:13:0;;-1:-1:-1;;;;;21390:19:0;;;21396:13;;21390:19;21366:43;21362:177;;;21426:8;:15;;-1:-1:-1;;;;21426:15:0;-1:-1:-1;;;21426:15:0;;;21458:36;21473:20;21458:14;:36::i;:::-;21511:8;:16;;-1:-1:-1;;;;21511:16:0;;;21362:177;21567:8;;-1:-1:-1;;;;;21592:25:0;;21551:12;21592:25;;;:19;:25;;;;;;21567:8;-1:-1:-1;;;21567:8:0;;;;;21566:9;;21592:25;;:52;;-1:-1:-1;;;;;;21621:23:0;;;;;;:19;:23;;;;;;;;21592:52;21588:100;;;-1:-1:-1;21671:5:0;21588:100;21704:7;21700:442;;;21767:13;;21728:12;;-1:-1:-1;;;;;21767:13:0;;;21759:21;;;;21755:242;;21830:3;21818:8;;21809:6;:17;;;;:::i;:::-;21808:25;;;;:::i;:::-;21801:32;;21755:242;;;21865:13;;-1:-1:-1;;;;;21865:13:0;;;21859:19;;;;21855:142;;21929:3;21916:9;;21907:6;:18;;;;:::i;21855:142::-;-1:-1:-1;21980:1:0;21855:142;22011:14;22021:4;22011:14;;:::i;:::-;;-1:-1:-1;22044:8:0;;22040:91;;22073:42;22089:4;22103;22110;22073:15;:42::i;:::-;21713:429;21700:442;22154:33;22170:4;22176:2;22180:6;22154:15;:33::i;:::-;20851:1344;;;20738:1457;;;:::o;5625:770::-;-1:-1:-1;;;;;5765:20:0;;5757:70;;;;-1:-1:-1;;;5757:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5846:23:0;;5838:71;;;;-1:-1:-1;;;5838:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6006:17:0;;5982:21;6006:17;;;;;;;;;;;6056:23;;;;6034:111;;;;-1:-1:-1;;;6034:111:0;;11390:2:1;6034:111:0;;;11372:21:1;11429:2;11409:18;;;11402:30;11468:34;11448:18;;;11441:62;-1:-1:-1;;;11519:18:1;;;11512:36;11565:19;;6034:111:0;11188:402:1;6034:111:0;-1:-1:-1;;;;;6181:17:0;;;:9;:17;;;;;;;;;;;6201:22;;;6181:42;;6245:20;;;;;;;;:30;;6217:6;;6181:9;6245:30;;6217:6;;6245:30;:::i;:::-;;;;;;;;6310:9;-1:-1:-1;;;;;6293:35:0;6302:6;-1:-1:-1;;;;;6293:35:0;;6321:6;6293:35;;;;1596:25:1;;1584:2;1569:18;;1450:177;6293:35:0;;;;;;;;5746:649;5625:770;;;:::o;22203:694::-;22291:16;;;22305:1;22291:16;;;;;;;;22267:21;;22291:16;;;;;;;;;;-1:-1:-1;22291:16:0;22267:40;;22336:4;22318;22323:1;22318:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22318:23:0;;;:7;;;;;;;;;;:23;;;;22362:15;;:22;;;-1:-1:-1;;;22362:22:0;;;;:15;;;;;:20;;:22;;;;;22318:7;;22362:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22352:4;22357:1;22352:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22352:32:0;;;:7;;;;;;;;;:32;22397:15;;:224;;-1:-1:-1;;;22397:224:0;;:15;;;:66;;:224;;22478:11;;22397:15;;22548:4;;22575;;22595:15;;22397:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22776:15:0;;22655:21;;-1:-1:-1;22712:21:0;;-1:-1:-1;22746:86:0;;-1:-1:-1;;;;;22776:15:0;22712:21;22746:7;:86::i;:::-;22850:39;;;13274:25:1;;;13330:2;13315:18;;13308:34;;;22850:39:0;;13247:18:1;22850:39:0;;;;;;;22256:641;;;22203:694;:::o;18427:389::-;18554:6;18529:21;:31;;18507:110;;;;-1:-1:-1;;;18507:110:0;;13555:2:1;18507:110:0;;;13537:21:1;13594:2;13574:18;;;13567:30;13633:31;13613:18;;;13606:59;13682:18;;18507:110:0;13353:353:1;18507:110:0;18631:12;18649:9;-1:-1:-1;;;;;18649:14:0;18671:6;18649:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18630:52;;;18715:7;18693:115;;;;-1:-1:-1;;;18693:115:0;;14123:2:1;18693:115:0;;;14105:21:1;14162:2;14142:18;;;14135:30;14201:34;14181:18;;;14174:62;14272:28;14252:18;;;14245:56;14318:19;;18693:115:0;13921:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;:::-;2726:5;2490:247;-1:-1:-1;;;2490:247:1:o;2742:180::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;-1:-1:-1;2893:23:1;;2742:180;-1:-1:-1;2742:180:1:o;2927:416::-;2992:6;3000;3053:2;3041:9;3032:7;3028:23;3024:32;3021:52;;;3069:1;3066;3059:12;3021:52;3108:9;3095:23;3127:31;3152:5;3127:31;:::i;:::-;3177:5;-1:-1:-1;3234:2:1;3219:18;;3206:32;3276:15;;3269:23;3257:36;;3247:64;;3307:1;3304;3297:12;3247:64;3330:7;3320:17;;;2927:416;;;;;:::o;3348:388::-;3416:6;3424;3477:2;3465:9;3456:7;3452:23;3448:32;3445:52;;;3493:1;3490;3483:12;3445:52;3532:9;3519:23;3551:31;3576:5;3551:31;:::i;:::-;3601:5;-1:-1:-1;3658:2:1;3643:18;;3630:32;3671:33;3630:32;3671:33;:::i;3741:356::-;3943:2;3925:21;;;3962:18;;;3955:30;4021:34;4016:2;4001:18;;3994:62;4088:2;4073:18;;3741:356::o;4453:380::-;4532:1;4528:12;;;;4575;;;4596:61;;4650:4;4642:6;4638:17;4628:27;;4596:61;4703:2;4695:6;4692:14;4672:18;4669:38;4666:161;;4749:10;4744:3;4740:20;4737:1;4730:31;4784:4;4781:1;4774:15;4812:4;4809:1;4802:15;4666:161;;4453:380;;;:::o;5247:127::-;5308:10;5303:3;5299:20;5296:1;5289:31;5339:4;5336:1;5329:15;5363:4;5360:1;5353:15;5379:125;5444:9;;;5465:10;;;5462:36;;;5478:18;;:::i;5915:217::-;5955:1;5981;5971:132;;6025:10;6020:3;6016:20;6013:1;6006:31;6060:4;6057:1;6050:15;6088:4;6085:1;6078:15;5971:132;-1:-1:-1;6117:9:1;;5915:217::o;9723:401::-;9925:2;9907:21;;;9964:2;9944:18;;;9937:30;10003:34;9998:2;9983:18;;9976:62;-1:-1:-1;;;10069:2:1;10054:18;;10047:35;10114:3;10099:19;;9723:401::o;10129:399::-;10331:2;10313:21;;;10370:2;10350:18;;;10343:30;10409:34;10404:2;10389:18;;10382:62;-1:-1:-1;;;10475:2:1;10460:18;;10453:33;10518:3;10503:19;;10129:399::o;10882:168::-;10955:9;;;10986;;11003:15;;;10997:22;;10983:37;10973:71;;11024:18;;:::i;11055:128::-;11122:9;;;11143:11;;;11140:37;;;11157:18;;:::i;11727:127::-;11788:10;11783:3;11779:20;11776:1;11769:31;11819:4;11816:1;11809:15;11843:4;11840:1;11833:15;11859:251;11929:6;11982:2;11970:9;11961:7;11957:23;11953:32;11950:52;;;11998:1;11995;11988:12;11950:52;12030:9;12024:16;12049:31;12074:5;12049:31;:::i;12115:980::-;12377:4;12425:3;12414:9;12410:19;12456:6;12445:9;12438:25;12482:2;12520:6;12515:2;12504:9;12500:18;12493:34;12563:3;12558:2;12547:9;12543:18;12536:31;12587:6;12622;12616:13;12653:6;12645;12638:22;12691:3;12680:9;12676:19;12669:26;;12730:2;12722:6;12718:15;12704:29;;12751:1;12761:195;12775:6;12772:1;12769:13;12761:195;;;12840:13;;-1:-1:-1;;;;;12836:39:1;12824:52;;12931:15;;;;12896:12;;;;12872:1;12790:9;12761:195;;;-1:-1:-1;;;;;;;13012:32:1;;;;13007:2;12992:18;;12985:60;-1:-1:-1;;;13076:3:1;13061:19;13054:35;12973:3;12115:980;-1:-1:-1;;;12115:980:1:o

Swarm Source

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