ETH Price: $3,171.98 (+4.45%)

Token

Artemis (ARTEMIS)
 

Overview

Max Total Supply

10,000,000 ARTEMIS

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
72,000 ARTEMIS

Value
$0.00
0x992ced559e04be7890f5f152236a2ccf6a9a2843
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:
Artemis

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
                                                              
All information here

🌐 https://theartemis.io / https://docs.theartemis.io
📕 https://x.com/artemisoption / https://t.me/artemisentry

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢱⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡟⠙⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⣶⣾⡿⠋⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣴⣶⣶⣶⣾⣿⣿⣿⣿⣿⡿⠟⠋⠁⠀⠀⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⠿⠿⠛⠛⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠙⢶⣦⣄⡀⢀⣼⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠉⠻⠟⠾⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣠⣴⣤⣈⠙⠏⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢠⣿⣿⣿⣿⣷⣄⠀⠉⠓⠦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠈⢿⣿⣿⣿⣿⣿⣷⣦⣀⠀⠈⠙⠲⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣤⣤⣈⠙⠻⢿⣿⣿⣿⣿⣿⣦⣤⣀⠀⠉⠓⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢰⣿⣿⣿⠇⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠈⠙⠲⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣈⣦⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢸⣿⣿⣿⠀⠀⠀⠀⠀⠉⠻⢿⣿⣿⣿⣿⣿⣿⣷⣤⣀⡀⠀⠉⠻⢦⣄⡀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠘⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⢿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⡈⠙⠷⣦⣀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢹⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠉⠋⠼⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠹⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣯⢻⣿⣿⣿⣿⣿⣿⣧⠰⣿⣷⣶⣦⣤⡉⠻⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠙⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣧⢹⣿⣿⣿⣿⣿⣿⣧⣿⣿⣿⣿⣿⣿⣦⠈⢻⡿⠟⢁⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⢿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⣤⣤⣌⡙⠻⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣷⣌⠻⢷⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣿⣿⣿⣿⣿⣿⣷⣶⣮⣭⣙⠳⣶⣤⣀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢁⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣷⣄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⠔⠒⠉⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢡⣾⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡏⠀⠀⠀⠀⣀⠤⠔⠚⠉⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢠⣿⣿⣿⣿⣷⣄⡉⠛⠻⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣁⠤⠔⠊⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⡿⢀⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠈⠙⠛⠿⠿⠿⠿⠟⠛⠋
⠀⠀⠀⠀⠀⠀⠀⠰⠤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠘⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⢻⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡟⢿⣿⣿⣿⣿⣆⠻⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⡇⠈⠻⣿⣿⣿⣿⣷⣍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣷⡀⠀⠀⠙⠻⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣯⠹⢿⣿⣿⣦⡀⠀⠀⠀⠉⠛⠿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣆⠀⠙⠻⢿⣿⣶⣤⡀⠀⠀⠀⠀⠙⠻⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣦⠀⠀⠀⠀⠉⠙⠛⠷⣄⡀⠀⠀⠀⠈⠻⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠇⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀


