ETH Price: $3,272.45 (+0.71%)
Gas: 1 Gwei

Token

Alpha Coin (ALPHA)
 

Overview

Max Total Supply

1,000,000 ALPHA

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,000 ALPHA

Value
$0.00
0xd8b7bdc37c474afcb43d2a9d74b89c484eb7d72e
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:
Alpha

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-09
*/

/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡶⠶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠋⢠⠀⠙⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⠿⣦⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠁⠀⣿⠀⢀⠈⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠁⠀⠘⣇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠀⠀⠀⣿⣆⠸⣦⠈⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⢀⡔⡀⠀⢹⡆⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡿⠀⠀⠀⣸⣿⠹⣀⢿⣆⠀⠿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⢠⡞⣰⡇⡀⠸⣇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠁⢠⠀⠀⣿⠻⡄⠉⠘⣿⡄⠀⠙⢦⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠁⠀⡾⢠⠇⣷⡇⠀⢿⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠃⠀⣿⠀⢸⣿⡀⢻⡀⠀⠸⣷⠀⠀⠀⠙⠶⣤⣀⣀⣀⣀⣠⣶⠟⠁⠀⠀⣸⠇⠀⢠⣯⡇⠀⢸⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠀⠀⣿⣴⠾⡿⣷⠀⠁⠀⠀⣿⠀⠀⠀⠀⠀⠀⠈⠉⡉⠉⠉⠀⠀⠀⠀⢠⡟⠀⠀⠚⣸⣁⠀⢸⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠻⣿⣆⣷⠈⠷⠀⠀⢰⠏⠀⣤⠀⠀⠀⠀⠀⠀⠹⡄⠀⠀⠀⠀⠰⣾⡇⠀⠀⣸⢿⡇⠀⣸⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣷⠀⠀⠀⠹⢍⡛⠀⢀⣀⣤⣏⠴⠞⠁⠀⠀⠀⠀⠀⠀⠀⣻⡄⠀⠀⠀⠀⠹⣷⡀⠈⣡⣟⣠⣾⣿⡄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣍⠷⠀⠀⢀⣴⣖⡯⠭⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠶⢿⣿⣶⠀⠀⠀⠀⠈⠙⢷⣿⣛⡉⠞⢹⣇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⣝⠶⣤⣴⠿⠟⠋⠀⠀⠀⠀⠀⠀⠀⢶⠤⣀⣀⠀⠀⠀⠀⠀⠙⣧⠀⠀⠀⠀⢀⣠⢶⡙⢯⡁⡰⣾⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡴⠟⠁⠉⣳⣿⠷⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠀⠙⠳⡄⠀⠀⠀⠀⢻⠀⠀⠀⢰⠟⠁⢸⣇⠹⣿⣿⣯⠤⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣠⣤⠶⠛⢉⣀⣴⣶⣯⣍⣁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣸⣧⠀⠀⠀⠹⣦⡀⠀⠀⠈⡇⠀⢀⢸⠀⠀⢸⣿⣄⡘⠷⣄⠀⠀⠀⠀
⠀⠀⠀⣀⡴⢞⣋⡽⠞⠀⠀⢉⣽⠿⢛⡭⠁⠀⠀⣀⣀⣀⡀⠀⠀⠀⢀⣩⠿⠿⠯⠳⠀⠀⠀⣿⣷⣄⠀⠀⣿⠀⣿⣿⠀⠐⠉⠛⠙⣧⣐⢮⣷⡄⠀⠀
⠀⠀⣴⣿⡶⠟⠉⠀⠀⠀⣰⢏⣥⠞⠋⠀⠀⠀⢀⣀⣭⡿⠯⣗⠶⠆⠋⠴⣤⣤⣤⣤⣤⣀⠀⠁⣸⢿⡄⠀⢹⡄⢹⣽⣤⣾⣻⣿⠖⠿⣿⣿⡿⣿⡄⠀
⠀⢸⣿⢏⣠⠖⠀⠀⠀⠀⣱⡟⢁⡠⠦⠀⣠⣶⣫⠽⠂⠀⠀⠀⠀⠀⣀⠀⠈⠻⣿⡙⣾⣿⣷⡆⠀⣸⠇⠀⢘⣿⠀⠙⣿⣿⣿⠇⢰⠀⠉⠹⣷⢽⡇⠀
⢀⣿⣧⡞⢁⠀⠀⠀⠀⢰⡟⣴⡟⠁⠀⡰⣿⢟⣡⠀⠀⠀⠀⠀⠀⠀⠉⢦⡀⠀⠈⠛⠾⠿⣿⣿⠀⠁⠀⢄⣾⣿⣷⣤⣽⠏⠁⣤⡎⠀⠀⠀⣿⣿⡇⠀
⢸⣿⡏⣰⠃⠀⠀⠀⠀⣾⣿⣟⡄⠀⠀⣰⣿⠟⢱⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⣄⡀⠀⠀⠀⠀⠉⢠⡀⠲⣿⣿⡟⠋⠉⠙⠳⣌⠙⠗⠐⠀⢠⣧⣿⠀⠀
⢸⣿⢱⠃⢰⡆⠀⠀⠀⠙⣿⡟⢀⡴⠀⢿⣿⣴⠏⠀⠀⡄⠀⠀⠀⠀⠀⠀⠀⠻⣿⣶⢶⠆⠀⠀⢸⣿⡀⠘⣿⡁⠀⠀⠀⠀⠈⠻⣦⡀⠀⢸⣿⠇⠀⠀
⢸⣿⡏⢀⣾⠀⠀⠀⠀⢰⣿⣇⣿⠀⠀⠸⣿⣿⣀⡶⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠦⠀⠀⠀⠀⢿⣷⡀⢹⣧⠀⠀⠀⠀⠀⠀⠈⠻⣤⣿⠏⠀⠀⠀
⠈⣿⡇⢸⡇⠀⠀⡀⠀⠘⣿⣿⡏⣼⠀⠀⠈⣿⣿⣠⡼⠷⠶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⡀⠻⣆⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀
⠀⠹⣇⣿⣇⠀⢰⡇⠀⠀⠈⣿⣧⣿⡇⠀⠀⠻⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣦⡈⠳⠄⠀⠀⠀⠀⠀⠀⠀⠹⣆⠀⠀
⠀⠀⠸⣏⢿⣆⢸⡇⠀⠀⠀⠘⠻⣿⣿⠀⢀⣴⠋⢀⣀⣀⣠⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠦⡄⠀⢀⣠⠶⠶⠶⠶⠶⢾⣧⡀
⠀⠀⠀⠈⠘⢿⣾⡇⢰⡄⠀⠀⠀⠙⢻⣧⡿⣱⠞⠉⠁⠀⠀⠀⠀⠉⠲⣄⡀⠀⠠⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡁⠀⠀⠀⠀⠀⠀⣸⡇
⠀⠀⠀⠀⠀⠈⢿⣷⣸⠀⡆⠀⠀⠀⠈⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠿⣄⣀⠈⠉⠳⢶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣶⣾⣿⣿⣿⣿⡿⠁
⠀⠀⠀⠀⠀⠀⠘⡿⣿⡆⣷⡀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠲⠦⠀⠉⠻⣶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠉⣉⣿⢿⣻⠟⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⣿⡇⣿⣶⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⠶⠦⠤⠤⠴⠶⠶⠒⢚⡗⠉⠉⠁⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣷⣿⠈⢿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠶⢤⣤⣄⣀⣀⣠⡤⠾⠇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠿⠄⠈⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠐⣎⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣄⠘⣦⡻⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⣿⠇⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣦⡈⢿⣾⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣏⣀⢀⣿⠀⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡶⠀⠀⠀⠀⢹⣿⡟⢦⣽⣮⡉⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠿⡿⢅⣾⣣⣾⠃⠀⠀⣀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⣼⠃⠀⠀⣰⢂⣾⠈⡿⠀⠈⠉⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠾⣻⡟⠁⠀⢀⡼⠁⠀⠀⠀⠀⣀⡶⠁⠀⠀⢀⣠⠾⠁⠀⣠⡾⢡⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣫⢶⣃⡴⠋⠀⠀⠀⣀⡤⠞⠉⣀⣀⠤⣶⣋⣩⠤⠶⢾⣿⠵⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢻⣫⣿⣷⠿⢋⣀⣤⣴⠶⠿⠿⠶⠒⠋⠉⠃⠉⠉⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Alpha Coin
Telegram: https://t.me/alphatokenofficial
Website: https://alphakey.io/
Twitter: https://twitter.com/alphakeytoken
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

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

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

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

