ETH Price: $3,259.13 (-5.29%)
 

Overview

Max Total Supply

100,000,000 GREEN

Holders

100

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
285,998.737821101 GREEN

Value
$0.00
0xb05217baefba97d343220d57ef5e800a8954e2ac
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:
GREEN

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-13
*/

/**

🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢

Telegram:  https://t.me/GreenERC20

Website:   https://www.greengreengreen.green

Docs:      https://docs.greengreengreen.green

Twitter:   https://twitter.greengreengreen.green

🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢

$GREEN is powered by an innovative new smart contract.

The rules are simple.

With each buy, a new 🟢 emoji is added to the token name.

Careful, there might be surprises!

🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;

// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

/**
 * @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;
    }
}

/**
 * @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 Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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);
    }
}

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract GREEN is Context, IERC20, Ownable {
    // ✅
    bool public constant COLOR_GREEN = true;
    // 🚫
    bool public constant COLOR_RED = false;
    // 🚫
    bool public constant COLOR_PINK = false;
    // 🚫
    bool public constant COLOR_VERMILION = false;
    // 🚫
    bool public constant COLOR_MAROON = false;
    // 🚫
    bool public constant COLOR_REDWOOD = false;
    // 🚫
    bool public constant COLOR_BURGUNDY = false;
    // 🚫
    bool public constant COLOR_CINNABAR = false;
    // 🚫
    bool public constant COLOR_ROSEWOOD = false;
    // 🚫
    bool public constant COLOR_CORDOVAN = false;
    // 🚫
    bool public constant COLOR_CARDINAL = false;
    // 🚫
    bool public constant COLOR_JASPER = false;
    // 🚫
    bool public constant COLOR_TOMATO = false;
    // 🚫
    bool public constant COLOR_CARMINE = false;

    string private _name = unicode"🟢";
    string private constant _symbol = "GREEN";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 8;
    uint256 private _taxFeeOnSell = 8;
    uint256 private _taxFee = 8;

    address payable private _developerFund = payable(msg.sender);
    address payable private _marketingFund = payable(msg.sender);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Factory public constant uniswapV2Factory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public immutable GREEN;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inTaxSwap;
    bool private inContractSwap;

    uint256 public maxSwap = 2000000 * 10**9;
    uint256 public maxWallet = 2000000 * 10**9;
    uint256 private constant _triggerSwap = 10**9;

    modifier lockTheSwap {
        inTaxSwap = true;
        _;
        inTaxSwap = false;
    }

    constructor() {
        GREEN = address(this);
        uniswapV2Pair = uniswapV2Factory.createPair(GREEN, WETH);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[GREEN] = true;
        _isExcludedFromFee[_developerFund] = true;
        _isExcludedFromFee[_marketingFund] = true;
        _approve(GREEN, address(uniswapV2Router), MAX);
        _approve(owner(), address(uniswapV2Router), MAX);

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

    function Green() external pure returns (bool) {
        return COLOR_GREEN;
    }

    function Red() external pure returns (bool) {
        return COLOR_RED;
    }

    function Pink() external pure returns (bool) {
        return COLOR_PINK;
    }

    function Vermilion() external pure returns (bool) {
        return COLOR_VERMILION;
    }

    function Maroon() external pure returns (bool) {
        return COLOR_MAROON;
    }

    function Redwood() external pure returns (bool) {
        return COLOR_REDWOOD;
    }

    function Burgundy() external pure returns (bool) {
        return COLOR_BURGUNDY;
    }

    function Cinnabar() external pure returns (bool) {
        return COLOR_CINNABAR;
    }

    function Rosewood() external pure returns (bool) {
        return COLOR_ROSEWOOD;
    }

    function Cordovan() external pure returns (bool) {
        return COLOR_CORDOVAN;
    }

    function Cardinal() external pure returns (bool) {
        return COLOR_CARDINAL;
    }

    function Jasper() external pure returns (bool) {
        return COLOR_JASPER;
    }

    function Tomato() external pure returns (bool) {
        return COLOR_TOMATO;
    }

    function Carmine() external pure returns (bool) {
        return COLOR_CARMINE;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        require(_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function _removeTax() private {
        if (_taxFee == 0) {
            return;
        }

        _taxFee = 0;
    }

    function _restoreTax() private {
        _taxFee = 8;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "TOKEN: Transfer amount must exceed zero");

        if (from != owner() && to != owner() && from != GREEN && to != GREEN) {
            if (!tradingOpen) {
                require(from == GREEN, "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= maxSwap, "TOKEN: Max Transaction Limit");

            if (to != uniswapV2Pair) {
                require(balanceOf(to) + amount < maxWallet, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(GREEN);
            bool canSwap = contractTokenBalance >= _triggerSwap;

            if (contractTokenBalance >= maxSwap) {
                contractTokenBalance = maxSwap;
            }

            if (canSwap && !inTaxSwap && from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                inContractSwap = true;
                swapTokensForEth(contractTokenBalance);
                inContractSwap = false;
                if (GREEN.balance > 0) sendETHToFee(GREEN.balance);
            }
        }

        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
                _updateName();
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function _updateName() private {
        _name = string(abi.encodePacked(_name, unicode"🟢"));
    }

    function swapTokensForEth(uint256 _tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = GREEN;
        path[1] = WETH;
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount, 0, path, GREEN, block.timestamp + 3600);
    }

    function sendETHToFee(uint256 _ETHAmount) private {
        payable(_marketingFund).call{value: _ETHAmount}("");
    }

    function enableTrading() external onlyOwner {
        tradingOpen = true;
    }

    function removeTaxes() external onlyOwner {
        _taxFeeOnBuy = 0;
        _taxFeeOnSell = 0;
    }

    function removeLimits() external onlyOwner {
        maxSwap = _tTotal;
        maxWallet = _tTotal;
    }

    function swapTokensForEthManual(uint256 _contractTokenBalance) external {
        require(_msgSender() == _developerFund || _msgSender() == _marketingFund);
        swapTokensForEth(_contractTokenBalance);
    }

    function sendETHToFeeManual(uint256 _contractETHBalance) external {
        require(_msgSender() == _developerFund || _msgSender() == _marketingFund);
        sendETHToFee(_contractETHBalance);
    }

    function _tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        return (!inContractSwap && inTaxSwap) ? totalSupply() * 1001 : rAmount / _getRate();
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) _removeTax();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) _restoreTax();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        if (!inTaxSwap || inContractSwap) {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender] - rAmount;
            _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
            _rOwned[GREEN] = _rOwned[GREEN] + (tTeam * _getRate());
            _rTotal = _rTotal - rFee;
            _tFeeTotal = _tFeeTotal + tFee;
            emit Transfer(sender, recipient, tTransferAmount);
        } else {
            emit Transfer(sender, recipient, tAmount);
        }
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, 0, _taxFee);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 redisFee, uint256 taxFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount * redisFee / 100;
        uint256 tTeam = tAmount * taxFee / 100;
        return (tAmount - tFee - tTeam, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        return (rAmount, rAmount - rFee - (tTeam * currentRate), rFee);
    }

    function _getRate() private view returns (uint256) {
        return _rTotal / _tTotal;
    }
}

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":[],"name":"Burgundy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"COLOR_BURGUNDY","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_CARDINAL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_CARMINE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_CINNABAR","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_CORDOVAN","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_GREEN","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_JASPER","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_MAROON","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_PINK","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_RED","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_REDWOOD","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_ROSEWOOD","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_TOMATO","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLOR_VERMILION","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Cardinal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Carmine","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Cinnabar","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Cordovan","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"GREEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Green","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Jasper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Maroon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Pink","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Red","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Redwood","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Rosewood","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Tomato","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"Vermilion","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_contractETHBalance","type":"uint256"}],"name":"sendETHToFeeManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_contractTokenBalance","type":"uint256"}],"name":"swapTokensForEthManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniswapV2Factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600460a090815263784fcfd160e11b60c0526001906200002590826200048c565b506200003c67016345785d8a000060001962000558565b6200004a906000196200057b565b60065560088080556009819055600a55600b8054336001600160a01b03199182168117909255600c8054909116909117905566071afd498d0000600e819055600f553480156200009957600080fd5b50620000a5336200026b565b3060808190526040516364e329cb60e11b8152600481019190915273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063c9c65396906044016020604051808303816000875af115801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f9190620005a3565b600d80546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff19908116600190811790925560805180861685528385208054831684179055600b54861685528385208054831684179055600c5490951684529190922080549091169091179055620001db90737a250d5630b4cf539739df2c5dacb4c659f2488d600019620002bb565b62000210620001f26000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d600019620002bb565b60065433600081815260026020908152604080832094909455925167016345785d8a00008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620003235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200031a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200041257607f821691505b6020821081036200043357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200048757600081815260208120601f850160051c81016020861015620004625750805b601f850160051c820191505b8181101562000483578281556001016200046e565b5050505b505050565b81516001600160401b03811115620004a857620004a8620003e7565b620004c081620004b98454620003fd565b8462000439565b602080601f831160018114620004f85760008415620004df5750858301515b600019600386901b1c1916600185901b17855562000483565b600085815260208120601f198616915b82811015620005295788860151825594840194600190910190840162000508565b5085821015620005485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826200057657634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200059d57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620005b657600080fd5b81516001600160a01b0381168114620005ce57600080fd5b9392505050565b608051611bc6620006376000396000818161050401528181610c4f01528181610c8d01528181610cda01528181610e5d01528181610f4f01528181610f7a015281816112b7015281816113690152818161154e01526115910152611bc66000f3fe6080604052600436106103035760003560e01c80638a8c523c11610190578063c4918b4e116100dc578063e070d92e11610095578063f77369da1161006f578063f77369da14610394578063f8b45b051461069f578063f97dd1781461036a578063ff06678b1461039457600080fd5b8063e070d92e14610394578063eff680de14610394578063f2fde38b1461067f57600080fd5b8063c4918b4e146105ef578063cc2d04aa14610605578063cd59c6d514610625578063d68c0efb14610394578063d9dbce091461036a578063dd62ed3e1461063957600080fd5b8063a462a4d211610149578063ad5c464811610123578063ad5c4648146105c7578063b49a18e41461036a578063bc2a8f2d1461036a578063bf87d6bf1461039457600080fd5b8063a462a4d21461036a578063a9059cbb146105a7578063a9f62c3b1461036a57600080fd5b80638a8c523c146105265780638da5cb5b1461053b5780638fe1d76c1461039457806390526cf21461055957806395d89b41146105795780639b3d036a1461039457600080fd5b806349bd5a5e1161024f5780636735fbb011610208578063715018a6116101e2578063715018a6146104c8578063751039fc146104dd57806378ec96a0146104f25780637cf9f4921461036a57600080fd5b80636735fbb01461036a57806369e1ea7f1461049157806370a08231146104a857600080fd5b806349bd5a5e1461044957806354f48fb61461036a57806358d901081461036a57806359d0f713146104695780635a1adec214610394578063637e73701461039457600080fd5b806318160ddd116102bc5780632ab9ae1c116102965780632ab9ae1c14610394578063313ce5671461042d57806342002ca01461039457806344ba16a21461036a57600080fd5b806318160ddd146103e85780631f9fa0621461036a57806323b872dd1461040d57600080fd5b806306fdde031461030f578063095ea7b31461033a5780630b5738bb1461036a578063125385f21461037f57806313947db9146103945780631694505e146103a857600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b506103246106b5565b6040516103319190611776565b60405180910390f35b34801561034657600080fd5b5061035a6103553660046117e0565b610747565b6040519015158152602001610331565b34801561037657600080fd5b5061035a600081565b34801561038b57600080fd5b5061035a600181565b3480156103a057600080fd5b50600061035a565b3480156103b457600080fd5b506103d0737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610331565b3480156103f457600080fd5b5067016345785d8a00005b604051908152602001610331565b34801561041957600080fd5b5061035a61042836600461180a565b61075e565b34801561043957600080fd5b5060405160098152602001610331565b34801561045557600080fd5b50600d546103d0906001600160a01b031681565b34801561047557600080fd5b506103d0735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561049d57600080fd5b506104a6610839565b005b3480156104b457600080fd5b506103ff6104c3366004611846565b61084d565b3480156104d457600080fd5b506104a661086f565b3480156104e957600080fd5b506104a6610883565b3480156104fe57600080fd5b506103d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561053257600080fd5b506104a661089e565b34801561054757600080fd5b506000546001600160a01b03166103d0565b34801561056557600080fd5b506104a6610574366004611868565b6108bb565b34801561058557600080fd5b5060408051808201909152600581526423a922a2a760d91b6020820152610324565b3480156105b357600080fd5b5061035a6105c23660046117e0565b610905565b3480156105d357600080fd5b506103d073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156105fb57600080fd5b506103ff600e5481565b34801561061157600080fd5b506104a6610620366004611868565b610912565b34801561063157600080fd5b50600161035a565b34801561064557600080fd5b506103ff610654366004611881565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068b57600080fd5b506104a661069a366004611846565b610959565b3480156106ab57600080fd5b506103ff600f5481565b6060600180546106c4906118b4565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906118b4565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b60006107543384846109cf565b5060015b92915050565b600061076b848484610af4565b6001600160a01b03841660009081526004602090815260408083203384529091529020548211156107f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6001600160a01b03841660009081526004602090815260408083203380855292529091205461082f91869161082a908690611904565b6109cf565b5060019392505050565b6108416110d1565b60006008819055600955565b6001600160a01b0381166000908152600260205260408120546107589061112b565b6108776110d1565b61088160006111e4565b565b61088b6110d1565b67016345785d8a0000600e819055600f55565b6108a66110d1565b600d805460ff60a01b1916600160a01b179055565b600b546001600160a01b0316336001600160a01b031614806108f05750600c546001600160a01b0316336001600160a01b0316145b6108f957600080fd5b61090281611234565b50565b6000610754338484610af4565b600b546001600160a01b0316336001600160a01b031614806109475750600c546001600160a01b0316336001600160a01b0316145b61095057600080fd5b61090281611281565b6109616110d1565b6001600160a01b0381166109c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107eb565b610902816111e4565b6001600160a01b038316610a315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107eb565b6001600160a01b038216610a925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107eb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107eb565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107eb565b60008111610c1a5760405162461bcd60e51b815260206004820152602760248201527f544f4b454e3a205472616e7366657220616d6f756e74206d75737420657863656044820152666564207a65726f60c81b60648201526084016107eb565b6000546001600160a01b03848116911614801590610c4657506000546001600160a01b03838116911614155b8015610c8457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015610cc257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15610fab57600d54600160a01b900460ff16610d7f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614610d7f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016107eb565b600e54811115610dd15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107eb565b600d546001600160a01b03838116911614610e5657600f5481610df38461084d565b610dfd9190611917565b10610e565760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107eb565b6000610e817f000000000000000000000000000000000000000000000000000000000000000061084d565b600e54909150633b9aca00821015908210610e9c57600e5491505b808015610eb35750600d54600160a81b900460ff16155b8015610ecd5750600d546001600160a01b03868116911614155b8015610ef257506001600160a01b03851660009081526005602052604090205460ff16155b8015610f1757506001600160a01b03841660009081526005602052604090205460ff16155b15610fa857600d805460ff60b01b1916600160b01b179055610f3882611281565b600d805460ff60b01b191690556001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163115610fa857610fa87f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031631611234565b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610fed57506001600160a01b03831660009081526005602052604090205460ff165b8061101f5750600d546001600160a01b0385811691161480159061101f5750600d546001600160a01b03848116911614155b1561102c575060006110bf565b600d546001600160a01b03858116911614801561106657506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b1561107957600854600a556110796113f7565b600d546001600160a01b0384811691161480156110b357506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156110bf57600954600a555b6110cb84848484611426565b50505050565b6000546001600160a01b031633146108815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107eb565b60006006548211156111925760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107eb565b600d54600160b01b900460ff161580156111b55750600d54600160a81b900460ff165b6111d0576111c161144d565b6111cb908361192a565b610758565b61075867016345785d8a00006103e961194c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600c546040516001600160a01b03909116908290600081818185875af1925050503d80600081146110cb576040519150601f19603f3d011682016040523d82523d6000602084013e6110cb565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106112e9576112e9611979565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061133157611331611979565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac947836000847f000000000000000000000000000000000000000000000000000000000000000061139442610e10611917565b6040518663ffffffff1660e01b81526004016113b495949392919061198f565b600060405180830381600087803b1580156113ce57600080fd5b505af11580156113e2573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60016040516020016114099190611a00565b604051602081830303815290604052600190816109029190611ad0565b806114335761143361146a565b61143e84848461147d565b806110cb576110cb6008600a55565b600067016345785d8a0000600654611465919061192a565b905090565b600a5460000361147657565b6000600a55565b600d54600160a81b900460ff16158061149f5750600d54600160b01b900460ff165b15611630576000806000806000806114b68761167a565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114e9908790611904565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611519908690611917565b6001600160a01b03891660009081526002602052604090205561153a61144d565b611544908261194c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600260205260409020546115879190611917565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600260205260409020556006546115ce908590611904565b6006556007546115df908390611917565b6007556040518381526001600160a01b03808a1691908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ae791815260200190565b505050565b60008060008060008060008060006116968a6000600a546116ce565b92509250925060008060006116b48d86866116af61144d565b611727565b919f909e50909c50959a5093985091965092945050505050565b600080808060646116df878961194c565b6116e9919061192a565b9050600060646116f9878a61194c565b611703919061192a565b905080611710838a611904565b61171a9190611904565b9891975095509350505050565b6000808080611736858961194c565b90506000611744868961194c565b905081611751878961194c565b61175b8385611904565b6117659190611904565b909a90995090975095505050505050565b600060208083528351808285015260005b818110156117a357858101830151858201604001528201611787565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146117db57600080fd5b919050565b600080604083850312156117f357600080fd5b6117fc836117c4565b946020939093013593505050565b60008060006060848603121561181f57600080fd5b611828846117c4565b9250611836602085016117c4565b9150604084013590509250925092565b60006020828403121561185857600080fd5b611861826117c4565b9392505050565b60006020828403121561187a57600080fd5b5035919050565b6000806040838503121561189457600080fd5b61189d836117c4565b91506118ab602084016117c4565b90509250929050565b600181811c908216806118c857607f821691505b6020821081036118e857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610758576107586118ee565b80820180821115610758576107586118ee565b60008261194757634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610758576107586118ee565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119df5784516001600160a01b0316835293830193918301916001016119ba565b50506001600160a01b03969096166060850152505050608001529392505050565b6000808354611a0e816118b4565b60018281168015611a265760018114611a3b57611a6a565b60ff1984168752821515830287019450611a6a565b8760005260208060002060005b85811015611a615781548a820152908401908201611a48565b50505082870194505b505063784fcfd160e11b835250506004019392505050565b601f82111561167557600081815260208120601f850160051c81016020861015611aa95750805b601f850160051c820191505b81811015611ac857828155600101611ab5565b505050505050565b815167ffffffffffffffff811115611aea57611aea611963565b611afe81611af884546118b4565b84611a82565b602080601f831160018114611b335760008415611b1b5750858301515b600019600386901b1c1916600185901b178555611ac8565b600085815260208120601f198616915b82811015611b6257888601518255948401946001909101908401611b43565b5085821015611b805787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212201deeb6aea4fb0e1c3aa8dc662cb3d68518741fa9cb00af0ffa26d7ce043359a064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80638a8c523c11610190578063c4918b4e116100dc578063e070d92e11610095578063f77369da1161006f578063f77369da14610394578063f8b45b051461069f578063f97dd1781461036a578063ff06678b1461039457600080fd5b8063e070d92e14610394578063eff680de14610394578063f2fde38b1461067f57600080fd5b8063c4918b4e146105ef578063cc2d04aa14610605578063cd59c6d514610625578063d68c0efb14610394578063d9dbce091461036a578063dd62ed3e1461063957600080fd5b8063a462a4d211610149578063ad5c464811610123578063ad5c4648146105c7578063b49a18e41461036a578063bc2a8f2d1461036a578063bf87d6bf1461039457600080fd5b8063a462a4d21461036a578063a9059cbb146105a7578063a9f62c3b1461036a57600080fd5b80638a8c523c146105265780638da5cb5b1461053b5780638fe1d76c1461039457806390526cf21461055957806395d89b41146105795780639b3d036a1461039457600080fd5b806349bd5a5e1161024f5780636735fbb011610208578063715018a6116101e2578063715018a6146104c8578063751039fc146104dd57806378ec96a0146104f25780637cf9f4921461036a57600080fd5b80636735fbb01461036a57806369e1ea7f1461049157806370a08231146104a857600080fd5b806349bd5a5e1461044957806354f48fb61461036a57806358d901081461036a57806359d0f713146104695780635a1adec214610394578063637e73701461039457600080fd5b806318160ddd116102bc5780632ab9ae1c116102965780632ab9ae1c14610394578063313ce5671461042d57806342002ca01461039457806344ba16a21461036a57600080fd5b806318160ddd146103e85780631f9fa0621461036a57806323b872dd1461040d57600080fd5b806306fdde031461030f578063095ea7b31461033a5780630b5738bb1461036a578063125385f21461037f57806313947db9146103945780631694505e146103a857600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b506103246106b5565b6040516103319190611776565b60405180910390f35b34801561034657600080fd5b5061035a6103553660046117e0565b610747565b6040519015158152602001610331565b34801561037657600080fd5b5061035a600081565b34801561038b57600080fd5b5061035a600181565b3480156103a057600080fd5b50600061035a565b3480156103b457600080fd5b506103d0737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610331565b3480156103f457600080fd5b5067016345785d8a00005b604051908152602001610331565b34801561041957600080fd5b5061035a61042836600461180a565b61075e565b34801561043957600080fd5b5060405160098152602001610331565b34801561045557600080fd5b50600d546103d0906001600160a01b031681565b34801561047557600080fd5b506103d0735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561049d57600080fd5b506104a6610839565b005b3480156104b457600080fd5b506103ff6104c3366004611846565b61084d565b3480156104d457600080fd5b506104a661086f565b3480156104e957600080fd5b506104a6610883565b3480156104fe57600080fd5b506103d07f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a4581565b34801561053257600080fd5b506104a661089e565b34801561054757600080fd5b506000546001600160a01b03166103d0565b34801561056557600080fd5b506104a6610574366004611868565b6108bb565b34801561058557600080fd5b5060408051808201909152600581526423a922a2a760d91b6020820152610324565b3480156105b357600080fd5b5061035a6105c23660046117e0565b610905565b3480156105d357600080fd5b506103d073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156105fb57600080fd5b506103ff600e5481565b34801561061157600080fd5b506104a6610620366004611868565b610912565b34801561063157600080fd5b50600161035a565b34801561064557600080fd5b506103ff610654366004611881565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068b57600080fd5b506104a661069a366004611846565b610959565b3480156106ab57600080fd5b506103ff600f5481565b6060600180546106c4906118b4565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906118b4565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b60006107543384846109cf565b5060015b92915050565b600061076b848484610af4565b6001600160a01b03841660009081526004602090815260408083203384529091529020548211156107f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6001600160a01b03841660009081526004602090815260408083203380855292529091205461082f91869161082a908690611904565b6109cf565b5060019392505050565b6108416110d1565b60006008819055600955565b6001600160a01b0381166000908152600260205260408120546107589061112b565b6108776110d1565b61088160006111e4565b565b61088b6110d1565b67016345785d8a0000600e819055600f55565b6108a66110d1565b600d805460ff60a01b1916600160a01b179055565b600b546001600160a01b0316336001600160a01b031614806108f05750600c546001600160a01b0316336001600160a01b0316145b6108f957600080fd5b61090281611234565b50565b6000610754338484610af4565b600b546001600160a01b0316336001600160a01b031614806109475750600c546001600160a01b0316336001600160a01b0316145b61095057600080fd5b61090281611281565b6109616110d1565b6001600160a01b0381166109c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107eb565b610902816111e4565b6001600160a01b038316610a315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107eb565b6001600160a01b038216610a925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107eb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107eb565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107eb565b60008111610c1a5760405162461bcd60e51b815260206004820152602760248201527f544f4b454e3a205472616e7366657220616d6f756e74206d75737420657863656044820152666564207a65726f60c81b60648201526084016107eb565b6000546001600160a01b03848116911614801590610c4657506000546001600160a01b03838116911614155b8015610c8457507f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a456001600160a01b0316836001600160a01b031614155b8015610cc257507f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a456001600160a01b0316826001600160a01b031614155b15610fab57600d54600160a01b900460ff16610d7f577f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a456001600160a01b0316836001600160a01b031614610d7f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016107eb565b600e54811115610dd15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107eb565b600d546001600160a01b03838116911614610e5657600f5481610df38461084d565b610dfd9190611917565b10610e565760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107eb565b6000610e817f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a4561084d565b600e54909150633b9aca00821015908210610e9c57600e5491505b808015610eb35750600d54600160a81b900460ff16155b8015610ecd5750600d546001600160a01b03868116911614155b8015610ef257506001600160a01b03851660009081526005602052604090205460ff16155b8015610f1757506001600160a01b03841660009081526005602052604090205460ff16155b15610fa857600d805460ff60b01b1916600160b01b179055610f3882611281565b600d805460ff60b01b191690556001600160a01b037f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a45163115610fa857610fa87f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a456001600160a01b031631611234565b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610fed57506001600160a01b03831660009081526005602052604090205460ff165b8061101f5750600d546001600160a01b0385811691161480159061101f5750600d546001600160a01b03848116911614155b1561102c575060006110bf565b600d546001600160a01b03858116911614801561106657506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b1561107957600854600a556110796113f7565b600d546001600160a01b0384811691161480156110b357506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156110bf57600954600a555b6110cb84848484611426565b50505050565b6000546001600160a01b031633146108815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107eb565b60006006548211156111925760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107eb565b600d54600160b01b900460ff161580156111b55750600d54600160a81b900460ff165b6111d0576111c161144d565b6111cb908361192a565b610758565b61075867016345785d8a00006103e961194c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600c546040516001600160a01b03909116908290600081818185875af1925050503d80600081146110cb576040519150601f19603f3d011682016040523d82523d6000602084013e6110cb565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a45816000815181106112e9576112e9611979565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061133157611331611979565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac947836000847f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a4561139442610e10611917565b6040518663ffffffff1660e01b81526004016113b495949392919061198f565b600060405180830381600087803b1580156113ce57600080fd5b505af11580156113e2573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60016040516020016114099190611a00565b604051602081830303815290604052600190816109029190611ad0565b806114335761143361146a565b61143e84848461147d565b806110cb576110cb6008600a55565b600067016345785d8a0000600654611465919061192a565b905090565b600a5460000361147657565b6000600a55565b600d54600160a81b900460ff16158061149f5750600d54600160b01b900460ff165b15611630576000806000806000806114b68761167a565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114e9908790611904565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611519908690611917565b6001600160a01b03891660009081526002602052604090205561153a61144d565b611544908261194c565b6001600160a01b037f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a45166000908152600260205260409020546115879190611917565b6001600160a01b037f000000000000000000000000ae19e87af05fd48bd674c45e5de3be16e5634a45166000908152600260205260409020556006546115ce908590611904565b6006556007546115df908390611917565b6007556040518381526001600160a01b03808a1691908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ae791815260200190565b505050565b60008060008060008060008060006116968a6000600a546116ce565b92509250925060008060006116b48d86866116af61144d565b611727565b919f909e50909c50959a5093985091965092945050505050565b600080808060646116df878961194c565b6116e9919061192a565b9050600060646116f9878a61194c565b611703919061192a565b905080611710838a611904565b61171a9190611904565b9891975095509350505050565b6000808080611736858961194c565b90506000611744868961194c565b905081611751878961194c565b61175b8385611904565b6117659190611904565b909a90995090975095505050505050565b600060208083528351808285015260005b818110156117a357858101830151858201604001528201611787565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146117db57600080fd5b919050565b600080604083850312156117f357600080fd5b6117fc836117c4565b946020939093013593505050565b60008060006060848603121561181f57600080fd5b611828846117c4565b9250611836602085016117c4565b9150604084013590509250925092565b60006020828403121561185857600080fd5b611861826117c4565b9392505050565b60006020828403121561187a57600080fd5b5035919050565b6000806040838503121561189457600080fd5b61189d836117c4565b91506118ab602084016117c4565b90509250929050565b600181811c908216806118c857607f821691505b6020821081036118e857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610758576107586118ee565b80820180821115610758576107586118ee565b60008261194757634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610758576107586118ee565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119df5784516001600160a01b0316835293830193918301916001016119ba565b50506001600160a01b03969096166060850152505050608001529392505050565b6000808354611a0e816118b4565b60018281168015611a265760018114611a3b57611a6a565b60ff1984168752821515830287019450611a6a565b8760005260208060002060005b85811015611a615781548a820152908401908201611a48565b50505082870194505b505063784fcfd160e11b835250506004019392505050565b601f82111561167557600081815260208120601f850160051c81016020861015611aa95750805b601f850160051c820191505b81811015611ac857828155600101611ab5565b505050505050565b815167ffffffffffffffff811115611aea57611aea611963565b611afe81611af884546118b4565b84611a82565b602080601f831160018114611b335760008415611b1b5750858301515b600019600386901b1c1916600185901b178555611ac8565b600085815260208120601f198616915b82811015611b6257888601518255948401946001909101908401611b43565b5085821015611b805787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212201deeb6aea4fb0e1c3aa8dc662cb3d68518741fa9cb00af0ffa26d7ce043359a064736f6c63430008130033

Deployed Bytecode Sourcemap

12595:11956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18191:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17546:161;;;;;;;;;;-1:-1:-1;17546:161:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;17546:161:0;1004:187:1;13272:43:0;;;;;;;;;;;;13310:5;13272:43;;12657:39;;;;;;;;;;;;12692:4;12657:39;;16782:85;;;;;;;;;;-1:-1:-1;16823:4:0;16782:85;;14324:115;;;;;;;;;;;;14396:42;14324:115;;;;;-1:-1:-1;;;;;1386:32:1;;;1368:51;;1356:2;1341:18;14324:115:0;1196:229:1;16970:95:0;;;;;;;;;;-1:-1:-1;13960:17:0;16970:95;;;1576:25:1;;;1564:2;1549:18;16970:95:0;1430:177:1;17715:373:0;;;;;;;;;;-1:-1:-1;17715:373:0;;;;;:::i;:::-;;:::i;18282:83::-;;;;;;;;;;-1:-1:-1;18282:83:0;;13634:1;2087:36:1;;2075:2;2060:18;18282:83:0;1945:184:1;14684:28:0;;;;;;;;;;-1:-1:-1;14684:28:0;;;;-1:-1:-1;;;;;14684:28:0;;;14446:114;;;;;;;;;;;;14517:42;14446:114;;21515:105;;;;;;;;;;;;;:::i;:::-;;17073:139;;;;;;;;;;-1:-1:-1;17073:139:0;;;;;:::i;:::-;;:::i;3508:103::-;;;;;;;;;;;;;:::i;21628:109::-;;;;;;;;;;;;;:::i;14647:30::-;;;;;;;;;;;;;;;21426:81;;;;;;;;;;;;;:::i;2867:87::-;;;;;;;;;;-1:-1:-1;2913:7:0;2940:6;-1:-1:-1;;;;;2940:6:0;2867:87;;21967:202;;;;;;;;;;-1:-1:-1;21967:202:0;;;;;:::i;:::-;;:::i;18096:87::-;;;;;;;;;;-1:-1:-1;18168:7:0;;;;;;;;;;;;-1:-1:-1;;;18168:7:0;;;;18096:87;;17220:167;;;;;;;;;;-1:-1:-1;17220:167:0;;;;;:::i;:::-;;:::i;14567:73::-;;;;;;;;;;;;14598:42;14567:73;;14817:40;;;;;;;;;;;;;;;;21745:214;;;;;;;;;;-1:-1:-1;21745:214:0;;;;;:::i;:::-;;:::i;15650:83::-;;;;;;;;;;-1:-1:-1;12692:4:0;15650:83;;17395:143;;;;;;;;;;-1:-1:-1;17395:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17503:18:0;;;17476:7;17503:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17395:143;3766:201;;;;;;;;;;-1:-1:-1;3766:201:0;;;;;:::i;:::-;;:::i;14864:42::-;;;;;;;;;;;;;;;;18191:83;18228:13;18261:5;18254:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18191:83;:::o;17546:161::-;17621:4;17638:39;1656:10;17661:7;17670:6;17638:8;:39::i;:::-;-1:-1:-1;17695:4:0;17546:161;;;;;:::o;17715:373::-;17813:4;17830:36;17840:6;17848:9;17859:6;17830:9;:36::i;:::-;-1:-1:-1;;;;;17885:19:0;;;;;;:11;:19;;;;;;;;1656:10;17885:33;;;;;;;;:43;-1:-1:-1;17885:43:0;17877:96;;;;-1:-1:-1;;;17877:96:0;;3803:2:1;17877:96:0;;;3785:21:1;3842:2;3822:18;;;3815:30;3881:34;3861:18;;;3854:62;-1:-1:-1;;;3932:18:1;;;3925:38;3980:19;;17877:96:0;;;;;;;;;-1:-1:-1;;;;;18015:19:0;;;;;;:11;:19;;;;;;;;1656:10;18015:33;;;;;;;;;17984:74;;17993:6;;18015:42;;18051:6;;18015:42;:::i;:::-;17984:8;:74::i;:::-;-1:-1:-1;18076:4:0;17715:373;;;;;:::o;21515:105::-;2753:13;:11;:13::i;:::-;21583:1:::1;21568:12;:16:::0;;;21595:13:::1;:17:::0;21515:105::o;17073:139::-;-1:-1:-1;;;;;17187:16:0;;17139:7;17187:16;;;:7;:16;;;;;;17166:38;;:20;:38::i;3508:103::-;2753:13;:11;:13::i;:::-;3573:30:::1;3600:1;3573:18;:30::i;:::-;3508:103::o:0;21628:109::-;2753:13;:11;:13::i;:::-;13960:17:::1;21682:7;:17:::0;;;21710:9:::1;:19:::0;21628:109::o;21426:81::-;2753:13;:11;:13::i;:::-;21481:11:::1;:18:::0;;-1:-1:-1;;;;21481:18:0::1;-1:-1:-1::0;;;21481:18:0::1;::::0;;21426:81::o;21967:202::-;22068:14;;-1:-1:-1;;;;;22068:14:0;1656:10;-1:-1:-1;;;;;22052:30:0;;:64;;;-1:-1:-1;22102:14:0;;-1:-1:-1;;;;;22102:14:0;1656:10;-1:-1:-1;;;;;22086:30:0;;22052:64;22044:73;;;;;;22128:33;22141:19;22128:12;:33::i;:::-;21967:202;:::o;17220:167::-;17298:4;17315:42;1656:10;17339:9;17350:6;17315:9;:42::i;21745:214::-;21852:14;;-1:-1:-1;;;;;21852:14:0;1656:10;-1:-1:-1;;;;;21836:30:0;;:64;;;-1:-1:-1;21886:14:0;;-1:-1:-1;;;;;21886:14:0;1656:10;-1:-1:-1;;;;;21870:30:0;;21836:64;21828:73;;;;;;21912:39;21929:21;21912:16;:39::i;3766:201::-;2753:13;:11;:13::i;:::-;-1:-1:-1;;;;;3855:22:0;::::1;3847:73;;;::::0;-1:-1:-1;;;3847:73:0;;4477:2:1;3847:73:0::1;::::0;::::1;4459:21:1::0;4516:2;4496:18;;;4489:30;4555:34;4535:18;;;4528:62;-1:-1:-1;;;4606:18:1;;;4599:36;4652:19;;3847:73:0::1;4275:402:1::0;3847:73:0::1;3931:28;3950:8;3931:18;:28::i;18573:335::-:0;-1:-1:-1;;;;;18666:19:0;;18658:68;;;;-1:-1:-1;;;18658:68:0;;4884:2:1;18658:68:0;;;4866:21:1;4923:2;4903:18;;;4896:30;4962:34;4942:18;;;4935:62;-1:-1:-1;;;5013:18:1;;;5006:34;5057:19;;18658:68:0;4682:400:1;18658:68:0;-1:-1:-1;;;;;18745:21:0;;18737:68;;;;-1:-1:-1;;;18737:68:0;;5289:2:1;18737:68:0;;;5271:21:1;5328:2;5308:18;;;5301:30;5367:34;5347:18;;;5340:62;-1:-1:-1;;;5418:18:1;;;5411:32;5460:19;;18737:68:0;5087:398:1;18737:68:0;-1:-1:-1;;;;;18816:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18868:32;;1576:25:1;;;18868:32:0;;1549:18:1;18868:32:0;;;;;;;;18573:335;;;:::o;18916:1945::-;-1:-1:-1;;;;;19004:18:0;;18996:68;;;;-1:-1:-1;;;18996:68:0;;5692:2:1;18996:68:0;;;5674:21:1;5731:2;5711:18;;;5704:30;5770:34;5750:18;;;5743:62;-1:-1:-1;;;5821:18:1;;;5814:35;5866:19;;18996:68:0;5490:401:1;18996:68:0;-1:-1:-1;;;;;19083:16:0;;19075:64;;;;-1:-1:-1;;;19075:64:0;;6098:2:1;19075:64:0;;;6080:21:1;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;-1:-1:-1;;;6227:18:1;;;6220:33;6270:19;;19075:64:0;5896:399:1;19075:64:0;19167:1;19158:6;:10;19150:62;;;;-1:-1:-1;;;19150:62:0;;6502:2:1;19150:62:0;;;6484:21:1;6541:2;6521:18;;;6514:30;6580:34;6560:18;;;6553:62;-1:-1:-1;;;6631:18:1;;;6624:37;6678:19;;19150:62:0;6300:403:1;19150:62:0;2913:7;2940:6;-1:-1:-1;;;;;19229:15:0;;;2940:6;;19229:15;;;;:32;;-1:-1:-1;2913:7:0;2940:6;-1:-1:-1;;;;;19248:13:0;;;2940:6;;19248:13;;19229:32;:49;;;;;19273:5;-1:-1:-1;;;;;19265:13:0;:4;-1:-1:-1;;;;;19265:13:0;;;19229:49;:64;;;;;19288:5;-1:-1:-1;;;;;19282:11:0;:2;-1:-1:-1;;;;;19282:11:0;;;19229:64;19225:1066;;;19315:11;;-1:-1:-1;;;19315:11:0;;;;19310:142;;19363:5;-1:-1:-1;;;;;19355:13:0;:4;-1:-1:-1;;;;;19355:13:0;;19347:89;;;;-1:-1:-1;;;19347:89:0;;6910:2:1;19347:89:0;;;6892:21:1;6949:2;6929:18;;;6922:30;6988:34;6968:18;;;6961:62;7059:33;7039:18;;;7032:61;7110:19;;19347:89:0;6708:427:1;19347:89:0;19486:7;;19476:6;:17;;19468:58;;;;-1:-1:-1;;;19468:58:0;;7342:2:1;19468:58:0;;;7324:21:1;7381:2;7361:18;;;7354:30;7420;7400:18;;;7393:58;7468:18;;19468:58:0;7140:352:1;19468:58:0;19553:13;;-1:-1:-1;;;;;19547:19:0;;;19553:13;;19547:19;19543:142;;19620:9;;19611:6;19595:13;19605:2;19595:9;:13::i;:::-;:22;;;;:::i;:::-;:34;19587:82;;;;-1:-1:-1;;;19587:82:0;;7829:2:1;19587:82:0;;;7811:21:1;7868:2;7848:18;;;7841:30;7907:34;7887:18;;;7880:62;-1:-1:-1;;;7958:18:1;;;7951:33;8001:19;;19587:82:0;7627:399:1;19587:82:0;19701:28;19732:16;19742:5;19732:9;:16::i;:::-;19859:7;;19701:47;;-1:-1:-1;14953:5:0;19778:36;;;;19835:31;;19831:102;;19910:7;;19887:30;;19831:102;19953:7;:21;;;;-1:-1:-1;19965:9:0;;-1:-1:-1;;;19965:9:0;;;;19964:10;19953:21;:46;;;;-1:-1:-1;19986:13:0;;-1:-1:-1;;;;;19978:21:0;;;19986:13;;19978:21;;19953:46;:75;;;;-1:-1:-1;;;;;;20004:24:0;;;;;;:18;:24;;;;;;;;20003:25;19953:75;:102;;;;-1:-1:-1;;;;;;20033:22:0;;;;;;:18;:22;;;;;;;;20032:23;19953:102;19949:331;;;20076:14;:21;;-1:-1:-1;;;;20076:21:0;-1:-1:-1;;;20076:21:0;;;20116:38;20133:20;20116:16;:38::i;:::-;20173:14;:22;;-1:-1:-1;;;;20173:22:0;;;-1:-1:-1;;;;;20218:5:0;:13;;:17;20214:50;;20237:27;20250:5;-1:-1:-1;;;;;20250:13:0;;20237:12;:27::i;:::-;19295:996;;19225:1066;-1:-1:-1;;;;;20340:24:0;;20303:12;20340:24;;;:18;:24;;;;;;20318:4;;20340:24;;;:50;;-1:-1:-1;;;;;;20368:22:0;;;;;;:18;:22;;;;;;;;20340:50;20339:102;;;-1:-1:-1;20404:13:0;;-1:-1:-1;;;;;20396:21:0;;;20404:13;;20396:21;;;;:44;;-1:-1:-1;20427:13:0;;-1:-1:-1;;;;;20421:19:0;;;20427:13;;20421:19;;20396:44;20335:465;;;-1:-1:-1;20468:5:0;20335:465;;;20518:13;;-1:-1:-1;;;;;20510:21:0;;;20518:13;;20510:21;:55;;;;-1:-1:-1;;;;;;20535:30:0;;14396:42;20535:30;;20510:55;20506:150;;;20596:12;;20586:7;:22;20627:13;:11;:13::i;:::-;20680;;-1:-1:-1;;;;;20674:19:0;;;20680:13;;20674:19;:55;;;;-1:-1:-1;;;;;;20697:32:0;;14396:42;20697:32;;20674:55;20670:119;;;20760:13;;20750:7;:23;20670:119;20812:41;20827:4;20833:2;20837:6;20845:7;20812:14;:41::i;:::-;18985:1876;18916:1945;;;:::o;3032:132::-;2913:7;2940:6;-1:-1:-1;;;;;2940:6:0;1656:10;3096:23;3088:68;;;;-1:-1:-1;;;3088:68:0;;8233:2:1;3088:68:0;;;8215:21:1;;;8252:18;;;8245:30;8311:34;8291:18;;;8284:62;8363:18;;3088:68:0;8031:356:1;22177:264:0;22246:7;22285;;22274;:18;;22266:73;;;;-1:-1:-1;;;22266:73:0;;8594:2:1;22266:73:0;;;8576:21:1;8633:2;8613:18;;;8606:30;8672:34;8652:18;;;8645:62;-1:-1:-1;;;8723:18:1;;;8716:40;8773:19;;22266:73:0;8392:406:1;22266:73:0;22359:14;;-1:-1:-1;;;22359:14:0;;;;22358:15;:28;;;;-1:-1:-1;22377:9:0;;-1:-1:-1;;;22377:9:0;;;;22358:28;22357:76;;22423:10;:8;:10::i;:::-;22413:20;;:7;:20;:::i;:::-;22357:76;;;22390:20;13960:17;22406:4;22390:20;:::i;4127:191::-;4201:16;4220:6;;-1:-1:-1;;;;;4237:17:0;;;-1:-1:-1;;;;;;4237:17:0;;;;;;4270:40;;4220:6;;;;;;;4270:40;;4201:16;4270:40;4190:128;4127:191;:::o;21298:120::-;21367:14;;21359:51;;-1:-1:-1;;;;;21367:14:0;;;;21395:10;;21359:51;;;;21395:10;21367:14;21359:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20981:309;14999:9;:16;;-1:-1:-1;;;;14999:16:0;-1:-1:-1;;;14999:16:0;;;21084::::1;::::0;;21098:1:::1;21084:16:::0;;;;;::::1;::::0;;-1:-1:-1;;21084:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21084:16:0::1;21060:40;;21121:5;21111:4;21116:1;21111:7;;;;;;;;:::i;:::-;;;;;;:15;-1:-1:-1::0;;;;;21111:15:0::1;;;-1:-1:-1::0;;;;;21111:15:0::1;;;::::0;::::1;14598:42;21137:4;21142:1;21137:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21137:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:14;14396:42:::1;21162:66;21229:12:::0;21243:1:::1;21246:4:::0;21252:5:::1;21259:22;:15;21277:4;21259:22;:::i;:::-;21162:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15038:9:0;:17;;-1:-1:-1;;;;15038:17:0;;;-1:-1:-1;;;;20981:309:0:o;20869:104::-;20943:5;20926:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;20911:5;:54;;;;;;:::i;22449:235::-;22562:7;22557:26;;22571:12;:10;:12::i;:::-;22594:44;22612:6;22620:9;22631:6;22594:17;:44::i;:::-;22654:7;22649:27;;22663:13;18556:1;18546:7;:11;18504:61;24454:94;24496:7;13960:17;24523:7;;:17;;;;:::i;:::-;24516:24;;24454:94;:::o;18373:123::-;18418:7;;18429:1;18418:12;18414:51;;18373:123::o;18414:51::-;18487:1;18477:7;:11;18373:123::o;22692:719::-;22795:9;;-1:-1:-1;;;22795:9:0;;;;22794:10;;:28;;-1:-1:-1;22808:14:0;;-1:-1:-1;;;22808:14:0;;;;22794:28;22790:614;;;22840:15;22857:23;22882:12;22896:23;22921:12;22935:13;22952:19;22963:7;22952:10;:19::i;:::-;-1:-1:-1;;;;;23004:15:0;;;;;;:7;:15;;;;;;22839:132;;-1:-1:-1;22839:132:0;;-1:-1:-1;22839:132:0;;-1:-1:-1;22839:132:0;-1:-1:-1;22839:132:0;-1:-1:-1;22839:132:0;-1:-1:-1;23004:25:0;;22839:132;;23004:25;:::i;:::-;-1:-1:-1;;;;;22986:15:0;;;;;;;:7;:15;;;;;;:43;;;;23065:18;;;;;;;:36;;23086:15;;23065:36;:::i;:::-;-1:-1:-1;;;;;23044:18:0;;;;;;:7;:18;;;;;:57;23159:10;:8;:10::i;:::-;23151:18;;:5;:18;:::i;:::-;-1:-1:-1;;;;;23141:5:0;23133:14;;;;;:7;:14;;;;;;:37;;;;:::i;:::-;-1:-1:-1;;;;;23124:5:0;23116:14;;;;;:7;:14;;;;;:54;23195:7;;:14;;23205:4;;23195:14;:::i;:::-;23185:7;:24;23237:10;;:17;;23250:4;;23237:17;:::i;:::-;23224:10;:30;23274:44;;1576:25:1;;;-1:-1:-1;;;;;23274:44:0;;;;;;;;;;1564:2:1;1549:18;23274:44:0;;;;;;;22824:506;;;;;;22692:719;;;:::o;22790:614::-;23373:9;-1:-1:-1;;;;;23356:36:0;23365:6;-1:-1:-1;;;;;23356:36:0;;23384:7;23356:36;;;;1576:25:1;;1564:2;1549:18;;1430:177;22790:614:0;22692:719;;;:::o;23419:416::-;23478:7;23487;23496;23505;23514;23523;23544:23;23569:12;23583:13;23600:32;23612:7;23621:1;23624:7;;23600:11;:32::i;:::-;23543:89;;;;;;23644:15;23661:23;23686:12;23702:45;23714:7;23723:4;23729:5;23736:10;:8;:10::i;:::-;23702:11;:45::i;:::-;23643:104;;;;-1:-1:-1;23643:104:0;;-1:-1:-1;23798:15:0;;-1:-1:-1;23815:4:0;;-1:-1:-1;23821:5:0;;-1:-1:-1;23419:416:0;;-1:-1:-1;;;;;23419:416:0:o;23843:283::-;23937:7;;;;24011:3;23990:18;24000:8;23990:7;:18;:::i;:::-;:24;;;;:::i;:::-;23975:39;-1:-1:-1;24025:13:0;24060:3;24041:16;24051:6;24041:7;:16;:::i;:::-;:22;;;;:::i;:::-;24025:38;-1:-1:-1;24025:38:0;24082:14;24092:4;24082:7;:14;:::i;:::-;:22;;;;:::i;:::-;24074:44;24106:4;;-1:-1:-1;24106:4:0;-1:-1:-1;23843:283:0;-1:-1:-1;;;;23843:283:0:o;24134:312::-;24244:7;;;;24300:21;24310:11;24300:7;:21;:::i;:::-;24282:39;-1:-1:-1;24332:12:0;24347:18;24354:11;24347:4;:18;:::i;:::-;24332:33;-1:-1:-1;24384:7:0;24411:19;24419:11;24411:5;:19;:::i;:::-;24393:14;24403:4;24393:7;:14;:::i;:::-;:38;;;;:::i;:::-;24376:62;;;;-1:-1:-1;24433:4:0;;-1:-1:-1;24134:312:0;-1:-1:-1;;;;;;24134:312:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;2575:186::-;2634:6;2687:2;2675:9;2666:7;2662:23;2658:32;2655:52;;;2703:1;2700;2693:12;2655:52;2726:29;2745:9;2726:29;:::i;:::-;2716:39;2575:186;-1:-1:-1;;;2575:186:1:o;2766:180::-;2825:6;2878:2;2866:9;2857:7;2853:23;2849:32;2846:52;;;2894:1;2891;2884:12;2846:52;-1:-1:-1;2917:23:1;;2766:180;-1:-1:-1;2766:180:1:o;2951:260::-;3019:6;3027;3080:2;3068:9;3059:7;3055:23;3051:32;3048:52;;;3096:1;3093;3086:12;3048:52;3119:29;3138:9;3119:29;:::i;:::-;3109:39;;3167:38;3201:2;3190:9;3186:18;3167:38;:::i;:::-;3157:48;;2951:260;;;;;:::o;3216:380::-;3295:1;3291:12;;;;3338;;;3359:61;;3413:4;3405:6;3401:17;3391:27;;3359:61;3466:2;3458:6;3455:14;3435:18;3432:38;3429:161;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3429:161;;3216:380;;;:::o;4010:127::-;4071:10;4066:3;4062:20;4059:1;4052:31;4102:4;4099:1;4092:15;4126:4;4123:1;4116:15;4142:128;4209:9;;;4230:11;;;4227:37;;;4244:18;;:::i;7497:125::-;7562:9;;;7583:10;;;7580:36;;;7596:18;;:::i;8803:217::-;8843:1;8869;8859:132;;8913:10;8908:3;8904:20;8901:1;8894:31;8948:4;8945:1;8938:15;8976:4;8973:1;8966:15;8859:132;-1:-1:-1;9005:9:1;;8803:217::o;9025:168::-;9098:9;;;9129;;9146:15;;;9140:22;;9126:37;9116:71;;9167:18;;:::i;9408:127::-;9469:10;9464:3;9460:20;9457:1;9450:31;9500:4;9497:1;9490:15;9524:4;9521:1;9514:15;9540:127;9601:10;9596:3;9592:20;9589:1;9582:31;9632:4;9629:1;9622:15;9656:4;9653:1;9646:15;9672:980;9934:4;9982:3;9971:9;9967:19;10013:6;10002:9;9995:25;10039:2;10077:6;10072:2;10061:9;10057:18;10050:34;10120:3;10115:2;10104:9;10100:18;10093:31;10144:6;10179;10173:13;10210:6;10202;10195:22;10248:3;10237:9;10233:19;10226:26;;10287:2;10279:6;10275:15;10261:29;;10308:1;10318:195;10332:6;10329:1;10326:13;10318:195;;;10397:13;;-1:-1:-1;;;;;10393:39:1;10381:52;;10488:15;;;;10453:12;;;;10429:1;10347:9;10318:195;;;-1:-1:-1;;;;;;;10569:32:1;;;;10564:2;10549:18;;10542:60;-1:-1:-1;;;10633:3:1;10618:19;10611:35;10530:3;9672:980;-1:-1:-1;;;9672:980:1:o;10783:993::-;11012:3;11041:1;11074:6;11068:13;11104:36;11130:9;11104:36;:::i;:::-;11159:1;11176:18;;;11203:133;;;;11350:1;11345:356;;;;11169:532;;11203:133;-1:-1:-1;;11236:24:1;;11224:37;;11309:14;;11302:22;11290:35;;11281:45;;;-1:-1:-1;11203:133:1;;11345:356;11376:6;11373:1;11366:17;11406:4;11451:2;11448:1;11438:16;11476:1;11490:165;11504:6;11501:1;11498:13;11490:165;;;11582:14;;11569:11;;;11562:35;11625:16;;;;11519:10;;11490:165;;;11494:3;;;11684:6;11679:3;11675:16;11668:23;;11169:532;-1:-1:-1;;;;;11710:33:1;;-1:-1:-1;;11768:1:1;11759:11;;10783:993;-1:-1:-1;;;10783:993:1:o;11781:545::-;11883:2;11878:3;11875:11;11872:448;;;11919:1;11944:5;11940:2;11933:17;11989:4;11985:2;11975:19;12059:2;12047:10;12043:19;12040:1;12036:27;12030:4;12026:38;12095:4;12083:10;12080:20;12077:47;;;-1:-1:-1;12118:4:1;12077:47;12173:2;12168:3;12164:12;12161:1;12157:20;12151:4;12147:31;12137:41;;12228:82;12246:2;12239:5;12236:13;12228:82;;;12291:17;;;12272:1;12261:13;12228:82;;;12232:3;;;11781:545;;;:::o;12502:1352::-;12628:3;12622:10;12655:18;12647:6;12644:30;12641:56;;;12677:18;;:::i;:::-;12706:97;12796:6;12756:38;12788:4;12782:11;12756:38;:::i;:::-;12750:4;12706:97;:::i;:::-;12858:4;;12922:2;12911:14;;12939:1;12934:663;;;;13641:1;13658:6;13655:89;;;-1:-1:-1;13710:19:1;;;13704:26;13655:89;-1:-1:-1;;12459:1:1;12455:11;;;12451:24;12447:29;12437:40;12483:1;12479:11;;;12434:57;13757:81;;12904:944;;12934:663;10730:1;10723:14;;;10767:4;10754:18;;-1:-1:-1;;12970:20:1;;;13088:236;13102:7;13099:1;13096:14;13088:236;;;13191:19;;;13185:26;13170:42;;13283:27;;;;13251:1;13239:14;;;;13118:19;;13088:236;;;13092:3;13352:6;13343:7;13340:19;13337:201;;;13413:19;;;13407:26;-1:-1:-1;;13496:1:1;13492:14;;;13508:3;13488:24;13484:37;13480:42;13465:58;13450:74;;13337:201;-1:-1:-1;;;;;13584:1:1;13568:14;;;13564:22;13551:36;;-1:-1:-1;12502:1352:1:o

Swarm Source

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