**/
pragma solidity 0.8.18;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Artemis is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
   
    address payable private _taxWallet;

    uint256 private _initialBuyTax=28;
    uint256 private _initialSellTax=28;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=35;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=36;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10000000 * 10**_decimals; // 10 million
    string private constant _name = unicode"Artemis";
    string private constant _symbol = unicode"ARTEMIS";

    uint256 public _maxTxAmount = (_tTotal * 1) / 100;   // 1% of total supply
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;  // 2% of total supply

    uint256 public _taxSwapThreshold = _tTotal / 1000;  // 0.1% of total supply
    uint256 public _maxTaxSwap = _tTotal / 200;  // 0.5% of total supply



    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    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, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

        

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _buyerMap[to]=true;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

  function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal; 
        _maxWalletSize = _tTotal; 
        emit MaxTxAmountUpdated(_tTotal);
    }

    function artemis() external onlyOwner() {
    _maxTxAmount = _tTotal.div(100); // Updates the maxTxAmount to be 1% of total supply
    emit MaxTxAmountUpdated(_maxTxAmount); // Emitting event for the update operation
}

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }


    
    function openTrading() external onlyOwner() {
            require(!tradingOpen,"trading is already open");
            uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            _approve(address(this), address(uniswapV2Router), _tTotal);
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
            uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
            IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
            swapEnabled = true;
            tradingOpen = true;
     }




    receive() external payable {}

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

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"artemis","outputs":[],"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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601c600855601c6009556005600a556005600b556023600c556023600d556024600e556000600f55606460016012600a6200004091906200067d565b62989680620000509190620006ce565b6200005c9190620006ce565b62000068919062000748565b601055606460026012600a6200007f91906200067d565b629896806200008f9190620006ce565b6200009b9190620006ce565b620000a7919062000748565b6011556103e86012600a620000bd91906200067d565b62989680620000cd9190620006ce565b620000d9919062000748565b60125560c86012600a620000ee91906200067d565b62989680620000fe9190620006ce565b6200010a919062000748565b6013556000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200016a57600080fd5b5060006200017d620004b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200022b620004b260201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200027b91906200067d565b629896806200028b9190620006ce565b600160006200029f620004b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002f3620004ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000426620004b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200048591906200067d565b62989680620004959190620006ce565b604051620004a4919062000791565b60405180910390a3620007ae565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057157808604811115620005495762000548620004e3565b5b6001851615620005595780820291505b8081029050620005698562000512565b945062000529565b94509492505050565b6000826200058c57600190506200065f565b816200059c57600090506200065f565b8160018114620005b55760028114620005c057620005f6565b60019150506200065f565b60ff841115620005d557620005d4620004e3565b5b8360020a915084821115620005ef57620005ee620004e3565b5b506200065f565b5060208310610133831016604e8410600b8410161715620006305782820a9050838111156200062a5762000629620004e3565b5b6200065f565b6200063f84848460016200051f565b92509050818404811115620006595762000658620004e3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200068a8262000666565b9150620006978362000670565b9250620006c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200057a565b905092915050565b6000620006db8262000666565b9150620006e88362000666565b9250828202620006f88162000666565b91508282048414831517620007125762000711620004e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007558262000666565b9150620007628362000666565b92508262000775576200077462000719565b5b828204905092915050565b6200078b8162000666565b82525050565b6000602082019050620007a8600083018462000780565b92915050565b61326480620007be6000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063bf474bed14610408578063c9567bf914610433578063dd62ed3e1461044a578063fa18a73c14610487578063ffb54a991461049e57610135565b8063751039fc146103085780637d1db4a51461031f5780638da5cb5b1461034a5780638f9a55c01461037557806395d89b41146103a057610135565b8063313ce567116100f2578063313ce567146102355780633bbac5791461026057806351bc3c851461029d57806370a08231146102b4578063715018a6146102f157610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c9565b60405161015c9190612326565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906123e1565b610506565b604051610199919061243c565b60405180910390f35b3480156101ae57600080fd5b506101b7610524565b6040516101c49190612466565b60405180910390f35b3480156101d957600080fd5b506101e261052a565b6040516101ef9190612466565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612481565b61054d565b60405161022c919061243c565b60405180910390f35b34801561024157600080fd5b5061024a610626565b60405161025791906124f0565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061250b565b61062f565b604051610294919061243c565b60405180910390f35b3480156102a957600080fd5b506102b2610685565b005b3480156102c057600080fd5b506102db60048036038101906102d6919061250b565b610722565b6040516102e89190612466565b60405180910390f35b3480156102fd57600080fd5b5061030661076b565b005b34801561031457600080fd5b5061031d6108be565b005b34801561032b57600080fd5b506103346109eb565b6040516103419190612466565b60405180910390f35b34801561035657600080fd5b5061035f6109f1565b60405161036c9190612547565b60405180910390f35b34801561038157600080fd5b5061038a610a1a565b6040516103979190612466565b60405180910390f35b3480156103ac57600080fd5b506103b5610a20565b6040516103c29190612326565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906123e1565b610a5d565b6040516103ff919061243c565b60405180910390f35b34801561041457600080fd5b5061041d610a7b565b60405161042a9190612466565b60405180910390f35b34801561043f57600080fd5b50610448610a81565b005b34801561045657600080fd5b50610471600480360381019061046c9190612562565b610fb8565b60405161047e9190612466565b60405180910390f35b34801561049357600080fd5b5061049c61103f565b005b3480156104aa57600080fd5b506104b3611144565b6040516104c0919061243c565b60405180910390f35b60606040518060400160405280600781526020017f417274656d697300000000000000000000000000000000000000000000000000815250905090565b600061051a610513611157565b848461115f565b6001905092915050565b60135481565b60006012600a61053a9190612704565b62989680610548919061274f565b905090565b600061055a848484611328565b61061b84610566611157565b6106168560405180606001604052806028815260200161320760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cc611157565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d359092919063ffffffff16565b61115f565b600190509392505050565b60006012905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c6611157565b73ffffffffffffffffffffffffffffffffffffffff16146106e657600080fd5b60006106f130610722565b905060008111156107065761070581611d99565b5b6000479050600081111561071e5761071d8161202f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610773611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f7906127dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108c6611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a906127dd565b60405180910390fd5b6012600a6109619190612704565b6298968061096f919061274f565b6010819055506012600a6109839190612704565b62989680610991919061274f565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a6109c69190612704565b629896806109d4919061274f565b6040516109e19190612466565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f415254454d495300000000000000000000000000000000000000000000000000815250905090565b6000610a71610a6a611157565b8484611328565b6001905092915050565b60125481565b610a89611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d906127dd565b60405180910390fd5b601560149054906101000a900460ff1615610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d90612849565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c0330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610bf09190612704565b62989680610bfe919061274f565b61115f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c94919061287e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d41919061287e565b6040518363ffffffff1660e01b8152600401610d5e9291906128ab565b6020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061287e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e2a30610722565b600080610e356109f1565b426040518863ffffffff1660e01b8152600401610e5796959493929190612919565b60606040518083038185885af1158015610e75573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e9a919061298f565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f3c9291906129e2565b6020604051808303816000875af1158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190612a37565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611047611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cb906127dd565b60405180910390fd5b61110360646012600a6110e79190612704565b629896806110f5919061274f565b61209b90919063ffffffff16565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60105460405161113a9190612466565b60405180910390a1565b601560149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590612ad6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490612b68565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161131b9190612466565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612bfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612c8c565b60405180910390fd5b60008111611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612d1e565b60405180910390fd5b60006114536109f1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114c157506114916109f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a7857600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61157357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561161e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a7576010548211156116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590612d8a565b60405180910390fd5b601154826116cb85610722565b6116d59190612daa565b1115611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90612e2a565b60405180910390fd5b600e54600f5410156117365761172b836120e5565b1561173557600080fd5b5b600f600081548092919061174990612e4a565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6117e360646117d5600c54600f54116117c2576008546117c6565b600a545b856120f890919063ffffffff16565b61209b90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561186e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611991576010548211156118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90612d8a565b60405180910390fd5b6118f460646118e6600d54600f54116118d3576009546118d7565b600b545b856120f890919063ffffffff16565b61209b90919063ffffffff16565b9050600e54600f5411806119515750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612ede565b60405180910390fd5b5b600061199c30610722565b905060158054906101000a900460ff16158015611a065750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a1e5750601560169054906101000a900460ff165b8015611a2b575060125481115b8015611a3a5750600e54600f54115b15611a7657611a5c611a5784611a5284601354612172565b612172565b611d99565b60004790506000811115611a7457611a734761202f565b5b505b505b6000811115611b7c57611ad381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b739190612466565b60405180910390a35b611bce82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c75611c2782846121e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1a84866121e990919063ffffffff16565b604051611d279190612466565b60405180910390a350505050565b6000838311158290611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d749190612326565b60405180910390fd5b5060008385611d8c9190612efe565b9050809150509392505050565b60016015806101000a81548160ff021916908315150217905550600081031561201257601560149054906101000a900460ff1615612012576000600267ffffffffffffffff811115611dee57611ded612f32565b5b604051908082528060200260200182016040528015611e1c5781602001602082028036833780820191505090505b5090503081600081518110611e3457611e33612f61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eff919061287e565b81600181518110611f1357611f12612f61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f7a30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fde95949392919061304e565b600060405180830381600087803b158015611ff857600080fd5b505af115801561200c573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612097573d6000803e3d6000fd5b5050565b60006120dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612233565b905092915050565b600080823b905060008111915050919050565b600080830361210a576000905061216c565b60008284612118919061274f565b905082848261212791906130d7565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e9061317a565b60405180910390fd5b809150505b92915050565b60008183116121815782612183565b815b905092915050565b600080828461219a9190612daa565b9050838110156121df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d6906131e6565b60405180910390fd5b8091505092915050565b600061222b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d35565b905092915050565b6000808311829061227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719190612326565b60405180910390fd5b506000838561228991906130d7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d05780820151818401526020810190506122b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006122f882612296565b61230281856122a1565b93506123128185602086016122b2565b61231b816122dc565b840191505092915050565b6000602082019050818103600083015261234081846122ed565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123788261234d565b9050919050565b6123888161236d565b811461239357600080fd5b50565b6000813590506123a58161237f565b92915050565b6000819050919050565b6123be816123ab565b81146123c957600080fd5b50565b6000813590506123db816123b5565b92915050565b600080604083850312156123f8576123f7612348565b5b600061240685828601612396565b9250506020612417858286016123cc565b9150509250929050565b60008115159050919050565b61243681612421565b82525050565b6000602082019050612451600083018461242d565b92915050565b612460816123ab565b82525050565b600060208201905061247b6000830184612457565b92915050565b60008060006060848603121561249a57612499612348565b5b60006124a886828701612396565b93505060206124b986828701612396565b92505060406124ca868287016123cc565b9150509250925092565b600060ff82169050919050565b6124ea816124d4565b82525050565b600060208201905061250560008301846124e1565b92915050565b60006020828403121561252157612520612348565b5b600061252f84828501612396565b91505092915050565b6125418161236d565b82525050565b600060208201905061255c6000830184612538565b92915050565b6000806040838503121561257957612578612348565b5b600061258785828601612396565b925050602061259885828601612396565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561262857808604811115612604576126036125a2565b5b60018516156126135780820291505b8081029050612621856125d1565b94506125e8565b94509492505050565b60008261264157600190506126fd565b8161264f57600090506126fd565b8160018114612665576002811461266f5761269e565b60019150506126fd565b60ff841115612681576126806125a2565b5b8360020a915084821115612698576126976125a2565b5b506126fd565b5060208310610133831016604e8410600b84101617156126d35782820a9050838111156126ce576126cd6125a2565b5b6126fd565b6126e084848460016125de565b925090508184048111156126f7576126f66125a2565b5b81810290505b9392505050565b600061270f826123ab565b915061271a836124d4565b92506127477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612631565b905092915050565b600061275a826123ab565b9150612765836123ab565b9250828202612773816123ab565b9150828204841483151761278a576127896125a2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127c76020836122a1565b91506127d282612791565b602082019050919050565b600060208201905081810360008301526127f6816127ba565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128336017836122a1565b915061283e826127fd565b602082019050919050565b6000602082019050818103600083015261286281612826565b9050919050565b6000815190506128788161237f565b92915050565b60006020828403121561289457612893612348565b5b60006128a284828501612869565b91505092915050565b60006040820190506128c06000830185612538565b6128cd6020830184612538565b9392505050565b6000819050919050565b6000819050919050565b60006129036128fe6128f9846128d4565b6128de565b6123ab565b9050919050565b612913816128e8565b82525050565b600060c08201905061292e6000830189612538565b61293b6020830188612457565b612948604083018761290a565b612955606083018661290a565b6129626080830185612538565b61296f60a0830184612457565b979650505050505050565b600081519050612989816123b5565b92915050565b6000806000606084860312156129a8576129a7612348565b5b60006129b68682870161297a565b93505060206129c78682870161297a565b92505060406129d88682870161297a565b9150509250925092565b60006040820190506129f76000830185612538565b612a046020830184612457565b9392505050565b612a1481612421565b8114612a1f57600080fd5b50565b600081519050612a3181612a0b565b92915050565b600060208284031215612a4d57612a4c612348565b5b6000612a5b84828501612a22565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ac06024836122a1565b9150612acb82612a64565b604082019050919050565b60006020820190508181036000830152612aef81612ab3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b526022836122a1565b9150612b5d82612af6565b604082019050919050565b60006020820190508181036000830152612b8181612b45565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612be46025836122a1565b9150612bef82612b88565b604082019050919050565b60006020820190508181036000830152612c1381612bd7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c766023836122a1565b9150612c8182612c1a565b604082019050919050565b60006020820190508181036000830152612ca581612c69565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d086029836122a1565b9150612d1382612cac565b604082019050919050565b60006020820190508181036000830152612d3781612cfb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d746019836122a1565b9150612d7f82612d3e565b602082019050919050565b60006020820190508181036000830152612da381612d67565b9050919050565b6000612db5826123ab565b9150612dc0836123ab565b9250828201905080821115612dd857612dd76125a2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e14601a836122a1565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b6000612e55826123ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8757612e866125a2565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b6000612ec86013836122a1565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b6000612f09826123ab565b9150612f14836123ab565b9250828203905081811115612f2c57612f2b6125a2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fc58161236d565b82525050565b6000612fd78383612fbc565b60208301905092915050565b6000602082019050919050565b6000612ffb82612f90565b6130058185612f9b565b935061301083612fac565b8060005b838110156130415781516130288882612fcb565b975061303383612fe3565b925050600181019050613014565b5085935050505092915050565b600060a0820190506130636000830188612457565b613070602083018761290a565b81810360408301526130828186612ff0565b90506130916060830185612538565b61309e6080830184612457565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e2826123ab565b91506130ed836123ab565b9250826130fd576130fc6130a8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131646021836122a1565b915061316f82613108565b604082019050919050565b6000602082019050818103600083015261319381613157565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131d0601b836122a1565b91506131db8261319a565b602082019050919050565b600060208201905081810360008301526131ff816131c3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e5186358f25eaf353d5afc1f741889d1a87e830b6f91f0a23fac33d74b07df8164736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063bf474bed14610408578063c9567bf914610433578063dd62ed3e1461044a578063fa18a73c14610487578063ffb54a991461049e57610135565b8063751039fc146103085780637d1db4a51461031f5780638da5cb5b1461034a5780638f9a55c01461037557806395d89b41146103a057610135565b8063313ce567116100f2578063313ce567146102355780633bbac5791461026057806351bc3c851461029d57806370a08231146102b4578063715018a6146102f157610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c9565b60405161015c9190612326565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906123e1565b610506565b604051610199919061243c565b60405180910390f35b3480156101ae57600080fd5b506101b7610524565b6040516101c49190612466565b60405180910390f35b3480156101d957600080fd5b506101e261052a565b6040516101ef9190612466565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612481565b61054d565b60405161022c919061243c565b60405180910390f35b34801561024157600080fd5b5061024a610626565b60405161025791906124f0565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061250b565b61062f565b604051610294919061243c565b60405180910390f35b3480156102a957600080fd5b506102b2610685565b005b3480156102c057600080fd5b506102db60048036038101906102d6919061250b565b610722565b6040516102e89190612466565b60405180910390f35b3480156102fd57600080fd5b5061030661076b565b005b34801561031457600080fd5b5061031d6108be565b005b34801561032b57600080fd5b506103346109eb565b6040516103419190612466565b60405180910390f35b34801561035657600080fd5b5061035f6109f1565b60405161036c9190612547565b60405180910390f35b34801561038157600080fd5b5061038a610a1a565b6040516103979190612466565b60405180910390f35b3480156103ac57600080fd5b506103b5610a20565b6040516103c29190612326565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906123e1565b610a5d565b6040516103ff919061243c565b60405180910390f35b34801561041457600080fd5b5061041d610a7b565b60405161042a9190612466565b60405180910390f35b34801561043f57600080fd5b50610448610a81565b005b34801561045657600080fd5b50610471600480360381019061046c9190612562565b610fb8565b60405161047e9190612466565b60405180910390f35b34801561049357600080fd5b5061049c61103f565b005b3480156104aa57600080fd5b506104b3611144565b6040516104c0919061243c565b60405180910390f35b60606040518060400160405280600781526020017f417274656d697300000000000000000000000000000000000000000000000000815250905090565b600061051a610513611157565b848461115f565b6001905092915050565b60135481565b60006012600a61053a9190612704565b62989680610548919061274f565b905090565b600061055a848484611328565b61061b84610566611157565b6106168560405180606001604052806028815260200161320760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cc611157565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d359092919063ffffffff16565b61115f565b600190509392505050565b60006012905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c6611157565b73ffffffffffffffffffffffffffffffffffffffff16146106e657600080fd5b60006106f130610722565b905060008111156107065761070581611d99565b5b6000479050600081111561071e5761071d8161202f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610773611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f7906127dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108c6611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a906127dd565b60405180910390fd5b6012600a6109619190612704565b6298968061096f919061274f565b6010819055506012600a6109839190612704565b62989680610991919061274f565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a6109c69190612704565b629896806109d4919061274f565b6040516109e19190612466565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f415254454d495300000000000000000000000000000000000000000000000000815250905090565b6000610a71610a6a611157565b8484611328565b6001905092915050565b60125481565b610a89611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d906127dd565b60405180910390fd5b601560149054906101000a900460ff1615610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d90612849565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c0330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610bf09190612704565b62989680610bfe919061274f565b61115f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c94919061287e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d41919061287e565b6040518363ffffffff1660e01b8152600401610d5e9291906128ab565b6020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061287e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e2a30610722565b600080610e356109f1565b426040518863ffffffff1660e01b8152600401610e5796959493929190612919565b60606040518083038185885af1158015610e75573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e9a919061298f565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f3c9291906129e2565b6020604051808303816000875af1158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190612a37565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611047611157565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cb906127dd565b60405180910390fd5b61110360646012600a6110e79190612704565b629896806110f5919061274f565b61209b90919063ffffffff16565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60105460405161113a9190612466565b60405180910390a1565b601560149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590612ad6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490612b68565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161131b9190612466565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612bfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612c8c565b60405180910390fd5b60008111611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612d1e565b60405180910390fd5b60006114536109f1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114c157506114916109f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a7857600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61157357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561161e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a7576010548211156116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590612d8a565b60405180910390fd5b601154826116cb85610722565b6116d59190612daa565b1115611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90612e2a565b60405180910390fd5b600e54600f5410156117365761172b836120e5565b1561173557600080fd5b5b600f600081548092919061174990612e4a565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6117e360646117d5600c54600f54116117c2576008546117c6565b600a545b856120f890919063ffffffff16565b61209b90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561186e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611991576010548211156118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90612d8a565b60405180910390fd5b6118f460646118e6600d54600f54116118d3576009546118d7565b600b545b856120f890919063ffffffff16565b61209b90919063ffffffff16565b9050600e54600f5411806119515750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612ede565b60405180910390fd5b5b600061199c30610722565b905060158054906101000a900460ff16158015611a065750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a1e5750601560169054906101000a900460ff165b8015611a2b575060125481115b8015611a3a5750600e54600f54115b15611a7657611a5c611a5784611a5284601354612172565b612172565b611d99565b60004790506000811115611a7457611a734761202f565b5b505b505b6000811115611b7c57611ad381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b739190612466565b60405180910390a35b611bce82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c75611c2782846121e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1a84866121e990919063ffffffff16565b604051611d279190612466565b60405180910390a350505050565b6000838311158290611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d749190612326565b60405180910390fd5b5060008385611d8c9190612efe565b9050809150509392505050565b60016015806101000a81548160ff021916908315150217905550600081031561201257601560149054906101000a900460ff1615612012576000600267ffffffffffffffff811115611dee57611ded612f32565b5b604051908082528060200260200182016040528015611e1c5781602001602082028036833780820191505090505b5090503081600081518110611e3457611e33612f61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eff919061287e565b81600181518110611f1357611f12612f61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f7a30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fde95949392919061304e565b600060405180830381600087803b158015611ff857600080fd5b505af115801561200c573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612097573d6000803e3d6000fd5b5050565b60006120dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612233565b905092915050565b600080823b905060008111915050919050565b600080830361210a576000905061216c565b60008284612118919061274f565b905082848261212791906130d7565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e9061317a565b60405180910390fd5b809150505b92915050565b60008183116121815782612183565b815b905092915050565b600080828461219a9190612daa565b9050838110156121df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d6906131e6565b60405180910390fd5b8091505092915050565b600061222b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d35565b905092915050565b6000808311829061227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719190612326565b60405180910390fd5b506000838561228991906130d7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d05780820151818401526020810190506122b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006122f882612296565b61230281856122a1565b93506123128185602086016122b2565b61231b816122dc565b840191505092915050565b6000602082019050818103600083015261234081846122ed565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123788261234d565b9050919050565b6123888161236d565b811461239357600080fd5b50565b6000813590506123a58161237f565b92915050565b6000819050919050565b6123be816123ab565b81146123c957600080fd5b50565b6000813590506123db816123b5565b92915050565b600080604083850312156123f8576123f7612348565b5b600061240685828601612396565b9250506020612417858286016123cc565b9150509250929050565b60008115159050919050565b61243681612421565b82525050565b6000602082019050612451600083018461242d565b92915050565b612460816123ab565b82525050565b600060208201905061247b6000830184612457565b92915050565b60008060006060848603121561249a57612499612348565b5b60006124a886828701612396565b93505060206124b986828701612396565b92505060406124ca868287016123cc565b9150509250925092565b600060ff82169050919050565b6124ea816124d4565b82525050565b600060208201905061250560008301846124e1565b92915050565b60006020828403121561252157612520612348565b5b600061252f84828501612396565b91505092915050565b6125418161236d565b82525050565b600060208201905061255c6000830184612538565b92915050565b6000806040838503121561257957612578612348565b5b600061258785828601612396565b925050602061259885828601612396565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561262857808604811115612604576126036125a2565b5b60018516156126135780820291505b8081029050612621856125d1565b94506125e8565b94509492505050565b60008261264157600190506126fd565b8161264f57600090506126fd565b8160018114612665576002811461266f5761269e565b60019150506126fd565b60ff841115612681576126806125a2565b5b8360020a915084821115612698576126976125a2565b5b506126fd565b5060208310610133831016604e8410600b84101617156126d35782820a9050838111156126ce576126cd6125a2565b5b6126fd565b6126e084848460016125de565b925090508184048111156126f7576126f66125a2565b5b81810290505b9392505050565b600061270f826123ab565b915061271a836124d4565b92506127477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612631565b905092915050565b600061275a826123ab565b9150612765836123ab565b9250828202612773816123ab565b9150828204841483151761278a576127896125a2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127c76020836122a1565b91506127d282612791565b602082019050919050565b600060208201905081810360008301526127f6816127ba565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128336017836122a1565b915061283e826127fd565b602082019050919050565b6000602082019050818103600083015261286281612826565b9050919050565b6000815190506128788161237f565b92915050565b60006020828403121561289457612893612348565b5b60006128a284828501612869565b91505092915050565b60006040820190506128c06000830185612538565b6128cd6020830184612538565b9392505050565b6000819050919050565b6000819050919050565b60006129036128fe6128f9846128d4565b6128de565b6123ab565b9050919050565b612913816128e8565b82525050565b600060c08201905061292e6000830189612538565b61293b6020830188612457565b612948604083018761290a565b612955606083018661290a565b6129626080830185612538565b61296f60a0830184612457565b979650505050505050565b600081519050612989816123b5565b92915050565b6000806000606084860312156129a8576129a7612348565b5b60006129b68682870161297a565b93505060206129c78682870161297a565b92505060406129d88682870161297a565b9150509250925092565b60006040820190506129f76000830185612538565b612a046020830184612457565b9392505050565b612a1481612421565b8114612a1f57600080fd5b50565b600081519050612a3181612a0b565b92915050565b600060208284031215612a4d57612a4c612348565b5b6000612a5b84828501612a22565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ac06024836122a1565b9150612acb82612a64565b604082019050919050565b60006020820190508181036000830152612aef81612ab3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b526022836122a1565b9150612b5d82612af6565b604082019050919050565b60006020820190508181036000830152612b8181612b45565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612be46025836122a1565b9150612bef82612b88565b604082019050919050565b60006020820190508181036000830152612c1381612bd7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c766023836122a1565b9150612c8182612c1a565b604082019050919050565b60006020820190508181036000830152612ca581612c69565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d086029836122a1565b9150612d1382612cac565b604082019050919050565b60006020820190508181036000830152612d3781612cfb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d746019836122a1565b9150612d7f82612d3e565b602082019050919050565b60006020820190508181036000830152612da381612d67565b9050919050565b6000612db5826123ab565b9150612dc0836123ab565b9250828201905080821115612dd857612dd76125a2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e14601a836122a1565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b6000612e55826123ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8757612e866125a2565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b6000612ec86013836122a1565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b6000612f09826123ab565b9150612f14836123ab565b9250828203905081811115612f2c57612f2b6125a2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fc58161236d565b82525050565b6000612fd78383612fbc565b60208301905092915050565b6000602082019050919050565b6000612ffb82612f90565b6130058185612f9b565b935061301083612fac565b8060005b838110156130415781516130288882612fcb565b975061303383612fe3565b925050600181019050613014565b5085935050505092915050565b600060a0820190506130636000830188612457565b613070602083018761290a565b81810360408301526130828186612ff0565b90506130916060830185612538565b61309e6080830184612457565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e2826123ab565b91506130ed836123ab565b9250826130fd576130fc6130a8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131646021836122a1565b915061316f82613108565b604082019050919050565b6000602082019050818103600083015261319381613157565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131d0601b836122a1565b91506131db8261319a565b602082019050919050565b600060208201905081810360008301526131ff816131c3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e5186358f25eaf353d5afc1f741889d1a87e830b6f91f0a23fac33d74b07df8164736f6c63430008120033

