ETH Price: $2,287.01 (-3.62%)

Token

NERD Token (NERD)
 

Overview

Max Total Supply

420,690,000,000,000 NERD

Holders

240

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 NERD

Value
$0.00
0x60e7d5005d93088e89cb91c188102cf40dce22c6
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:
NERDToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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 IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);

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

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

    function WETH() external pure returns (address);

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

library Address {
	function isContract(address account) internal view returns (bool) {
		uint256 size;
		assembly {
			size := extcodesize(account)
		}
		return size > 0;
	}

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

		(bool success, ) = recipient.call{value: amount}("");
		require(
			success,
			"Address: unable to send value, recipient may have reverted"
		);
	}

	function functionCall(address target, bytes memory data)
	internal
	returns (bytes memory)
	{
		return functionCall(target, data, "Address: low-level call failed");
	}

	function functionCall(
		address target,
		bytes memory data,
		string memory errorMessage
	) internal returns (bytes memory) {
		return functionCallWithValue(target, data, 0, errorMessage);
	}

	function functionCallWithValue(
		address target,
		bytes memory data,
		uint256 value
	) internal returns (bytes memory) {
		return
		functionCallWithValue(
			target,
			data,
			value,
			"Address: low-level call with value failed"
		);
	}

	function functionCallWithValue(
		address target,
		bytes memory data,
		uint256 value,
		string memory errorMessage
	) internal returns (bytes memory) {
		require(
			address(this).balance >= value,
			"Address: insufficient balance for call"
		);
		require(isContract(target), "Address: call to non-contract");

		(bool success, bytes memory returndata) = target.call{value: value}(
		data
		);
		return _verifyCallResult(success, returndata, errorMessage);
	}

	function functionStaticCall(address target, bytes memory data)
	internal
	view
	returns (bytes memory)
	{
		return
		functionStaticCall(
			target,
			data,
			"Address: low-level static call failed"
		);
	}

	function functionStaticCall(
		address target,
		bytes memory data,
		string memory errorMessage
	) internal view returns (bytes memory) {
		require(isContract(target), "Address: static call to non-contract");

		(bool success, bytes memory returndata) = target.staticcall(data);
		return _verifyCallResult(success, returndata, errorMessage);
	}

	function functionDelegateCall(address target, bytes memory data)
	internal
	returns (bytes memory)
	{
		return
		functionDelegateCall(
			target,
			data,
			"Address: low-level delegate call failed"
		);
	}

	function functionDelegateCall(
		address target,
		bytes memory data,
		string memory errorMessage
	) internal returns (bytes memory) {
		require(isContract(target), "Address: delegate call to non-contract");

		(bool success, bytes memory returndata) = target.delegatecall(data);
		return _verifyCallResult(success, returndata, errorMessage);
	}

	function _verifyCallResult(
		bool success,
		bytes memory returndata,
		string memory errorMessage
	) private pure returns (bytes memory) {
		if (success) {
			return returndata;
		} else {
			if (returndata.length > 0) {
				assembly {
					let returndata_size := mload(returndata)
					revert(add(32, returndata), returndata_size)
				}
			} else {
				revert(errorMessage);
			}
		}
	}
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    function name() 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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }


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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

    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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract NERDToken is Ownable, ERC20 {
    using Address for address;

    IRouter public uniswapV2Router;
    address public immutable uniswapV2Pair;

    string private constant _name = "NERD Token";
    string private constant _symbol = "NERD";

    bool public isTradingEnabled;

    uint256 public initialSupply = 420690000000000 * (10**18);

    uint256 public maxWalletAmount = initialSupply * 150 / 10000;

    uint256 private _launchStartTimestamp;
    uint256 private _launchBlockNumber;

    mapping (address => bool) private _isBlocked;
    mapping(address => bool) private _isAllowedToTradeWhenDisabled;
    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    mapping(address => bool) public automatedMarketMakerPairs;

    event AutomatedMarketMakerPairChange(address indexed pair, bool indexed value);
    event BlockedAccountChange(address indexed holder, bool indexed status);
    event UniswapV2RouterChange(address indexed newAddress, address indexed oldAddress);
    event MaxWalletAmountChange(uint256 indexed newValue, uint256 indexed oldValue);
    event ExcludeFromMaxWalletChange(address indexed account, bool isExcluded);
    event AllowedWhenTradingDisabledChange(address indexed account, bool isExcluded);
    event ClaimOverflow(address token, uint256 amount);
    event TradingStatusChange(bool indexed newValue, bool indexed oldValue);

    constructor() ERC20(_name, _symbol) {
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IFactory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);

        _isAllowedToTradeWhenDisabled[owner()] = true;
        _isAllowedToTradeWhenDisabled[address(this)] = true;

        _isBlocked[address(0xae2Fc483527B8EF99EB5D9B44875F005ba1FaE13)] = true;
        _isBlocked[address(0x758E8229Dd38cF11fA9E7c0D5f790b4CA16b3B16)] = true;

        _isExcludedFromMaxWalletLimit[_uniswapV2Pair] = true;
        _isExcludedFromMaxWalletLimit[address(uniswapV2Router)] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[owner()] = true;

        _mint(owner(), initialSupply);
    }

    receive() external payable {}

    function activateTrading() external onlyOwner {
        isTradingEnabled = true;
        if(_launchBlockNumber == 0) {
            _launchBlockNumber = block.number;
            _launchStartTimestamp = block.timestamp;
        }
        emit TradingStatusChange(true, false);
    }
    function deactivateTrading() external onlyOwner {
        isTradingEnabled = false;
        emit TradingStatusChange(false, true);
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value,"Nerd: Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;
        emit AutomatedMarketMakerPairChange(pair, value);
    }
    function allowTradingWhenDisabled(address account, bool allowed) external onlyOwner {
        _isAllowedToTradeWhenDisabled[account] = allowed;
        emit AllowedWhenTradingDisabledChange(account, allowed);
    }
    function blockAccount(address account) external onlyOwner {
        require(!_isBlocked[account], "Nerd: Account is already blocked");
        _isBlocked[account] = true;
        emit BlockedAccountChange(account, true);
    }
    function unblockAccount(address account) external onlyOwner {
        require(_isBlocked[account], "Nerd: Account is not blocked");
        _isBlocked[account] = false;
        emit BlockedAccountChange(account, false);
    }
    function excludeFromMaxWalletLimit(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxWalletLimit[account] != excluded,"Nerd: Account is already the value of 'excluded'");
        _isExcludedFromMaxWalletLimit[account] = excluded;
        emit ExcludeFromMaxWalletChange(account, excluded);
    }
    function setUniswapRouter(address newAddress) external onlyOwner {
        require(newAddress != address(uniswapV2Router),"Nerd: The router already has that address");
        emit UniswapV2RouterChange(newAddress, address(uniswapV2Router));
        uniswapV2Router = IRouter(newAddress);
    }
    function setMaxWalletAmount(uint256 newValue) external onlyOwner {
        require(newValue != maxWalletAmount,"Nerd: Cannot update maxWalletAmount to same value");
        emit MaxWalletAmountChange(newValue, maxWalletAmount);
        maxWalletAmount = newValue;
    }
    function claimLaunchTokens() external onlyOwner {
		require(_launchStartTimestamp > 0, "Nerd: Launch must have occurred");
		require(block.number - _launchBlockNumber > 5, "Nerd: Only claim launch tokens after first 5 blocks");
		uint256 tokenBalance = balanceOf(address(this));
        (bool success) = IERC20(address(this)).transfer(owner(), tokenBalance);
        if (success){
            emit ClaimOverflow(address(this), tokenBalance);
        }
    }
    function claimETHOverflow(uint256 amount) external onlyOwner {
        require(amount <= address(this).balance, "Nerd: Cannot send more than contract balance");
        (bool success, ) = address(owner()).call{ value: amount }("");
        if (success) {
            emit ClaimOverflow(uniswapV2Router.WETH(), amount);
        }
    }
    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 (!_isAllowedToTradeWhenDisabled[from] && !_isAllowedToTradeWhenDisabled[to]) {
            require(isTradingEnabled, "Nerd: Trading is currently disabled.");
            require(!_isBlocked[to], "Nerd: Account is blocked");
            require(!_isBlocked[from], "Nerd: Account is blocked");
            if (!_isExcludedFromMaxWalletLimit[to]) {
                require((balanceOf(to) + amount) <= maxWalletAmount, "Nerd: Expected wallet amount exceeds the maxWalletAmount.");
            }
        }

        if (_launchStartTimestamp > 0 && (block.number - _launchBlockNumber <= 5)) {
            super._transfer(from, address(this), amount);
        } else {
            super._transfer(from, to, amount);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"AllowedWhenTradingDisabledChange","type":"event"},{"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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"AutomatedMarketMakerPairChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockedAccountChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimOverflow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromMaxWalletChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"MaxWalletAmountChange","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":"bool","name":"newValue","type":"bool"},{"indexed":true,"internalType":"bool","name":"oldValue","type":"bool"}],"name":"TradingStatusChange","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":"UniswapV2RouterChange","type":"event"},{"inputs":[],"name":"activateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowTradingWhenDisabled","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"blockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimETHOverflow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLaunchTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deactivateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWalletLimit","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":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setUniswapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526d14bddab3e51a57cff87a5000000060075561271060075460966200002a9190620005be565b620000369190620005de565b6008553480156200004657600080fd5b506040518060400160405280600a8152602001692722a922102a37b5b2b760b11b815250604051806040016040528060048152602001631391549160e21b815250600062000099620003ea60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506004620000f18382620006a5565b506005620001008282620006a5565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200015d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000183919062000771565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f7919062000771565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000771565b600680546001600160a01b0319166001600160a01b0385811691909117909155811660805290506200029f816001620003ee565b6001600c6000620002b86000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530808252600c85528382208054871660019081179091557f5edcfdbae90238920add7ae5e74e1d7eaf4b89b50a4ede406bdde5b832ada00f80548816821790557f1bea79804154005750a60e3a76d247be8b6d694ba7a09e03c651beed03b62b5380548816821790558784168352600d958690528483208054881682179055600654909316825283822080548716841790558152918220805490941681179093556200039a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620003e2620003d96000546001600160a01b031690565b600754620004de565b5050620007b9565b3390565b6001600160a01b0382166000908152600e602052604090205481151560ff9091161515036200048a5760405162461bcd60e51b815260206004820152603e60248201527f4e6572643a204175746f6d61746564206d61726b6574206d616b65722070616960448201527f7220697320616c72656164792073657420746f20746861742076616c7565000060648201526084015b60405180910390fd5b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fa666b9b2dc2c8f2d86fda7ba3a115be30d3a958fd84d359cbc6bc919df97990a91a35050565b6001600160a01b038216620005365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000481565b80600360008282546200054a9190620007a3565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005d857620005d8620005a8565b92915050565b600082620005fc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062c57607f821691505b6020821081036200064d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a357600081815260208120601f850160051c810160208610156200067c5750805b601f850160051c820191505b818110156200069d5782815560010162000688565b505050505050565b81516001600160401b03811115620006c157620006c162000601565b620006d981620006d2845462000617565b8462000653565b602080601f831160018114620007115760008415620006f85750858301515b600019600386901b1c1916600185901b1785556200069d565b600085815260208120601f198616915b82811015620007425788860151825594840194600190910190840162000721565b5085821015620007615787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200078457600080fd5b81516001600160a01b03811681146200079c57600080fd5b9392505050565b80820180821115620005d857620005d8620005a8565b608051611b01620007d560003960006103b10152611b016000f3fe6080604052600436106101d15760003560e01c80634d78fdc6116100f7578063a457c2d711610095578063bea9849e11610064578063bea9849e14610537578063d322157614610557578063dd62ed3e14610577578063f2fde38b1461059757600080fd5b8063a457c2d7146104b1578063a9059cbb146104d1578063aa4bde28146104f1578063b62496f51461050757600080fd5b8063781edb3c116100d1578063781edb3c1461043e5780637c0a893d1461045e5780638da5cb5b1461047e57806395d89b411461049c57600080fd5b80634d78fdc6146103d357806370a08231146103f3578063715018a61461042957600080fd5b806323b872dd1161016f57806334cf1fea1161013e57806334cf1fea14610354578063378dc3dc14610369578063395093511461037f57806349bd5a5e1461039f57600080fd5b806323b872dd146102e357806327a14fc2146103035780632cc25d1414610323578063313ce5671461033857600080fd5b8063098df585116101ab578063098df585146102555780630bd05b69146102775780631694505e1461028c57806318160ddd146102c457600080fd5b8063064a59d0146101dd57806306fdde0314610213578063095ea7b31461023557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506006546101fe90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b506102286105b7565b60405161020a91906117d9565b34801561024157600080fd5b506101fe61025036600461183f565b610649565b34801561026157600080fd5b5061027561027036600461186b565b610663565b005b34801561028357600080fd5b5061027561080b565b34801561029857600080fd5b506006546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102d057600080fd5b506003545b60405190815260200161020a565b3480156102ef57600080fd5b506101fe6102fe366004611884565b61088b565b34801561030f57600080fd5b5061027561031e36600461186b565b6108af565b34801561032f57600080fd5b50610275610977565b34801561034457600080fd5b506040516012815260200161020a565b34801561036057600080fd5b50610275610b3f565b34801561037557600080fd5b506102d560075481565b34801561038b57600080fd5b506101fe61039a36600461183f565b610ba6565b3480156103ab57600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103df57600080fd5b506102756103ee3660046118c5565b610bc8565b3480156103ff57600080fd5b506102d561040e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b34801561043557600080fd5b50610275610ca7565b34801561044a57600080fd5b506102756104593660046118f7565b610d1b565b34801561046a57600080fd5b506102756104793660046118c5565b610e2e565b34801561048a57600080fd5b506000546001600160a01b03166102ac565b3480156104a857600080fd5b50610228610f13565b3480156104bd57600080fd5b506101fe6104cc36600461183f565b610f22565b3480156104dd57600080fd5b506101fe6104ec36600461183f565b610f9d565b3480156104fd57600080fd5b506102d560085481565b34801561051357600080fd5b506101fe6105223660046118c5565b600e6020526000908152604090205460ff1681565b34801561054357600080fd5b506102756105523660046118c5565b610fab565b34801561056357600080fd5b506102756105723660046118f7565b6110a2565b34801561058357600080fd5b506102d5610592366004611930565b611124565b3480156105a357600080fd5b506102756105b23660046118c5565b61114f565b6060600480546105c69061195e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061195e565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b600033610657818585611239565b60019150505b92915050565b6000546001600160a01b031633146106965760405162461bcd60e51b815260040161068d90611998565b60405180910390fd5b478111156106fb5760405162461bcd60e51b815260206004820152602c60248201527f4e6572643a2043616e6e6f742073656e64206d6f7265207468616e20636f6e7460448201526b726163742062616c616e636560a01b606482015260840161068d565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b50509050801561080757600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906119cd565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b1916600160a01b179055600a5460000361085b5743600a55426009555b6040516000906001907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908390a3565b60003361089985828561135d565b6108a48585856113d7565b506001949350505050565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260040161068d90611998565b60085481036109445760405162461bcd60e51b815260206004820152603160248201527f4e6572643a2043616e6e6f7420757064617465206d617857616c6c6574416d6f604482015270756e7420746f2073616d652076616c756560781b606482015260840161068d565b60085460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600855565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161068d90611998565b6000600954116109f35760405162461bcd60e51b815260206004820152601f60248201527f4e6572643a204c61756e6368206d7573742068617665206f6363757272656400604482015260640161068d565b6005600a5443610a039190611a00565b11610a6c5760405162461bcd60e51b815260206004820152603360248201527f4e6572643a204f6e6c7920636c61696d206c61756e636820746f6b656e73206160448201527266746572206669727374203520626c6f636b7360681b606482015260840161068d565b30600081815260016020526040812054815490929063a9059cbb906001600160a01b03166040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611a13565b905080156108075760408051308152602081018490527fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d91016107fe565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b191690556040516001906000907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908290a3565b600033610657818585610bb98383611124565b610bc39190611a30565b611239565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff16610c5a5760405162461bcd60e51b815260206004820152601c60248201527f4e6572643a204163636f756e74206973206e6f7420626c6f636b656400000000604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055519091907f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba908390a350565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161068d90611998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000908152600d602052604090205481151560ff909116151503610dce5760405162461bcd60e51b815260206004820152603060248201527f4e6572643a204163636f756e7420697320616c7265616479207468652076616c60448201526f7565206f6620276578636c756465642760801b606482015260840161068d565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527ff5133f371b17bf21ce0df4ae2c1b6e11ca7c2f27257eb55282edb1ccfd4ecb2e91015b60405180910390a25050565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff1615610ec15760405162461bcd60e51b815260206004820181905260248201527f4e6572643a204163636f756e7420697320616c726561647920626c6f636b6564604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915590519092917f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba91a350565b6060600580546105c69061195e565b60003381610f308286611124565b905083811015610f905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161068d565b6108a48286868403611239565b6000336106578185856113d7565b6000546001600160a01b03163314610fd55760405162461bcd60e51b815260040161068d90611998565b6006546001600160a01b03908116908216036110455760405162461bcd60e51b815260206004820152602960248201527f4e6572643a2054686520726f7574657220616c7265616479206861732074686160448201526874206164647265737360b81b606482015260840161068d565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110cc5760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000818152600c6020908152604091829020805460ff191685151590811790915591519182527fcb9f97b7b4b41413e5c8d418a8cf9a88db1cf34dee66b213d070faf881d9d3509101610e22565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111795760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166111de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661129b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166112fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113698484611124565b905060001981146113d157818110156113c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161068d565b6113d18484848403611239565b50505050565b6001600160a01b0383166113fd5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166114235760405162461bcd60e51b815260040161068d90611a88565b8060000361143c57611437838360006116a8565b505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561147e57506001600160a01b0382166000908152600c602052604090205460ff16155b1561167157600654600160a01b900460ff166114e85760405162461bcd60e51b8152602060048201526024808201527f4e6572643a2054726164696e672069732063757272656e746c792064697361626044820152633632b21760e11b606482015260840161068d565b6001600160a01b0382166000908152600b602052604090205460ff161561154c5760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0383166000908152600b602052604090205460ff16156115b05760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0382166000908152600d602052604090205460ff1661167157600854816115f3846001600160a01b031660009081526001602052604090205490565b6115fd9190611a30565b11156116715760405162461bcd60e51b815260206004820152603960248201527f4e6572643a2045787065637465642077616c6c657420616d6f756e742065786360448201527f6565647320746865206d617857616c6c6574416d6f756e742e00000000000000606482015260840161068d565b600060095411801561169157506005600a544361168e9190611a00565b11155b156116a1576114378330836116a8565b6114378383835b6001600160a01b0383166116ce5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166116f45760405162461bcd60e51b815260040161068d90611a88565b6001600160a01b0383166000908152600160205260409020548181101561176c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161068d565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117cc9086815260200190565b60405180910390a36113d1565b600060208083528351808285015260005b81811015611806578581018301518582016040015282016117ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183c57600080fd5b50565b6000806040838503121561185257600080fd5b823561185d81611827565b946020939093013593505050565b60006020828403121561187d57600080fd5b5035919050565b60008060006060848603121561189957600080fd5b83356118a481611827565b925060208401356118b481611827565b929592945050506040919091013590565b6000602082840312156118d757600080fd5b81356118e281611827565b9392505050565b801515811461183c57600080fd5b6000806040838503121561190a57600080fd5b823561191581611827565b91506020830135611925816118e9565b809150509250929050565b6000806040838503121561194357600080fd5b823561194e81611827565b9150602083013561192581611827565b600181811c9082168061197257607f821691505b60208210810361199257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119df57600080fd5b81516118e281611827565b634e487b7160e01b600052601160045260246000fd5b8181038181111561065d5761065d6119ea565b600060208284031215611a2557600080fd5b81516118e2816118e9565b8082018082111561065d5761065d6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea2646970667358221220124c1927ff4a075bea2fea8bfe1248006aaa73c0f295dece7ce894db212bcd6364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80634d78fdc6116100f7578063a457c2d711610095578063bea9849e11610064578063bea9849e14610537578063d322157614610557578063dd62ed3e14610577578063f2fde38b1461059757600080fd5b8063a457c2d7146104b1578063a9059cbb146104d1578063aa4bde28146104f1578063b62496f51461050757600080fd5b8063781edb3c116100d1578063781edb3c1461043e5780637c0a893d1461045e5780638da5cb5b1461047e57806395d89b411461049c57600080fd5b80634d78fdc6146103d357806370a08231146103f3578063715018a61461042957600080fd5b806323b872dd1161016f57806334cf1fea1161013e57806334cf1fea14610354578063378dc3dc14610369578063395093511461037f57806349bd5a5e1461039f57600080fd5b806323b872dd146102e357806327a14fc2146103035780632cc25d1414610323578063313ce5671461033857600080fd5b8063098df585116101ab578063098df585146102555780630bd05b69146102775780631694505e1461028c57806318160ddd146102c457600080fd5b8063064a59d0146101dd57806306fdde0314610213578063095ea7b31461023557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506006546101fe90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b506102286105b7565b60405161020a91906117d9565b34801561024157600080fd5b506101fe61025036600461183f565b610649565b34801561026157600080fd5b5061027561027036600461186b565b610663565b005b34801561028357600080fd5b5061027561080b565b34801561029857600080fd5b506006546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102d057600080fd5b506003545b60405190815260200161020a565b3480156102ef57600080fd5b506101fe6102fe366004611884565b61088b565b34801561030f57600080fd5b5061027561031e36600461186b565b6108af565b34801561032f57600080fd5b50610275610977565b34801561034457600080fd5b506040516012815260200161020a565b34801561036057600080fd5b50610275610b3f565b34801561037557600080fd5b506102d560075481565b34801561038b57600080fd5b506101fe61039a36600461183f565b610ba6565b3480156103ab57600080fd5b506102ac7f000000000000000000000000a6eb1299b2eb7ff9541c9fe8ebef5c83f393f03a81565b3480156103df57600080fd5b506102756103ee3660046118c5565b610bc8565b3480156103ff57600080fd5b506102d561040e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b34801561043557600080fd5b50610275610ca7565b34801561044a57600080fd5b506102756104593660046118f7565b610d1b565b34801561046a57600080fd5b506102756104793660046118c5565b610e2e565b34801561048a57600080fd5b506000546001600160a01b03166102ac565b3480156104a857600080fd5b50610228610f13565b3480156104bd57600080fd5b506101fe6104cc36600461183f565b610f22565b3480156104dd57600080fd5b506101fe6104ec36600461183f565b610f9d565b3480156104fd57600080fd5b506102d560085481565b34801561051357600080fd5b506101fe6105223660046118c5565b600e6020526000908152604090205460ff1681565b34801561054357600080fd5b506102756105523660046118c5565b610fab565b34801561056357600080fd5b506102756105723660046118f7565b6110a2565b34801561058357600080fd5b506102d5610592366004611930565b611124565b3480156105a357600080fd5b506102756105b23660046118c5565b61114f565b6060600480546105c69061195e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061195e565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b600033610657818585611239565b60019150505b92915050565b6000546001600160a01b031633146106965760405162461bcd60e51b815260040161068d90611998565b60405180910390fd5b478111156106fb5760405162461bcd60e51b815260206004820152602c60248201527f4e6572643a2043616e6e6f742073656e64206d6f7265207468616e20636f6e7460448201526b726163742062616c616e636560a01b606482015260840161068d565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b50509050801561080757600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906119cd565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b1916600160a01b179055600a5460000361085b5743600a55426009555b6040516000906001907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908390a3565b60003361089985828561135d565b6108a48585856113d7565b506001949350505050565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260040161068d90611998565b60085481036109445760405162461bcd60e51b815260206004820152603160248201527f4e6572643a2043616e6e6f7420757064617465206d617857616c6c6574416d6f604482015270756e7420746f2073616d652076616c756560781b606482015260840161068d565b60085460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600855565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161068d90611998565b6000600954116109f35760405162461bcd60e51b815260206004820152601f60248201527f4e6572643a204c61756e6368206d7573742068617665206f6363757272656400604482015260640161068d565b6005600a5443610a039190611a00565b11610a6c5760405162461bcd60e51b815260206004820152603360248201527f4e6572643a204f6e6c7920636c61696d206c61756e636820746f6b656e73206160448201527266746572206669727374203520626c6f636b7360681b606482015260840161068d565b30600081815260016020526040812054815490929063a9059cbb906001600160a01b03166040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611a13565b905080156108075760408051308152602081018490527fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d91016107fe565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b191690556040516001906000907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908290a3565b600033610657818585610bb98383611124565b610bc39190611a30565b611239565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff16610c5a5760405162461bcd60e51b815260206004820152601c60248201527f4e6572643a204163636f756e74206973206e6f7420626c6f636b656400000000604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055519091907f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba908390a350565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161068d90611998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000908152600d602052604090205481151560ff909116151503610dce5760405162461bcd60e51b815260206004820152603060248201527f4e6572643a204163636f756e7420697320616c7265616479207468652076616c60448201526f7565206f6620276578636c756465642760801b606482015260840161068d565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527ff5133f371b17bf21ce0df4ae2c1b6e11ca7c2f27257eb55282edb1ccfd4ecb2e91015b60405180910390a25050565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff1615610ec15760405162461bcd60e51b815260206004820181905260248201527f4e6572643a204163636f756e7420697320616c726561647920626c6f636b6564604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915590519092917f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba91a350565b6060600580546105c69061195e565b60003381610f308286611124565b905083811015610f905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161068d565b6108a48286868403611239565b6000336106578185856113d7565b6000546001600160a01b03163314610fd55760405162461bcd60e51b815260040161068d90611998565b6006546001600160a01b03908116908216036110455760405162461bcd60e51b815260206004820152602960248201527f4e6572643a2054686520726f7574657220616c7265616479206861732074686160448201526874206164647265737360b81b606482015260840161068d565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110cc5760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000818152600c6020908152604091829020805460ff191685151590811790915591519182527fcb9f97b7b4b41413e5c8d418a8cf9a88db1cf34dee66b213d070faf881d9d3509101610e22565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111795760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166111de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661129b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166112fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113698484611124565b905060001981146113d157818110156113c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161068d565b6113d18484848403611239565b50505050565b6001600160a01b0383166113fd5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166114235760405162461bcd60e51b815260040161068d90611a88565b8060000361143c57611437838360006116a8565b505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561147e57506001600160a01b0382166000908152600c602052604090205460ff16155b1561167157600654600160a01b900460ff166114e85760405162461bcd60e51b8152602060048201526024808201527f4e6572643a2054726164696e672069732063757272656e746c792064697361626044820152633632b21760e11b606482015260840161068d565b6001600160a01b0382166000908152600b602052604090205460ff161561154c5760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0383166000908152600b602052604090205460ff16156115b05760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0382166000908152600d602052604090205460ff1661167157600854816115f3846001600160a01b031660009081526001602052604090205490565b6115fd9190611a30565b11156116715760405162461bcd60e51b815260206004820152603960248201527f4e6572643a2045787065637465642077616c6c657420616d6f756e742065786360448201527f6565647320746865206d617857616c6c6574416d6f756e742e00000000000000606482015260840161068d565b600060095411801561169157506005600a544361168e9190611a00565b11155b156116a1576114378330836116a8565b6114378383835b6001600160a01b0383166116ce5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166116f45760405162461bcd60e51b815260040161068d90611a88565b6001600160a01b0383166000908152600160205260409020548181101561176c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161068d565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117cc9086815260200190565b60405180910390a36113d1565b600060208083528351808285015260005b81811015611806578581018301518582016040015282016117ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183c57600080fd5b50565b6000806040838503121561185257600080fd5b823561185d81611827565b946020939093013593505050565b60006020828403121561187d57600080fd5b5035919050565b60008060006060848603121561189957600080fd5b83356118a481611827565b925060208401356118b481611827565b929592945050506040919091013590565b6000602082840312156118d757600080fd5b81356118e281611827565b9392505050565b801515811461183c57600080fd5b6000806040838503121561190a57600080fd5b823561191581611827565b91506020830135611925816118e9565b809150509250929050565b6000806040838503121561194357600080fd5b823561194e81611827565b9150602083013561192581611827565b600181811c9082168061197257607f821691505b60208210810361199257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119df57600080fd5b81516118e281611827565b634e487b7160e01b600052601160045260246000fd5b8181038181111561065d5761065d6119ea565b600060208284031215611a2557600080fd5b81516118e2816118e9565b8082018082111561065d5761065d6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea2646970667358221220124c1927ff4a075bea2fea8bfe1248006aaa73c0f295dece7ce894db212bcd6364736f6c63430008130033

Deployed Bytecode Sourcemap

12438:6773:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12700:28;;;;;;;;;;-1:-1:-1;12700:28:0;;;;-1:-1:-1;;;12700:28:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;12700:28:0;;;;;;;;7103:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8034:201::-;;;;;;;;;;-1:-1:-1;8034:201:0;;;;;:::i;:::-;;:::i;17736:340::-;;;;;;;;;;-1:-1:-1;17736:340:0;;;;;:::i;:::-;;:::i;:::-;;14887:288;;;;;;;;;;;;;:::i;12516:30::-;;;;;;;;;;-1:-1:-1;12516:30:0;;;;-1:-1:-1;;;;;12516:30:0;;;;;;-1:-1:-1;;;;;1579:32:1;;;1561:51;;1549:2;1534:18;12516:30:0;1400:218:1;7423:108:0;;;;;;;;;;-1:-1:-1;7511:12:0;;7423:108;;;1769:25:1;;;1757:2;1742:18;7423:108:0;1623:177:1;8245:295:0;;;;;;;;;;-1:-1:-1;8245:295:0;;;;;:::i;:::-;;:::i;16986:273::-;;;;;;;;;;-1:-1:-1;16986:273:0;;;;;:::i;:::-;;:::i;17265:465::-;;;;;;;;;;;;;:::i;7322:93::-;;;;;;;;;;-1:-1:-1;7322:93:0;;7405:2;2408:36:1;;2396:2;2381:18;7322:93:0;2266:184:1;15181:139:0;;;;;;;;;;;;;:::i;12737:57::-;;;;;;;;;;;;;;;;8548:238;;;;;;;;;;-1:-1:-1;8548:238:0;;;;;:::i;:::-;;:::i;12553:38::-;;;;;;;;;;;;;;;16105:229;;;;;;;;;;-1:-1:-1;16105:229:0;;;;;:::i;:::-;;:::i;7539:127::-;;;;;;;;;;-1:-1:-1;7539:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7640:18:0;7613:7;7640:18;;;:9;:18;;;;;;;7539:127;6290:148;;;;;;;;;;;;;:::i;16340:336::-;;;;;;;;;;-1:-1:-1;16340:336:0;;;;;:::i;:::-;;:::i;15869:230::-;;;;;;;;;;-1:-1:-1;15869:230:0;;;;;:::i;:::-;;:::i;6076:79::-;;;;;;;;;;-1:-1:-1;6114:7:0;6141:6;-1:-1:-1;;;;;6141:6:0;6076:79;;7211:104;;;;;;;;;;;;;:::i;8794:436::-;;;;;;;;;;-1:-1:-1;8794:436:0;;;;;:::i;:::-;;:::i;7674:193::-;;;;;;;;;;-1:-1:-1;7674:193:0;;;;;:::i;:::-;;:::i;12803:60::-;;;;;;;;;;;;;;;;13148:57;;;;;;;;;;-1:-1:-1;13148:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16682:298;;;;;;;;;;-1:-1:-1;16682:298:0;;;;;:::i;:::-;;:::i;15646:217::-;;;;;;;;;;-1:-1:-1;15646:217:0;;;;;:::i;:::-;;:::i;7875:151::-;;;;;;;;;;-1:-1:-1;7875:151:0;;;;;:::i;:::-;;:::i;6446:244::-;;;;;;;;;;-1:-1:-1;6446:244:0;;;;;:::i;:::-;;:::i;7103:100::-;7157:13;7190:5;7183:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:100;:::o;8034:201::-;8117:4;5489:10;8173:32;5489:10;8189:7;8198:6;8173:8;:32::i;:::-;8223:4;8216:11;;;8034:201;;;;;:::o;17736:340::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;;;;;;;;;17826:21:::1;17816:6;:31;;17808:88;;;::::0;-1:-1:-1;;;17808:88:0;;4766:2:1;17808:88:0::1;::::0;::::1;4748:21:1::0;4805:2;4785:18;;;4778:30;4844:34;4824:18;;;4817:62;-1:-1:-1;;;4895:18:1;;;4888:42;4947:19;;17808:88:0::1;4564:408:1::0;17808:88:0::1;17908:12;6141:6:::0;;17926:42:::1;::::0;-1:-1:-1;;;;;6141:6:0;;;;17956;;17908:12;17926:42;17908:12;17926:42;17956:6;6141;17926:42:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17907:61;;;17983:7;17979:90;;;18026:15;::::0;:22:::1;::::0;;-1:-1:-1;;;18026:22:0;;;;18012:45:::1;::::0;-1:-1:-1;;;;;18026:15:0::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18012:45;::::0;;-1:-1:-1;;;;;5635:32:1;;;5617:51;;5699:2;5684:18;;5677:34;;;5590:18;18012:45:0::1;;;;;;;;17979:90;17797:279;17736:340:::0;:::o;14887:288::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;14944:16:::1;:23:::0;;-1:-1:-1;;;;14944:23:0::1;-1:-1:-1::0;;;14944:23:0::1;::::0;;14981:18:::1;::::0;14944:23;14981;14978:142:::1;;15042:12;15021:18;:33:::0;15093:15:::1;15069:21;:39:::0;14978:142:::1;15135:32;::::0;15161:5:::1;::::0;15135:32;;::::1;::::0;15161:5;;15135:32:::1;14887:288::o:0;8245:295::-;8376:4;5489:10;8434:38;8450:4;5489:10;8465:6;8434:15;:38::i;:::-;8483:27;8493:4;8499:2;8503:6;8483:9;:27::i;:::-;-1:-1:-1;8528:4:0;;8245:295;-1:-1:-1;;;;8245:295:0:o;16986:273::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;17082:15:::1;;17070:8;:27:::0;17062:88:::1;;;::::0;-1:-1:-1;;;17062:88:0;;5924:2:1;17062:88:0::1;::::0;::::1;5906:21:1::0;5963:2;5943:18;;;5936:30;6002:34;5982:18;;;5975:62;-1:-1:-1;;;6053:18:1;;;6046:47;6110:19;;17062:88:0::1;5722:413:1::0;17062:88:0::1;17198:15;::::0;17166:48:::1;::::0;17188:8;;17166:48:::1;::::0;;;::::1;17225:15;:26:::0;16986:273::o;17265:465::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;17350:1:::1;17326:21;;:25;17318:69;;;::::0;-1:-1:-1;;;17318:69:0;;6342:2:1;17318:69:0::1;::::0;::::1;6324:21:1::0;6381:2;6361:18;;;6354:30;6420:33;6400:18;;;6393:61;6471:18;;17318:69:0::1;6140:355:1::0;17318:69:0::1;17436:1;17415:18;;17400:12;:33;;;;:::i;:::-;:37;17392:101;;;::::0;-1:-1:-1;;;17392:101:0;;6967:2:1;17392:101:0::1;::::0;::::1;6949:21:1::0;7006:2;6986:18;;;6979:30;7045:34;7025:18;;;7018:62;-1:-1:-1;;;7096:18:1;;;7089:49;7155:19;;17392:101:0::1;6765:415:1::0;17392:101:0::1;17539:4;17498:20;7640:18:::0;;;:9;:18;;;;;;6141:6;;7640:18;;17539:4;17573:30:::1;::::0;-1:-1:-1;;;;;6141:6:0;17573:53:::1;::::0;-1:-1:-1;;;;;;17573:53:0::1;::::0;;;;;;-1:-1:-1;;;;;5635:32:1;;;17573:53:0::1;::::0;::::1;5617:51:1::0;5684:18;;;5677:34;;;5590:18;;17573:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17556:70;;17641:7;17637:86;;;17669:42;::::0;;17691:4:::1;5617:51:1::0;;5699:2;5684:18;;5677:34;;;17669:42:0::1;::::0;5590:18:1;17669:42:0::1;5443:274:1::0;15181:139:0;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;15240:16:::1;:24:::0;;-1:-1:-1;;;;15240:24:0::1;::::0;;15280:32:::1;::::0;15240:24;;15259:5:::1;::::0;15280:32:::1;::::0;15259:5;;15280:32:::1;15181:139::o:0;8548:238::-;8636:4;5489:10;8692:64;5489:10;8708:7;8745:10;8717:25;5489:10;8708:7;8717:9;:25::i;:::-;:38;;;;:::i;:::-;8692:8;:64::i;16105:229::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16184:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;16176:60;;;::::0;-1:-1:-1;;;16176:60:0;;7767:2:1;16176:60:0::1;::::0;::::1;7749:21:1::0;7806:2;7786:18;;;7779:30;7845;7825:18;;;7818:58;7893:18;;16176:60:0::1;7565:352:1::0;16176:60:0::1;-1:-1:-1::0;;;;;16247:19:0;::::1;16269:5;16247:19:::0;;;:10:::1;:19;::::0;;;;;:27;;-1:-1:-1;;16247:27:0::1;::::0;;16290:36;16269:5;;16247:19;16290:36:::1;::::0;16269:5;;16290:36:::1;16105:229:::0;:::o;6290:148::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;6397:1:::1;6381:6:::0;;6360:40:::1;::::0;-1:-1:-1;;;;;6381:6:0;;::::1;::::0;6360:40:::1;::::0;6397:1;;6360:40:::1;6428:1;6411:19:::0;;-1:-1:-1;;;;;;6411:19:0::1;::::0;;6290:148::o;16340:336::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16445:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:50;::::1;;:38;::::0;;::::1;:50;;::::0;16437:110:::1;;;::::0;-1:-1:-1;;;16437:110:0;;8124:2:1;16437:110:0::1;::::0;::::1;8106:21:1::0;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:46;8309:19;;16437:110:0::1;7922:412:1::0;16437:110:0::1;-1:-1:-1::0;;;;;16558:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:49;;-1:-1:-1;;16558:49:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16623:45;;154:41:1;;;16623:45:0::1;::::0;127:18:1;16623:45:0::1;;;;;;;;16340:336:::0;;:::o;15869:230::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15947:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;15946:20;15938:65;;;::::0;-1:-1:-1;;;15938:65:0;;8541:2:1;15938:65:0::1;::::0;::::1;8523:21:1::0;;;8560:18;;;8553:30;8619:34;8599:18;;;8592:62;8671:18;;15938:65:0::1;8339:356:1::0;15938:65:0::1;-1:-1:-1::0;;;;;16014:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;:26;;-1:-1:-1;;16014:26:0::1;16036:4;16014:26:::0;;::::1;::::0;;;16056:35;;16036:4;;16014:19;16056:35:::1;::::0;::::1;15869:230:::0;:::o;7211:104::-;7267:13;7300:7;7293:14;;;;;:::i;8794:436::-;8887:4;5489:10;8887:4;8970:25;5489:10;8987:7;8970:9;:25::i;:::-;8943:52;;9034:15;9014:16;:35;;9006:85;;;;-1:-1:-1;;;9006:85:0;;8902:2:1;9006:85:0;;;8884:21:1;8941:2;8921:18;;;8914:30;8980:34;8960:18;;;8953:62;-1:-1:-1;;;9031:18:1;;;9024:35;9076:19;;9006:85:0;8700:401:1;9006:85:0;9127:60;9136:5;9143:7;9171:15;9152:16;:34;9127:8;:60::i;7674:193::-;7753:4;5489:10;7809:28;5489:10;7826:2;7830:6;7809:9;:28::i;16682:298::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;16788:15:::1;::::0;-1:-1:-1;;;;;16788:15:0;;::::1;16766:38:::0;;::::1;::::0;16758:91:::1;;;::::0;-1:-1:-1;;;16758:91:0;;9308:2:1;16758:91:0::1;::::0;::::1;9290:21:1::0;9347:2;9327:18;;;9320:30;9386:34;9366:18;;;9359:62;-1:-1:-1;;;9437:18:1;;;9430:39;9486:19;;16758:91:0::1;9106:405:1::0;16758:91:0::1;16907:15;::::0;16865:59:::1;::::0;-1:-1:-1;;;;;16907:15:0;;::::1;::::0;16865:59;::::1;::::0;::::1;::::0;16907:15:::1;::::0;16865:59:::1;16935:15;:37:::0;;-1:-1:-1;;;;;;16935:37:0::1;-1:-1:-1::0;;;;;16935:37:0;;;::::1;::::0;;;::::1;::::0;;16682:298::o;15646:217::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15741:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;15741:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15805:50;;154:41:1;;;15805:50:0::1;::::0;127:18:1;15805:50:0::1;14:187:1::0;7875:151:0;-1:-1:-1;;;;;7991:18:0;;;7964:7;7991:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7875:151::o;6446:244::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6535:22:0;::::1;6527:73;;;::::0;-1:-1:-1;;;6527:73:0;;9718:2:1;6527:73:0::1;::::0;::::1;9700:21:1::0;9757:2;9737:18;;;9730:30;9796:34;9776:18;;;9769:62;-1:-1:-1;;;9847:18:1;;;9840:36;9893:19;;6527:73:0::1;9516:402:1::0;6527:73:0::1;6637:6;::::0;;6616:38:::1;::::0;-1:-1:-1;;;;;6616:38:0;;::::1;::::0;6637:6;::::1;::::0;6616:38:::1;::::0;::::1;6665:6;:17:::0;;-1:-1:-1;;;;;;6665:17:0::1;-1:-1:-1::0;;;;;6665:17:0;;;::::1;::::0;;;::::1;::::0;;6446:244::o;11325:380::-;-1:-1:-1;;;;;11461:19:0;;11453:68;;;;-1:-1:-1;;;11453:68:0;;10125:2:1;11453:68:0;;;10107:21:1;10164:2;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;-1:-1:-1;;;10254:18:1;;;10247:34;10298:19;;11453:68:0;9923:400:1;11453:68:0;-1:-1:-1;;;;;11540:21:0;;11532:68;;;;-1:-1:-1;;;11532:68:0;;10530:2:1;11532:68:0;;;10512:21:1;10569:2;10549:18;;;10542:30;10608:34;10588:18;;;10581:62;-1:-1:-1;;;10659:18:1;;;10652:32;10701:19;;11532:68:0;10328:398:1;11532:68:0;-1:-1:-1;;;;;11613:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11665:32;;1769:25:1;;;11665:32:0;;1742:18:1;11665:32:0;;;;;;;11325:380;;;:::o;11713:453::-;11848:24;11875:25;11885:5;11892:7;11875:9;:25::i;:::-;11848:52;;-1:-1:-1;;11915:16:0;:37;11911:248;;11997:6;11977:16;:26;;11969:68;;;;-1:-1:-1;;;11969:68:0;;10933:2:1;11969:68:0;;;10915:21:1;10972:2;10952:18;;;10945:30;11011:31;10991:18;;;10984:59;11060:18;;11969:68:0;10731:353:1;11969:68:0;12081:51;12090:5;12097:7;12125:6;12106:16;:25;12081:8;:51::i;:::-;11837:329;11713:453;;;:::o;18082:1126::-;-1:-1:-1;;;;;18214:18:0;;18206:68;;;;-1:-1:-1;;;18206:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18293:16:0;;18285:64;;;;-1:-1:-1;;;18285:64:0;;;;;;;:::i;:::-;18366:6;18376:1;18366:11;18362:93;;18394:28;18410:4;18416:2;18420:1;18394:15;:28::i;:::-;18082:1126;;;:::o;18362:93::-;-1:-1:-1;;;;;18472:35:0;;;;;;:29;:35;;;;;;;;18471:36;:74;;;;-1:-1:-1;;;;;;18512:33:0;;;;;;:29;:33;;;;;;;;18511:34;18471:74;18467:510;;;18570:16;;-1:-1:-1;;;18570:16:0;;;;18562:65;;;;-1:-1:-1;;;18562:65:0;;12101:2:1;18562:65:0;;;12083:21:1;12140:2;12120:18;;;12113:30;12179:34;12159:18;;;12152:62;-1:-1:-1;;;12230:18:1;;;12223:34;12274:19;;18562:65:0;11899:400:1;18562:65:0;-1:-1:-1;;;;;18651:14:0;;;;;;:10;:14;;;;;;;;18650:15;18642:52;;;;-1:-1:-1;;;18642:52:0;;12506:2:1;18642:52:0;;;12488:21:1;12545:2;12525:18;;;12518:30;-1:-1:-1;;;12564:18:1;;;12557:54;12628:18;;18642:52:0;12304:348:1;18642:52:0;-1:-1:-1;;;;;18718:16:0;;;;;;:10;:16;;;;;;;;18717:17;18709:54;;;;-1:-1:-1;;;18709:54:0;;12506:2:1;18709:54:0;;;12488:21:1;12545:2;12525:18;;;12518:30;-1:-1:-1;;;12564:18:1;;;12557:54;12628:18;;18709:54:0;12304:348:1;18709:54:0;-1:-1:-1;;;;;18783:33:0;;;;;;:29;:33;;;;;;;;18778:188;;18873:15;;18862:6;18846:13;18856:2;-1:-1:-1;;;;;7640:18:0;7613:7;7640:18;;;:9;:18;;;;;;;7539:127;18846:13;:22;;;;:::i;:::-;18845:43;;18837:113;;;;-1:-1:-1;;;18837:113:0;;12859:2:1;18837:113:0;;;12841:21:1;12898:2;12878:18;;;12871:30;12937:34;12917:18;;;12910:62;13008:27;12988:18;;;12981:55;13053:19;;18837:113:0;12657:421:1;18837:113:0;19017:1;18993:21;;:25;:69;;;;;19060:1;19038:18;;19023:12;:33;;;;:::i;:::-;:38;;18993:69;18989:212;;;19079:44;19095:4;19109;19116:6;19079:15;:44::i;18989:212::-;19156:33;19172:4;19178:2;19182:6;9238:840;-1:-1:-1;;;;;9369:18:0;;9361:68;;;;-1:-1:-1;;;9361:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9448:16:0;;9440:64;;;;-1:-1:-1;;;9440:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9590:15:0;;9568:19;9590:15;;;:9;:15;;;;;;9624:21;;;;9616:72;;;;-1:-1:-1;;;9616:72:0;;13285:2:1;9616:72:0;;;13267:21:1;13324:2;13304:18;;;13297:30;13363:34;13343:18;;;13336:62;-1:-1:-1;;;13414:18:1;;;13407:36;13460:19;;9616:72:0;13083:402:1;9616:72:0;-1:-1:-1;;;;;9724:15:0;;;;;;;:9;:15;;;;;;9742:20;;;9724:38;;9942:13;;;;;;;;;;:23;;;;;;9994:26;;;;;;9756:6;1769:25:1;;1757:2;1742:18;;1623:177;9994:26:0;;;;;;;;10033:37;18082:1126;206:548:1;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1215:180::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;-1:-1:-1;1366:23:1;;1215:180;-1:-1:-1;1215:180:1:o;1805:456::-;1882:6;1890;1898;1951:2;1939:9;1930:7;1926:23;1922:32;1919:52;;;1967:1;1964;1957:12;1919:52;2006:9;1993:23;2025:31;2050:5;2025:31;:::i;:::-;2075:5;-1:-1:-1;2132:2:1;2117:18;;2104:32;2145:33;2104:32;2145:33;:::i;:::-;1805:456;;2197:7;;-1:-1:-1;;;2251:2:1;2236:18;;;;2223:32;;1805:456::o;2663:247::-;2722:6;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2830:9;2817:23;2849:31;2874:5;2849:31;:::i;:::-;2899:5;2663:247;-1:-1:-1;;;2663:247:1:o;2915:118::-;3001:5;2994:13;2987:21;2980:5;2977:32;2967:60;;3023:1;3020;3013:12;3038:382;3103:6;3111;3164:2;3152:9;3143:7;3139:23;3135:32;3132:52;;;3180:1;3177;3170:12;3132:52;3219:9;3206:23;3238:31;3263:5;3238:31;:::i;:::-;3288:5;-1:-1:-1;3345:2:1;3330:18;;3317:32;3358:30;3317:32;3358:30;:::i;:::-;3407:7;3397:17;;;3038:382;;;;;:::o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;3818:380::-;3897:1;3893:12;;;;3940;;;3961:61;;4015:4;4007:6;4003:17;3993:27;;3961:61;4068:2;4060:6;4057:14;4037:18;4034:38;4031:161;;4114:10;4109:3;4105:20;4102:1;4095:31;4149:4;4146:1;4139:15;4177:4;4174:1;4167:15;4031:161;;3818:380;;;:::o;4203:356::-;4405:2;4387:21;;;4424:18;;;4417:30;4483:34;4478:2;4463:18;;4456:62;4550:2;4535:18;;4203:356::o;5187:251::-;5257:6;5310:2;5298:9;5289:7;5285:23;5281:32;5278:52;;;5326:1;5323;5316:12;5278:52;5358:9;5352:16;5377:31;5402:5;5377:31;:::i;6500:127::-;6561:10;6556:3;6552:20;6549:1;6542:31;6592:4;6589:1;6582:15;6616:4;6613:1;6606:15;6632:128;6699:9;;;6720:11;;;6717:37;;;6734:18;;:::i;7185:245::-;7252:6;7305:2;7293:9;7284:7;7280:23;7276:32;7273:52;;;7321:1;7318;7311:12;7273:52;7353:9;7347:16;7372:28;7394:5;7372:28;:::i;7435:125::-;7500:9;;;7521:10;;;7518:36;;;7534:18;;:::i;11089:401::-;11291:2;11273:21;;;11330:2;11310:18;;;11303:30;11369:34;11364:2;11349:18;;11342:62;-1:-1:-1;;;11435:2:1;11420:18;;11413:35;11480:3;11465:19;;11089:401::o;11495:399::-;11697:2;11679:21;;;11736:2;11716:18;;;11709:30;11775:34;11770:2;11755:18;;11748:62;-1:-1:-1;;;11841:2:1;11826:18;;11819:33;11884:3;11869:19;;11495:399::o

Swarm Source

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