ETH Price: $3,607.18 (+4.67%)
 

Overview

Max Total Supply

420,689,999,999,999.999999999999998764 MUNGUS

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,116,000,000,000.980019159444784853 MUNGUS

Value
$0.00
0x47c1e0087b047602ab77601293b2399f75fdc656
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:
MungusContract

Compiler Version
v0.8.0+commit.c7dfd78e

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-13
*/

/* 

A fellow contract checker I see, many riches are coming your way
👁‍🗨👁‍🗨 

*/


// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
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;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    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;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    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);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    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);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    
    function createPair(address tokenA, address tokenB) external returns (address pair);
 
}


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

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
// File contracts/MungusContract.sol

pragma solidity ^0.8.0;


contract MungusContract is Ownable, ERC20 {
    bool public limited = true;
    bool public tradingEnabled;
    bool private swapping;
    bool public swapEnabled;

    uint256 public maxHoldingAmount = 4206899999999999999999999999987;
    uint256 public minHoldingAmount;

    uint256 public buyMarketingFee = 2; // 2% buy marketing fee
    uint256 public sellMarketingFee = 2; // 2% sell marketing fee

    uint256 public swapTokensAtAmount = 100000 * 1e18;
    address public uniswapV2Pair;
    address public marketingWallet;
    IUniswapV2Router02 router = IUniswapV2Router02 (0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); //uniswap v2 router
    mapping(address => bool) public blacklists;
    mapping(address => bool) public excludedFromFees;



    constructor() ERC20("Hugh Mungus", "MUNGUS") {
         address _uniswapV2Pair = IUniswapV2Factory(router.factory())
            .createPair(address(this), router.WETH());
           uniswapV2Pair   = _uniswapV2Pair;
           marketingWallet = address(0xB4Da9e42918d06aa2ee756ceb43528389dEBd7c5); //MKT

           excludedFromFees[address(this)] = true;
           excludedFromFees[msg.sender] = true;
           excludedFromFees[marketingWallet] = true;

            _mint(msg.sender, 420689999999999999999999999998764); //420,689,999,999,999.999999999999998764 Mungus
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setRule(bool _limited, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;

        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function setMarketingFee (uint256 buy, uint256 sell) external onlyOwner {
        buyMarketingFee = buy;
        sellMarketingFee = sell;
        require (buyMarketingFee + sellMarketingFee <= 10, "Max Fees limit is 10%");
    }

      function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function updateMarketingWallet (address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
         require(!blacklists[to] && !blacklists[from], "Blacklisted");
        require(tradingEnabled || excludedFromFees[from] || excludedFromFees[to], "Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limited && from == uniswapV2Pair) {
            require(balanceOf(to) + amount <= maxHoldingAmount && balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapping = false;
        }

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

       uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (to == uniswapV2Pair && sellMarketingFee > 0) {
                fees = (amount * sellMarketingFee) / 100;
               
            }
            // on buy
            if (from == uniswapV2Pair && buyMarketingFee > 0) {
                fees = (amount * buyMarketingFee) / 100;
               
            }
 
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
 
            amount -= fees;
        }

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

     function swapAndLiquify(uint256 tokens) private {
       
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        if(allowance(address(this), address(router)) < tokens ){
       _approve(address(this), address(router), ~uint256(0));
        }
       router.swapExactTokensForETHSupportingFeeOnTransferTokens(
           tokens,
            0,
            path,
            marketingWallet,
            block.timestamp);
        
    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","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":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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":[],"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":[],"name":"tradingEnabled","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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526006805460ff191660011790556c35193a1e7376a35c15b3fffff360075560026009819055600a5569152d02c7e14af6800000600b55600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156200006d57600080fd5b506040518060400160405280600b81526020016a48756768204d756e67757360a81b815250604051806040016040528060068152602001654d554e47555360d01b815250620000cb620000c56200033660201b60201c565b6200033a565b8151620000e090600490602085019062000471565b508051620000f690600590602084019062000471565b5050506000600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014a57600080fd5b505afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000185919062000517565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e357600080fd5b505afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000517565b6040518363ffffffff1660e01b81526004016200023d92919062000547565b602060405180830381600087803b1580156200025857600080fd5b505af11580156200026d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000293919062000517565b600c80546001600160a01b038084166001600160a01b031992831617909255600d805490911673b4da9e42918d06aa2ee756ceb43528389debd7c517815530600090815260106020526040808220805460ff1990811660019081179092553380855283852080548316841790559454909516835291208054909316179091559091506200032f906d14bddab3e51a57cff87a4ffffb2c6200038a565b5062000603565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620003bc5760405162461bcd60e51b8152600401620003b39062000561565b60405180910390fd5b620003ca600083836200046c565b8060036000828254620003de9190620005a1565b90915550506001600160a01b038216600090815260016020526040812080548392906200040d908490620005a1565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200045290859062000598565b60405180910390a362000468600083836200046c565b5050565b505050565b8280546200047f90620005c6565b90600052602060002090601f016020900481019282620004a35760008555620004ee565b82601f10620004be57805160ff1916838001178555620004ee565b82800160010185558215620004ee579182015b82811115620004ee578251825591602001919060010190620004d1565b50620004fc92915062000500565b5090565b5b80821115620004fc576000815560010162000501565b60006020828403121562000529578081fd5b81516001600160a01b038116811462000540578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620005c157634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620005db57607f821691505b60208210811415620005fd57634e487b7160e01b600052602260045260246000fd5b50919050565b61195680620006136000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806375f0a8741161010f578063a457c2d7116100a2578063dbe66ca011610071578063dbe66ca0146103a5578063dd62ed3e146103b8578063e2f45605146103cb578063f2fde38b146103d3576101f0565b8063a457c2d714610359578063a9059cbb1461036c578063aacebbe31461037f578063d07ea4e214610392576101f0565b80638a8c523c116100de5780638a8c523c146103395780638da5cb5b14610341578063921369131461034957806395d89b4114610351576101f0565b806375f0a874146103195780637bce5a0414610321578063860a32ec1461032957806389f9a1d314610331576101f0565b80633f301893116101875780634ada218b116101565780634ada218b146102ee5780636ddd1713146102f657806370a08231146102fe578063715018a614610311576101f0565b80633f3018931461029e578063404e5129146102b357806342966c68146102c657806349bd5a5e146102d9576101f0565b80631ab99e12116101c35780631ab99e121461025b57806323b872dd14610263578063313ce56714610276578063395093511461028b576101f0565b806306fdde03146101f5578063095ea7b31461021357806316c021291461023357806318160ddd14610246575b600080fd5b6101fd6103e6565b60405161020a91906113b1565b60405180910390f35b6102266102213660046112fc565b610478565b60405161020a91906113a6565b610226610241366004611211565b610495565b61024e6104aa565b60405161020a91906117c5565b61024e6104b0565b610226610271366004611288565b6104b6565b61027e61054f565b60405161020a919061183e565b6102266102993660046112fc565b610554565b6102b16102ac366004611371565b6105a8565b005b6102b16102c13660046112c8565b61061d565b6102b16102d4366004611359565b610687565b6102e1610694565b60405161020a9190611392565b6102266106a3565b6102266106b1565b61024e61030c366004611211565b6106c1565b6102b16106e0565b6102e161072b565b61024e61073a565b610226610740565b61024e610749565b6102b161074f565b6102e16107d6565b61024e6107e5565b6101fd6107eb565b6102266103673660046112fc565b6107fa565b61022661037a3660046112fc565b610873565b6102b161038d366004611211565b610887565b6102b16103a0366004611327565b6108e8565b6102266103b3366004611211565b610941565b61024e6103c6366004611250565b610956565b61024e610981565b6102b16103e1366004611211565b610987565b6060600480546103f5906118ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610421906118ba565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600061048c6104856109f5565b84846109f9565b50600192915050565b600f6020526000908152604090205460ff1681565b60035490565b60085481565b60006104c3848484610aad565b6001600160a01b0384166000908152600260205260408120816104e46109f5565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156105305760405162461bcd60e51b815260040161052790611614565b60405180910390fd5b6105448561053c6109f5565b8584036109f9565b506001949350505050565b601290565b600061048c6105616109f5565b84846002600061056f6109f5565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546105a3919061184c565b6109f9565b6105b06109f5565b6001600160a01b03166105c16107d6565b6001600160a01b0316146105e75760405162461bcd60e51b81526004016105279061165c565b6009829055600a8181556105fb828461184c565b11156106195760405162461bcd60e51b8152600401610527906115e5565b5050565b6106256109f5565b6001600160a01b03166106366107d6565b6001600160a01b03161461065c5760405162461bcd60e51b81526004016105279061165c565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6106913382610dec565b50565b600c546001600160a01b031681565b600654610100900460ff1681565b6006546301000000900460ff1681565b6001600160a01b0381166000908152600160205260409020545b919050565b6106e86109f5565b6001600160a01b03166106f96107d6565b6001600160a01b03161461071f5760405162461bcd60e51b81526004016105279061165c565b6107296000610edd565b565b600d546001600160a01b031681565b60095481565b60065460ff1681565b60075481565b6107576109f5565b6001600160a01b03166107686107d6565b6001600160a01b03161461078e5760405162461bcd60e51b81526004016105279061165c565b600654610100900460ff16156107b65760405162461bcd60e51b815260040161052790611548565b6006805463ff0000001961ff001990911661010017166301000000179055565b6000546001600160a01b031690565b600a5481565b6060600580546103f5906118ba565b600080600260006108096109f5565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108555760405162461bcd60e51b81526004016105279061175b565b6108696108606109f5565b858584036109f9565b5060019392505050565b600061048c6108806109f5565b8484610aad565b61088f6109f5565b6001600160a01b03166108a06107d6565b6001600160a01b0316146108c65760405162461bcd60e51b81526004016105279061165c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6108f06109f5565b6001600160a01b03166109016107d6565b6001600160a01b0316146109275760405162461bcd60e51b81526004016105279061165c565b6006805460ff191693151593909317909255600755600855565b60106020526000908152604090205460ff1681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600b5481565b61098f6109f5565b6001600160a01b03166109a06107d6565b6001600160a01b0316146109c65760405162461bcd60e51b81526004016105279061165c565b6001600160a01b0381166109ec5760405162461bcd60e51b8152600401610527906114c0565b61069181610edd565b3390565b6001600160a01b038316610a1f5760405162461bcd60e51b815260040161052790611717565b6001600160a01b038216610a455760405162461bcd60e51b815260040161052790611506565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610aa09085906117c5565b60405180910390a3505050565b6001600160a01b038316610ad35760405162461bcd60e51b8152600401610527906116d2565b6001600160a01b038216610af95760405162461bcd60e51b815260040161052790611404565b6001600160a01b0382166000908152600f602052604090205460ff16158015610b3b57506001600160a01b0383166000908152600f602052604090205460ff16155b610b575760405162461bcd60e51b8152600401610527906117a0565b600654610100900460ff1680610b8557506001600160a01b03831660009081526010602052604090205460ff165b80610ba857506001600160a01b03821660009081526010602052604090205460ff165b610bc45760405162461bcd60e51b815260040161052790611447565b80610bda57610bd583836000610f2d565b610de7565b60065460ff168015610bf95750600c546001600160a01b038481169116145b15610c545760075481610c0b846106c1565b610c15919061184c565b11158015610c38575060085481610c2b846106c1565b610c35919061184c565b10155b610c545760405162461bcd60e51b8152600401610527906115c5565b6000610c5f306106c1565b600b5490915081108015908190610c7f575060065462010000900460ff16155b8015610c985750600c546001600160a01b038581169116145b8015610cad57506006546301000000900460ff165b15610cd9576006805462ff0000191662010000179055610ccc82611057565b6006805462ff0000191690555b6006546001600160a01b03861660009081526010602052604090205460ff62010000909204821615911680610d2657506001600160a01b03851660009081526010602052604090205460ff165b15610d2f575060005b60008115610dd757600c546001600160a01b038781169116148015610d5657506000600a54115b15610d78576064600a5486610d6b9190611884565b610d759190611864565b90505b600c546001600160a01b038881169116148015610d9757506000600954115b15610db957606460095486610dac9190611884565b610db69190611864565b90505b8015610dca57610dca873083610f2d565b610dd481866118a3565b94505b610de2878787610f2d565b505050505b505050565b6001600160a01b038216610e125760405162461bcd60e51b815260040161052790611691565b610e1e82600083610de7565b6001600160a01b03821660009081526001602052604090205481811015610e575760405162461bcd60e51b81526004016105279061147e565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610e869084906118a3565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ec99086906117c5565b60405180910390a3610de783600084610de7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610f535760405162461bcd60e51b8152600401610527906116d2565b6001600160a01b038216610f795760405162461bcd60e51b815260040161052790611404565b610f84838383610de7565b6001600160a01b03831660009081526001602052604090205481811015610fbd5760405162461bcd60e51b81526004016105279061157f565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610ff490849061184c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161103e91906117c5565b60405180910390a3611051848484610de7565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061109a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110ee57600080fd5b505afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190611234565b8160018151811061114757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e54839161116e91309116610956565b101561118e57600e5461118e9030906001600160a01b03166000196109f9565b600e54600d5460405163791ac94760e01b81526001600160a01b039283169263791ac947926111cb928792600092889291169042906004016117ce565b600060405180830381600087803b1580156111e557600080fd5b505af11580156111f9573d6000803e3d6000fd5b505050505050565b803580151581146106db57600080fd5b600060208284031215611222578081fd5b813561122d8161190b565b9392505050565b600060208284031215611245578081fd5b815161122d8161190b565b60008060408385031215611262578081fd5b823561126d8161190b565b9150602083013561127d8161190b565b809150509250929050565b60008060006060848603121561129c578081fd5b83356112a78161190b565b925060208401356112b78161190b565b929592945050506040919091013590565b600080604083850312156112da578182fd5b82356112e58161190b565b91506112f360208401611201565b90509250929050565b6000806040838503121561130e578182fd5b82356113198161190b565b946020939093013593505050565b60008060006060848603121561133b578283fd5b61134484611201565b95602085013595506040909401359392505050565b60006020828403121561136a578081fd5b5035919050565b60008060408385031215611383578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156113dd578581018301518582016040015282016113c1565b818111156113ee5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526018908201527f54726164696e6720616c726561647920656e61626c65642e0000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260069082015265119bdc989a5960d21b604082015260600190565b6020808252601590820152744d61782046656573206c696d69742069732031302560581b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561181d5784516001600160a01b0316835293830193918301916001016117f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561185f5761185f6118f5565b500190565b60008261187f57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561189e5761189e6118f5565b500290565b6000828210156118b5576118b56118f5565b500390565b6002810460018216806118ce57607f821691505b602082108114156118ef57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461069157600080fdfea2646970667358221220a9c03cb98dc72a31b4a8613a1d1a1e2ce680591069fef73198735d3628be64b064736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806375f0a8741161010f578063a457c2d7116100a2578063dbe66ca011610071578063dbe66ca0146103a5578063dd62ed3e146103b8578063e2f45605146103cb578063f2fde38b146103d3576101f0565b8063a457c2d714610359578063a9059cbb1461036c578063aacebbe31461037f578063d07ea4e214610392576101f0565b80638a8c523c116100de5780638a8c523c146103395780638da5cb5b14610341578063921369131461034957806395d89b4114610351576101f0565b806375f0a874146103195780637bce5a0414610321578063860a32ec1461032957806389f9a1d314610331576101f0565b80633f301893116101875780634ada218b116101565780634ada218b146102ee5780636ddd1713146102f657806370a08231146102fe578063715018a614610311576101f0565b80633f3018931461029e578063404e5129146102b357806342966c68146102c657806349bd5a5e146102d9576101f0565b80631ab99e12116101c35780631ab99e121461025b57806323b872dd14610263578063313ce56714610276578063395093511461028b576101f0565b806306fdde03146101f5578063095ea7b31461021357806316c021291461023357806318160ddd14610246575b600080fd5b6101fd6103e6565b60405161020a91906113b1565b60405180910390f35b6102266102213660046112fc565b610478565b60405161020a91906113a6565b610226610241366004611211565b610495565b61024e6104aa565b60405161020a91906117c5565b61024e6104b0565b610226610271366004611288565b6104b6565b61027e61054f565b60405161020a919061183e565b6102266102993660046112fc565b610554565b6102b16102ac366004611371565b6105a8565b005b6102b16102c13660046112c8565b61061d565b6102b16102d4366004611359565b610687565b6102e1610694565b60405161020a9190611392565b6102266106a3565b6102266106b1565b61024e61030c366004611211565b6106c1565b6102b16106e0565b6102e161072b565b61024e61073a565b610226610740565b61024e610749565b6102b161074f565b6102e16107d6565b61024e6107e5565b6101fd6107eb565b6102266103673660046112fc565b6107fa565b61022661037a3660046112fc565b610873565b6102b161038d366004611211565b610887565b6102b16103a0366004611327565b6108e8565b6102266103b3366004611211565b610941565b61024e6103c6366004611250565b610956565b61024e610981565b6102b16103e1366004611211565b610987565b6060600480546103f5906118ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610421906118ba565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600061048c6104856109f5565b84846109f9565b50600192915050565b600f6020526000908152604090205460ff1681565b60035490565b60085481565b60006104c3848484610aad565b6001600160a01b0384166000908152600260205260408120816104e46109f5565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156105305760405162461bcd60e51b815260040161052790611614565b60405180910390fd5b6105448561053c6109f5565b8584036109f9565b506001949350505050565b601290565b600061048c6105616109f5565b84846002600061056f6109f5565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546105a3919061184c565b6109f9565b6105b06109f5565b6001600160a01b03166105c16107d6565b6001600160a01b0316146105e75760405162461bcd60e51b81526004016105279061165c565b6009829055600a8181556105fb828461184c565b11156106195760405162461bcd60e51b8152600401610527906115e5565b5050565b6106256109f5565b6001600160a01b03166106366107d6565b6001600160a01b03161461065c5760405162461bcd60e51b81526004016105279061165c565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6106913382610dec565b50565b600c546001600160a01b031681565b600654610100900460ff1681565b6006546301000000900460ff1681565b6001600160a01b0381166000908152600160205260409020545b919050565b6106e86109f5565b6001600160a01b03166106f96107d6565b6001600160a01b03161461071f5760405162461bcd60e51b81526004016105279061165c565b6107296000610edd565b565b600d546001600160a01b031681565b60095481565b60065460ff1681565b60075481565b6107576109f5565b6001600160a01b03166107686107d6565b6001600160a01b03161461078e5760405162461bcd60e51b81526004016105279061165c565b600654610100900460ff16156107b65760405162461bcd60e51b815260040161052790611548565b6006805463ff0000001961ff001990911661010017166301000000179055565b6000546001600160a01b031690565b600a5481565b6060600580546103f5906118ba565b600080600260006108096109f5565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108555760405162461bcd60e51b81526004016105279061175b565b6108696108606109f5565b858584036109f9565b5060019392505050565b600061048c6108806109f5565b8484610aad565b61088f6109f5565b6001600160a01b03166108a06107d6565b6001600160a01b0316146108c65760405162461bcd60e51b81526004016105279061165c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6108f06109f5565b6001600160a01b03166109016107d6565b6001600160a01b0316146109275760405162461bcd60e51b81526004016105279061165c565b6006805460ff191693151593909317909255600755600855565b60106020526000908152604090205460ff1681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600b5481565b61098f6109f5565b6001600160a01b03166109a06107d6565b6001600160a01b0316146109c65760405162461bcd60e51b81526004016105279061165c565b6001600160a01b0381166109ec5760405162461bcd60e51b8152600401610527906114c0565b61069181610edd565b3390565b6001600160a01b038316610a1f5760405162461bcd60e51b815260040161052790611717565b6001600160a01b038216610a455760405162461bcd60e51b815260040161052790611506565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610aa09085906117c5565b60405180910390a3505050565b6001600160a01b038316610ad35760405162461bcd60e51b8152600401610527906116d2565b6001600160a01b038216610af95760405162461bcd60e51b815260040161052790611404565b6001600160a01b0382166000908152600f602052604090205460ff16158015610b3b57506001600160a01b0383166000908152600f602052604090205460ff16155b610b575760405162461bcd60e51b8152600401610527906117a0565b600654610100900460ff1680610b8557506001600160a01b03831660009081526010602052604090205460ff165b80610ba857506001600160a01b03821660009081526010602052604090205460ff165b610bc45760405162461bcd60e51b815260040161052790611447565b80610bda57610bd583836000610f2d565b610de7565b60065460ff168015610bf95750600c546001600160a01b038481169116145b15610c545760075481610c0b846106c1565b610c15919061184c565b11158015610c38575060085481610c2b846106c1565b610c35919061184c565b10155b610c545760405162461bcd60e51b8152600401610527906115c5565b6000610c5f306106c1565b600b5490915081108015908190610c7f575060065462010000900460ff16155b8015610c985750600c546001600160a01b038581169116145b8015610cad57506006546301000000900460ff165b15610cd9576006805462ff0000191662010000179055610ccc82611057565b6006805462ff0000191690555b6006546001600160a01b03861660009081526010602052604090205460ff62010000909204821615911680610d2657506001600160a01b03851660009081526010602052604090205460ff165b15610d2f575060005b60008115610dd757600c546001600160a01b038781169116148015610d5657506000600a54115b15610d78576064600a5486610d6b9190611884565b610d759190611864565b90505b600c546001600160a01b038881169116148015610d9757506000600954115b15610db957606460095486610dac9190611884565b610db69190611864565b90505b8015610dca57610dca873083610f2d565b610dd481866118a3565b94505b610de2878787610f2d565b505050505b505050565b6001600160a01b038216610e125760405162461bcd60e51b815260040161052790611691565b610e1e82600083610de7565b6001600160a01b03821660009081526001602052604090205481811015610e575760405162461bcd60e51b81526004016105279061147e565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610e869084906118a3565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ec99086906117c5565b60405180910390a3610de783600084610de7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610f535760405162461bcd60e51b8152600401610527906116d2565b6001600160a01b038216610f795760405162461bcd60e51b815260040161052790611404565b610f84838383610de7565b6001600160a01b03831660009081526001602052604090205481811015610fbd5760405162461bcd60e51b81526004016105279061157f565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610ff490849061184c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161103e91906117c5565b60405180910390a3611051848484610de7565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061109a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110ee57600080fd5b505afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190611234565b8160018151811061114757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e54839161116e91309116610956565b101561118e57600e5461118e9030906001600160a01b03166000196109f9565b600e54600d5460405163791ac94760e01b81526001600160a01b039283169263791ac947926111cb928792600092889291169042906004016117ce565b600060405180830381600087803b1580156111e557600080fd5b505af11580156111f9573d6000803e3d6000fd5b505050505050565b803580151581146106db57600080fd5b600060208284031215611222578081fd5b813561122d8161190b565b9392505050565b600060208284031215611245578081fd5b815161122d8161190b565b60008060408385031215611262578081fd5b823561126d8161190b565b9150602083013561127d8161190b565b809150509250929050565b60008060006060848603121561129c578081fd5b83356112a78161190b565b925060208401356112b78161190b565b929592945050506040919091013590565b600080604083850312156112da578182fd5b82356112e58161190b565b91506112f360208401611201565b90509250929050565b6000806040838503121561130e578182fd5b82356113198161190b565b946020939093013593505050565b60008060006060848603121561133b578283fd5b61134484611201565b95602085013595506040909401359392505050565b60006020828403121561136a578081fd5b5035919050565b60008060408385031215611383578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156113dd578581018301518582016040015282016113c1565b818111156113ee5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526018908201527f54726164696e6720616c726561647920656e61626c65642e0000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260069082015265119bdc989a5960d21b604082015260600190565b6020808252601590820152744d61782046656573206c696d69742069732031302560581b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561181d5784516001600160a01b0316835293830193918301916001016117f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561185f5761185f6118f5565b500190565b60008261187f57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561189e5761189e6118f5565b500290565b6000828210156118b5576118b56118f5565b500390565b6002810460018216806118ce57607f821691505b602082108114156118ef57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461069157600080fdfea2646970667358221220a9c03cb98dc72a31b4a8613a1d1a1e2ce680591069fef73198735d3628be64b064736f6c63430008000033

Deployed Bytecode Sourcemap

19987:4965:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11523:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20655:42::-;;;;;;:::i;:::-;;:::i;10476:108::-;;;:::i;:::-;;;;;;;:::i;20234:31::-;;;:::i;12174:492::-;;;;;;:::i;:::-;;:::i;10318:93::-;;;:::i;:::-;;;;;;;:::i;13075:215::-;;;;;;:::i;:::-;;:::i;21751:232::-;;;;;;:::i;:::-;;:::i;:::-;;21362:135;;;;;;:::i;:::-;;:::i;24868:81::-;;;;;;:::i;:::-;;:::i;20464:28::-;;;:::i;:::-;;;;;;;:::i;20069:26::-;;;:::i;20130:23::-;;;:::i;10647:127::-;;;;;;:::i;:::-;;:::i;2757:103::-;;;:::i;20499:30::-;;;:::i;20274:34::-;;;:::i;20036:26::-;;;:::i;20162:65::-;;;:::i;21993:175::-;;;:::i;2106:87::-;;;:::i;20339:35::-;;;:::i;9575:104::-;;;:::i;13793:413::-;;;;;;:::i;:::-;;:::i;10987:175::-;;;;;;:::i;:::-;;:::i;22176:116::-;;;;;;:::i;:::-;;:::i;21505:238::-;;;;;;:::i;:::-;;:::i;20704:48::-;;;;;;:::i;:::-;;:::i;11225:151::-;;;;;;:::i;:::-;;:::i;20408:49::-;;;:::i;3015:201::-;;;;;;:::i;:::-;;:::i;9356:100::-;9410:13;9443:5;9436:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:100;:::o;11523:169::-;11606:4;11623:39;11632:12;:10;:12::i;:::-;11646:7;11655:6;11623:8;:39::i;:::-;-1:-1:-1;11680:4:0;11523:169;;;;:::o;20655:42::-;;;;;;;;;;;;;;;:::o;10476:108::-;10564:12;;10476:108;:::o;20234:31::-;;;;:::o;12174:492::-;12314:4;12331:36;12341:6;12349:9;12360:6;12331:9;:36::i;:::-;-1:-1:-1;;;;;12407:19:0;;12380:24;12407:19;;;:11;:19;;;;;12380:24;12427:12;:10;:12::i;:::-;-1:-1:-1;;;;;12407:33:0;-1:-1:-1;;;;;12407:33:0;;;;;;;;;;;;;12380:60;;12479:6;12459:16;:26;;12451:79;;;;-1:-1:-1;;;12451:79:0;;;;;;;:::i;:::-;;;;;;;;;12566:57;12575:6;12583:12;:10;:12::i;:::-;12616:6;12597:16;:25;12566:8;:57::i;:::-;-1:-1:-1;12654:4:0;;12174:492;-1:-1:-1;;;;12174:492:0:o;10318:93::-;10401:2;10318:93;:::o;13075:215::-;13163:4;13180:80;13189:12;:10;:12::i;:::-;13203:7;13249:10;13212:11;:25;13224:12;:10;:12::i;:::-;-1:-1:-1;;;;;13212:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;13212:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;13180:8;:80::i;21751:232::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;21834:15:::1;:21:::0;;;21866:16:::1;:23:::0;;;21909:34:::1;21885:4:::0;21852:3;21909:34:::1;:::i;:::-;:40;;21900:75;;;;-1:-1:-1::0;;;21900:75:0::1;;;;;;;:::i;:::-;21751:232:::0;;:::o;21362:135::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21451:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;21451:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21362:135::o;24868:81::-;24917:24;24923:10;24935:5;24917;:24::i;:::-;24868:81;:::o;20464:28::-;;;-1:-1:-1;;;;;20464:28:0;;:::o;20069:26::-;;;;;;;;;:::o;20130:23::-;;;;;;;;;:::o;10647:127::-;-1:-1:-1;;;;;10748:18:0;;10721:7;10748:18;;;:9;:18;;;;;;10647:127;;;;:::o;2757:103::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;2822:30:::1;2849:1;2822:18;:30::i;:::-;2757:103::o:0;20499:30::-;;;-1:-1:-1;;;;;20499:30:0;;:::o;20274:34::-;;;;:::o;20036:26::-;;;;;;:::o;20162:65::-;;;;:::o;21993:175::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;22056:14:::1;::::0;::::1;::::0;::::1;;;22055:15;22047:52;;;;-1:-1:-1::0;;;22047:52:0::1;;;;;;;:::i;:::-;22110:14;:21:::0;;-1:-1:-1;;;;22110:21:0;;::::1;;;22142:18;::::0;::::1;::::0;;21993:175::o;2106:87::-;2152:7;2179:6;-1:-1:-1;;;;;2179:6:0;2106:87;:::o;20339:35::-;;;;:::o;9575:104::-;9631:13;9664:7;9657:14;;;;;:::i;13793:413::-;13886:4;13903:24;13930:11;:25;13942:12;:10;:12::i;:::-;-1:-1:-1;;;;;13930:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;13930:25:0;;;:34;;;;;;;;;;;-1:-1:-1;13983:35:0;;;;13975:85;;;;-1:-1:-1;;;13975:85:0;;;;;;;:::i;:::-;14096:67;14105:12;:10;:12::i;:::-;14119:7;14147:15;14128:16;:34;14096:8;:67::i;:::-;-1:-1:-1;14194:4:0;;13793:413;-1:-1:-1;;;13793:413:0:o;10987:175::-;11073:4;11090:42;11100:12;:10;:12::i;:::-;11114:9;11125:6;11090:9;:42::i;22176:116::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;22257:15:::1;:27:::0;;-1:-1:-1;;;;;;22257:27:0::1;-1:-1:-1::0;;;;;22257:27:0;;;::::1;::::0;;;::::1;::::0;;22176:116::o;21505:238::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;21621:7:::1;:18:::0;;-1:-1:-1;;21621:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21652:16:::1;:36:::0;21699:16:::1;:36:::0;21505:238::o;20704:48::-;;;;;;;;;;;;;;;:::o;11225:151::-;-1:-1:-1;;;;;11341:18:0;;;11314:7;11341:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11225:151::o;20408:49::-;;;;:::o;3015:201::-;2337:12;:10;:12::i;:::-;-1:-1:-1;;;;;2326:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2326:23:0;;2318:68;;;;-1:-1:-1;;;2318:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3104:22:0;::::1;3096:73;;;;-1:-1:-1::0;;;3096:73:0::1;;;;;;;:::i;:::-;3180:28;3199:8;3180:18;:28::i;824:98::-:0;904:10;824:98;:::o;17477:380::-;-1:-1:-1;;;;;17613:19:0;;17605:68;;;;-1:-1:-1;;;17605:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17692:21:0;;17684:68;;;;-1:-1:-1;;;17684:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17765:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;17817:32;;;;;17795:6;;17817:32;:::i;:::-;;;;;;;;17477:380;;;:::o;22300:2034::-;-1:-1:-1;;;;;22397:18:0;;22389:68;;;;-1:-1:-1;;;22389:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:16:0;;22468:64;;;;-1:-1:-1;;;22468:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22553:14:0;;;;;;:10;:14;;;;;;;;22552:15;:36;;;;-1:-1:-1;;;;;;22572:16:0;;;;;;:10;:16;;;;;;;;22571:17;22552:36;22544:60;;;;-1:-1:-1;;;22544:60:0;;;;;;;:::i;:::-;22623:14;;;;;;;;:40;;-1:-1:-1;;;;;;22641:22:0;;;;;;:16;:22;;;;;;;;22623:40;:64;;;-1:-1:-1;;;;;;22667:20:0;;;;;;:16;:20;;;;;;;;22623:64;22615:101;;;;-1:-1:-1;;;22615:101:0;;;;;;;:::i;:::-;22740:11;22736:93;;22768:28;22784:4;22790:2;22794:1;22768:15;:28::i;:::-;22811:7;;22736:93;22845:7;;;;:32;;;;-1:-1:-1;22864:13:0;;-1:-1:-1;;;;;22856:21:0;;;22864:13;;22856:21;22845:32;22841:172;;;22928:16;;22918:6;22902:13;22912:2;22902:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;:88;;;;;22974:16;;22964:6;22948:13;22958:2;22948:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;22902:88;22894:107;;;;-1:-1:-1;;;22894:107:0;;;;;;;:::i;:::-;23019:28;23050:24;23068:4;23050:9;:24::i;:::-;23126:18;;23019:55;;-1:-1:-1;23102:42:0;;;;;;;23161:33;;-1:-1:-1;23186:8:0;;;;;;;23185:9;23161:33;:69;;;;-1:-1:-1;23217:13:0;;-1:-1:-1;;;;;23211:19:0;;;23217:13;;23211:19;23161:69;:97;;;;-1:-1:-1;23247:11:0;;;;;;;23161:97;23157:257;;;23285:8;:15;;-1:-1:-1;;23285:15:0;;;;;23333:36;23348:20;23333:14;:36::i;:::-;23386:8;:16;;-1:-1:-1;;23386:16:0;;;23157:257;23443:8;;-1:-1:-1;;;;;23554:22:0;;23427:12;23554:22;;;:16;:22;;;;;;23443:8;;;;;;;23442:9;;23554:22;;:46;;-1:-1:-1;;;;;;23580:20:0;;;;;;:16;:20;;;;;;;;23554:46;23550:94;;;-1:-1:-1;23627:5:0;23550:94;23658:12;23763:7;23759:522;;;23821:13;;-1:-1:-1;;;;;23815:19:0;;;23821:13;;23815:19;:43;;;;;23857:1;23838:16;;:20;23815:43;23811:141;;;23916:3;23896:16;;23887:6;:25;;;;:::i;:::-;23886:33;;;;:::i;:::-;23879:40;;23811:141;24001:13;;-1:-1:-1;;;;;23993:21:0;;;24001:13;;23993:21;:44;;;;;24036:1;24018:15;;:19;23993:44;23989:141;;;24094:3;24075:15;;24066:6;:24;;;;:::i;:::-;24065:32;;;;:::i;:::-;24058:39;;23989:141;24151:8;;24147:91;;24180:42;24196:4;24210;24217;24180:15;:42::i;:::-;24255:14;24265:4;24255:14;;:::i;:::-;;;23759:522;24293:33;24309:4;24315:2;24319:6;24293:15;:33::i;:::-;22300:2034;;;;;;;;:::o;16448:591::-;-1:-1:-1;;;;;16532:21:0;;16524:67;;;;-1:-1:-1;;;16524:67:0;;;;;;;:::i;:::-;16604:49;16625:7;16642:1;16646:6;16604:20;:49::i;:::-;-1:-1:-1;;;;;16691:18:0;;16666:22;16691:18;;;:9;:18;;;;;;16728:24;;;;16720:71;;;;-1:-1:-1;;;16720:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16827:18:0;;;;;;:9;:18;;;;;16848:23;;;16827:44;;16893:12;:22;;16865:6;;16827:18;16893:22;;16865:6;;16893:22;:::i;:::-;;;;-1:-1:-1;;16933:37:0;;16959:1;;-1:-1:-1;;;;;16933:37:0;;;;;;;16963:6;;16933:37;:::i;:::-;;;;;;;;16983:48;17003:7;17020:1;17024:6;16983:19;:48::i;3376:191::-;3450:16;3469:6;;-1:-1:-1;;;;;3486:17:0;;;-1:-1:-1;;;;;;3486:17:0;;;;;;3519:40;;3469:6;;;;;;;3519:40;;3450:16;3519:40;3376:191;;:::o;14696:733::-;-1:-1:-1;;;;;14836:20:0;;14828:70;;;;-1:-1:-1;;;14828:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14917:23:0;;14909:71;;;;-1:-1:-1;;;14909:71:0;;;;;;;:::i;:::-;14993:47;15014:6;15022:9;15033:6;14993:20;:47::i;:::-;-1:-1:-1;;;;;15077:17:0;;15053:21;15077:17;;;:9;:17;;;;;;15113:23;;;;15105:74;;;;-1:-1:-1;;;15105:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15215:17:0;;;;;;;:9;:17;;;;;;15235:22;;;15215:42;;15279:20;;;;;;;;:30;;15251:6;;15215:17;15279:30;;15251:6;;15279:30;:::i;:::-;;;;;;;;15344:9;-1:-1:-1;;;;;15327:35:0;15336:6;-1:-1:-1;;;;;15327:35:0;;15355:6;15327:35;;;;;;:::i;:::-;;;;;;;;15375:46;15395:6;15403:9;15414:6;15375:19;:46::i;:::-;14696:733;;;;:::o;24343:517::-;24435:16;;;24449:1;24435:16;;;;;;;;24411:21;;24435:16;;;;;;;;;;-1:-1:-1;24435:16:0;24411:40;;24480:4;24462;24467:1;24462:7;;;;;;-1:-1:-1;;;24462:7:0;;;;;;;;;-1:-1:-1;;;;;24462:23:0;;;:7;;;;;;;;;;:23;;;;24506:6;;:13;;;-1:-1:-1;;;24506:13:0;;;;:6;;;;;:11;;:13;;;;;24462:7;;24506:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24496:4;24501:1;24496:7;;;;;;-1:-1:-1;;;24496:7:0;;;;;;;;;-1:-1:-1;;;;;24496:23:0;;;:7;;;;;;;;;:23;24566:6;;24577;;24533:41;;24551:4;;24566:6;24533:9;:41::i;:::-;:50;24530:130;;;24627:6;;24595:53;;24612:4;;-1:-1:-1;;;;;24627:6:0;-1:-1:-1;;24595:8:0;:53::i;:::-;24669:6;;24796:15;;24669:173;;-1:-1:-1;;;24669:173:0;;-1:-1:-1;;;;;24669:6:0;;;;:57;;:173;;24740:6;;24669;;24777:4;;24796:15;;;24826;;24669:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24343:517;;:::o;14:162:1:-;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;:::-;429:5;251:189;-1:-1:-1;;;251:189:1:o;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:329::-;;;1721:2;1709:9;1700:7;1696:23;1692:32;1689:2;;;1742:6;1734;1727:22;1689:2;1786:9;1773:23;1805:33;1832:5;1805:33;:::i;:::-;1857:5;-1:-1:-1;1881:37:1;1914:2;1899:18;;1881:37;:::i;:::-;1871:47;;1679:245;;;;;:::o;1929:327::-;;;2058:2;2046:9;2037:7;2033:23;2029:32;2026:2;;;2079:6;2071;2064:22;2026:2;2123:9;2110:23;2142:33;2169:5;2142:33;:::i;:::-;2194:5;2246:2;2231:18;;;;2218:32;;-1:-1:-1;;;2016:240:1:o;2261:328::-;;;;2404:2;2392:9;2383:7;2379:23;2375:32;2372:2;;;2425:6;2417;2410:22;2372:2;2453:28;2471:9;2453:28;:::i;:::-;2443:38;2528:2;2513:18;;2500:32;;-1:-1:-1;2579:2:1;2564:18;;;2551:32;;2362:227;-1:-1:-1;;;2362:227:1:o;2594:190::-;;2706:2;2694:9;2685:7;2681:23;2677:32;2674:2;;;2727:6;2719;2712:22;2674:2;-1:-1:-1;2755:23:1;;2664:120;-1:-1:-1;2664:120:1:o;2789:258::-;;;2918:2;2906:9;2897:7;2893:23;2889:32;2886:2;;;2939:6;2931;2924:22;2886:2;-1:-1:-1;;2967:23:1;;;3037:2;3022:18;;;3009:32;;-1:-1:-1;2876:171:1:o;3052:203::-;-1:-1:-1;;;;;3216:32:1;;;;3198:51;;3186:2;3171:18;;3153:102::o;3260:187::-;3425:14;;3418:22;3400:41;;3388:2;3373:18;;3355:92::o;3452:603::-;;3593:2;3622;3611:9;3604:21;3654:6;3648:13;3697:6;3692:2;3681:9;3677:18;3670:34;3722:4;3735:140;3749:6;3746:1;3743:13;3735:140;;;3844:14;;;3840:23;;3834:30;3810:17;;;3829:2;3806:26;3799:66;3764:10;;3735:140;;;3893:6;3890:1;3887:13;3884:2;;;3963:4;3958:2;3949:6;3938:9;3934:22;3930:31;3923:45;3884:2;-1:-1:-1;4039:2:1;4018:15;-1:-1:-1;;4014:29:1;3999:45;;;;4046:2;3995:54;;3573:482;-1:-1:-1;;;3573:482:1:o;4060:399::-;4262:2;4244:21;;;4301:2;4281:18;;;4274:30;4340:34;4335:2;4320:18;;4313:62;-1:-1:-1;;;4406:2:1;4391:18;;4384:33;4449:3;4434:19;;4234:225::o;4464:348::-;4666:2;4648:21;;;4705:2;4685:18;;;4678:30;4744:26;4739:2;4724:18;;4717:54;4803:2;4788:18;;4638:174::o;4817:398::-;5019:2;5001:21;;;5058:2;5038:18;;;5031:30;5097:34;5092:2;5077:18;;5070:62;-1:-1:-1;;;5163:2:1;5148:18;;5141:32;5205:3;5190:19;;4991:224::o;5220:402::-;5422:2;5404:21;;;5461:2;5441:18;;;5434:30;5500:34;5495:2;5480:18;;5473:62;-1:-1:-1;;;5566:2:1;5551:18;;5544:36;5612:3;5597:19;;5394:228::o;5627:398::-;5829:2;5811:21;;;5868:2;5848:18;;;5841:30;5907:34;5902:2;5887:18;;5880:62;-1:-1:-1;;;5973:2:1;5958:18;;5951:32;6015:3;6000:19;;5801:224::o;6030:348::-;6232:2;6214:21;;;6271:2;6251:18;;;6244:30;6310:26;6305:2;6290:18;;6283:54;6369:2;6354:18;;6204:174::o;6383:402::-;6585:2;6567:21;;;6624:2;6604:18;;;6597:30;6663:34;6658:2;6643:18;;6636:62;-1:-1:-1;;;6729:2:1;6714:18;;6707:36;6775:3;6760:19;;6557:228::o;6790:329::-;6992:2;6974:21;;;7031:1;7011:18;;;7004:29;-1:-1:-1;;;7064:2:1;7049:18;;7042:36;7110:2;7095:18;;6964:155::o;7124:345::-;7326:2;7308:21;;;7365:2;7345:18;;;7338:30;-1:-1:-1;;;7399:2:1;7384:18;;7377:51;7460:2;7445:18;;7298:171::o;7474:404::-;7676:2;7658:21;;;7715:2;7695:18;;;7688:30;7754:34;7749:2;7734:18;;7727:62;-1:-1:-1;;;7820:2:1;7805:18;;7798:38;7868:3;7853:19;;7648:230::o;7883:356::-;8085:2;8067:21;;;8104:18;;;8097:30;8163:34;8158:2;8143:18;;8136:62;8230:2;8215:18;;8057:182::o;8244:397::-;8446:2;8428:21;;;8485:2;8465:18;;;8458:30;8524:34;8519:2;8504:18;;8497:62;-1:-1:-1;;;8590:2:1;8575:18;;8568:31;8631:3;8616:19;;8418:223::o;8646:401::-;8848:2;8830:21;;;8887:2;8867:18;;;8860:30;8926:34;8921:2;8906:18;;8899:62;-1:-1:-1;;;8992:2:1;8977:18;;8970:35;9037:3;9022:19;;8820:227::o;9052:400::-;9254:2;9236:21;;;9293:2;9273:18;;;9266:30;9332:34;9327:2;9312:18;;9305:62;-1:-1:-1;;;9398:2:1;9383:18;;9376:34;9442:3;9427:19;;9226:226::o;9457:401::-;9659:2;9641:21;;;9698:2;9678:18;;;9671:30;9737:34;9732:2;9717:18;;9710:62;-1:-1:-1;;;9803:2:1;9788:18;;9781:35;9848:3;9833:19;;9631:227::o;9863:335::-;10065:2;10047:21;;;10104:2;10084:18;;;10077:30;-1:-1:-1;;;10138:2:1;10123:18;;10116:41;10189:2;10174:18;;10037:161::o;10203:177::-;10349:25;;;10337:2;10322:18;;10304:76::o;10385:983::-;;10695:3;10684:9;10680:19;10726:6;10715:9;10708:25;10752:2;10790:6;10785:2;10774:9;10770:18;10763:34;10833:3;10828:2;10817:9;10813:18;10806:31;10857:6;10892;10886:13;10923:6;10915;10908:22;10961:3;10950:9;10946:19;10939:26;;11000:2;10992:6;10988:15;10974:29;;11021:4;11034:195;11048:6;11045:1;11042:13;11034:195;;;11113:13;;-1:-1:-1;;;;;11109:39:1;11097:52;;11204:15;;;;11169:12;;;;11145:1;11063:9;11034:195;;;-1:-1:-1;;;;;;;11285:32:1;;;;11280:2;11265:18;;11258:60;-1:-1:-1;;;11349:3:1;11334:19;11327:35;11246:3;10656:712;-1:-1:-1;;;10656:712:1:o;11373:184::-;11545:4;11533:17;;;;11515:36;;11503:2;11488:18;;11470:87::o;11562:128::-;;11633:1;11629:6;11626:1;11623:13;11620:2;;;11639:18;;:::i;:::-;-1:-1:-1;11675:9:1;;11610:80::o;11695:217::-;;11761:1;11751:2;;-1:-1:-1;;;11786:31:1;;11840:4;11837:1;11830:15;11868:4;11793:1;11858:15;11751:2;-1:-1:-1;11897:9:1;;11741:171::o;11917:168::-;;12023:1;12019;12015:6;12011:14;12008:1;12005:21;12000:1;11993:9;11986:17;11982:45;11979:2;;;12030:18;;:::i;:::-;-1:-1:-1;12070:9:1;;11969:116::o;12090:125::-;;12158:1;12155;12152:8;12149:2;;;12163:18;;:::i;:::-;-1:-1:-1;12200:9:1;;12139:76::o;12220:380::-;12305:1;12295:12;;12352:1;12342:12;;;12363:2;;12417:4;12409:6;12405:17;12395:27;;12363:2;12470;12462:6;12459:14;12439:18;12436:38;12433:2;;;12516:10;12511:3;12507:20;12504:1;12497:31;12551:4;12548:1;12541:15;12579:4;12576:1;12569:15;12433:2;;12275:325;;;:::o;12605:127::-;12666:10;12661:3;12657:20;12654:1;12647:31;12697:4;12694:1;12687:15;12721:4;12718:1;12711:15;12737:133;-1:-1:-1;;;;;12814:31:1;;12804:42;;12794:2;;12860:1;12857;12850:12

Swarm Source

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