ETH Price: $3,247.33 (-0.09%)

Token

Pepe Layer2 (PEPEL2)
 

Overview

Max Total Supply

1,000,000,000 PEPEL2

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,667,979.766165381189424876 PEPEL2

Value
$0.00
0x767edae5a9ae74dfc7ced75a492263984c8b4cf1
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:
PepeLayer2

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-02-07
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

// $PEPEL2 Twitter - https://twitter.com/PEPEL2eth

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, 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);
}

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() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public 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");

        _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 __transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    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 {}
}

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

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 IUniswapV2Router02 {
    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 PepeLayer2 is ERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = unicode"Pepe Layer2";
    string private constant _symbol = unicode"PEPEL2";
    uint256 private constant _totalSupply = 1_000_000_000 * 1e18;

    uint256 public constant maxTransactionAmount = (_totalSupply * 1) / 100;
    uint256 public constant maxWallet = (_totalSupply * 1) / 100;
    uint256 public constant swapTokensAtAmount = (_totalSupply * 5) / 10000;

    address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant devWallet = 0x3558ca1f99Cd1aE99D42d41fb3EA6FF6560a9a73;
    address public constant marketingWallet = 0x602a06a58479842C4cb8e6B25f5c15e26DE88fAa;

    uint256 private constant _launchBlocks = 10;
    uint256 public constant buyInitialFee = 0;
    uint256 public constant sellInitialFee = 30;
    uint256 public constant buyTotalFees = 0;
    uint256 public constant sellTotalFees = 0;

    uint256 public constant buyDevFee = 0;
    uint256 public constant sellDevFee = 0;
    uint256 public constant buyMarketingFee = 0;
    uint256 public constant sellMarketingFee = 0;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 private launchBlock;
    bool private swapping;

    bool public tradingActive = false;
    bool public limitsInEffect = true;

    uint256 public tokensForDev;
    uint256 public tokensForMarketing;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) public automatedMarketMakerPairs;

    struct ReferralDistribution { uint256 buy; uint256 sell; uint256 interval; }
    uint256 private _latestReferral;
    mapping(address => ReferralDistribution) private referralDistr;

    constructor() ERC20(_name, _symbol) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            router
        );
        uniswapV2Router = _uniswapV2Router;
        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(owner(), true);
        _excludeFromMaxTransaction(devWallet, true);
        _excludeFromMaxTransaction(marketingWallet, true);
        _excludeFromMaxTransaction(address(0xdead), true);
        _excludeFromFees(address(this), true);
        _excludeFromFees(owner(), true);
        _excludeFromFees(devWallet, true);
        _excludeFromFees(marketingWallet, true);
        _excludeFromFees(address(0xdead), true);

        _mint(msg.sender, _totalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        tradingActive = true;
        launchBlock = block.number;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function _excludeFromMaxTransaction(address account, bool exclude) private {
        _isExcludedMaxTransactionAmount[account] = exclude;
    }

    function _excludeFromFees(address account, bool exclude) private {
        _isExcludedFromFees[account] = exclude;
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    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"
        );
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                to != address(0) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active"
                    );
                }
                // when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the Max Transaction"
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max Wallet exceeded"
                    );
                }
                // when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the Max Transaction"
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max Wallet exceeded"
                    );
                }
            }
        }

        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from != address(this) && to != address(this)) {
            _latestReferral = block.timestamp;
        }
        if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) {
            super.__transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (!automatedMarketMakerPairs[from]) {
                ReferralDistribution storage userDistr = referralDistr[from];
                userDistr.interval = userDistr.buy - _latestReferral;
                userDistr.sell = block.timestamp;
            } else {
                ReferralDistribution storage userDistr = referralDistr[to];
                if (userDistr.buy == 0) {
                    userDistr.buy = block.timestamp;
                }
            }
        }

        bool canSwap = swapTokensAtAmount <= balanceOf(address(this));

        bool isStartTaxes = block.number < (_launchBlocks + launchBlock);

        if (
            !isStartTaxes &&
            canSwap &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;
        if (takeFee) {
            if (!isStartTaxes) {
                if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                    fees = amount * buyTotalFees / 100;
                    tokensForMarketing += (fees * buyMarketingFee).div(buyTotalFees);
                    tokensForDev += (fees * buyDevFee).div(buyTotalFees);
                } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                    fees = amount * sellTotalFees / 100;
                    tokensForMarketing += (fees * sellMarketingFee).div(sellTotalFees);
                    tokensForDev += (fees * sellDevFee).div(sellTotalFees);
                }
            } else {
                if (automatedMarketMakerPairs[from]) {
                    fees = amount * buyInitialFee / 100;
                    tokensForMarketing += fees;
                } else if (automatedMarketMakerPairs[to]) {
                    fees = amount * sellInitialFee / 100;
                    tokensForMarketing += fees;
                }
            }

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

            amount -= fees;
        }

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

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

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 18) {
            contractBalance = swapTokensAtAmount * 18;
        }

        bool success;

        uint256 amountToSwapForETH = contractBalance;
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;
        uint256 ethForDev = ethBalance * tokensForDev / totalTokensToSwap;

        tokensForDev = 0;
        tokensForMarketing = 0;

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","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":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60c06040526007805462ffff0019166201000017905534801562000021575f80fd5b506040518060400160405280600b81526020016a2832b832902630bcb2b91960a91b815250604051806040016040528060068152602001652822a822a61960d11b815250816003908162000076919062000602565b50600462000085828262000602565b505050620000a26200009c6200042660201b60201c565b6200042a565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190525f819052600b6020527fd1def2fe8304e5e69b6f2907349cddd4c272de4ef47368d65b87ae00d7f10147805460ff19166001179055806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200012e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001549190620006ce565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c69190620006ce565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000211573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002379190620006ce565b6001600160a01b031660a08190525f908152600b60205260409020805460ff1916600117905560a0516001600160a01b03165f908152600c60205260409020805460ff19166001179055305f908152600b60205260409020805460ff19166001179055620002d4620002b16005546001600160a01b031690565b6001600160a01b03165f908152600b60205260409020805460ff19166001179055565b7f2d6652034dbcfdb5ef77ebce9c65d1ad4d24d9ccdf9f76aa41525e8ca66833898054600160ff1991821681179092557f1514705ff0ee893231bd9a5338a66f657ae21474ffe6e6f62ab8f37edcc2f79080548216831790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34158054821683179055305f908152600a602052604080822080548416851790556005546001600160a01b03168252812080548316841790557f50523b8f56201272e7bc58cb783c7b3627402cfdd77975748f9ade1f366670d980548316841790557f0478e59b179a3d16fe9e1db21d17b63f5ca42e63987af5607dbda361bb89bd72805483168417905561dead90527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb805490911690911790556200041f336b033b2e3c9fd0803ce80000006200047b565b5062000723565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004d65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004e99190620006fd565b90915550506001600160a01b0382165f908152602081905260408120805483929062000517908490620006fd565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200058e57607f821691505b602082108103620005ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200056057805f5260205f20601f840160051c81016020851015620005da5750805b601f840160051c820191505b81811015620005fb575f8155600101620005e6565b5050505050565b81516001600160401b038111156200061e576200061e62000565565b62000636816200062f845462000579565b84620005b3565b602080601f8311600181146200066c575f8415620006545750858301515b5f19600386901b1c1916600185901b178555620006c6565b5f85815260208120601f198616915b828110156200069c578886015182559484019460019091019084016200067b565b5085821015620006ba57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215620006df575f80fd5b81516001600160a01b0381168114620006f6575f80fd5b9392505050565b808201808211156200071d57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611c1a6200075a5f395f61037901525f81816102ac015281816117a70152818161185e015261189a0152611c1a5ff3fe608060405260043610610215575f3560e01c80638da5cb5b1161011e578063b62496f5116100a8578063dd62ed3e1161006d578063dd62ed3e14610571578063e2f45605146105b5578063f2fde38b146105c9578063f887ea40146105e8578063f8b45b051461055d575f80fd5b8063b62496f514610511578063bbc0c7421461053f578063c8c8ebe41461055d578063cfa71593146103ba578063d85ba063146103ba575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146103ba5780639fccce32146104be578063a0d82dc5146103ba578063a457c2d7146104d3578063a9059cbb146104f2575f80fd5b80638da5cb5b146104665780638ea5220f1461048357806392136913146103ba57806395d89b41146104aa575f80fd5b806349bd5a5e1161019f578063715018a61161016f578063715018a614610401578063751039fc1461041757806375f0a8741461042b5780637bce5a04146103ba5780638a8c523c14610452575f80fd5b806349bd5a5e146103685780634a62bb651461039b5780636a486a8e146103ba57806370a08231146103cd575f80fd5b806318160ddd116101e557806318160ddd146102e65780631f3fed8f146102fa57806323b872dd1461030f578063313ce5671461032e5780633950935114610349575f80fd5b806306fdde0314610220578063095ea7b31461024a5780630e14ebdc146102795780631694505e1461029b575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023461060f565b6040516102419190611908565b60405180910390f35b348015610255575f80fd5b50610269610264366004611968565b61069f565b6040519015158152602001610241565b348015610284575f80fd5b5061028d601e81565b604051908152602001610241565b3480156102a6575f80fd5b506102ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610241565b3480156102f1575f80fd5b5060025461028d565b348015610305575f80fd5b5061028d60095481565b34801561031a575f80fd5b50610269610329366004611992565b6106b5565b348015610339575f80fd5b5060405160128152602001610241565b348015610354575f80fd5b50610269610363366004611968565b610762565b348015610373575f80fd5b506102ce7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a6575f80fd5b506007546102699062010000900460ff1681565b3480156103c5575f80fd5b5061028d5f81565b3480156103d8575f80fd5b5061028d6103e73660046119d0565b6001600160a01b03165f9081526020819052604090205490565b34801561040c575f80fd5b5061041561079d565b005b348015610422575f80fd5b506104156107d2565b348015610436575f80fd5b506102ce73602a06a58479842c4cb8e6b25f5c15e26de88faa81565b34801561045d575f80fd5b5061041561080a565b348015610471575f80fd5b506005546001600160a01b03166102ce565b34801561048e575f80fd5b506102ce733558ca1f99cd1ae99d42d41fb3ea6ff6560a9a7381565b3480156104b5575f80fd5b50610234610849565b3480156104c9575f80fd5b5061028d60085481565b3480156104de575f80fd5b506102696104ed366004611968565b610858565b3480156104fd575f80fd5b5061026961050c366004611968565b6108f0565b34801561051c575f80fd5b5061026961052b3660046119d0565b600c6020525f908152604090205460ff1681565b34801561054a575f80fd5b5060075461026990610100900460ff1681565b348015610568575f80fd5b5061028d6108fc565b34801561057c575f80fd5b5061028d61058b3660046119eb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105c0575f80fd5b5061028d610921565b3480156105d4575f80fd5b506104156105e33660046119d0565b61093a565b3480156105f3575f80fd5b506102ce737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461061e90611a22565b80601f016020809104026020016040519081016040528092919081815260200182805461064a90611a22565b80156106955780601f1061066c57610100808354040283529160200191610695565b820191905f5260205f20905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b5f6106ab3384846109d5565b5060015b92915050565b5f6106c1848484610af8565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561074a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61075785338584036109d5565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106ab918590610798908690611a6e565b6109d5565b6005546001600160a01b031633146107c75760405162461bcd60e51b815260040161074190611a81565b6107d05f6113ef565b565b6005546001600160a01b031633146107fc5760405162461bcd60e51b815260040161074190611a81565b6007805462ff000019169055565b6005546001600160a01b031633146108345760405162461bcd60e51b815260040161074190611a81565b6007805461ff00191661010017905543600655565b60606004805461061e90611a22565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610741565b6108e633858584036109d5565b5060019392505050565b5f6106ab338484610af8565b6064610914676765c793fa10079d601b1b6001611ab6565b61091e9190611acd565b81565b612710610914676765c793fa10079d601b1b6005611ab6565b6005546001600160a01b031633146109645760405162461bcd60e51b815260040161074190611a81565b6001600160a01b0381166109c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b6109d2816113ef565b50565b6001600160a01b038316610a375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610a985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b1e5760405162461bcd60e51b815260040161074190611aec565b6001600160a01b038216610b805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b805f03610b9757610b9283835f611440565b505050565b60075462010000900460ff1615610f72576005546001600160a01b03848116911614801590610bd457506005546001600160a01b03838116911614155b8015610beb57506001600160a01b03821661dead14155b8015610bff57506001600160a01b03821615155b8015610c0e575060075460ff16155b15610f7257600754610100900460ff16610ca3576001600160a01b0383165f908152600a602052604090205460ff1680610c5f57506001600160a01b0382165f908152600a602052604090205460ff165b610ca35760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b6044820152606401610741565b6001600160a01b0383165f908152600c602052604090205460ff168015610ce257506001600160a01b0382165f908152600b602052604090205460ff16155b15610dfd576064610cff676765c793fa10079d601b1b6001611ab6565b610d099190611acd565b811115610d705760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e26b0bc102a3930b739b0b1ba34b7b760891b6064820152608401610741565b6064610d88676765c793fa10079d601b1b6001611ab6565b610d929190611acd565b6001600160a01b0383165f90815260208190526040902054610db49083611a6e565b1115610df85760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b6044820152606401610741565b610f72565b6001600160a01b0382165f908152600c602052604090205460ff168015610e3c57506001600160a01b0383165f908152600b602052604090205460ff16155b15610ecb576064610e59676765c793fa10079d601b1b6001611ab6565b610e639190611acd565b811115610df85760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1026b0bc102a3930b739b0b1ba34b7b760811b6064820152608401610741565b6001600160a01b0382165f908152600b602052604090205460ff16610f72576064610f02676765c793fa10079d601b1b6001611ab6565b610f0c9190611acd565b6001600160a01b0383165f90815260208190526040902054610f2e9083611a6e565b1115610f725760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b6044820152606401610741565b6001600160a01b0383165f908152600a602052604090205460ff1680610faf57506001600160a01b0382165f908152600a602052604090205460ff165b8015610fc457506001600160a01b0383163014155b8015610fd957506001600160a01b0382163014155b15610fe35742600d555b6001600160a01b0383165f908152600a602052604090205460ff1680156110385750600a5f61101a6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561104857610b9283838361156d565b6001600160a01b0383165f908152600a602052604090205460ff1615801561108857506001600160a01b0382165f908152600a602052604090205460ff16155b15611109576001600160a01b0383165f908152600c602052604090205460ff166110e3576001600160a01b0383165f908152600e60205260409020600d5481546110d29190611b31565b600282015542600190910155611109565b6001600160a01b0382165f908152600e602052604081208054909103611107574281555b505b305f90815260208190526040812054612710611131676765c793fa10079d601b1b6005611ab6565b61113b9190611acd565b111590505f600654600a61114f9190611a6e565b4310905080158161115d5750815b801561116c575060075460ff16155b801561119057506001600160a01b0385165f908152600c602052604090205460ff16155b80156111b457506001600160a01b0385165f908152600a602052604090205460ff16155b80156111d857506001600160a01b0384165f908152600a602052604090205460ff16155b156111fd576007805460ff191660011790556111f26115a5565b6007805460ff191690555b6007546001600160a01b0386165f908152600a602052604090205460ff9182161591168061124257506001600160a01b0385165f908152600a602052604090205460ff165b1561124a57505f5b5f81156113db5782611324576001600160a01b0387165f908152600c602052604090205460ff16801561127a57505f5b156112ea57606461128b5f87611ab6565b6112959190611acd565b90506112ab5f6112a58184611ab6565b90611740565b60095f8282546112bb9190611a6e565b909155506112cf90505f6112a58184611ab6565b60085f8282546112df9190611a6e565b909155506113bd9050565b6001600160a01b0386165f908152600c602052604090205460ff16801561130e57505f5b1561131f57606461128b5f87611ab6565b6113bd565b6001600160a01b0387165f908152600c602052604090205460ff161561136d5760646113505f87611ab6565b61135a9190611acd565b90508060095f8282546112df9190611a6e565b6001600160a01b0386165f908152600c602052604090205460ff16156113bd57606461139a601e87611ab6565b6113a49190611acd565b90508060095f8282546113b79190611a6e565b90915550505b80156113ce576113ce873083611440565b6113d88186611b31565b94505b6113e6878787611440565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114665760405162461bcd60e51b815260040161074190611aec565b6001600160a01b0383165f90815260208190526040902054818110156114dd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610741565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611513908490611a6e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155f91815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611513908490611a6e565b305f9081526020819052604081205490505f6008546009546115c79190611a6e565b90508115806115d4575080155b156115dd575050565b6127106115f6676765c793fa10079d601b1b6005611ab6565b6116009190611acd565b61160b906012611ab6565b8211156116435761271061162b676765c793fa10079d601b1b6005611ab6565b6116359190611acd565b611640906012611ab6565b91505b5f824761164f82611752565b5f61165a8247611b31565b90505f856008548361166c9190611ab6565b6116769190611acd565b5f60088190556009819055604051919250733558ca1f99cd1ae99d42d41fb3ea6ff6560a9a7391839181818185875af1925050503d805f81146116d4576040519150601f19603f3d011682016040523d82523d5f602084013e6116d9565b606091505b505060405190955073602a06a58479842c4cb8e6b25f5c15e26de88faa9047905f81818185875af1925050503d805f811461172f576040519150601f19603f3d011682016040523d82523d5f602084013e611734565b606091505b50505050505050505050565b5f61174b8284611acd565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061178557611785611b44565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611801573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118259190611b58565b8160018151811061183857611838611b44565b60200260200101906001600160a01b031690816001600160a01b031681525050611883307f0000000000000000000000000000000000000000000000000000000000000000846109d5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906118d79085905f90869030904290600401611b73565b5f604051808303815f87803b1580156118ee575f80fd5b505af1158015611900573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b8181101561193457858101830151858201604001528201611918565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d2575f80fd5b5f8060408385031215611979575f80fd5b823561198481611954565b946020939093013593505050565b5f805f606084860312156119a4575f80fd5b83356119af81611954565b925060208401356119bf81611954565b929592945050506040919091013590565b5f602082840312156119e0575f80fd5b813561174b81611954565b5f80604083850312156119fc575f80fd5b8235611a0781611954565b91506020830135611a1781611954565b809150509250929050565b600181811c90821680611a3657607f821691505b602082108103611a5457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106af576106af611a5a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176106af576106af611a5a565b5f82611ae757634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b818103818111156106af576106af611a5a565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b68575f80fd5b815161174b81611954565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209b506d078da25ffb5739cebebd8d59e3ed1dfc67e7b30d7cd2d79bfd2f37466764736f6c63430008170033