contract Alpha is Ownable {
    string private constant _name = unicode"Alpha Coin";
    string private constant _symbol = unicode"ALPHA";
    uint256 private constant _totalSupply = 1_000_000 * 1e18;

    uint256 public maxTransactionAmount = 10_000 * 1e18;
    uint256 public maxWallet = 10_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private revWallet = 0x8203f5e0638C2c4d5402d1a3775bf274d0a38140;
    address private treasuryWallet = 0x0a1e56B83B4936C97a8CbF73E95247198dc7EB91;
    address private teamWallet = 0xCeB02a23545808B4B6977C58337A64fC29dEc76b;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 15; 
    uint8 public sellTotalFees = 15;

    uint8 public revFee = 60;
    uint8 public treasuryFee = 30;
    uint8 public teamFee = 10;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

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

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0x698014790E23C45Fa3d9a8C0b5Ee0E46fbfFC7c6;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);
        setExcludedFromFees(0x999999B2173a81c2b20E202c3d22E0473f6517b6, true);
        setExcludedFromFees(0xFD6F40D16a6B3126C70724751D6a77e1cb990CD3, true);
        setExcludedFromFees(0x794f95F2215b66146392576FC703DbA61b84FF28, true);
        setExcludedFromFees(0x00000012616B0Cb849Db9A897Bc338B709bc56e5, true);
        setExcludedFromFees(0x66623B6A48998243FA28b7d6c7d63562885f4E2c, true);
        setExcludedFromFees(0x16F2EC68a9aC08c677583593c32d7E4D4c787adc, true);
        setExcludedFromFees(0x69077669f0875064eC1323fBE91462aC7Dd9Ec80, true);
        setExcludedFromFees(0x8c38A8Ab7242896449935346d9bb0F76cE186607, true);
        setExcludedFromFees(0x15d194BB5A0afF548a0ae5959b41B52928a7fCb8, true);
        setExcludedFromFees(0x698014790E23C45Fa3d9a8C0b5Ee0E46fbfFC7c6, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);
        setExcludedFromMaxTransaction(0x999999B2173a81c2b20E202c3d22E0473f6517b6, true);
        setExcludedFromMaxTransaction(0xFD6F40D16a6B3126C70724751D6a77e1cb990CD3, true);
        setExcludedFromMaxTransaction(0x794f95F2215b66146392576FC703DbA61b84FF28, true);
        setExcludedFromMaxTransaction(0x00000012616B0Cb849Db9A897Bc338B709bc56e5, true);
        setExcludedFromMaxTransaction(0x66623B6A48998243FA28b7d6c7d63562885f4E2c, true);
        setExcludedFromMaxTransaction(0x16F2EC68a9aC08c677583593c32d7E4D4c787adc, true);
        setExcludedFromMaxTransaction(0x69077669f0875064eC1323fBE91462aC7Dd9Ec80, true);
        setExcludedFromMaxTransaction(0x8c38A8Ab7242896449935346d9bb0F76cE186607, true);
        setExcludedFromMaxTransaction(0x15d194BB5A0afF548a0ae5959b41B52928a7fCb8, true);
        setExcludedFromMaxTransaction(0x698014790E23C45Fa3d9a8C0b5Ee0E46fbfFC7c6, true);

        _balances[msg.sender] = 50_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 250_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[airdropWallet] = 100_000 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 600_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

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

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

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        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 recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    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");

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

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

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 100, "Buy fees must be less than or equal to 100%");
        require(_sellTotalFees <= 100, "Sell fees must be less than or equal to 100%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

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

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function unleashTheAlpha() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","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":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashTheAlpha","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269021e19e0c9bab240000060015569021e19e0c9bab240000060025561271069d3c21bcecceda100000060026200003c91906200095c565b62000048919062000986565b600355600480546001600160a01b0319908116738203f5e0638c2c4d5402d1a3775bf274d0a381401790915560058054909116730a1e56b83b4936c97a8cbf73e95247198dc7eb91179055600680547a01000a1e3c0f0fceb02a23545808b4b6977c58337a64fc29dec76b600161ff0160c81b0319909116179055348015620000cf575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000130573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001569190620009a6565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001dc9190620009a6565b6001600160a01b031660808190525f908152600b60205260409020805460ff1916600117905573698014790e23c45fa3d9a8c0b5ee0e46fbffc7c6620002356200022d5f546001600160a01b031690565b60016200072b565b620002423060016200072b565b6200025161dead60016200072b565b6006546200026a906001600160a01b031660016200072b565b60045462000283906001600160a01b031660016200072b565b6005546200029c906001600160a01b031660016200072b565b620002bd73999999b2173a81c2b20e202c3d22e0473f6517b660016200072b565b620002de73fd6f40d16a6b3126c70724751d6a77e1cb990cd360016200072b565b620002ff73794f95f2215b66146392576fc703dba61b84ff2860016200072b565b6200031d7012616b0cb849db9a897bc338b709bc56e560016200072b565b6200033e7366623b6a48998243fa28b7d6c7d63562885f4e2c60016200072b565b6200035f7316f2ec68a9ac08c677583593c32d7e4d4c787adc60016200072b565b620003807369077669f0875064ec1323fbe91462ac7dd9ec8060016200072b565b620003a1738c38a8ab7242896449935346d9bb0f76ce18660760016200072b565b620003c27315d194bb5a0aff548a0ae5959b41b52928a7fcb860016200072b565b620003e373698014790e23c45fa3d9a8c0b5ee0e46fbffc7c660016200072b565b62000401620003f95f546001600160a01b031690565b6001620007b2565b62000422737a250d5630b4cf539739df2c5dacb4c659f2488d6001620007b2565b6200042f306001620007b2565b6200043e61dead6001620007b2565b6080516200044e906001620007b2565b60065462000467906001600160a01b03166001620007b2565b60045462000480906001600160a01b03166001620007b2565b60055462000499906001600160a01b03166001620007b2565b620004ba73999999b2173a81c2b20e202c3d22e0473f6517b66001620007b2565b620004db73fd6f40d16a6b3126c70724751d6a77e1cb990cd36001620007b2565b620004fc73794f95f2215b66146392576fc703dba61b84ff286001620007b2565b6200051a7012616b0cb849db9a897bc338b709bc56e56001620007b2565b6200053b7366623b6a48998243fa28b7d6c7d63562885f4e2c6001620007b2565b6200055c7316f2ec68a9ac08c677583593c32d7e4d4c787adc6001620007b2565b6200057d7369077669f0875064ec1323fbe91462ac7dd9ec806001620007b2565b6200059e738c38a8ab7242896449935346d9bb0f76ce1866076001620007b2565b620005bf7315d194bb5a0aff548a0ae5959b41b52928a7fcb86001620007b2565b620005e073698014790e23c45fa3d9a8c0b5ee0e46fbffc7c66001620007b2565b335f818152600760209081526040808320690a968163f0a57b4000009081905590519081525f80516020620033e4833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206934f086f3b33b684000009055925490911680825282822054925190925f80516020620033e4833981519152916200067591815260200190565b60405180910390a36001600160a01b0381165f81815260076020908152604080832069152d02c7e14af68000009081905590519081525f80516020620033e4833981519152910160405180910390a3305f818152600760209081526040808320697f0e10af47c1c70000009081905590519081525f80516020620033e4833981519152910160405180910390a36200072430737a250d5630b4cf539739df2c5dacb4c659f2488d5f1962000835565b50620009d5565b336200073e5f546001600160a01b031690565b6001600160a01b031614620007885760405162461bcd60e51b815260206004820181905260248201525f80516020620033c483398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33620007c55f546001600160a01b031690565b6001600160a01b0316146200080b5760405162461bcd60e51b815260206004820181905260248201525f80516020620033c483398151915260448201526064016200077f565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620008995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200077f565b6001600160a01b038216620008fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200077f565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80820281158282048414176200098057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620009a157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620009b7575f80fd5b81516001600160a01b0381168114620009ce575f80fd5b9392505050565b6080516129cf620009f55f395f81816103ce015261105f01526129cf5ff3fe608060405260043610610236575f3560e01c80637cb332bb11610129578063cc32d176116100a8578063dd62ed3e1161006d578063dd62ed3e146106fd578063e2f4560514610741578063e710794714610756578063f8b45b0514610775578063fb201b1d1461078a575f80fd5b8063cc32d17614610676578063cd545aaf14610696578063d201b01e1461069e578063d7c94efd146106bd578063d85ba063146106dd575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e5578063a9059cbb14610604578063adfa29e514610623578063bc205ad314610642578063c8c8ebe414610661575f80fd5b80637cb332bb14610527578063809d458d1461054657806385ecafd7146105655780638da5cb5b1461059c57806395d89b41146105b8575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048c57806370a08231146104ac578063715018a6146104e057806374010ece146104f4578063751039fc14610513575f80fd5b80634a62bb65146103f05780634fcd244614610410578063590ffdce1461042f5780636402511e1461044e57806366650dae1461046d575f80fd5b806323b872dd116101fb57806323b872dd1461034b57806327a14fc21461036a578063313ce5671461038b5780633c090c461461039e57806349bd5a5e146103bd575f80fd5b806306fdde0314610241578063095ea7b3146102855780631694505e146102b457806318160ddd146102f357806321d37e3914610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600a81526920b63834309021b7b4b760b11b60208201525b60405161027c91906123cb565b60405180910390f35b348015610290575f80fd5b506102a461029f366004612418565b61079e565b604051901515815260200161027c565b3480156102bf575f80fd5b506102db737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027c565b3480156102fe575f80fd5b5069d3c21bcecceda10000005b60405190815260200161027c565b348015610324575f80fd5b5060065461033990600160b01b900460ff1681565b60405160ff909116815260200161027c565b348015610356575f80fd5b506102a4610365366004612440565b6107b4565b348015610375575f80fd5b50610389610384366004612479565b610868565b005b348015610396575f80fd5b506012610339565b3480156103a9575f80fd5b506103896103b83660046124a0565b61094a565b3480156103c8575f80fd5b506102db7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fb575f80fd5b506006546102a490600160d01b900460ff1681565b34801561041b575f80fd5b5061038961042a3660046124e0565b610a52565b34801561043a575f80fd5b50610389610449366004612521565b610b8f565b348015610459575f80fd5b50610389610468366004612479565b610bf1565b348015610478575f80fd5b50610389610487366004612521565b610d4c565b348015610497575f80fd5b5060065461033990600160a81b900460ff1681565b3480156104b7575f80fd5b5061030b6104c6366004612556565b6001600160a01b03165f9081526007602052604090205490565b3480156104eb575f80fd5b50610389610dae565b3480156104ff575f80fd5b5061038961050e366004612479565b610df7565b34801561051e575f80fd5b50610389610ede565b348015610532575f80fd5b50610389610541366004612556565b610f25565b348015610551575f80fd5b50610389610560366004612556565b610fa5565b348015610570575f80fd5b506102a461057f366004612556565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a7575f80fd5b505f546001600160a01b03166102db565b3480156105c3575f80fd5b50604080518082019091526005815264414c50484160d81b602082015261026f565b3480156105f0575f80fd5b506103896105ff366004612521565b611025565b34801561060f575f80fd5b506102a461061e366004612418565b611108565b34801561062e575f80fd5b5061038961063d366004612556565b611114565b34801561064d575f80fd5b5061038961065c366004612576565b611194565b34801561066c575f80fd5b5061030b60015481565b348015610681575f80fd5b5060065461033990600160b81b900460ff1681565b610389611241565b3480156106a9575f80fd5b506103896106b8366004612556565b611354565b3480156106c8575f80fd5b5060065461033990600160c01b900460ff1681565b3480156106e8575f80fd5b5060065461033990600160a01b900460ff1681565b348015610708575f80fd5b5061030b610717366004612576565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074c575f80fd5b5061030b60035481565b348015610761575f80fd5b5061038961077036600461266e565b61146b565b348015610780575f80fd5b5061030b60025481565b348015610795575f80fd5b50610389611682565b5f6107aa3384846116f9565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085257828110156108455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085285338584036116f9565b61085d85858561181c565b506001949350505050565b3361087a5f546001600160a01b031690565b6001600160a01b0316146108a05760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e86108c169d3c21bcecceda10000006001612771565b6108cb9190612788565b6108d59190612788565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083c565b61094481670de0b6b3a7640000612771565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083c90612728565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127a7565b6109ed91906127a7565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083c565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083c90612728565b60648260ff161115610af25760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526a75616c20746f203130302560a81b606482015260840161083c565b60648160ff161115610b5b5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526b7175616c20746f203130302560a01b606482015260840161083c565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610ba15f546001600160a01b031690565b6001600160a01b031614610bc75760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c035f546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b815260040161083c90612728565b620186a0610c4269d3c21bcecceda10000006001612771565b610c4c9190612788565b811015610cb95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083c565b6103e8610cd169d3c21bcecceda10000006005612771565b610cdb9190612788565b811115610d475760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083c565b600355565b33610d5e5f546001600160a01b031690565b6001600160a01b031614610d845760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610dc05f546001600160a01b031690565b6001600160a01b031614610de65760405162461bcd60e51b815260040161083c90612728565b5f80546001600160a01b0319169055565b33610e095f546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e8610e5069d3c21bcecceda10000006001612771565b610e5a9190612788565b610e649190612788565b811015610ec65760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083c565b610ed881670de0b6b3a7640000612771565b60015550565b33610ef05f546001600160a01b031690565b6001600160a01b031614610f165760405162461bcd60e51b815260040161083c90612728565b6006805460ff60d01b19169055565b33610f375f546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b038116610f835760405162461bcd60e51b815260040161083c906127c0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610fb75f546001600160a01b031690565b6001600160a01b031614610fdd5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166110035760405162461bcd60e51b815260040161083c906127c0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110375f546001600160a01b031690565b6001600160a01b03161461105d5760405162461bcd60e51b815260040161083c90612728565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110de5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f6107aa33848461181c565b336111265f546001600160a01b031690565b6001600160a01b03161461114c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166111725760405162461bcd60e51b815260040161083c906127c0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336111a65f546001600160a01b031690565b6001600160a01b0316146111cc5760405162461bcd60e51b815260040161083c90612728565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123491906127f0565b9050610a4d838383611f93565b336112535f546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156112a35760405162461bcd60e51b815260040161083c90612807565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561132f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d9190612831565b336113665f546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166113d45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083c565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461141d576040519150601f19603f3d011682016040523d82523d5f602084013e611422565b606091505b50509050806114675760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083c565b5050565b3361147d5f546001600160a01b031690565b6001600160a01b0316146114a35760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156114cd5760405162461bcd60e51b815260040161083c90612807565b5f5b8251811015610a4d578181815181106114ea576114ea61285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156115345760405162461bcd60e51b815260040161083c90612870565b8181815181106115465761154661285c565b602002602001015160075f8584815181106115635761156361285c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159891906128b6565b925050819055508181815181106115b1576115b161285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115ea91906128c9565b925050819055508281815181106116035761160361285c565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106116515761165161285c565b602002602001015160405161166891815260200190565b60405180910390a38061167a816128dc565b9150506114cf565b336116945f546001600160a01b031690565b6001600160a01b0316146116ba5760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156116e45760405162461bcd60e51b815260040161083c90612807565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083c565b6001600160a01b0382166117bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083c565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083c565b6001600160a01b0382166118e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083c565b5f81116119435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083c565b600654600160d81b900460ff1615801561199757505f546001600160a01b0384811691161480159061197e57506001600160a01b0383163014155b801561199757505f546001600160a01b03838116911614155b156119da5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083c565b600654600160d01b900460ff1615611c9b575f546001600160a01b03848116911614801590611a1657505f546001600160a01b03838116911614155b8015611a2a57506001600160a01b03821615155b8015611a4157506001600160a01b03821661dead14155b8015611a575750600654600160c81b900460ff16155b15611c9b576001600160a01b0383165f908152600b602052604090205460ff168015611a9b57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6e57600154811115611b005760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083c565b6002546001600160a01b0383165f90815260076020526040902054611b2590836128b6565b1115611b695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b611c9b565b6001600160a01b0382165f908152600b602052604090205460ff168015611bad57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1357600154811115611b695760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083c565b6001600160a01b0382165f908152600a602052604090205460ff16611c9b576002546001600160a01b0383165f90815260076020526040902054611c5790836128b6565b1115611c9b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b600354305f90815260076020526040902054108015908190611cc75750600654600160c81b900460ff16155b8015611ceb57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3357506001600160a01b0383165f9081526009602052604090205460ff16155b15611d61576006805460ff60c81b1916600160c81b179055611d536120ba565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611dad57506001600160a01b0384165f9081526009602052604090205460ff165b15611db557505f5b6001600160a01b0385165f9081526007602052604090205483811015611ded5760405162461bcd60e51b815260040161083c90612870565b5f8215611f21576001600160a01b0386165f908152600b602052604090205460ff168015611e265750600654600160a81b900460ff1615155b15611e5657600654606490611e4590600160a81b900460ff1687612771565b611e4f9190612788565b9050611eb4565b6001600160a01b0387165f908152600b602052604090205460ff168015611e885750600654600160a01b900460ff1615155b15611eb457600654606490611ea790600160a01b900460ff1687612771565b611eb19190612788565b90505b8015611f21576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f829089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fee91906128f4565b5f604051808303815f865af19150503d805f8114612027576040519150601f19603f3d011682016040523d82523d5f602084013e61202c565b606091505b5091509150818015612056575080511580612056575080806020019051810190612056919061290f565b6120b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083c565b5050505050565b6003545f6120c9826014612771565b305f9081526007602052604090205411156120ef576003546120ec906014612771565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121225761212261285c565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216a5761216a61285c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c19086905f9086903090429060040161292a565b5f604051808303815f87803b1580156121d8575f80fd5b505af11580156121ea573d5f803e3d5ffd5b5047925050811590506123a3576006545f9060649061221390600160b01b900460ff1684612771565b61221d9190612788565b6006549091505f9060649061223c90600160c01b900460ff1685612771565b6122469190612788565b90505f8161225484866128c9565b61225e91906128c9565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a9576040519150601f19603f3d011682016040523d82523d5f602084013e6122ae565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122fb576040519150601f19603f3d011682016040523d82523d5f602084013e612300565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461234d576040519150601f19603f3d011682016040523d82523d5f602084013e612352565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c35781810151838201526020016123ab565b50505f910152565b602081525f82518060208401526123e98160408501602087016123a9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612413575f80fd5b919050565b5f8060408385031215612429575f80fd5b612432836123fd565b946020939093013593505050565b5f805f60608486031215612452575f80fd5b61245b846123fd565b9250612469602085016123fd565b9150604084013590509250925092565b5f60208284031215612489575f80fd5b5035919050565b803560ff81168114612413575f80fd5b5f805f606084860312156124b2575f80fd5b6124bb84612490565b92506124c960208501612490565b91506124d760408501612490565b90509250925092565b5f80604083850312156124f1575f80fd5b6124fa83612490565b915061250860208401612490565b90509250929050565b801515811461251e575f80fd5b50565b5f8060408385031215612532575f80fd5b61253b836123fd565b9150602083013561254b81612511565b809150509250929050565b5f60208284031215612566575f80fd5b61256f826123fd565b9392505050565b5f8060408385031215612587575f80fd5b612590836123fd565b9150612508602084016123fd565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125db576125db61259e565b604052919050565b5f67ffffffffffffffff8211156125fc576125fc61259e565b5060051b60200190565b5f82601f830112612615575f80fd5b8135602061262a612625836125e3565b6125b2565b82815260059290921b84018101918181019086841115612648575f80fd5b8286015b84811015612663578035835291830191830161264c565b509695505050505050565b5f806040838503121561267f575f80fd5b823567ffffffffffffffff80821115612696575f80fd5b818501915085601f8301126126a9575f80fd5b813560206126b9612625836125e3565b82815260059290921b840181019181810190898411156126d7575f80fd5b948201945b838610156126fc576126ed866123fd565b825294820194908201906126dc565b96505086013592505080821115612711575f80fd5b5061271e85828601612606565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ae576107ae61275d565b5f826127a257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ae576107ae61275d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612800575f80fd5b5051919050565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f60608486031215612843575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ae576107ae61275d565b818103818111156107ae576107ae61275d565b5f600182016128ed576128ed61275d565b5060010190565b5f82516129058184602087016123a9565b9190910192915050565b5f6020828403121561291f575f80fd5b815161256f81612511565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129785784516001600160a01b031683529383019391830191600101612953565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122029c27917e74914cd813290b4e0e43a6830077355fb2525bbd3472f1e0dfa413264736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610236575f3560e01c80637cb332bb11610129578063cc32d176116100a8578063dd62ed3e1161006d578063dd62ed3e146106fd578063e2f4560514610741578063e710794714610756578063f8b45b0514610775578063fb201b1d1461078a575f80fd5b8063cc32d17614610676578063cd545aaf14610696578063d201b01e1461069e578063d7c94efd146106bd578063d85ba063146106dd575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e5578063a9059cbb14610604578063adfa29e514610623578063bc205ad314610642578063c8c8ebe414610661575f80fd5b80637cb332bb14610527578063809d458d1461054657806385ecafd7146105655780638da5cb5b1461059c57806395d89b41146105b8575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048c57806370a08231146104ac578063715018a6146104e057806374010ece146104f4578063751039fc14610513575f80fd5b80634a62bb65146103f05780634fcd244614610410578063590ffdce1461042f5780636402511e1461044e57806366650dae1461046d575f80fd5b806323b872dd116101fb57806323b872dd1461034b57806327a14fc21461036a578063313ce5671461038b5780633c090c461461039e57806349bd5a5e146103bd575f80fd5b806306fdde0314610241578063095ea7b3146102855780631694505e146102b457806318160ddd146102f357806321d37e3914610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600a81526920b63834309021b7b4b760b11b60208201525b60405161027c91906123cb565b60405180910390f35b348015610290575f80fd5b506102a461029f366004612418565b61079e565b604051901515815260200161027c565b3480156102bf575f80fd5b506102db737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027c565b3480156102fe575f80fd5b5069d3c21bcecceda10000005b60405190815260200161027c565b348015610324575f80fd5b5060065461033990600160b01b900460ff1681565b60405160ff909116815260200161027c565b348015610356575f80fd5b506102a4610365366004612440565b6107b4565b348015610375575f80fd5b50610389610384366004612479565b610868565b005b348015610396575f80fd5b506012610339565b3480156103a9575f80fd5b506103896103b83660046124a0565b61094a565b3480156103c8575f80fd5b506102db7f000000000000000000000000e5a3427b49e63e7329cc1d618d7ed3bb6f6ca63e81565b3480156103fb575f80fd5b506006546102a490600160d01b900460ff1681565b34801561041b575f80fd5b5061038961042a3660046124e0565b610a52565b34801561043a575f80fd5b50610389610449366004612521565b610b8f565b348015610459575f80fd5b50610389610468366004612479565b610bf1565b348015610478575f80fd5b50610389610487366004612521565b610d4c565b348015610497575f80fd5b5060065461033990600160a81b900460ff1681565b3480156104b7575f80fd5b5061030b6104c6366004612556565b6001600160a01b03165f9081526007602052604090205490565b3480156104eb575f80fd5b50610389610dae565b3480156104ff575f80fd5b5061038961050e366004612479565b610df7565b34801561051e575f80fd5b50610389610ede565b348015610532575f80fd5b50610389610541366004612556565b610f25565b348015610551575f80fd5b50610389610560366004612556565b610fa5565b348015610570575f80fd5b506102a461057f366004612556565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a7575f80fd5b505f546001600160a01b03166102db565b3480156105c3575f80fd5b50604080518082019091526005815264414c50484160d81b602082015261026f565b3480156105f0575f80fd5b506103896105ff366004612521565b611025565b34801561060f575f80fd5b506102a461061e366004612418565b611108565b34801561062e575f80fd5b5061038961063d366004612556565b611114565b34801561064d575f80fd5b5061038961065c366004612576565b611194565b34801561066c575f80fd5b5061030b60015481565b348015610681575f80fd5b5060065461033990600160b81b900460ff1681565b610389611241565b3480156106a9575f80fd5b506103896106b8366004612556565b611354565b3480156106c8575f80fd5b5060065461033990600160c01b900460ff1681565b3480156106e8575f80fd5b5060065461033990600160a01b900460ff1681565b348015610708575f80fd5b5061030b610717366004612576565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074c575f80fd5b5061030b60035481565b348015610761575f80fd5b5061038961077036600461266e565b61146b565b348015610780575f80fd5b5061030b60025481565b348015610795575f80fd5b50610389611682565b5f6107aa3384846116f9565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085257828110156108455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085285338584036116f9565b61085d85858561181c565b506001949350505050565b3361087a5f546001600160a01b031690565b6001600160a01b0316146108a05760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e86108c169d3c21bcecceda10000006001612771565b6108cb9190612788565b6108d59190612788565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083c565b61094481670de0b6b3a7640000612771565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083c90612728565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127a7565b6109ed91906127a7565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083c565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083c90612728565b60648260ff161115610af25760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526a75616c20746f203130302560a81b606482015260840161083c565b60648160ff161115610b5b5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526b7175616c20746f203130302560a01b606482015260840161083c565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610ba15f546001600160a01b031690565b6001600160a01b031614610bc75760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c035f546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b815260040161083c90612728565b620186a0610c4269d3c21bcecceda10000006001612771565b610c4c9190612788565b811015610cb95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083c565b6103e8610cd169d3c21bcecceda10000006005612771565b610cdb9190612788565b811115610d475760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083c565b600355565b33610d5e5f546001600160a01b031690565b6001600160a01b031614610d845760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610dc05f546001600160a01b031690565b6001600160a01b031614610de65760405162461bcd60e51b815260040161083c90612728565b5f80546001600160a01b0319169055565b33610e095f546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e8610e5069d3c21bcecceda10000006001612771565b610e5a9190612788565b610e649190612788565b811015610ec65760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083c565b610ed881670de0b6b3a7640000612771565b60015550565b33610ef05f546001600160a01b031690565b6001600160a01b031614610f165760405162461bcd60e51b815260040161083c90612728565b6006805460ff60d01b19169055565b33610f375f546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b038116610f835760405162461bcd60e51b815260040161083c906127c0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610fb75f546001600160a01b031690565b6001600160a01b031614610fdd5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166110035760405162461bcd60e51b815260040161083c906127c0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110375f546001600160a01b031690565b6001600160a01b03161461105d5760405162461bcd60e51b815260040161083c90612728565b7f000000000000000000000000e5a3427b49e63e7329cc1d618d7ed3bb6f6ca63e6001600160a01b0316826001600160a01b0316036110de5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f6107aa33848461181c565b336111265f546001600160a01b031690565b6001600160a01b03161461114c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166111725760405162461bcd60e51b815260040161083c906127c0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336111a65f546001600160a01b031690565b6001600160a01b0316146111cc5760405162461bcd60e51b815260040161083c90612728565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123491906127f0565b9050610a4d838383611f93565b336112535f546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156112a35760405162461bcd60e51b815260040161083c90612807565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561132f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d9190612831565b336113665f546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166113d45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083c565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461141d576040519150601f19603f3d011682016040523d82523d5f602084013e611422565b606091505b50509050806114675760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083c565b5050565b3361147d5f546001600160a01b031690565b6001600160a01b0316146114a35760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156114cd5760405162461bcd60e51b815260040161083c90612807565b5f5b8251811015610a4d578181815181106114ea576114ea61285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156115345760405162461bcd60e51b815260040161083c90612870565b8181815181106115465761154661285c565b602002602001015160075f8584815181106115635761156361285c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159891906128b6565b925050819055508181815181106115b1576115b161285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115ea91906128c9565b925050819055508281815181106116035761160361285c565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106116515761165161285c565b602002602001015160405161166891815260200190565b60405180910390a38061167a816128dc565b9150506114cf565b336116945f546001600160a01b031690565b6001600160a01b0316146116ba5760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156116e45760405162461bcd60e51b815260040161083c90612807565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083c565b6001600160a01b0382166117bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083c565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083c565b6001600160a01b0382166118e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083c565b5f81116119435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083c565b600654600160d81b900460ff1615801561199757505f546001600160a01b0384811691161480159061197e57506001600160a01b0383163014155b801561199757505f546001600160a01b03838116911614155b156119da5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083c565b600654600160d01b900460ff1615611c9b575f546001600160a01b03848116911614801590611a1657505f546001600160a01b03838116911614155b8015611a2a57506001600160a01b03821615155b8015611a4157506001600160a01b03821661dead14155b8015611a575750600654600160c81b900460ff16155b15611c9b576001600160a01b0383165f908152600b602052604090205460ff168015611a9b57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6e57600154811115611b005760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083c565b6002546001600160a01b0383165f90815260076020526040902054611b2590836128b6565b1115611b695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b611c9b565b6001600160a01b0382165f908152600b602052604090205460ff168015611bad57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1357600154811115611b695760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083c565b6001600160a01b0382165f908152600a602052604090205460ff16611c9b576002546001600160a01b0383165f90815260076020526040902054611c5790836128b6565b1115611c9b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b600354305f90815260076020526040902054108015908190611cc75750600654600160c81b900460ff16155b8015611ceb57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3357506001600160a01b0383165f9081526009602052604090205460ff16155b15611d61576006805460ff60c81b1916600160c81b179055611d536120ba565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611dad57506001600160a01b0384165f9081526009602052604090205460ff165b15611db557505f5b6001600160a01b0385165f9081526007602052604090205483811015611ded5760405162461bcd60e51b815260040161083c90612870565b5f8215611f21576001600160a01b0386165f908152600b602052604090205460ff168015611e265750600654600160a81b900460ff1615155b15611e5657600654606490611e4590600160a81b900460ff1687612771565b611e4f9190612788565b9050611eb4565b6001600160a01b0387165f908152600b602052604090205460ff168015611e885750600654600160a01b900460ff1615155b15611eb457600654606490611ea790600160a01b900460ff1687612771565b611eb19190612788565b90505b8015611f21576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f829089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fee91906128f4565b5f604051808303815f865af19150503d805f8114612027576040519150601f19603f3d011682016040523d82523d5f602084013e61202c565b606091505b5091509150818015612056575080511580612056575080806020019051810190612056919061290f565b6120b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083c565b5050505050565b6003545f6120c9826014612771565b305f9081526007602052604090205411156120ef576003546120ec906014612771565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121225761212261285c565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216a5761216a61285c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c19086905f9086903090429060040161292a565b5f604051808303815f87803b1580156121d8575f80fd5b505af11580156121ea573d5f803e3d5ffd5b5047925050811590506123a3576006545f9060649061221390600160b01b900460ff1684612771565b61221d9190612788565b6006549091505f9060649061223c90600160c01b900460ff1685612771565b6122469190612788565b90505f8161225484866128c9565b61225e91906128c9565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a9576040519150601f19603f3d011682016040523d82523d5f602084013e6122ae565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122fb576040519150601f19603f3d011682016040523d82523d5f602084013e612300565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461234d576040519150601f19603f3d011682016040523d82523d5f602084013e612352565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c35781810151838201526020016123ab565b50505f910152565b602081525f82518060208401526123e98160408501602087016123a9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612413575f80fd5b919050565b5f8060408385031215612429575f80fd5b612432836123fd565b946020939093013593505050565b5f805f60608486031215612452575f80fd5b61245b846123fd565b9250612469602085016123fd565b9150604084013590509250925092565b5f60208284031215612489575f80fd5b5035919050565b803560ff81168114612413575f80fd5b5f805f606084860312156124b2575f80fd5b6124bb84612490565b92506124c960208501612490565b91506124d760408501612490565b90509250925092565b5f80604083850312156124f1575f80fd5b6124fa83612490565b915061250860208401612490565b90509250929050565b801515811461251e575f80fd5b50565b5f8060408385031215612532575f80fd5b61253b836123fd565b9150602083013561254b81612511565b809150509250929050565b5f60208284031215612566575f80fd5b61256f826123fd565b9392505050565b5f8060408385031215612587575f80fd5b612590836123fd565b9150612508602084016123fd565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125db576125db61259e565b604052919050565b5f67ffffffffffffffff8211156125fc576125fc61259e565b5060051b60200190565b5f82601f830112612615575f80fd5b8135602061262a612625836125e3565b6125b2565b82815260059290921b84018101918181019086841115612648575f80fd5b8286015b84811015612663578035835291830191830161264c565b509695505050505050565b5f806040838503121561267f575f80fd5b823567ffffffffffffffff80821115612696575f80fd5b818501915085601f8301126126a9575f80fd5b813560206126b9612625836125e3565b82815260059290921b840181019181810190898411156126d7575f80fd5b948201945b838610156126fc576126ed866123fd565b825294820194908201906126dc565b96505086013592505080821115612711575f80fd5b5061271e85828601612606565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ae576107ae61275d565b5f826127a257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ae576107ae61275d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612800575f80fd5b5051919050565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f60608486031215612843575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ae576107ae61275d565b818103818111156107ae576107ae61275d565b5f600182016128ed576128ed61275d565b5060010190565b5f82516129058184602087016123a9565b9190910192915050565b5f6020828403121561291f575f80fd5b815161256f81612511565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129785784516001600160a01b031683529383019391830191600101612953565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122029c27917e74914cd813290b4e0e43a6830077355fb2525bbd3472f1e0dfa413264736f6c63430008150033

Deployed Bytecode Sourcemap

8175:15078:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13316:83;;;;;;;;;;-1:-1:-1;13386:5:0;;;;;;;;;;;;-1:-1:-1;;;13386:5:0;;;;13316:83;;;;;;;:::i;:::-;;;;;;;;13945:152;;;;;;;;;;-1:-1:-1;13945:152:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;13945:152:0;1107:187:1;9750:115:0;;;;;;;;;;;;9822:42;9750:115;;;;;-1:-1:-1;;;;;1489:32:1;;;1471:51;;1459:2;1444:18;9750:115:0;1299:229:1;13586:91:0;;;;;;;;;;-1:-1:-1;8361:16:0;13586:91;;;1679:25:1;;;1667:2;1652:18;13586:91:0;1533:177:1;8960:24:0;;;;;;;;;;-1:-1:-1;8960:24:0;;;;-1:-1:-1;;;8960:24:0;;;;;;;;;1887:4:1;1875:17;;;1857:36;;1845:2;1830:18;8960:24:0;1715:184:1;14616:520:0;;;;;;;;;;-1:-1:-1;14616:520:0;;;;;:::i;:::-;;:::i;20695:235::-;;;;;;;;;;-1:-1:-1;20695:235:0;;;;;:::i;:::-;;:::i;:::-;;13502:76;;;;;;;;;;-1:-1:-1;13568:2:0;13502:76;;17919:300;;;;;;;;;;-1:-1:-1;17919:300:0;;;;;:::i;:::-;;:::i;9872:38::-;;;;;;;;;;;;;;;9089:33;;;;;;;;;;-1:-1:-1;9089:33:0;;;;-1:-1:-1;;;9089:33:0;;;;;;18227:343;;;;;;;;;;-1:-1:-1;18227:343:0;;;;;:::i;:::-;;:::i;18578:136::-;;;;;;;;;;-1:-1:-1;18578:136:0;;;;;:::i;:::-;;:::i;20082:361::-;;;;;;;;;;-1:-1:-1;20082:361:0;;;;;:::i;:::-;;:::i;18722:158::-;;;;;;;;;;-1:-1:-1;18722:158:0;;;;;:::i;:::-;;:::i;8920:31::-;;;;;;;;;;-1:-1:-1;8920:31:0;;;;-1:-1:-1;;;8920:31:0;;;;;;13685:110;;;;;;;;;;-1:-1:-1;13685:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;13769:18:0;13742:7;13769:18;;;:9;:18;;;;;;;13685:110;6872:92;;;;;;;;;;;;;:::i;20451:236::-;;;;;;;;;;-1:-1:-1;20451:236:0;;;;;:::i;:::-;;:::i;17827:84::-;;;;;;;;;;;;;:::i;21314:177::-;;;;;;;;;;-1:-1:-1;21314:177:0;;;;;:::i;:::-;;:::i;21121:185::-;;;;;;;;;;-1:-1:-1;21121:185:0;;;;;:::i;:::-;;:::i;21499:123::-;;;;;;;;;;-1:-1:-1;21499:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;21586:28:0;21562:4;21586:28;;;:19;:28;;;;;;;;;21499:123;6651:87;;;;;;;;;;-1:-1:-1;6697:7:0;6724:6;-1:-1:-1;;;;;6724:6:0;6651:87;;13407;;;;;;;;;;-1:-1:-1;13479:7:0;;;;;;;;;;;;-1:-1:-1;;;13479:7:0;;;;13407:87;;19863:211;;;;;;;;;;-1:-1:-1;19863:211:0;;;;;:::i;:::-;;:::i;14450:158::-;;;;;;;;;;-1:-1:-1;14450:158:0;;;;;:::i;:::-;;:::i;20938:175::-;;;;;;;;;;-1:-1:-1;20938:175:0;;;;;:::i;:::-;;:::i;21630:240::-;;;;;;;;;;-1:-1:-1;21630:240:0;;;;;:::i;:::-;;:::i;8386:51::-;;;;;;;;;;;;;;;;8991:29;;;;;;;;;;-1:-1:-1;8991:29:0;;;;-1:-1:-1;;;8991:29:0;;;;;;19519:336;;;:::i;21878:247::-;;;;;;;;;;-1:-1:-1;21878:247:0;;;;;:::i;:::-;;:::i;9027:25::-;;;;;;;;;;-1:-1:-1;9027:25:0;;;;-1:-1:-1;;;9027:25:0;;;;;;8882:30;;;;;;;;;;-1:-1:-1;8882:30:0;;;;-1:-1:-1;;;8882:30:0;;;;;;13803:134;;;;;;;;;;-1:-1:-1;13803:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;13902:18:0;;;13875:7;13902:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13803:134;8491:62;;;;;;;;;;;;;;;;18888:492;;;;;;;;;;-1:-1:-1;18888:492:0;;;;;:::i;:::-;;:::i;8444:40::-;;;;;;;;;;;;;;;;19388:123;;;;;;;;;;;;;:::i;13945:152::-;14013:4;14030:37;14039:10;14051:7;14060:6;14030:8;:37::i;:::-;-1:-1:-1;14085:4:0;13945:152;;;;;:::o;14616:520::-;-1:-1:-1;;;;;14751:19:0;;14707:4;14751:19;;;:11;:19;;;;;;;;14771:10;14751:31;;;;;;;;-1:-1:-1;;14797:37:0;;14793:263;;14879:6;14859:16;:26;;14851:79;;;;-1:-1:-1;;;14851:79:0;;6894:2:1;14851:79:0;;;6876:21:1;6933:2;6913:18;;;6906:30;6972:34;6952:18;;;6945:62;-1:-1:-1;;;7023:18:1;;;7016:38;7071:19;;14851:79:0;;;;;;;;;14974:55;14983:6;14991:10;15022:6;15003:16;:25;14974:8;:55::i;:::-;15068:36;15078:6;15086:9;15097:6;15068:9;:36::i;:::-;-1:-1:-1;15124:4:0;;14616:520;-1:-1:-1;;;;14616:520:0:o;20695:235::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;20830:4:::1;20822;20801:17;8361:16:::0;20817:1:::1;20801:17;:::i;:::-;20800:26;;;;:::i;:::-;20799:35;;;;:::i;:::-;20783:12;:51;;20775:101;;;::::0;-1:-1:-1;;;20775:101:0;;8191:2:1;20775:101:0::1;::::0;::::1;8173:21:1::0;8230:2;8210:18;;;8203:30;8269:34;8249:18;;;8242:62;-1:-1:-1;;;8320:18:1;;;8313:35;8365:19;;20775:101:0::1;7989:401:1::0;20775:101:0::1;20899:23;:12:::0;20915:6:::1;20899:23;:::i;:::-;20887:9;:35:::0;-1:-1:-1;20695:235:0:o;17919:300::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;18029:6:::1;:16:::0;;-1:-1:-1;;;;18056:26:0;-1:-1:-1;;;18029:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;18056:26:0;;;;;-1:-1:-1;;;18056:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;18093:18:0::1;-1:-1:-1::0;;;18093:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18154:7;::::1;::::0;::::1;::::0;18131:20:::1;::::0;18140:11;;::::1;::::0;::::1;::::0;18131:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;18130:39;;18166:3;18130:39;18122:89;;;::::0;-1:-1:-1;;;18122:89:0;;8750:2:1;18122:89:0::1;::::0;::::1;8732:21:1::0;8789:2;8769:18;;;8762:30;8828:34;8808:18;;;8801:62;-1:-1:-1;;;8879:18:1;;;8872:35;8924:19;;18122:89:0::1;8548:401:1::0;18122:89:0::1;17919:300:::0;;;:::o;18227:343::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;18342:3:::1;18325:13;:20;;;;18317:76;;;::::0;-1:-1:-1;;;18317:76:0;;9156:2:1;18317:76:0::1;::::0;::::1;9138:21:1::0;9195:2;9175:18;;;9168:30;9234:34;9214:18;;;9207:62;-1:-1:-1;;;9285:18:1;;;9278:41;9336:19;;18317:76:0::1;8954:407:1::0;18317:76:0::1;18430:3;18412:14;:21;;;;18404:78;;;::::0;-1:-1:-1;;;18404:78:0;;9568:2:1;18404:78:0::1;::::0;::::1;9550:21:1::0;9607:2;9587:18;;;9580:30;9646:34;9626:18;;;9619:62;-1:-1:-1;;;9697:18:1;;;9690:42;9749:19;;18404:78:0::1;9366:408:1::0;18404:78:0::1;18493:12;:28:::0;;-1:-1:-1;;;;18532:30:0;-1:-1:-1;;;18493:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;18532:30:0;;-1:-1:-1;;;18532:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;18227:343::o;18578:136::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18667:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;18667:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18578:136::o;20082:361::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;20207:6:::1;20186:17;8361:16:::0;20202:1:::1;20186:17;:::i;:::-;20185:28;;;;:::i;:::-;20168:13;:45;;20160:111;;;::::0;-1:-1:-1;;;20160:111:0;;9981:2:1;20160:111:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:34;10039:18;;;10032:62;-1:-1:-1;;;10110:18:1;;;10103:51;10171:19;;20160:111:0::1;9779:417:1::0;20160:111:0::1;20329:4;20308:17;8361:16:::0;20324:1:::1;20308:17;:::i;:::-;20307:26;;;;:::i;:::-;20290:13;:43;;20282:108;;;::::0;-1:-1:-1;;;20282:108:0;;10403:2:1;20282:108:0::1;::::0;::::1;10385:21:1::0;10442:2;10422:18;;;10415:30;10481:34;10461:18;;;10454:62;-1:-1:-1;;;10532:18:1;;;10525:50;10592:19;;20282:108:0::1;10201:416:1::0;20282:108:0::1;20401:18;:34:::0;20082:361::o;18722:158::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18821:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;18821:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18722:158::o;6872:92::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;6954:1:::1;6937:19:::0;;-1:-1:-1;;;;;;6937:19:0::1;::::0;;6872:92::o;20451:236::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;20575:4:::1;20567;20546:17;8361:16:::0;20562:1:::1;20546:17;:::i;:::-;20545:26;;;;:::i;:::-;20544:35;;;;:::i;:::-;20532:8;:47;;20524:102;;;::::0;-1:-1:-1;;;20524:102:0;;10824:2:1;20524:102:0::1;::::0;::::1;10806:21:1::0;10863:2;10843:18;;;10836:30;10902:34;10882:18;;;10875:62;-1:-1:-1;;;10953:18:1;;;10946:40;11003:19;;20524:102:0::1;10622:406:1::0;20524:102:0::1;20660:19;:8:::0;20672:6:::1;20660:19;:::i;:::-;20637:20;:42:::0;-1:-1:-1;20451:236:0:o;17827:84::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;17881:14:::1;:22:::0;;-1:-1:-1;;;;17881:22:0::1;::::0;;17827:84::o;21314:177::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21398:24:0;::::1;21390:59;;;;-1:-1:-1::0;;;21390:59:0::1;;;;;;;:::i;:::-;21460:10;:23:::0;;-1:-1:-1;;;;;;21460:23:0::1;-1:-1:-1::0;;;;;21460:23:0;;;::::1;::::0;;;::::1;::::0;;21314:177::o;21121:185::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21209:24:0;::::1;21201:59;;;;-1:-1:-1::0;;;21201:59:0::1;;;;;;;:::i;:::-;21271:14;:27:::0;;-1:-1:-1;;;;;;21271:27:0::1;-1:-1:-1::0;;;;;21271:27:0;;;::::1;::::0;;;::::1;::::0;;21121:185::o;19863:211::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;19972:13:::1;-1:-1:-1::0;;;;;19964:21:0::1;:4;-1:-1:-1::0;;;;;19964:21:0::1;::::0;19956:60:::1;;;::::0;-1:-1:-1;;;19956:60:0;;11586:2:1;19956:60:0::1;::::0;::::1;11568:21:1::0;11625:2;11605:18;;;11598:30;11664:28;11644:18;;;11637:56;11710:18;;19956:60:0::1;11384:350:1::0;19956:60:0::1;-1:-1:-1::0;;;;;20027:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;20027:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19863:211::o;14450:158::-;14521:4;14538:40;14548:10;14560:9;14571:6;14538:9;:40::i;20938:175::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21021:24:0;::::1;21013:59;;;;-1:-1:-1::0;;;21013:59:0::1;;;;;;;:::i;:::-;21083:9;:22:::0;;-1:-1:-1;;;;;;21083:22:0::1;-1:-1:-1::0;;;;;21083:22:0;;;::::1;::::0;;;::::1;::::0;;20938:175::o;21630:240::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;21742:38:::1;::::0;-1:-1:-1;;;21742:38:0;;21774:4:::1;21742:38;::::0;::::1;1471:51:1::0;21715:24:0::1;::::0;-1:-1:-1;;;;;21742:23:0;::::1;::::0;::::1;::::0;1444:18:1;;21742:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21715:65;;21791:51;21814:5;21821:2;21825:16;21791:22;:51::i;19519:336::-:0;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;19593:8:::1;::::0;-1:-1:-1;;;19593:8:0;::::1;;;19592:9;19584:38;;;;-1:-1:-1::0;;;19584:38:0::1;;;;;;;:::i;:::-;19705:4;19725:24;::::0;;;:9:::1;:24;::::0;;;;;;19796:10:::1;::::0;19633:214;;-1:-1:-1;;;19633:214:0;;::::1;::::0;::::1;12614:34:1::0;;;;12664:18;;;12657:34;12707:18;;;12700:34;;;12750:18;;;12743:34;;;;-1:-1:-1;;;;;19796:10:0::1;12793:19:1::0;;;12786:44;19821:15:0::1;12846:19:1::0;;;12839:35;9822:42:0::1;::::0;19633:31:::1;::::0;19672:9:::1;::::0;12548:19:1;;19633:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21878:247::-:0;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21956:18:0;::::1;21948:46;;;::::0;-1:-1:-1;;;21948:46:0;;13398:2:1;21948:46:0::1;::::0;::::1;13380:21:1::0;13437:2;13417:18;;;13410:30;-1:-1:-1;;;13456:18:1;;;13449:45;13511:18;;21948:46:0::1;13196:339:1::0;21948:46:0::1;22008:12;22026:4;-1:-1:-1::0;;;;;22026:9:0::1;22043:21;22026:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22007:62;;;22088:7;22080:37;;;::::0;-1:-1:-1;;;22080:37:0;;13952:2:1;22080:37:0::1;::::0;::::1;13934:21:1::0;13991:2;13971:18;;;13964:30;-1:-1:-1;;;14010:18:1;;;14003:47;14067:18;;22080:37:0::1;13750:341:1::0;22080:37:0::1;21937:188;21878:247:::0;:::o;18888:492::-;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;19005:8:::1;::::0;-1:-1:-1;;;19005:8:0;::::1;;;19004:9;18996:38;;;;-1:-1:-1::0;;;18996:38:0::1;;;;;;;:::i;:::-;19050:9;19045:328;19069:9;:16;19065:1;:20;19045:328;;;19140:7;19148:1;19140:10;;;;;;;;:::i;:::-;;;;;;;19115:9;:21;19125:10;-1:-1:-1::0;;;;;19115:21:0::1;-1:-1:-1::0;;;;;19115:21:0::1;;;;;;;;;;;;;:35;;19107:86;;;;-1:-1:-1::0;;;19107:86:0::1;;;;;;;:::i;:::-;19235:7;19243:1;19235:10;;;;;;;;:::i;:::-;;;;;;;19208:9;:23;19218:9;19228:1;19218:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19208:23:0::1;-1:-1:-1::0;;;;;19208:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;19285:7;19293:1;19285:10;;;;;;;;:::i;:::-;;;;;;;19260:9;:21;19270:10;-1:-1:-1::0;;;;;19260:21:0::1;-1:-1:-1::0;;;;;19260:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;19336:9;19346:1;19336:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19315:46:0::1;19324:10;-1:-1:-1::0;;;;;19315:46:0::1;;19350:7;19358:1;19350:10;;;;;;;;:::i;:::-;;;;;;;19315:46;;;;1679:25:1::0;;1667:2;1652:18;;1533:177;19315:46:0::1;;;;;;;;19087:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19045:328;;19388:123:::0;6797:10;6786:7;6697;6724:6;-1:-1:-1;;;;;6724:6:0;;6651:87;6786:7;-1:-1:-1;;;;;6786:21:0;;6778:66;;;;-1:-1:-1;;;6778:66:0;;;;;;;:::i;:::-;19448:8:::1;::::0;-1:-1:-1;;;19448:8:0;::::1;;;19447:9;19439:38;;;;-1:-1:-1::0;;;19439:38:0::1;;;;;;;:::i;:::-;19488:8;:15:::0;;-1:-1:-1;;;;19488:15:0::1;-1:-1:-1::0;;;19488:15:0::1;::::0;;19388:123::o;14105:337::-;-1:-1:-1;;;;;14198:19:0;;14190:68;;;;-1:-1:-1;;;14190:68:0;;15240:2:1;14190:68:0;;;15222:21:1;15279:2;15259:18;;;15252:30;15318:34;15298:18;;;15291:62;-1:-1:-1;;;15369:18:1;;;15362:34;15413:19;;14190:68:0;15038:400:1;14190:68:0;-1:-1:-1;;;;;14277:21:0;;14269:68;;;;-1:-1:-1;;;14269:68:0;;15645:2:1;14269:68:0;;;15627:21:1;15684:2;15664:18;;;15657:30;15723:34;15703:18;;;15696:62;-1:-1:-1;;;15774:18:1;;;15767:32;15816:19;;14269:68:0;15443:398:1;14269:68:0;-1:-1:-1;;;;;14350:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14402:32;;1679:25:1;;;14402:32:0;;1652:18:1;14402:32:0;;;;;;;14105:337;;;:::o;15144:2675::-;-1:-1:-1;;;;;15232:18:0;;15224:68;;;;-1:-1:-1;;;15224:68:0;;16048:2:1;15224:68:0;;;16030:21:1;16087:2;16067:18;;;16060:30;16126:34;16106:18;;;16099:62;-1:-1:-1;;;16177:18:1;;;16170:35;16222:19;;15224:68:0;15846:401:1;15224:68:0;-1:-1:-1;;;;;15311:16:0;;15303:64;;;;-1:-1:-1;;;15303:64:0;;16454:2:1;15303:64:0;;;16436:21:1;16493:2;16473:18;;;16466:30;16532:34;16512:18;;;16505:62;-1:-1:-1;;;16583:18:1;;;16576:33;16626:19;;15303:64:0;16252:399:1;15303:64:0;15395:1;15386:6;:10;15378:64;;;;-1:-1:-1;;;15378:64:0;;16858:2:1;15378:64:0;;;16840:21:1;16897:2;16877:18;;;16870:30;16936:34;16916:18;;;16909:62;-1:-1:-1;;;16987:18:1;;;16980:39;17036:19;;15378:64:0;16656:405:1;15378:64:0;15460:8;;-1:-1:-1;;;15460:8:0;;;;15459:9;:72;;;;-1:-1:-1;6697:7:0;6724:6;-1:-1:-1;;;;;15473:15:0;;;6724:6;;15473:15;;;;:40;;-1:-1:-1;;;;;;15492:21:0;;15508:4;15492:21;;15473:40;:57;;;;-1:-1:-1;6697:7:0;6724:6;-1:-1:-1;;;;;15517:13:0;;;6724:6;;15517:13;;15473:57;15455:134;;;15548:29;;-1:-1:-1;;;15548:29:0;;17268:2:1;15548:29:0;;;17250:21:1;17307:2;17287:18;;;17280:30;-1:-1:-1;;;17326:18:1;;;17319:49;17385:18;;15548:29:0;17066:343:1;15455:134:0;15605:14;;-1:-1:-1;;;15605:14:0;;;;15601:830;;;6697:7;6724:6;-1:-1:-1;;;;;15640:15:0;;;6724:6;;15640:15;;;;:32;;-1:-1:-1;6697:7:0;6724:6;-1:-1:-1;;;;;15659:13:0;;;6724:6;;15659:13;;15640:32;:52;;;;-1:-1:-1;;;;;;15676:16:0;;;;15640:52;:77;;;;-1:-1:-1;;;;;;15696:21:0;;15710:6;15696:21;;15640:77;:90;;;;-1:-1:-1;15722:8:0;;-1:-1:-1;;;15722:8:0;;;;15721:9;15640:90;15636:784;;;-1:-1:-1;;;;;15755:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;15791:35:0;;;;;;:31;:35;;;;;;;;15790:36;15755:71;15751:654;;;15869:20;;15859:6;:30;;15851:80;;;;-1:-1:-1;;;15851:80:0;;17616:2:1;15851:80:0;;;17598:21:1;17655:2;17635:18;;;17628:30;17694:34;17674:18;;;17667:62;-1:-1:-1;;;17745:18:1;;;17738:35;17790:19;;15851:80:0;17414:401:1;15851:80:0;15988:9;;-1:-1:-1;;;;;13769:18:0;;13742:7;13769:18;;;:9;:18;;;;;;15962:22;;:6;:22;:::i;:::-;:35;;15954:67;;;;-1:-1:-1;;;15954:67:0;;18022:2:1;15954:67:0;;;18004:21:1;18061:2;18041:18;;;18034:30;-1:-1:-1;;;18080:18:1;;;18073:49;18139:18;;15954:67:0;17820:343:1;15954:67:0;15751:654;;;-1:-1:-1;;;;;16051:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;16085:37:0;;;;;;:31;:37;;;;;;;;16084:38;16051:71;16047:358;;;16165:20;;16155:6;:30;;16147:80;;;;-1:-1:-1;;;16147:80:0;;18370:2:1;16147:80:0;;;18352:21:1;18409:2;18389:18;;;18382:30;18448:34;18428:18;;;18421:62;-1:-1:-1;;;18499:18:1;;;18492:36;18545:19;;16147:80:0;18168:402:1;16047:358:0;-1:-1:-1;;;;;16258:35:0;;;;;;:31;:35;;;;;;;;16253:152;;16352:9;;-1:-1:-1;;;;;13769:18:0;;13742:7;13769:18;;;:9;:18;;;;;;16326:22;;:6;:22;:::i;:::-;:35;;16318:67;;;;-1:-1:-1;;;16318:67:0;;18022:2:1;16318:67:0;;;18004:21:1;18061:2;18041:18;;;18034:30;-1:-1:-1;;;18080:18:1;;;18073:49;18139:18;;16318:67:0;17820:343:1;16318:67:0;16486:18;;16476:4;16443:12;13769:18;;;:9;:18;;;;;;-1:-1:-1;16458:46:0;;;;;16521:20;;-1:-1:-1;16533:8:0;;-1:-1:-1;;;16533:8:0;;;;16532:9;16521:20;:56;;;;-1:-1:-1;;;;;;16546:31:0;;;;;;:25;:31;;;;;;;;16545:32;16521:56;:86;;;;-1:-1:-1;;;;;;16582:25:0;;;;;;:19;:25;;;;;;;;16581:26;16521:86;:114;;;;-1:-1:-1;;;;;;16612:23:0;;;;;;:19;:23;;;;;;;;16611:24;16521:114;16517:218;;;16652:8;:15;;-1:-1:-1;;;;16652:15:0;-1:-1:-1;;;16652:15:0;;;16682:10;:8;:10::i;:::-;16707:8;:16;;-1:-1:-1;;;;16707:16:0;;;16517:218;16763:8;;-1:-1:-1;;;;;16788:25:0;;16747:12;16788:25;;;:19;:25;;;;;;16763:8;-1:-1:-1;;;16763:8:0;;;;;16762:9;;16788:25;;:52;;-1:-1:-1;;;;;;16817:23:0;;;;;;:19;:23;;;;;;;;16788:52;16784:100;;;-1:-1:-1;16867:5:0;16784:100;-1:-1:-1;;;;;16920:15:0;;16896:21;16920:15;;;:9;:15;;;;;;16954:23;;;;16946:74;;;;-1:-1:-1;;;16946:74:0;;;;;;;:::i;:::-;17033:12;17064:7;17060:600;;;-1:-1:-1;;;;;17092:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;17125:13:0;;-1:-1:-1;;;17125:13:0;;;;:17;;17092:50;17088:262;;;17180:13;;17197:3;;17171:22;;-1:-1:-1;;;17180:13:0;;;;17171:6;:22;:::i;:::-;17170:30;;;;:::i;:::-;17163:37;;17088:262;;;-1:-1:-1;;;;;17226:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;17261:12:0;;-1:-1:-1;;;17261:12:0;;;;:16;;17226:51;17222:128;;;17315:12;;17331:3;;17306:21;;-1:-1:-1;;;17315:12:0;;;;17306:6;:21;:::i;:::-;17305:29;;;;:::i;:::-;17298:36;;17222:128;17370:8;;17366:283;;-1:-1:-1;;;;;17477:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;17541:4;17523:24;;;;;;;:32;;;;;;17598:35;1679:25:1;;;17441:13:0;;;;;17541:4;;17477:15;17598:35;;1652:18:1;17598:35:0;;;;;;;17366:283;-1:-1:-1;;;;;17695:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;17735:13;;;;;;;;;;:23;;;;;;17785:26;;;;;;17714:6;1679:25:1;;1667:2;1652:18;;1533:177;17785:26:0;;;;;;;;15213:2606;;;;15144:2675;;;:::o;6996:320::-;7127:59;;;-1:-1:-1;;;;;18767:32:1;;;7127:59:0;;;18749:51:1;18816:18;;;;18809:34;;;7127:59:0;;;;;;;;;;18722:18:1;;;;7127:59:0;;;;;;;-1:-1:-1;;;;;7127:59:0;-1:-1:-1;;;7127:59:0;;;7116:71;;-1:-1:-1;;;;7116:10:0;;;;:71;;7127:59;7116:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7080:107;;;;7206:7;:57;;;;-1:-1:-1;7218:11:0;;:16;;:44;;;7249:4;7238:24;;;;;;;;;;;;:::i;:::-;7198:110;;;;-1:-1:-1;;;7198:110:0;;19598:2:1;7198:110:0;;;19580:21:1;19637:2;19617:18;;;19610:30;19676:34;19656:18;;;19649:62;-1:-1:-1;;;19727:18:1;;;19720:38;19775:19;;7198:110:0;19396:404:1;7198:110:0;7069:247;;6996:320;;;:::o;22133:1117::-;22196:18;;22172:21;22281:23;22196:18;22302:2;22281:23;:::i;:::-;22272:4;13742:7;13769:18;;;:9;:18;;;;;;22254:50;22250:122;;;22337:18;;:23;;22358:2;22337:23;:::i;:::-;22321:39;;22250:122;22408:16;;;22422:1;22408:16;;;;;;;;22384:21;;22408:16;;;;;;;;;;-1:-1:-1;22408:16:0;22384:40;;22453:4;22435;22440:1;22435:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22435:23:0;;;-1:-1:-1;;;;;22435:23:0;;;;;8831:42;22469:4;22474:1;22469:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22469:14:0;;;:7;;;;;;;;;;;:14;22496:122;;-1:-1:-1;;;22496:122:0;;9822:42;;22496:66;;:122;;22563:13;;22578:1;;22581:4;;22595;;22602:15;;22496:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22652:21:0;;-1:-1:-1;;22688:14:0;;;-1:-1:-1;22684:559:0;;22753:6;;22719:17;;22763:3;;22740:19;;-1:-1:-1;;;22753:6:0;;;;22740:10;:19;:::i;:::-;22739:27;;;;:::i;:::-;22816:7;;22719:47;;-1:-1:-1;22781:18:0;;22827:3;;22803:20;;-1:-1:-1;;;22816:7:0;;;;22803:10;:20;:::i;:::-;22802:28;;;;:::i;:::-;22781:49;-1:-1:-1;22845:22:0;22781:49;22870:22;22883:9;22870:10;:22;:::i;:::-;:35;;;;:::i;:::-;22944:10;;22936:47;;22845:60;;-1:-1:-1;;;;;;22944:10:0;;22968;;22936:47;;;;22968:10;22944;22936:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23020:14:0;;23012:55;;22922:61;;-1:-1:-1;;;;;;23020:14:0;;23048;;23012:55;;;;23048:14;23020;23012:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23104:9:0;;23096:45;;22998:69;;-1:-1:-1;;;;;;23104:9:0;;23127;;23096:45;;;;23127:9;23104;23096:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23163:68:0;;;21021:25:1;;;21077:2;21062:18;;21055:34;;;21105:18;;;21098:34;;;21163:2;21148:18;;21141:34;;;23082:59:0;;-1:-1:-1;23163:68:0;;21008:3:1;20993:19;23163:68:0;;;;;;;22704:539;;;22684:559;22161:1089;;;;22133:1117::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1904:328::-;1981:6;1989;1997;2050:2;2038:9;2029:7;2025:23;2021:32;2018:52;;;2066:1;2063;2056:12;2018:52;2089:29;2108:9;2089:29;:::i;:::-;2079:39;;2137:38;2171:2;2160:9;2156:18;2137:38;:::i;:::-;2127:48;;2222:2;2211:9;2207:18;2194:32;2184:42;;1904:328;;;;;:::o;2237:180::-;2296:6;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;-1:-1:-1;2388:23:1;;2237:180;-1:-1:-1;2237:180:1:o;2422:156::-;2488:20;;2548:4;2537:16;;2527:27;;2517:55;;2568:1;2565;2558:12;2583:322;2654:6;2662;2670;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;2762:27;2779:9;2762:27;:::i;:::-;2752:37;;2808:36;2840:2;2829:9;2825:18;2808:36;:::i;:::-;2798:46;;2863:36;2895:2;2884:9;2880:18;2863:36;:::i;:::-;2853:46;;2583:322;;;;;:::o;3118:252::-;3182:6;3190;3243:2;3231:9;3222:7;3218:23;3214:32;3211:52;;;3259:1;3256;3249:12;3211:52;3282:27;3299:9;3282:27;:::i;:::-;3272:37;;3328:36;3360:2;3349:9;3345:18;3328:36;:::i;:::-;3318:46;;3118:252;;;;;:::o;3375:118::-;3461:5;3454:13;3447:21;3440:5;3437:32;3427:60;;3483:1;3480;3473:12;3427:60;3375:118;:::o;3498:315::-;3563:6;3571;3624:2;3612:9;3603:7;3599:23;3595:32;3592:52;;;3640:1;3637;3630:12;3592:52;3663:29;3682:9;3663:29;:::i;:::-;3653:39;;3742:2;3731:9;3727:18;3714:32;3755:28;3777:5;3755:28;:::i;:::-;3802:5;3792:15;;;3498:315;;;;;:::o;3818:186::-;3877:6;3930:2;3918:9;3909:7;3905:23;3901:32;3898:52;;;3946:1;3943;3936:12;3898:52;3969:29;3988:9;3969:29;:::i;:::-;3959:39;3818:186;-1:-1:-1;;;3818:186:1:o;4009:260::-;4077:6;4085;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4177:29;4196:9;4177:29;:::i;:::-;4167:39;;4225:38;4259:2;4248:9;4244:18;4225:38;:::i;4274:127::-;4335:10;4330:3;4326:20;4323:1;4316:31;4366:4;4363:1;4356:15;4390:4;4387:1;4380:15;4406:275;4477:2;4471:9;4542:2;4523:13;;-1:-1:-1;;4519:27:1;4507:40;;4577:18;4562:34;;4598:22;;;4559:62;4556:88;;;4624:18;;:::i;:::-;4660:2;4653:22;4406:275;;-1:-1:-1;4406:275:1:o;4686:183::-;4746:4;4779:18;4771:6;4768:30;4765:56;;;4801:18;;:::i;:::-;-1:-1:-1;4846:1:1;4842:14;4858:4;4838:25;;4686:183::o;4874:662::-;4928:5;4981:3;4974:4;4966:6;4962:17;4958:27;4948:55;;4999:1;4996;4989:12;4948:55;5035:6;5022:20;5061:4;5085:60;5101:43;5141:2;5101:43;:::i;:::-;5085:60;:::i;:::-;5179:15;;;5265:1;5261:10;;;;5249:23;;5245:32;;;5210:12;;;;5289:15;;;5286:35;;;5317:1;5314;5307:12;5286:35;5353:2;5345:6;5341:15;5365:142;5381:6;5376:3;5373:15;5365:142;;;5447:17;;5435:30;;5485:12;;;;5398;;5365:142;;;-1:-1:-1;5525:5:1;4874:662;-1:-1:-1;;;;;;4874:662:1:o;5541:1146::-;5659:6;5667;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5776:9;5763:23;5805:18;5846:2;5838:6;5835:14;5832:34;;;5862:1;5859;5852:12;5832:34;5900:6;5889:9;5885:22;5875:32;;5945:7;5938:4;5934:2;5930:13;5926:27;5916:55;;5967:1;5964;5957:12;5916:55;6003:2;5990:16;6025:4;6049:60;6065:43;6105:2;6065:43;:::i;6049:60::-;6143:15;;;6225:1;6221:10;;;;6213:19;;6209:28;;;6174:12;;;;6249:19;;;6246:39;;;6281:1;6278;6271:12;6246:39;6305:11;;;;6325:148;6341:6;6336:3;6333:15;6325:148;;;6407:23;6426:3;6407:23;:::i;:::-;6395:36;;6358:12;;;;6451;;;;6325:148;;;6492:5;-1:-1:-1;;6535:18:1;;6522:32;;-1:-1:-1;;6566:16:1;;;6563:36;;;6595:1;6592;6585:12;6563:36;;6618:63;6673:7;6662:8;6651:9;6647:24;6618:63;:::i;:::-;6608:73;;;5541:1146;;;;;:::o;7101:356::-;7303:2;7285:21;;;7322:18;;;7315:30;7381:34;7376:2;7361:18;;7354:62;7448:2;7433:18;;7101:356::o;7462:127::-;7523:10;7518:3;7514:20;7511:1;7504:31;7554:4;7551:1;7544:15;7578:4;7575:1;7568:15;7594:168;7667:9;;;7698;;7715:15;;;7709:22;;7695:37;7685:71;;7736:18;;:::i;7767:217::-;7807:1;7833;7823:132;;7877:10;7872:3;7868:20;7865:1;7858:31;7912:4;7909:1;7902:15;7940:4;7937:1;7930:15;7823:132;-1:-1:-1;7969:9:1;;7767:217::o;8395:148::-;8483:4;8462:12;;;8476;;;8458:31;;8501:13;;8498:39;;;8517:18;;:::i;11033:346::-;11235:2;11217:21;;;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11308:2:1;11293:18;;11286:52;11370:2;11355:18;;11033:346::o;11739:184::-;11809:6;11862:2;11850:9;11841:7;11837:23;11833:32;11830:52;;;11878:1;11875;11868:12;11830:52;-1:-1:-1;11901:16:1;;11739:184;-1:-1:-1;11739:184:1:o;11928:340::-;12130:2;12112:21;;;12169:2;12149:18;;;12142:30;-1:-1:-1;;;12203:2:1;12188:18;;12181:46;12259:2;12244:18;;11928:340::o;12885:306::-;12973:6;12981;12989;13042:2;13030:9;13021:7;13017:23;13013:32;13010:52;;;13058:1;13055;13048:12;13010:52;13087:9;13081:16;13071:26;;13137:2;13126:9;13122:18;13116:25;13106:35;;13181:2;13170:9;13166:18;13160:25;13150:35;;12885:306;;;;;:::o;14096:127::-;14157:10;14152:3;14148:20;14145:1;14138:31;14188:4;14185:1;14178:15;14212:4;14209:1;14202:15;14228:402;14430:2;14412:21;;;14469:2;14449:18;;;14442:30;14508:34;14503:2;14488:18;;14481:62;-1:-1:-1;;;14574:2:1;14559:18;;14552:36;14620:3;14605:19;;14228:402::o;14635:125::-;14700:9;;;14721:10;;;14718:36;;;14734:18;;:::i;14765:128::-;14832:9;;;14853:11;;;14850:37;;;14867:18;;:::i;14898:135::-;14937:3;14958:17;;;14955:43;;14978:18;;:::i;:::-;-1:-1:-1;15025:1:1;15014:13;;14898:135::o;18854:287::-;18983:3;19021:6;19015:13;19037:66;19096:6;19091:3;19084:4;19076:6;19072:17;19037:66;:::i;:::-;19119:16;;;;;18854:287;-1:-1:-1;;18854:287:1:o;19146:245::-;19213:6;19266:2;19254:9;19245:7;19241:23;19237:32;19234:52;;;19282:1;19279;19272:12;19234:52;19314:9;19308:16;19333:28;19355:5;19333:28;:::i;19805:980::-;20067:4;20115:3;20104:9;20100:19;20146:6;20135:9;20128:25;20172:2;20210:6;20205:2;20194:9;20190:18;20183:34;20253:3;20248:2;20237:9;20233:18;20226:31;20277:6;20312;20306:13;20343:6;20335;20328:22;20381:3;20370:9;20366:19;20359:26;;20420:2;20412:6;20408:15;20394:29;;20441:1;20451:195;20465:6;20462:1;20459:13;20451:195;;;20530:13;;-1:-1:-1;;;;;20526:39:1;20514:52;;20621:15;;;;20586:12;;;;20562:1;20480:9;20451:195;;;-1:-1:-1;;;;;;;20702:32:1;;;;20697:2;20682:18;;20675:60;-1:-1:-1;;;20766:3:1;20751:19;20744:35;20663:3;19805:980;-1:-1:-1;;;19805:980:1:o

Swarm Source

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