Deployed Bytecode Sourcemap

10246:8551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12283:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13116:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11534:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12560:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13285:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12469:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17389;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18446:348;;;;;;;;;;;;;:::i;:::-;;12663:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9327:148;;;;;;;;;;;;;:::i;:::-;;16888:164;;;;;;;;;;;;;:::i;:::-;;11290:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9113:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11370:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12374:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12790:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11453:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17488:704;;;;;;;;;;;;;:::i;:::-;;12965:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17060:221;;;;;;;;;;;;;:::i;:::-;;11699:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12283:83;12320:13;12353:5;;;;;;;;;;;;;;;;;12346:12;;12283:83;:::o;13116:161::-;13191:4;13208:39;13217:12;:10;:12::i;:::-;13231:7;13240:6;13208:8;:39::i;:::-;13265:4;13258:11;;13116:161;;;;:::o;11534:42::-;;;;:::o;12560:95::-;12613:7;11087:2;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;12633:14;;12560:95;:::o;13285:313::-;13383:4;13400:36;13410:6;13418:9;13429:6;13400:9;:36::i;:::-;13447:121;13456:6;13464:12;:10;:12::i;:::-;13478:89;13516:6;13478:89;;;;;;;;;;;;;;;;;:11;:19;13490:6;13478:19;;;;;;;;;;;;;;;:33;13498:12;:10;:12::i;:::-;13478:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13447:8;:121::i;:::-;13586:4;13579:11;;13285:313;;;;;:::o;12469:83::-;12510:5;11087:2;12528:16;;12469:83;:::o;17389:::-;17436:4;17457;:7;17462:1;17457:7;;;;;;;;;;;;;;;;;;;;;;;;;17450:14;;17389:83;;;:::o;18446:348::-;18510:10;;;;;;;;;;;18496:24;;:12;:10;:12::i;:::-;:24;;;18488:33;;;;;;18532:20;18553:24;18571:4;18553:9;:24::i;:::-;18532:45;;18604:1;18591:12;:14;18588:73;;;18619:30;18636:12;18619:16;:30::i;:::-;18588:73;18671:18;18690:21;18671:40;;18736:1;18725:10;:12;18722:65;;;18751:24;18764:10;18751:12;:24::i;:::-;18722:65;18477:317;;18446:348::o;12663:119::-;12729:7;12756:9;:18;12766:7;12756:18;;;;;;;;;;;;;;;;12749:25;;12663:119;;;:::o;9327:148::-;9250:12;:10;:12::i;:::-;9240:22;;:6;;;;;;;;;;:22;;;9232:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9434:1:::1;9397:40;;9418:6;::::0;::::1;;;;;;;;9397:40;;;;;;;;;;;;9465:1;9448:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;9327:148::o:0;16888:164::-;9250:12;:10;:12::i;:::-;9240:22;;:6;;;;;;;;;;:22;;;9232:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11087:2:::1;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;16942:12;:22;;;;11087:2;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;16976:14;:24;;;;17017:27;11087:2;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;17017:27;;;;;;:::i;:::-;;;;;;;;16888:164::o:0;11290:49::-;;;;:::o;9113:79::-;9151:7;9178:6;;;;;;;;;;;9171:13;;9113:79;:::o;11370:51::-;;;;:::o;12374:87::-;12413:13;12446:7;;;;;;;;;;;;;;;;;12439:14;;12374:87;:::o;12790:167::-;12868:4;12885:42;12895:12;:10;:12::i;:::-;12909:9;12920:6;12885:9;:42::i;:::-;12945:4;12938:11;;12790:167;;;;:::o;11453:49::-;;;;:::o;17488:704::-;9250:12;:10;:12::i;:::-;9240:22;;:6;;;;;;;;;;:22;;;9232:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17556:11:::1;;;;;;;;;;;17555:12;17547:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17646:42;17609:15;;:80;;;;;;;;;;;;;;;;;;17704:58;17721:4;17736:15;;;;;;;;;;;11087:2;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;17704:8;:58::i;:::-;17811:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17793:55;;;17857:4;17864:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17793:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17777:13;;:110;;;;;;;;;;;;;;;;;;17902:15;;;;;;;;;;;:31;;;17941:21;17972:4;17978:24;17996:4;17978:9;:24::i;:::-;18003:1;18005::::0;18007:7:::1;:5;:7::i;:::-;18015:15;17902:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18053:13;;;;;;;;;;;18046:29;;;18084:15;;;;;;;;;;;18102:14;18046:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18146:4;18132:11;;:18;;;;;;;;;;;;;;;;;;18179:4;18165:11;;:18;;;;;;;;;;;;;;;;;;17488:704::o:0;12965:143::-;13046:7;13073:11;:18;13085:5;13073:18;;;;;;;;;;;;;;;:27;13092:7;13073:27;;;;;;;;;;;;;;;;13066:34;;12965:143;;;;:::o;17060:221::-;9250:12;:10;:12::i;:::-;9240:22;;:6;;;;;;;;;;:22;;;9232:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17122:16:::1;17134:3;11087:2;11142;:13;;;;:::i;:::-;11131:8;:24;;;;:::i;:::-;17122:11;;:16;;;;:::i;:::-;17107:12;:31;;;;17202:32;17221:12;;17202:32;;;;;;:::i;:::-;;;;;;;;17060:221::o:0;11699:31::-;;;;;;;;;;;;;:::o;6868:98::-;6921:7;6948:10;6941:17;;6868:98;:::o;13606:335::-;13716:1;13699:19;;:5;:19;;;13691:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13797:1;13778:21;;:7;:21;;;13770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13879:6;13849:11;:18;13861:5;13849:18;;;;;;;;;;;;;;;:27;13868:7;13849:27;;;;;;;;;;;;;;;:36;;;;13917:7;13901:32;;13910:5;13901:32;;;13926:6;13901:32;;;;;;:::i;:::-;;;;;;;;13606:335;;;:::o;13949:2262::-;14053:1;14037:18;;:4;:18;;;14029:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14130:1;14116:16;;:2;:16;;;14108:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14200:1;14191:6;:10;14183:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14258:17;14300:7;:5;:7::i;:::-;14292:15;;:4;:15;;;;:32;;;;;14317:7;:5;:7::i;:::-;14311:13;;:2;:13;;;;14292:32;14288:1567;;;14350:4;:10;14355:4;14350:10;;;;;;;;;;;;;;;;;;;;;;;;;14349:11;:24;;;;;14365:4;:8;14370:2;14365:8;;;;;;;;;;;;;;;;;;;;;;;;;14364:9;14349:24;14341:33;;;;;;14415:13;;;;;;;;;;;14407:21;;:4;:21;;;:55;;;;;14446:15;;;;;;;;;;;14432:30;;:2;:30;;;;14407:55;:83;;;;;14468:18;:22;14487:2;14468:22;;;;;;;;;;;;;;;;;;;;;;;;;14466:24;14407:83;14403:465;;;14530:12;;14520:6;:22;;14512:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14625:14;;14615:6;14599:13;14609:2;14599:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;14591:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14702:18;;14692:9;;:28;14689:97;;;14751:14;14762:2;14751:10;:14::i;:::-;14750:15;14742:24;;;;;;14689:97;14804:9;;:11;;;;;;;;;:::i;:::-;;;;;;14848:4;14834:9;:13;14844:2;14834:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;14403:465;14898:76;14970:3;14898:67;14920:15;;14910:9;;:25;14909:55;;14950:14;;14909:55;;;14937:12;;14909:55;14898:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;14886:88;;14998:13;;;;;;;;;;;14992:19;;:2;:19;;;:43;;;;;15030:4;15015:20;;:4;:20;;;;14992:43;14989:350;;;15074:12;;15064:6;:22;;15056:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15147:79;15222:3;15147:70;15169:16;;15159:9;;:26;15158:58;;15201:15;;15158:58;;;15187:13;;15158:58;15147:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;15135:91;;15263:18;;15253:9;;:28;:47;;;;15285:9;:15;15295:4;15285:15;;;;;;;;;;;;;;;;;;;;;;;;;15253:47;15245:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14989:350;15355:28;15386:24;15404:4;15386:9;:24::i;:::-;15355:55;;15430:6;;;;;;;;;;15429:7;:30;;;;;15446:13;;;;;;;;;;;15440:19;;:2;:19;;;15429:30;:45;;;;;15463:11;;;;;;;;;;;15429:45;:87;;;;;15499:17;;15478:20;:38;15429:87;:119;;;;;15530:18;;15520:9;;:28;15429:119;15425:419;;;15569:67;15586:49;15590:6;15597:37;15601:20;15622:11;;15597:3;:37::i;:::-;15586:3;:49::i;:::-;15569:16;:67::i;:::-;15655:26;15684:21;15655:50;;15748:1;15727:18;:22;15724:105;;;15774:35;15787:21;15774:12;:35::i;:::-;15724:105;15550:294;15425:419;14326:1529;14288:1567;15880:1;15870:9;:11;15867:161;;;15920:39;15949:9;15920;:24;15938:4;15920:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15895:9;:24;15913:4;15895:24;;;;;;;;;;;;;;;:64;;;;16000:4;15977:39;;15986:4;15977:39;;;16006:9;15977:39;;;;;;:::i;:::-;;;;;;;;15867:161;16054:27;16074:6;16054:9;:15;16064:4;16054:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;16038:9;:15;16048:4;16038:15;;;;;;;;;;;;;;;:43;;;;16106:40;16124:21;16135:9;16124:6;:10;;:21;;;;:::i;:::-;16106:9;:13;16116:2;16106:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;16092:9;:13;16102:2;16092:13;;;;;;;;;;;;;;;:54;;;;16177:2;16162:41;;16171:4;16162:41;;;16181:21;16192:9;16181:6;:10;;:21;;;;:::i;:::-;16162:41;;;;;;:::i;:::-;;;;;;;;14018:2193;13949:2262;;;:::o;8005:190::-;8091:7;8124:1;8119;:6;;8127:12;8111:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8151:9;8167:1;8163;:5;;;;:::i;:::-;8151:17;;8186:1;8179:8;;;8005:190;;;;;:::o;16327:555::-;11903:4;11894:6;;:13;;;;;;;;;;;;;;;;;;16421:1:::1;16408:11;:14:::0;16405:27;16424:7:::1;16405:27;16446:11;;;;;;;;;;;16442:25:::0;16459:7:::1;16442:25;16477:21;16515:1;16501:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16477:40;;16546:4;16528;16533:1;16528:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16572:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16562:4;16567:1;16562:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;16605:62;16622:4;16637:15;;;;;;;;;;;16655:11;16605:8;:62::i;:::-;16678:15;;;;;;;;;;;:66;;;16759:11;16785:1;16801:4;16828;16848:15;16678:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16394:488;11918:1;11939:5:::0;11930:6;;:14;;;;;;;;;;;;;;;;;;16327:555;:::o;17289:92::-;17346:10;;;;;;;;;;;:19;;:27;17366:6;17346:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17289:92;:::o;8457:132::-;8515:7;8542:39;8546:1;8549;8542:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8535:46;;8457:132;;;;:::o;18243:195::-;18302:4;18319:12;18386:7;18374:20;18366:28;;18429:1;18422:4;:8;18415:15;;;18243:195;;;:::o;8203:246::-;8261:7;8290:1;8285;:6;8281:47;;8315:1;8308:8;;;;8281:47;8338:9;8354:1;8350;:5;;;;:::i;:::-;8338:17;;8383:1;8378;8374;:5;;;;:::i;:::-;:10;8366:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8440:1;8433:8;;;8203:246;;;;;:::o;16221:98::-;16278:7;16305:1;16303;:3;16302:9;;16310:1;16302:9;;;16308:1;16302:9;16295:16;;16221:98;;;;:::o;7674:179::-;7732:7;7752:9;7768:1;7764;:5;;;;:::i;:::-;7752:17;;7793:1;7788;:6;;7780:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7844:1;7837:8;;;7674:179;;;;:::o;7861:136::-;7919:7;7946:43;7950:1;7953;7946:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7939:50;;7861:136;;;;:::o;8597:189::-;8683:7;8715:1;8711;:5;8718:12;8703:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8742:9;8758:1;8754;:5;;;;:::i;:::-;8742:17;;8777:1;8770:8;;;8597:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:173::-;10075:25;10071:1;10063:6;10059:14;10052:49;9935:173;:::o;10114:366::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:419::-;10652:4;10690:2;10679:9;10675:18;10667:26;;10739:9;10733:4;10729:20;10725:1;10714:9;10710:17;10703:47;10767:131;10893:4;10767:131;:::i;:::-;10759:139;;10486:419;;;:::o;10911:143::-;10968:5;10999:6;10993:13;10984:22;;11015:33;11042:5;11015:33;:::i;:::-;10911:143;;;;:::o;11060:351::-;11130:6;11179:2;11167:9;11158:7;11154:23;11150:32;11147:119;;;11185:79;;:::i;:::-;11147:119;11305:1;11330:64;11386:7;11377:6;11366:9;11362:22;11330:64;:::i;:::-;11320:74;;11276:128;11060:351;;;;:::o;11417:332::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11589:71;11657:1;11646:9;11642:17;11633:6;11589:71;:::i;:::-;11670:72;11738:2;11727:9;11723:18;11714:6;11670:72;:::i;:::-;11417:332;;;;;:::o;11755:85::-;11800:7;11829:5;11818:16;;11755:85;;;:::o;11846:60::-;11874:3;11895:5;11888:12;;11846:60;;;:::o;11912:158::-;11970:9;12003:61;12021:42;12030:32;12056:5;12030:32;:::i;:::-;12021:42;:::i;:::-;12003:61;:::i;:::-;11990:74;;11912:158;;;:::o;12076:147::-;12171:45;12210:5;12171:45;:::i;:::-;12166:3;12159:58;12076:147;;:::o;12229:807::-;12478:4;12516:3;12505:9;12501:19;12493:27;;12530:71;12598:1;12587:9;12583:17;12574:6;12530:71;:::i;:::-;12611:72;12679:2;12668:9;12664:18;12655:6;12611:72;:::i;:::-;12693:80;12769:2;12758:9;12754:18;12745:6;12693:80;:::i;:::-;12783;12859:2;12848:9;12844:18;12835:6;12783:80;:::i;:::-;12873:73;12941:3;12930:9;12926:19;12917:6;12873:73;:::i;:::-;12956;13024:3;13013:9;13009:19;13000:6;12956:73;:::i;:::-;12229:807;;;;;;;;;:::o;13042:143::-;13099:5;13130:6;13124:13;13115:22;;13146:33;13173:5;13146:33;:::i;:::-;13042:143;;;;:::o;13191:663::-;13279:6;13287;13295;13344:2;13332:9;13323:7;13319:23;13315:32;13312:119;;;13350:79;;:::i;:::-;13312:119;13470:1;13495:64;13551:7;13542:6;13531:9;13527:22;13495:64;:::i;:::-;13485:74;;13441:128;13608:2;13634:64;13690:7;13681:6;13670:9;13666:22;13634:64;:::i;:::-;13624:74;;13579:129;13747:2;13773:64;13829:7;13820:6;13809:9;13805:22;13773:64;:::i;:::-;13763:74;;13718:129;13191:663;;;;;:::o;13860:332::-;13981:4;14019:2;14008:9;14004:18;13996:26;;14032:71;14100:1;14089:9;14085:17;14076:6;14032:71;:::i;:::-;14113:72;14181:2;14170:9;14166:18;14157:6;14113:72;:::i;:::-;13860:332;;;;;:::o;14198:116::-;14268:21;14283:5;14268:21;:::i;:::-;14261:5;14258:32;14248:60;;14304:1;14301;14294:12;14248:60;14198:116;:::o;14320:137::-;14374:5;14405:6;14399:13;14390:22;;14421:30;14445:5;14421:30;:::i;:::-;14320:137;;;;:::o;14463:345::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:61;14783:7;14774:6;14763:9;14759:22;14730:61;:::i;:::-;14720:71;;14676:125;14463:345;;;;:::o;14814:223::-;14954:34;14950:1;14942:6;14938:14;14931:58;15023:6;15018:2;15010:6;15006:15;14999:31;14814:223;:::o;15043:366::-;15185:3;15206:67;15270:2;15265:3;15206:67;:::i;:::-;15199:74;;15282:93;15371:3;15282:93;:::i;:::-;15400:2;15395:3;15391:12;15384:19;;15043:366;;;:::o;15415:419::-;15581:4;15619:2;15608:9;15604:18;15596:26;;15668:9;15662:4;15658:20;15654:1;15643:9;15639:17;15632:47;15696:131;15822:4;15696:131;:::i;:::-;15688:139;;15415:419;;;:::o;15840:221::-;15980:34;15976:1;15968:6;15964:14;15957:58;16049:4;16044:2;16036:6;16032:15;16025:29;15840:221;:::o;16067:366::-;16209:3;16230:67;16294:2;16289:3;16230:67;:::i;:::-;16223:74;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16067:366;;;:::o;16439:419::-;16605:4;16643:2;16632:9;16628:18;16620:26;;16692:9;16686:4;16682:20;16678:1;16667:9;16663:17;16656:47;16720:131;16846:4;16720:131;:::i;:::-;16712:139;;16439:419;;;:::o;16864:224::-;17004:34;17000:1;16992:6;16988:14;16981:58;17073:7;17068:2;17060:6;17056:15;17049:32;16864:224;:::o;17094:366::-;17236:3;17257:67;17321:2;17316:3;17257:67;:::i;:::-;17250:74;;17333:93;17422:3;17333:93;:::i;:::-;17451:2;17446:3;17442:12;17435:19;;17094:366;;;:::o;17466:419::-;17632:4;17670:2;17659:9;17655:18;17647:26;;17719:9;17713:4;17709:20;17705:1;17694:9;17690:17;17683:47;17747:131;17873:4;17747:131;:::i;:::-;17739:139;;17466:419;;;:::o;17891:222::-;18031:34;18027:1;18019:6;18015:14;18008:58;18100:5;18095:2;18087:6;18083:15;18076:30;17891:222;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:228::-;19056:34;19052:1;19044:6;19040:14;19033:58;19125:11;19120:2;19112:6;19108:15;19101:36;18916:228;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:175::-;20087:27;20083:1;20075:6;20071:14;20064:51;19947:175;:::o;20128:366::-;20270:3;20291:67;20355:2;20350:3;20291:67;:::i;:::-;20284:74;;20367:93;20456:3;20367:93;:::i;:::-;20485:2;20480:3;20476:12;20469:19;;20128:366;;;:::o;20500:419::-;20666:4;20704:2;20693:9;20689:18;20681:26;;20753:9;20747:4;20743:20;20739:1;20728:9;20724:17;20717:47;20781:131;20907:4;20781:131;:::i;:::-;20773:139;;20500:419;;;:::o;20925:191::-;20965:3;20984:20;21002:1;20984:20;:::i;:::-;20979:25;;21018:20;21036:1;21018:20;:::i;:::-;21013:25;;21061:1;21058;21054:9;21047:16;;21082:3;21079:1;21076:10;21073:36;;;21089:18;;:::i;:::-;21073:36;20925:191;;;;:::o;21122:176::-;21262:28;21258:1;21250:6;21246:14;21239:52;21122:176;:::o;21304:366::-;21446:3;21467:67;21531:2;21526:3;21467:67;:::i;:::-;21460:74;;21543:93;21632:3;21543:93;:::i;:::-;21661:2;21656:3;21652:12;21645:19;;21304:366;;;:::o;21676:419::-;21842:4;21880:2;21869:9;21865:18;21857:26;;21929:9;21923:4;21919:20;21915:1;21904:9;21900:17;21893:47;21957:131;22083:4;21957:131;:::i;:::-;21949:139;;21676:419;;;:::o;22101:233::-;22140:3;22163:24;22181:5;22163:24;:::i;:::-;22154:33;;22209:66;22202:5;22199:77;22196:103;;22279:18;;:::i;:::-;22196:103;22326:1;22319:5;22315:13;22308:20;;22101:233;;;:::o;22340:169::-;22480:21;22476:1;22468:6;22464:14;22457:45;22340:169;:::o;22515:366::-;22657:3;22678:67;22742:2;22737:3;22678:67;:::i;:::-;22671:74;;22754:93;22843:3;22754:93;:::i;:::-;22872:2;22867:3;22863:12;22856:19;;22515:366;;;:::o;22887:419::-;23053:4;23091:2;23080:9;23076:18;23068:26;;23140:9;23134:4;23130:20;23126:1;23115:9;23111:17;23104:47;23168:131;23294:4;23168:131;:::i;:::-;23160:139;;22887:419;;;:::o;23312:194::-;23352:4;23372:20;23390:1;23372:20;:::i;:::-;23367:25;;23406:20;23424:1;23406:20;:::i;:::-;23401:25;;23450:1;23447;23443:9;23435:17;;23474:1;23468:4;23465:11;23462:37;;;23479:18;;:::i;:::-;23462:37;23312:194;;;;:::o;23512:180::-;23560:77;23557:1;23550:88;23657:4;23654:1;23647:15;23681:4;23678:1;23671:15;23698:180;23746:77;23743:1;23736:88;23843:4;23840:1;23833:15;23867:4;23864:1;23857:15;23884:114;23951:6;23985:5;23979:12;23969:22;;23884:114;;;:::o;24004:184::-;24103:11;24137:6;24132:3;24125:19;24177:4;24172:3;24168:14;24153:29;;24004:184;;;;:::o;24194:132::-;24261:4;24284:3;24276:11;;24314:4;24309:3;24305:14;24297:22;;24194:132;;;:::o;24332:108::-;24409:24;24427:5;24409:24;:::i;:::-;24404:3;24397:37;24332:108;;:::o;24446:179::-;24515:10;24536:46;24578:3;24570:6;24536:46;:::i;:::-;24614:4;24609:3;24605:14;24591:28;;24446:179;;;;:::o;24631:113::-;24701:4;24733;24728:3;24724:14;24716:22;;24631:113;;;:::o;24780:732::-;24899:3;24928:54;24976:5;24928:54;:::i;:::-;24998:86;25077:6;25072:3;24998:86;:::i;:::-;24991:93;;25108:56;25158:5;25108:56;:::i;:::-;25187:7;25218:1;25203:284;25228:6;25225:1;25222:13;25203:284;;;25304:6;25298:13;25331:63;25390:3;25375:13;25331:63;:::i;:::-;25324:70;;25417:60;25470:6;25417:60;:::i;:::-;25407:70;;25263:224;25250:1;25247;25243:9;25238:14;;25203:284;;;25207:14;25503:3;25496:10;;24904:608;;;24780:732;;;;:::o;25518:831::-;25781:4;25819:3;25808:9;25804:19;25796:27;;25833:71;25901:1;25890:9;25886:17;25877:6;25833:71;:::i;:::-;25914:80;25990:2;25979:9;25975:18;25966:6;25914:80;:::i;:::-;26041:9;26035:4;26031:20;26026:2;26015:9;26011:18;26004:48;26069:108;26172:4;26163:6;26069:108;:::i;:::-;26061:116;;26187:72;26255:2;26244:9;26240:18;26231:6;26187:72;:::i;:::-;26269:73;26337:3;26326:9;26322:19;26313:6;26269:73;:::i;:::-;25518:831;;;;;;;;:::o;26355:180::-;26403:77;26400:1;26393:88;26500:4;26497:1;26490:15;26524:4;26521:1;26514:15;26541:185;26581:1;26598:20;26616:1;26598:20;:::i;:::-;26593:25;;26632:20;26650:1;26632:20;:::i;:::-;26627:25;;26671:1;26661:35;;26676:18;;:::i;:::-;26661:35;26718:1;26715;26711:9;26706:14;;26541:185;;;;:::o;26732:220::-;26872:34;26868:1;26860:6;26856:14;26849:58;26941:3;26936:2;26928:6;26924:15;26917:28;26732:220;:::o;26958:366::-;27100:3;27121:67;27185:2;27180:3;27121:67;:::i;:::-;27114:74;;27197:93;27286:3;27197:93;:::i;:::-;27315:2;27310:3;27306:12;27299:19;;26958:366;;;:::o;27330:419::-;27496:4;27534:2;27523:9;27519:18;27511:26;;27583:9;27577:4;27573:20;27569:1;27558:9;27554:17;27547:47;27611:131;27737:4;27611:131;:::i;:::-;27603:139;;27330:419;;;:::o;27755:177::-;27895:29;27891:1;27883:6;27879:14;27872:53;27755:177;:::o;27938:366::-;28080:3;28101:67;28165:2;28160:3;28101:67;:::i;:::-;28094:74;;28177:93;28266:3;28177:93;:::i;:::-;28295:2;28290:3;28286:12;28279:19;;27938:366;;;:::o;28310:419::-;28476:4;28514:2;28503:9;28499:18;28491:26;;28563:9;28557:4;28553:20;28549:1;28538:9;28534:17;28527:47;28591:131;28717:4;28591:131;:::i;:::-;28583:139;;28310:419;;;:::o

Swarm Source

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