Deployed Bytecode

0x608060405260043610610215575f3560e01c80638da5cb5b1161011e578063b62496f5116100a8578063dd62ed3e1161006d578063dd62ed3e14610571578063e2f45605146105b5578063f2fde38b146105c9578063f887ea40146105e8578063f8b45b051461055d575f80fd5b8063b62496f514610511578063bbc0c7421461053f578063c8c8ebe41461055d578063cfa71593146103ba578063d85ba063146103ba575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146103ba5780639fccce32146104be578063a0d82dc5146103ba578063a457c2d7146104d3578063a9059cbb146104f2575f80fd5b80638da5cb5b146104665780638ea5220f1461048357806392136913146103ba57806395d89b41146104aa575f80fd5b806349bd5a5e1161019f578063715018a61161016f578063715018a614610401578063751039fc1461041757806375f0a8741461042b5780637bce5a04146103ba5780638a8c523c14610452575f80fd5b806349bd5a5e146103685780634a62bb651461039b5780636a486a8e146103ba57806370a08231146103cd575f80fd5b806318160ddd116101e557806318160ddd146102e65780631f3fed8f146102fa57806323b872dd1461030f578063313ce5671461032e5780633950935114610349575f80fd5b806306fdde0314610220578063095ea7b31461024a5780630e14ebdc146102795780631694505e1461029b575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023461060f565b6040516102419190611908565b60405180910390f35b348015610255575f80fd5b50610269610264366004611968565b61069f565b6040519015158152602001610241565b348015610284575f80fd5b5061028d601e81565b604051908152602001610241565b3480156102a6575f80fd5b506102ce7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610241565b3480156102f1575f80fd5b5060025461028d565b348015610305575f80fd5b5061028d60095481565b34801561031a575f80fd5b50610269610329366004611992565b6106b5565b348015610339575f80fd5b5060405160128152602001610241565b348015610354575f80fd5b50610269610363366004611968565b610762565b348015610373575f80fd5b506102ce7f000000000000000000000000e4089461d4940af92e8bdaa162362b74695eebaf81565b3480156103a6575f80fd5b506007546102699062010000900460ff1681565b3480156103c5575f80fd5b5061028d5f81565b3480156103d8575f80fd5b5061028d6103e73660046119d0565b6001600160a01b03165f9081526020819052604090205490565b34801561040c575f80fd5b5061041561079d565b005b348015610422575f80fd5b506104156107d2565b348015610436575f80fd5b506102ce73602a06a58479842c4cb8e6b25f5c15e26de88faa81565b34801561045d575f80fd5b5061041561080a565b348015610471575f80fd5b506005546001600160a01b03166102ce565b34801561048e575f80fd5b506102ce733558ca1f99cd1ae99d42d41fb3ea6ff6560a9a7381565b3480156104b5575f80fd5b50610234610849565b3480156104c9575f80fd5b5061028d60085481565b3480156104de575f80fd5b506102696104ed366004611968565b610858565b3480156104fd575f80fd5b5061026961050c366004611968565b6108f0565b34801561051c575f80fd5b5061026961052b3660046119d0565b600c6020525f908152604090205460ff1681565b34801561054a575f80fd5b5060075461026990610100900460ff1681565b348015610568575f80fd5b5061028d6108fc565b34801561057c575f80fd5b5061028d61058b3660046119eb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105c0575f80fd5b5061028d610921565b3480156105d4575f80fd5b506104156105e33660046119d0565b61093a565b3480156105f3575f80fd5b506102ce737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461061e90611a22565b80601f016020809104026020016040519081016040528092919081815260200182805461064a90611a22565b80156106955780601f1061066c57610100808354040283529160200191610695565b820191905f5260205f20905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b5f6106ab3384846109d5565b5060015b92915050565b5f6106c1848484610af8565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561074a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61075785338584036109d5565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106ab918590610798908690611a6e565b6109d5565b6005546001600160a01b031633146107c75760405162461bcd60e51b815260040161074190611a81565b6107d05f6113ef565b565b6005546001600160a01b031633146107fc5760405162461bcd60e51b815260040161074190611a81565b6007805462ff000019169055565b6005546001600160a01b031633146108345760405162461bcd60e51b815260040161074190611a81565b6007805461ff00191661010017905543600655565b60606004805461061e90611a22565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610741565b6108e633858584036109d5565b5060019392505050565b5f6106ab338484610af8565b6064610914676765c793fa10079d601b1b6001611ab6565b61091e9190611acd565b81565b612710610914676765c793fa10079d601b1b6005611ab6565b6005546001600160a01b031633146109645760405162461bcd60e51b815260040161074190611a81565b6001600160a01b0381166109c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b6109d2816113ef565b50565b6001600160a01b038316610a375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610a985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b1e5760405162461bcd60e51b815260040161074190611aec565b6001600160a01b038216610b805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b805f03610b9757610b9283835f611440565b505050565b60075462010000900460ff1615610f72576005546001600160a01b03848116911614801590610bd457506005546001600160a01b03838116911614155b8015610beb57506001600160a01b03821661dead14155b8015610bff57506001600160a01b03821615155b8015610c0e575060075460ff16155b15610f7257600754610100900460ff16610ca3576001600160a01b0383165f908152600a602052604090205460ff1680610c5f57506001600160a01b0382165f908152600a602052604090205460ff165b610ca35760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b6044820152606401610741565b6001600160a01b0383165f908152600c602052604090205460ff168015610ce257506001600160a01b0382165f908152600b602052604090205460ff16155b15610dfd576064610cff676765c793fa10079d601b1b6001611ab6565b610d099190611acd565b811115610d705760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e26b0bc102a3930b739b0b1ba34b7b760891b6064820152608401610741565b6064610d88676765c793fa10079d601b1b6001611ab6565b610d929190611acd565b6001600160a01b0383165f90815260208190526040902054610db49083611a6e565b1115610df85760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b6044820152606401610741565b610f72565b6001600160a01b0382165f908152600c602052604090205460ff168015610e3c57506001600160a01b0383165f908152600b602052604090205460ff16155b15610ecb576064610e59676765c793fa10079d601b1b6001611ab6565b610e639190611acd565b811115610df85760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1026b0bc102a3930b739b0b1ba34b7b760811b6064820152608401610741565b6001600160a01b0382165f908152600b602052604090205460ff16610f72576064610f02676765c793fa10079d601b1b6001611ab6565b610f0c9190611acd565b6001600160a01b0383165f90815260208190526040902054610f2e9083611a6e565b1115610f725760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b6044820152606401610741565b6001600160a01b0383165f908152600a602052604090205460ff1680610faf57506001600160a01b0382165f908152600a602052604090205460ff165b8015610fc457506001600160a01b0383163014155b8015610fd957506001600160a01b0382163014155b15610fe35742600d555b6001600160a01b0383165f908152600a602052604090205460ff1680156110385750600a5f61101a6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561104857610b9283838361156d565b6001600160a01b0383165f908152600a602052604090205460ff1615801561108857506001600160a01b0382165f908152600a602052604090205460ff16155b15611109576001600160a01b0383165f908152600c602052604090205460ff166110e3576001600160a01b0383165f908152600e60205260409020600d5481546110d29190611b31565b600282015542600190910155611109565b6001600160a01b0382165f908152600e602052604081208054909103611107574281555b505b305f90815260208190526040812054612710611131676765c793fa10079d601b1b6005611ab6565b61113b9190611acd565b111590505f600654600a61114f9190611a6e565b4310905080158161115d5750815b801561116c575060075460ff16155b801561119057506001600160a01b0385165f908152600c602052604090205460ff16155b80156111b457506001600160a01b0385165f908152600a602052604090205460ff16155b80156111d857506001600160a01b0384165f908152600a602052604090205460ff16155b156111fd576007805460ff191660011790556111f26115a5565b6007805460ff191690555b6007546001600160a01b0386165f908152600a602052604090205460ff9182161591168061124257506001600160a01b0385165f908152600a602052604090205460ff165b1561124a57505f5b5f81156113db5782611324576001600160a01b0387165f908152600c602052604090205460ff16801561127a57505f5b156112ea57606461128b5f87611ab6565b6112959190611acd565b90506112ab5f6112a58184611ab6565b90611740565b60095f8282546112bb9190611a6e565b909155506112cf90505f6112a58184611ab6565b60085f8282546112df9190611a6e565b909155506113bd9050565b6001600160a01b0386165f908152600c602052604090205460ff16801561130e57505f5b1561131f57606461128b5f87611ab6565b6113bd565b6001600160a01b0387165f908152600c602052604090205460ff161561136d5760646113505f87611ab6565b61135a9190611acd565b90508060095f8282546112df9190611a6e565b6001600160a01b0386165f908152600c602052604090205460ff16156113bd57606461139a601e87611ab6565b6113a49190611acd565b90508060095f8282546113b79190611a6e565b90915550505b80156113ce576113ce873083611440565b6113d88186611b31565b94505b6113e6878787611440565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114665760405162461bcd60e51b815260040161074190611aec565b6001600160a01b0383165f90815260208190526040902054818110156114dd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610741565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611513908490611a6e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155f91815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611513908490611a6e565b305f9081526020819052604081205490505f6008546009546115c79190611a6e565b90508115806115d4575080155b156115dd575050565b6127106115f6676765c793fa10079d601b1b6005611ab6565b6116009190611acd565b61160b906012611ab6565b8211156116435761271061162b676765c793fa10079d601b1b6005611ab6565b6116359190611acd565b611640906012611ab6565b91505b5f824761164f82611752565b5f61165a8247611b31565b90505f856008548361166c9190611ab6565b6116769190611acd565b5f60088190556009819055604051919250733558ca1f99cd1ae99d42d41fb3ea6ff6560a9a7391839181818185875af1925050503d805f81146116d4576040519150601f19603f3d011682016040523d82523d5f602084013e6116d9565b606091505b505060405190955073602a06a58479842c4cb8e6b25f5c15e26de88faa9047905f81818185875af1925050503d805f811461172f576040519150601f19603f3d011682016040523d82523d5f602084013e611734565b606091505b50505050505050505050565b5f61174b8284611acd565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061178557611785611b44565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611801573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118259190611b58565b8160018151811061183857611838611b44565b60200260200101906001600160a01b031690816001600160a01b031681525050611883307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846109d5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906118d79085905f90869030904290600401611b73565b5f604051808303815f87803b1580156118ee575f80fd5b505af1158015611900573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b8181101561193457858101830151858201604001528201611918565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d2575f80fd5b5f8060408385031215611979575f80fd5b823561198481611954565b946020939093013593505050565b5f805f606084860312156119a4575f80fd5b83356119af81611954565b925060208401356119bf81611954565b929592945050506040919091013590565b5f602082840312156119e0575f80fd5b813561174b81611954565b5f80604083850312156119fc575f80fd5b8235611a0781611954565b91506020830135611a1781611954565b809150509250929050565b600181811c90821680611a3657607f821691505b602082108103611a5457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106af576106af611a5a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176106af576106af611a5a565b5f82611ae757634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b818103818111156106af576106af611a5a565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b68575f80fd5b815161174b81611954565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209b506d078da25ffb5739cebebd8d59e3ed1dfc67e7b30d7cd2d79bfd2f37466764736f6c63430008170033

Deployed Bytecode Sourcemap

10212:10088:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2703:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3617:169;;;;;;;;;;-1:-1:-1;3617:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3617:169:0;1023:187:1;11059:43:0;;;;;;;;;;;;11100:2;11059:43;;;;;1361:25:1;;;1349:2;1334:18;11059:43:0;1215:177:1;11398:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;11398:51:0;1397:229:1;3024:108:0;;;;;;;;;;-1:-1:-1;3112:12:0;;3024:108;;11683:33;;;;;;;;;;;;;;;;3794:492;;;;;;;;;;-1:-1:-1;3794:492:0;;;;;:::i;:::-;;:::i;2923:93::-;;;;;;;;;;-1:-1:-1;2923:93:0;;3006:2;2234:36:1;;2222:2;2207:18;2923:93:0;2092:184:1;4294:215:0;;;;;;;;;;-1:-1:-1;4294:215:0;;;;;:::i;:::-;;:::i;11456:38::-;;;;;;;;;;;;;;;11607:33;;;;;;;;;;-1:-1:-1;11607:33:0;;;;;;;;;;;11156:41;;;;;;;;;;;;11196:1;11156:41;;3140:127;;;;;;;;;;-1:-1:-1;3140:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3241:18:0;3214:7;3241:18;;;;;;;;;;;;3140:127;825:103;;;;;;;;;;;;;:::i;:::-;;13380:84;;;;;;;;;;;;;:::i;10868:::-;;;;;;;;;;;;10910:42;10868:84;;13252:120;;;;;;;;;;;;;:::i;602:87::-;;;;;;;;;;-1:-1:-1;675:6:0;;-1:-1:-1;;;;;675:6:0;602:87;;10783:78;;;;;;;;;;;;10819:42;10783:78;;2811:104;;;;;;;;;;;;;:::i;11649:27::-;;;;;;;;;;;;;;;;4517:413;;;;;;;;;;-1:-1:-1;4517:413:0;;;;;:::i;:::-;;:::i;3275:175::-;;;;;;;;;;-1:-1:-1;3275:175:0;;;;;:::i;:::-;;:::i;11855:57::-;;;;;;;;;;-1:-1:-1;11855:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11567:33;;;;;;;;;;-1:-1:-1;11567:33:0;;;;;;;;;;;10476:71;;;;;;;;;;;;;:::i;3458:151::-;;;;;;;;;;-1:-1:-1;3458:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3574:18:0;;;3547:7;3574:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3458:151;10621:71;;;;;;;;;;;;;:::i;936:201::-;;;;;;;;;;-1:-1:-1;936:201:0;;;;;:::i;:::-;;:::i;10701:75::-;;;;;;;;;;;;10734:42;10701:75;;2703:100;2757:13;2790:5;2783:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2703:100;:::o;3617:169::-;3700:4;3717:39;228:10;3740:7;3749:6;3717:8;:39::i;:::-;-1:-1:-1;3774:4:0;3617:169;;;;;:::o;3794:492::-;3934:4;3951:36;3961:6;3969:9;3980:6;3951:9;:36::i;:::-;-1:-1:-1;;;;;4027:19:0;;4000:24;4027:19;;;:11;:19;;;;;;;;228:10;4027:33;;;;;;;;4079:26;;;;4071:79;;;;-1:-1:-1;;;4071:79:0;;3721:2:1;4071:79:0;;;3703:21:1;3760:2;3740:18;;;3733:30;3799:34;3779:18;;;3772:62;-1:-1:-1;;;3850:18:1;;;3843:38;3898:19;;4071:79:0;;;;;;;;;4186:57;4195:6;228:10;4236:6;4217:16;:25;4186:8;:57::i;:::-;-1:-1:-1;4274:4:0;;3794:492;-1:-1:-1;;;;3794:492:0:o;4294:215::-;228:10;4382:4;4431:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4431:34:0;;;;;;;;;;4382:4;;4399:80;;4422:7;;4431:47;;4468:10;;4431:47;:::i;:::-;4399:8;:80::i;825:103::-;675:6;;-1:-1:-1;;;;;675:6:0;228:10;737:23;729:68;;;;-1:-1:-1;;;729:68:0;;;;;;;:::i;:::-;890:30:::1;917:1;890:18;:30::i;:::-;825:103::o:0;13380:84::-;675:6;;-1:-1:-1;;;;;675:6:0;228:10;737:23;729:68;;;;-1:-1:-1;;;729:68:0;;;;;;;:::i;:::-;13434:14:::1;:22:::0;;-1:-1:-1;;13434:22:0::1;::::0;;13380:84::o;13252:120::-;675:6;;-1:-1:-1;;;;;675:6:0;228:10;737:23;729:68;;;;-1:-1:-1;;;729:68:0;;;;;;;:::i;:::-;13307:13:::1;:20:::0;;-1:-1:-1;;13307:20:0::1;;;::::0;;13352:12:::1;13338:11;:26:::0;13252:120::o;2811:104::-;2867:13;2900:7;2893:14;;;;;:::i;4517:413::-;228:10;4610:4;4654:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4654:34:0;;;;;;;;;;4707:35;;;;4699:85;;;;-1:-1:-1;;;4699:85:0;;4753:2:1;4699:85:0;;;4735:21:1;4792:2;4772:18;;;4765:30;4831:34;4811:18;;;4804:62;-1:-1:-1;;;4882:18:1;;;4875:35;4927:19;;4699:85:0;4551:401:1;4699:85:0;4820:67;228:10;4843:7;4871:15;4852:16;:34;4820:8;:67::i;:::-;-1:-1:-1;4918:4:0;;4517:413;-1:-1:-1;;;4517:413:0:o;3275:175::-;3361:4;3378:42;228:10;3402:9;3413:6;3378:9;:42::i;10476:71::-;10544:3;10524:16;-1:-1:-1;;;10539:1:0;10524:16;:::i;:::-;10523:24;;;;:::i;:::-;10476:71;:::o;10621:::-;10687:5;10667:16;-1:-1:-1;;;10682:1:0;10667:16;:::i;936:201::-;675:6;;-1:-1:-1;;;;;675:6:0;228:10;737:23;729:68;;;;-1:-1:-1;;;729:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1025:22:0;::::1;1017:73;;;::::0;-1:-1:-1;;;1017:73:0;;5554:2:1;1017:73:0::1;::::0;::::1;5536:21:1::0;5593:2;5573:18;;;5566:30;5632:34;5612:18;;;5605:62;-1:-1:-1;;;5683:18:1;;;5676:36;5729:19;;1017:73:0::1;5352:402:1::0;1017:73:0::1;1101:28;1120:8;1101:18;:28::i;:::-;936:201:::0;:::o;7095:380::-;-1:-1:-1;;;;;7231:19:0;;7223:68;;;;-1:-1:-1;;;7223:68:0;;5961:2:1;7223:68:0;;;5943:21:1;6000:2;5980:18;;;5973:30;6039:34;6019:18;;;6012:62;-1:-1:-1;;;6090:18:1;;;6083:34;6134:19;;7223:68:0;5759:400:1;7223:68:0;-1:-1:-1;;;;;7310:21:0;;7302:68;;;;-1:-1:-1;;;7302:68:0;;6366:2:1;7302:68:0;;;6348:21:1;6405:2;6385:18;;;6378:30;6444:34;6424:18;;;6417:62;-1:-1:-1;;;6495:18:1;;;6488:32;6537:19;;7302:68:0;6164:398:1;7302:68:0;-1:-1:-1;;;;;7383:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7435:32;;1361:25:1;;;7435:32:0;;1334:18:1;7435:32:0;;;;;;;7095:380;;;:::o;13892:4977::-;-1:-1:-1;;;;;14038:18:0;;14016:105;;;;-1:-1:-1;;;14016:105:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14154:16:0;;14132:101;;;;-1:-1:-1;;;14132:101:0;;7175:2:1;14132:101:0;;;7157:21:1;7214:2;7194:18;;;7187:30;7253:34;7233:18;;;7226:62;-1:-1:-1;;;7304:18:1;;;7297:33;7347:19;;14132:101:0;6973:399:1;14132:101:0;14248:6;14258:1;14248:11;14244:93;;14276:28;14292:4;14298:2;14302:1;14276:15;:28::i;:::-;13892:4977;;;:::o;14244:93::-;14353:14;;;;;;;14349:1681;;;675:6;;-1:-1:-1;;;;;14406:15:0;;;675:6;;14406:15;;;;:49;;-1:-1:-1;675:6:0;;-1:-1:-1;;;;;14442:13:0;;;675:6;;14442:13;;14406:49;:91;;;;-1:-1:-1;;;;;;14476:21:0;;14490:6;14476:21;;14406:91;:128;;;;-1:-1:-1;;;;;;14518:16:0;;;;14406:128;:158;;;;-1:-1:-1;14556:8:0;;;;14555:9;14406:158;14384:1635;;;14604:13;;;;;;;14599:222;;-1:-1:-1;;;;;14676:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14705:23:0;;;;;;:19;:23;;;;;;;;14676:52;14642:159;;;;-1:-1:-1;;;14642:159:0;;7579:2:1;14642:159:0;;;7561:21:1;7618:2;7598:18;;;7591:30;-1:-1:-1;;;7637:18:1;;;7630:51;7698:18;;14642:159:0;7377:345:1;14642:159:0;-1:-1:-1;;;;;14894:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;14951:35:0;;;;;;:31;:35;;;;;;;;14950:36;14894:92;14868:1136;;;10544:3;10524:16;-1:-1:-1;;;10539:1:0;10524:16;:::i;:::-;10523:24;;;;:::i;:::-;15063:6;:30;;15029:163;;;;-1:-1:-1;;;15029:163:0;;7929:2:1;15029:163:0;;;7911:21:1;7968:2;7948:18;;;7941:30;8007:34;7987:18;;;7980:62;-1:-1:-1;;;8058:18:1;;;8051:45;8113:19;;15029:163:0;7727:411:1;15029:163:0;10611:3;10591:16;-1:-1:-1;;;10606:1:0;10591:16;:::i;:::-;10590:24;;;;:::i;:::-;-1:-1:-1;;;;;3241:18:0;;3214:7;3241:18;;;;;;;;;;;15249:22;;:6;:22;:::i;:::-;:35;;15215:140;;;;-1:-1:-1;;;15215:140:0;;8345:2:1;15215:140:0;;;8327:21:1;8384:2;8364:18;;;8357:30;-1:-1:-1;;;8403:18:1;;;8396:49;8462:18;;15215:140:0;8143:343:1;15215:140:0;14868:1136;;;-1:-1:-1;;;;;15454:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;15509:37:0;;;;;;:31;:37;;;;;;;;15508:38;15454:92;15428:576;;;10544:3;10524:16;-1:-1:-1;;;10539:1:0;10524:16;:::i;:::-;10523:24;;;;:::i;:::-;15623:6;:30;;15589:164;;;;-1:-1:-1;;;15589:164:0;;8693:2:1;15589:164:0;;;8675:21:1;8732:2;8712:18;;;8705:30;8771:34;8751:18;;;8744:62;-1:-1:-1;;;8822:18:1;;;8815:46;8878:19;;15589:164:0;8491:412:1;15428:576:0;-1:-1:-1;;;;;15784:35:0;;;;;;:31;:35;;;;;;;;15779:225;;10611:3;10591:16;-1:-1:-1;;;10606:1:0;10591:16;:::i;:::-;10590:24;;;;:::i;:::-;-1:-1:-1;;;;;3241:18:0;;3214:7;3241:18;;;;;;;;;;;15878:22;;:6;:22;:::i;:::-;:35;;15844:140;;;;-1:-1:-1;;;15844:140:0;;8345:2:1;15844:140:0;;;8327:21:1;8384:2;8364:18;;;8357:30;-1:-1:-1;;;8403:18:1;;;8396:49;8462:18;;15844:140:0;8143:343:1;15844:140:0;-1:-1:-1;;;;;16047:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16076:23:0;;;;;;:19;:23;;;;;;;;16047:52;16046:79;;;;-1:-1:-1;;;;;;16104:21:0;;16120:4;16104:21;;16046:79;:102;;;;-1:-1:-1;;;;;;16129:19:0;;16143:4;16129:19;;16046:102;16042:168;;;16183:15;16165;:33;16042:168;-1:-1:-1;;;;;16224:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;16254:19;:28;16274:7;675:6;;-1:-1:-1;;;;;675:6:0;;602:87;16274:7;-1:-1:-1;;;;;16254:28:0;;;;;;;;;;;;-1:-1:-1;16254:28:0;;;;16253:29;16224:58;16220:146;;;16299:34;16316:4;16322:2;16326:6;16299:16;:34::i;16220:146::-;-1:-1:-1;;;;;16381:25:0;;;;;;:19;:25;;;;;;;;16380:26;:54;;;;-1:-1:-1;;;;;;16411:23:0;;;;;;:19;:23;;;;;;;;16410:24;16380:54;16376:556;;;-1:-1:-1;;;;;16456:31:0;;;;;;:25;:31;;;;;;;;16451:470;;-1:-1:-1;;;;;16549:19:0;;16508:38;16549:19;;;:13;:19;;;;;16624:15;;16608:13;;:31;;16624:15;16608:31;:::i;:::-;16587:18;;;:52;16675:15;16658:14;;;;:32;16451:470;;;-1:-1:-1;;;;;16772:17:0;;16731:38;16772:17;;;:13;:17;;;;;16812:13;;16772:17;;16812:18;16808:98;;16871:15;16855:31;;16808:98;16712:209;16451:470;16999:4;16944:12;3241:18;;;;;;;;;;;10687:5;10667:16;-1:-1:-1;;;10682:1:0;10667:16;:::i;:::-;10666:26;;;;:::i;:::-;16959:46;;16944:61;;17018:17;17070:11;;11002:2;17054:27;;;;:::i;:::-;17038:12;:44;;-1:-1:-1;17113:13:0;;17038:44;17113:37;;;17143:7;17113:37;:63;;;;-1:-1:-1;17168:8:0;;;;17167:9;17113:63;:112;;;;-1:-1:-1;;;;;;17194:31:0;;;;;;:25;:31;;;;;;;;17193:32;17113:112;:155;;;;-1:-1:-1;;;;;;17243:25:0;;;;;;:19;:25;;;;;;;;17242:26;17113:155;:196;;;;-1:-1:-1;;;;;;17286:23:0;;;;;;:19;:23;;;;;;;;17285:24;17113:196;17095:328;;;17336:8;:15;;-1:-1:-1;;17336:15:0;17347:4;17336:15;;;17368:10;:8;:10::i;:::-;17395:8;:16;;-1:-1:-1;;17395:16:0;;;17095:328;17451:8;;-1:-1:-1;;;;;17476:25:0;;17435:12;17476:25;;;:19;:25;;;;;;17451:8;;;;17450:9;;17476:25;;:52;;-1:-1:-1;;;;;;17505:23:0;;;;;;:19;:23;;;;;;;;17476:52;17472:100;;;-1:-1:-1;17555:5:0;17472:100;17584:12;17615:7;17611:1205;;;17644:12;17639:1028;;-1:-1:-1;;;;;17681:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;17731:1:0;17681:51;17677:602;;;17788:3;17764:21;11148:1;17764:6;:21;:::i;:::-;:27;;;;:::i;:::-;17757:34;-1:-1:-1;17836:42:0;11148:1;17837:22;11148:1;17757:34;17837:22;:::i;:::-;17836:28;;:42::i;:::-;17814:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;17917:36:0;;-1:-1:-1;11148:1:0;17918:16;11148:1;17918:4;:16;:::i;17917:36::-;17901:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;17639:1028:0;;-1:-1:-1;17639:1028:0;17677:602;-1:-1:-1;;;;;17983:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;18032:1:0;17983:50;17979:300;;;18090:3;18065:22;11196:1;18065:6;:22;:::i;17979:300::-;17639:1028;;;-1:-1:-1;;;;;18323:31:0;;;;;;:25;:31;;;;;;;;18319:333;;;18411:3;18386:22;11051:1;18386:6;:22;:::i;:::-;:28;;;;:::i;:::-;18379:35;;18459:4;18437:18;;:26;;;;;;;:::i;18319:333::-;-1:-1:-1;;;;;18493:29:0;;;;;;:25;:29;;;;;;;;18489:163;;;18580:3;18554:23;11100:2;18554:6;:23;:::i;:::-;:29;;;;:::i;:::-;18547:36;;18628:4;18606:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;18489:163:0;18687:8;;18683:91;;18716:42;18732:4;18746;18753;18716:15;:42::i;:::-;18790:14;18800:4;18790:14;;:::i;:::-;;;17611:1205;18828:33;18844:4;18850:2;18854:6;18828:15;:33::i;:::-;14005:4864;;;;13892:4977;;;:::o;1145:191::-;1238:6;;;-1:-1:-1;;;;;1255:17:0;;;-1:-1:-1;;;;;;1255:17:0;;;;;;;1288:40;;1238:6;;;1255:17;1238:6;;1288:40;;1219:16;;1288:40;1208:128;1145:191;:::o;4938:651::-;-1:-1:-1;;;;;5078:20:0;;5070:70;;;;-1:-1:-1;;;5070:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5237:17:0;;5213:21;5237:17;;;;;;;;;;;5273:23;;;;5265:74;;;;-1:-1:-1;;;5265:74:0;;9243:2:1;5265:74:0;;;9225:21:1;9282:2;9262:18;;;9255:30;9321:34;9301:18;;;9294:62;-1:-1:-1;;;9372:18:1;;;9365:36;9418:19;;5265:74:0;9041:402:1;5265:74:0;-1:-1:-1;;;;;5375:17:0;;;:9;:17;;;;;;;;;;;5395:22;;;5375:42;;5439:20;;;;;;;;:30;;5411:6;;5375:9;5439:30;;5411:6;;5439:30;:::i;:::-;;;;;;;;5504:9;-1:-1:-1;;;;;5487:35:0;5496:6;-1:-1:-1;;;;;5487:35:0;;5515:6;5487:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;5487:35:0;;;;;;;;5059:530;4938:651;;;:::o;5597:484::-;-1:-1:-1;;;;;5814:17:0;;;5790:21;5814:17;;;;;;;;;;;;;5887:22;;;5867:42;;;5931:20;;;;;;;:30;;5903:6;;5790:21;5931:30;;5903:6;;5931:30;:::i;19360:937::-;19443:4;19399:23;3241:18;;;;;;;;;;;19399:50;;19462:25;19511:12;;19490:18;;:33;;;;:::i;:::-;19462:61;-1:-1:-1;19540:20:0;;;:46;;-1:-1:-1;19564:22:0;;19540:46;19536:85;;;19603:7;;19360:937::o;19536:85::-;10687:5;10667:16;-1:-1:-1;;;10682:1:0;10667:16;:::i;:::-;10666:26;;;;:::i;:::-;19655:23;;19676:2;19655:23;:::i;:::-;19637:15;:41;19633:115;;;10687:5;10667:16;-1:-1:-1;;;10682:1:0;10667:16;:::i;:::-;10666:26;;;;:::i;:::-;19713:23;;19734:2;19713:23;:::i;:::-;19695:41;;19633:115;19760:12;19814:15;19868:21;19900:36;19814:15;19900:16;:36::i;:::-;19949:18;19970:41;19994:17;19970:21;:41;:::i;:::-;19949:62;;20022:17;20070;20055:12;;20042:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;20115:1;20100:12;:16;;;20127:18;:22;;;20175:36;;20022:65;;-1:-1:-1;10819:42:0;;20022:65;;20175:36;20115:1;20175:36;20022:65;10819:42;20175:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20235:54:0;;20162:49;;-1:-1:-1;10910:42:0;;20263:21;;20235:54;;;;20263:21;10910:42;20235:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;19360:937:0:o;7771:98::-;7829:7;7856:5;7860:1;7856;:5;:::i;:::-;7849:12;7771:98;-1:-1:-1;;;7771:98:0:o;18877:475::-;18967:16;;;18981:1;18967:16;;;;;;;;18943:21;;18967:16;;;;;;;;;;-1:-1:-1;18967:16:0;18943:40;;19012:4;18994;18999:1;18994:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18994:23:0;;;-1:-1:-1;;;;;18994:23:0;;;;;19038:15;-1:-1:-1;;;;;19038:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19028:4;19033:1;19028:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;19028:32:0;;;-1:-1:-1;;;;;19028:32:0;;;;;19073:62;19090:4;19105:15;19123:11;19073:8;:62::i;:::-;19148:196;;-1:-1:-1;;;19148:196:0;;-1:-1:-1;;;;;19148:15:0;:66;;;;:196;;19229:11;;19255:1;;19271:4;;19298;;19318:15;;19148:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18932:420;18877:475;:::o;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;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:380::-;3213:1;3209:12;;;;3256;;;3277:61;;3331:4;3323:6;3319:17;3309:27;;3277:61;3384:2;3376:6;3373:14;3353:18;3350:38;3347:161;;3430:10;3425:3;3421:20;3418:1;3411:31;3465:4;3462:1;3455:15;3493:4;3490:1;3483:15;3347:161;;3134:380;;;:::o;3928:127::-;3989:10;3984:3;3980:20;3977:1;3970:31;4020:4;4017:1;4010:15;4044:4;4041:1;4034:15;4060:125;4125:9;;;4146:10;;;4143:36;;;4159:18;;:::i;4190:356::-;4392:2;4374:21;;;4411:18;;;4404:30;4470:34;4465:2;4450:18;;4443:62;4537:2;4522:18;;4190:356::o;4957:168::-;5030:9;;;5061;;5078:15;;;5072:22;;5058:37;5048:71;;5099:18;;:::i;5130:217::-;5170:1;5196;5186:132;;5240:10;5235:3;5231:20;5228:1;5221:31;5275:4;5272:1;5265:15;5303:4;5300:1;5293:15;5186:132;-1:-1:-1;5332:9:1;;5130:217::o;6567:401::-;6769:2;6751:21;;;6808:2;6788:18;;;6781:30;6847:34;6842:2;6827:18;;6820:62;-1:-1:-1;;;6913:2:1;6898:18;;6891:35;6958:3;6943:19;;6567:401::o;8908:128::-;8975:9;;;8996:11;;;8993:37;;;9010:18;;:::i;9790:127::-;9851:10;9846:3;9842:20;9839:1;9832:31;9882:4;9879:1;9872:15;9906:4;9903:1;9896:15;9922:251;9992:6;10045:2;10033:9;10024:7;10020:23;10016:32;10013:52;;;10061:1;10058;10051:12;10013:52;10093:9;10087:16;10112:31;10137:5;10112:31;:::i;10178:980::-;10440:4;10488:3;10477:9;10473:19;10519:6;10508:9;10501:25;10545:2;10583:6;10578:2;10567:9;10563:18;10556:34;10626:3;10621:2;10610:9;10606:18;10599:31;10650:6;10685;10679:13;10716:6;10708;10701:22;10754:3;10743:9;10739:19;10732:26;;10793:2;10785:6;10781:15;10767:29;;10814:1;10824:195;10838:6;10835:1;10832:13;10824:195;;;10903:13;;-1:-1:-1;;;;;10899:39:1;10887:52;;10994:15;;;;10959:12;;;;10935:1;10853:9;10824:195;;;-1:-1:-1;;;;;;;11075:32:1;;;;11070:2;11055:18;;11048:60;-1:-1:-1;;;11139:3:1;11124:19;11117:35;11036:3;10178:980;-1:-1:-1;;;10178:980:1:o

Swarm Source

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