ETH Price: $3,487.36 (+3.60%)
Gas: 2 Gwei

Token

Naetion (NTN)
 

Overview

Max Total Supply

1,000,000,000 NTN

Holders

4,707

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
livepass.eth
Balance
2,500 NTN

Value
$0.00
0xcbff7d1461b092178af42cf05f012a24371f01ff
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Naetion is a decentralized ecosystem utilizing AI, that replaces our centralized, high-friction labor market, and payroll infrastructure.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Naetion

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-24
*/

/**
 *Submitted for verification at Etherscan.io on 2021-10-02
*/

pragma solidity ^0.8.0;

// SPDX-License-Identifier:MIT
//Naetion

interface IERC20 {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

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

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

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

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

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

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(
            _previousOwner == msg.sender,
            "You don't have permission to unlock"
        );
        require(
            block.timestamp > _lockTime,
            "Contract is locked until defined days"
        );
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
        _previousOwner = address(0);
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(routerAddress);

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of BNB
            path,
            address(this),
            block.timestamp + 360
        );
    }

    function swapETHForTokens(
        address routerAddress,
        address recipient,
        uint256 ethAmount
    ) internal {
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(routerAddress);

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);

        // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: ethAmount
        }(
            0, // accept any amount of BNB
            path,
            address(recipient),
            block.timestamp + 360
        );
    }

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(routerAddress);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 360
        );
    }
}

// Protocol by team BloctechSolutions.com

contract Naetion is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

    mapping(address => bool) private _isExcludedFromFee;

    uint256 public _taxFee;
    uint256 public _liquidityFee;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled; // should be true to turn on to add liquidty
    bool public buyBackEnabled; // should be true to turn on to buy back from pool
    bool public _tradingOpen; // should be true to turn on trading, one time process

    uint256 public _minTokensToAddToLiquidity;
    uint256 public buyBackLowerLimit = 0.1 ether;
    uint256 public buyBackUpperLimit = 1 ether;

    address private providerAddress;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event BuyBackEnabledUpdated(bool enabled);
    event BuyBack(address indexed receiver, uint256 indexed bnbAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        _name = "Naetion";
        _symbol = "NTN";
        _decimals = 18;
        _totalSupply = 1000000000 * (10**18); // total Supply: 1B

        // unit of 0.01%
        _taxFee = 400;
        _liquidityFee = 400;

        _minTokensToAddToLiquidity = 10000 * (10**18); // 0.1M

        _balances[owner()] = _balances[owner()].add(_totalSupply);

        // The service provider wallet that takes tax from transactions
        providerAddress = owner();

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a uniswap pair for this new token
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // Set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        // Exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable {}

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        _taxFee = taxFee;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
        _liquidityFee = liquidityFee;
    }

    function setMinTokensToAddToLiquidity(uint256 minTokensToAddToLiquidity)
        external
        onlyOwner
    {
        _minTokensToAddToLiquidity = minTokensToAddToLiquidity;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setBuyback(
        bool _state,
        uint256 _upperAmount,
        uint256 _lowerAmount
    ) public onlyOwner {
        buyBackEnabled = _state;
        buyBackUpperLimit = _upperAmount;
        buyBackLowerLimit = _lowerAmount;
    }

    function setProviderAddress(address newProviderAddress) external onlyOwner {
        // Remove the current provider from Tax Exclusion List.
        includeInFee(providerAddress);

        // Remove the current provider from Tax Exclusion List.
        excludeFromFee(newProviderAddress);

        providerAddress = newProviderAddress;
    }

    function startTrading() external onlyOwner {
        require(!_tradingOpen, "Tradiing already enabled");
        _tradingOpen = true;
        swapAndLiquifyEnabled = true;
        buyBackEnabled = true;

        emit SwapAndLiquifyEnabledUpdated(true);
        emit BuyBackEnabledUpdated(true);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(_balances[sender] >= amount, "Transfer amount exceeds balance");

        if (!_tradingOpen && sender != owner() && recipient != owner()) {
            require(
                sender != uniswapV2Pair && recipient != uniswapV2Pair,
                "Trading is not enabled"
            );
        }

        uint256 totalFee = 0;

        if (!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient]) {
            // Take tax of transaction and transfer to the provider wallet.
            uint256 taxFeeAmount = amount.mul(_taxFee).div(10000);
            _balances[providerAddress] = _balances[providerAddress].add(
                taxFeeAmount
            );
            emit Transfer(sender, providerAddress, taxFeeAmount);

            // Take tax of transaction and add to liquidity.
            uint256 liquidityFeeAmount = amount.mul(_liquidityFee).div(10000);
            _balances[address(this)] = _balances[address(this)].add(
                liquidityFeeAmount
            );
            emit Transfer(sender, address(this), liquidityFeeAmount);

            // is the token balance of this contract address over the min number of
            // tokens that we need to initiate a swap + liquidity lock?
            // also, don't get caught in a circular liquidity event.
            // also, don't swap & liquify if sender is uniswap pair.
            uint256 contractTokenBalance = _balances[address(this)];

            bool overMinTokenBalance = contractTokenBalance >=
                _minTokensToAddToLiquidity;
            if (
                overMinTokenBalance &&
                !inSwapAndLiquify &&
                sender != uniswapV2Pair &&
                swapAndLiquifyEnabled
            ) {
                contractTokenBalance = _minTokensToAddToLiquidity;
                //add liquidity
                swapAndLiquify(contractTokenBalance);
            }

            totalFee = taxFeeAmount.add(liquidityFeeAmount);
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount.sub(totalFee));
        emit Transfer(sender, recipient, amount.sub(totalFee));
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // now is to lock into liquidity pool
        Utils.swapTokensForEth(address(uniswapV2Router), half);

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        Utils.addLiquidity(
            address(uniswapV2Router),
            owner(),
            otherHalf,
            newBalance
        );

        // buy back if balance bnb is exceed lower limit
        if (buyBackEnabled && initialBalance > uint256(buyBackLowerLimit)) {
            if (initialBalance > buyBackUpperLimit)
                initialBalance = buyBackUpperLimit;
            Utils.swapETHForTokens(
                address(uniswapV2Router),
                address(this),
                initialBalance.div(10)
            );

            emit BuyBack(address(this), initialBalance.div(10));
        }

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }
}

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"BuyBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTokensToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackLowerLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackUpperLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"},{"internalType":"uint256","name":"_upperAmount","type":"uint256"},{"internalType":"uint256","name":"_lowerAmount","type":"uint256"}],"name":"setBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minTokensToAddToLiquidity","type":"uint256"}],"name":"setMinTokensToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProviderAddress","type":"address"}],"name":"setProviderAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405267016345785d8a0000600e55670de0b6b3a7640000600f553480156200002957600080fd5b506200003462000408565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3604080518082019091526007808252662730b2ba34b7b760c91b6020909201918252620000ac916005916200045f565b5060408051808201909152600380825262272a2760e91b6020909201918252620000d9916006916200045f565b506007805460ff191660121790556b033b2e3c9fd0803ce80000006008819055610190600a819055600b5569021e19e0c9bab2400000600d556200015a9060036000620001256200040c565b6001600160a01b03166001600160a01b03168152602001908152602001600020546200041b60201b62000f1d1790919060201c565b60036000620001686200040c565b6001600160a01b031681526020810191909152604001600020556200018c6200040c565b601060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020757600080fd5b505afa1580156200021c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000242919062000505565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028b57600080fd5b505afa158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c6919062000505565b6040518363ffffffff1660e01b8152600401620002e59291906200052e565b602060405180830381600087803b1580156200030057600080fd5b505af115801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b919062000505565b6001600160601b0319606084811b821660805282901b1660a0529050600160096000620003676200040c565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526009909252902080549091166001179055620003b16200040c565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620003f891906200057f565b60405180910390a35050620005ea565b3390565b6000546001600160a01b031690565b6000806200042a838562000588565b905083811015620004585760405162461bcd60e51b81526004016200044f9062000548565b60405180910390fd5b9392505050565b8280546200046d90620005ad565b90600052602060002090601f016020900481019282620004915760008555620004dc565b82601f10620004ac57805160ff1916838001178555620004dc565b82800160010185558215620004dc579182015b82811115620004dc578251825591602001919060010190620004bf565b50620004ea929150620004ee565b5090565b5b80821115620004ea5760008155600101620004ef565b60006020828403121562000517578081fd5b81516001600160a01b038116811462000458578182fd5b6001600160a01b0392831681529116602082015260400190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b90815260200190565b60008219821115620005a857634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620005c257607f821691505b60208210811415620005e457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160601c6122c162000640600039600081816109740152818161110e0152818161114b015261135301526000818161070f0152818161157d015281816115b5015261161601526122c16000f3fe6080604052600436106102135760003560e01c8063875affd911610118578063c49b9a80116100a0578063dd4670641161006f578063dd46706414610585578063dd62ed3e146105a5578063ea2f0b37146105c5578063f2fde38b146105e5578063f4542f82146106055761021a565b8063c49b9a801461051b578063cd52c7011461053b578063d17761cf14610550578063dc5d7fc5146105655761021a565b8063a23628d5116100e7578063a23628d514610491578063a457c2d7146104b1578063a69df4b5146104d1578063a9059cbb146104e6578063b6c52324146105065761021a565b8063875affd9146104275780638da5cb5b146104475780638ee88c531461045c57806395d89b411461047c5761021a565b80633b124fe71161019b5780636053a0e31161016a5780636053a0e3146103b35780636bc87c3a146103c857806370a08231146103dd57806370e50241146103fd578063715018a6146104125761021a565b80633b124fe714610354578063437823ec1461036957806349bd5a5e146103895780634a74bb021461039e5761021a565b806318160ddd116101e257806318160ddd146102bb57806323b872dd146102dd578063293230b8146102fd578063313ce5671461031257806339509351146103345761021a565b8063061c82d01461021f57806306fdde0314610241578063095ea7b31461026c5780631694505e146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611c04565b61061a565b005b34801561024d57600080fd5b5061025661065d565b6040516102639190611d1b565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611b8d565b6106ef565b6040516102639190611cdb565b3480156102a557600080fd5b506102ae61070d565b6040516102639190611c8c565b3480156102c757600080fd5b506102d0610731565b60405161026391906120de565b3480156102e957600080fd5b5061028c6102f8366004611b4d565b610737565b34801561030957600080fd5b5061023f6107be565b34801561031e57600080fd5b506103276108bc565b6040516102639190612139565b34801561034057600080fd5b5061028c61034f366004611b8d565b6108c5565b34801561036057600080fd5b506102d0610913565b34801561037557600080fd5b5061023f610384366004611add565b610919565b34801561039557600080fd5b506102ae610972565b3480156103aa57600080fd5b5061028c610996565b3480156103bf57600080fd5b5061028c6109a4565b3480156103d457600080fd5b506102d06109b3565b3480156103e957600080fd5b506102d06103f8366004611add565b6109b9565b34801561040957600080fd5b506102d06109d8565b34801561041e57600080fd5b5061023f6109de565b34801561043357600080fd5b5061023f610442366004611bd2565b610a4b565b34801561045357600080fd5b506102ae610aa3565b34801561046857600080fd5b5061023f610477366004611c04565b610ab2565b34801561048857600080fd5b50610256610aec565b34801561049d57600080fd5b5061023f6104ac366004611c04565b610afb565b3480156104bd57600080fd5b5061028c6104cc366004611b8d565b610b35565b3480156104dd57600080fd5b5061023f610b9d565b3480156104f257600080fd5b5061028c610501366004611b8d565b610c3a565b34801561051257600080fd5b506102d0610c4e565b34801561052757600080fd5b5061023f610536366004611bb8565b610c54565b34801561054757600080fd5b5061028c610cd7565b34801561055c57600080fd5b506102d0610ce7565b34801561057157600080fd5b5061023f610580366004611add565b610ced565b34801561059157600080fd5b5061023f6105a0366004611c04565b610d62565b3480156105b157600080fd5b506102d06105c0366004611b15565b610df2565b3480156105d157600080fd5b5061023f6105e0366004611add565b610e1d565b3480156105f157600080fd5b5061023f610600366004611add565b610e73565b34801561061157600080fd5b506102d0610f17565b610622610f53565b6000546001600160a01b039081169116146106585760405162461bcd60e51b815260040161064f90611f94565b60405180910390fd5b600a55565b60606005805461066c906121b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610698906121b5565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b60006107036106fc610f53565b8484610f57565b5060015b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085490565b600061074484848461100b565b6107b484610750610f53565b6107af8560405180606001604052806028815260200161221f602891396001600160a01b038a1660009081526004602052604081209061078e610f53565b6001600160a01b03168152602081019190915260400160002054919061148c565b610f57565b5060019392505050565b6107c6610f53565b6000546001600160a01b039081169116146107f35760405162461bcd60e51b815260040161064f90611f94565b600c546301000000900460ff161561081d5760405162461bcd60e51b815260040161064f90611f5d565b600c805462ff00001961ff001963ff00000019909216630100000017919091166101001716620100001790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061087a90600190611cdb565b60405180910390a17f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c060016040516108b29190611cdb565b60405180910390a1565b60075460ff1690565b60006107036108d2610f53565b846107af85600460006108e3610f53565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f1d565b600a5481565b610921610f53565b6000546001600160a01b0390811691161461094e5760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b600c54610100900460ff1681565b600c5462010000900460ff1681565b600b5481565b6001600160a01b0381166000908152600360205260409020545b919050565b600f5481565b6109e6610f53565b6000546001600160a01b03908116911614610a135760405162461bcd60e51b815260040161064f90611f94565b600080546040516001600160a01b0390911690600080516020612247833981519152908390a3600080546001600160a01b0319169055565b610a53610f53565b6000546001600160a01b03908116911614610a805760405162461bcd60e51b815260040161064f90611f94565b600c8054931515620100000262ff00001990941693909317909255600f55600e55565b6000546001600160a01b031690565b610aba610f53565b6000546001600160a01b03908116911614610ae75760405162461bcd60e51b815260040161064f90611f94565b600b55565b60606006805461066c906121b5565b610b03610f53565b6000546001600160a01b03908116911614610b305760405162461bcd60e51b815260040161064f90611f94565b600d55565b6000610703610b42610f53565b846107af856040518060600160405280602581526020016122676025913960046000610b6c610f53565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061148c565b6001546001600160a01b03163314610bc75760405162461bcd60e51b815260040161064f9061209b565b6002544211610be85760405162461bcd60e51b815260040161064f90611db1565b600154600080546040516001600160a01b03938416939091169160008051602061224783398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610703610c47610f53565b848461100b565b60025490565b610c5c610f53565b6000546001600160a01b03908116911614610c895760405162461bcd60e51b815260040161064f90611f94565b600c805461ff001916610100831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610ccc908390611cdb565b60405180910390a150565b600c546301000000900460ff1681565b600e5481565b610cf5610f53565b6000546001600160a01b03908116911614610d225760405162461bcd60e51b815260040161064f90611f94565b601054610d37906001600160a01b0316610e1d565b610d4081610919565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a610f53565b6000546001600160a01b03908116911614610d975760405162461bcd60e51b815260040161064f90611f94565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610dc68142612147565b600255600080546040516001600160a01b0390911690600080516020612247833981519152908390a350565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610e25610f53565b6000546001600160a01b03908116911614610e525760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b03166000908152600960205260409020805460ff19169055565b610e7b610f53565b6000546001600160a01b03908116911614610ea85760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b038116610ece5760405162461bcd60e51b815260040161064f90611df6565b600080546040516001600160a01b038085169392169160008051602061224783398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600d5481565b600080610f2a8385612147565b905083811015610f4c5760405162461bcd60e51b815260040161064f90611e7e565b9392505050565b3390565b6001600160a01b038316610f7d5760405162461bcd60e51b815260040161064f90612057565b6001600160a01b038216610fa35760405162461bcd60e51b815260040161064f90611e3c565b6001600160a01b0380841660008181526004602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ffe9085906120de565b60405180910390a3505050565b6001600160a01b0383166110315760405162461bcd60e51b815260040161064f90612012565b6001600160a01b0382166110575760405162461bcd60e51b815260040161064f90611d6e565b600081116110775760405162461bcd60e51b815260040161064f90611fc9565b6001600160a01b0383166000908152600360205260409020548111156110af5760405162461bcd60e51b815260040161064f90611ee5565b600c546301000000900460ff161580156110e257506110cc610aa3565b6001600160a01b0316836001600160a01b031614155b801561110757506110f1610aa3565b6001600160a01b0316826001600160a01b031614155b1561119c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561118057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b61119c5760405162461bcd60e51b815260040161064f90611eb5565b6001600160a01b03831660009081526009602052604081205460ff161580156111de57506001600160a01b03831660009081526009602052604090205460ff16155b156113bf576000611206612710611200600a54866114c690919063ffffffff16565b9061150b565b6010546001600160a01b031660009081526003602052604090205490915061122e9082610f1d565b601080546001600160a01b0390811660009081526003602052604090819020939093559054915191811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128a9085906120de565b60405180910390a360006112af612710611200600b54876114c690919063ffffffff16565b306000908152600360205260409020549091506112cc9082610f1d565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061131b9085906120de565b60405180910390a330600090815260036020526040902054600d548110801590819061134a5750600c5460ff16155b801561138857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614155b801561139b5750600c54610100900460ff165b156113ae57600d5491506113ae8261154d565b6113b88484610f1d565b9450505050505b6001600160a01b0384166000908152600360205260409020546113e290836116c9565b6001600160a01b03851660009081526003602052604090205561142761140883836116c9565b6001600160a01b03851660009081526003602052604090205490610f1d565b6001600160a01b0380851660008181526003602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61147185856116c9565b60405161147e91906120de565b60405180910390a350505050565b600081848411156114b05760405162461bcd60e51b815260040161064f9190611d1b565b5060006114bd848661219e565b95945050505050565b6000826114d557506000610707565b60006114e1838561217f565b9050826114ee858361215f565b14610f4c5760405162461bcd60e51b815260040161064f90611f1c565b6000610f4c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061170b565b600c805460ff19166001179055600061156782600261150b565b9050600061157583836116c9565b9050476115a27f000000000000000000000000000000000000000000000000000000000000000084611739565b60006115ae47836116c9565b90506115e37f00000000000000000000000000000000000000000000000000000000000000006115dc610aa3565b85846118b8565b600c5462010000900460ff1680156115fc5750600e5482115b1561167d57600f5482111561161157600f5491505b6116467f00000000000000000000000000000000000000000000000000000000000000003061164185600a61150b565b61194e565b61165182600a61150b565b60405130907f515a362443b428d4aab92057f742255c765d68033ba3f00847b57e323d0468d490600090a35b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516116b093929190612123565b60405180910390a15050600c805460ff19169055505050565b6000610f4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148c565b6000818361172c5760405162461bcd60e51b815260040161064f9190611d1b565b5060006114bd848661215f565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061178057634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d957600080fd5b505afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190611af9565b8160018151811061183257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152821663791ac947846000843061186042610168612147565b6040518663ffffffff1660e01b81526004016118809594939291906120e7565b600060405180830381600087803b15801561189a57600080fd5b505af11580156118ae573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a6118db42610168612147565b6040518863ffffffff1660e01b81526004016118fc96959493929190611ca0565b6060604051808303818588803b15801561191557600080fd5b505af1158015611929573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ae9190611c1c565b60408051600280825260608201835285926000929190602083019080368337019050509050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ac57600080fd5b505afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e49190611af9565b81600081518110611a0557634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611a4757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152821663b6f9de958460008488611a7542610168612147565b6040518663ffffffff1660e01b8152600401611a949493929190611ce6565b6000604051808303818588803b158015611aad57600080fd5b505af1158015611ac1573d6000803e3d6000fd5b50505050505050505050565b803580151581146109d357600080fd5b600060208284031215611aee578081fd5b8135610f4c81612206565b600060208284031215611b0a578081fd5b8151610f4c81612206565b60008060408385031215611b27578081fd5b8235611b3281612206565b91506020830135611b4281612206565b809150509250929050565b600080600060608486031215611b61578081fd5b8335611b6c81612206565b92506020840135611b7c81612206565b929592945050506040919091013590565b60008060408385031215611b9f578182fd5b8235611baa81612206565b946020939093013593505050565b600060208284031215611bc9578081fd5b610f4c82611acd565b600080600060608486031215611be6578283fd5b611bef84611acd565b95602085013595506040909401359392505050565b600060208284031215611c15578081fd5b5035919050565b600080600060608486031215611c30578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015611c815781516001600160a01b031687529582019590820190600101611c5c565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600085825260806020830152611cff6080830186611c49565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015611d4757858101830151858201604001528201611d2b565b81811115611d585783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526025908201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604082015264206461797360d81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604082015260600190565b6020808252601f908201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526018908201527f5472616469696e6720616c726561647920656e61626c65640000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526023908201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6040820152626f636b60e81b606082015260800190565b90815260200190565b600086825285602083015260a0604083015261210660a0830186611c49565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b6000821982111561215a5761215a6121f0565b500190565b60008261217a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612199576121996121f0565b500290565b6000828210156121b0576121b06121f0565b500390565b6002810460018216806121c957607f821691505b602082108114156121ea57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461221b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206d00868509ac65c46e47d6bfdb288bba684deab5d8e6991082cb2d4192850f3264736f6c63430008000033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063875affd911610118578063c49b9a80116100a0578063dd4670641161006f578063dd46706414610585578063dd62ed3e146105a5578063ea2f0b37146105c5578063f2fde38b146105e5578063f4542f82146106055761021a565b8063c49b9a801461051b578063cd52c7011461053b578063d17761cf14610550578063dc5d7fc5146105655761021a565b8063a23628d5116100e7578063a23628d514610491578063a457c2d7146104b1578063a69df4b5146104d1578063a9059cbb146104e6578063b6c52324146105065761021a565b8063875affd9146104275780638da5cb5b146104475780638ee88c531461045c57806395d89b411461047c5761021a565b80633b124fe71161019b5780636053a0e31161016a5780636053a0e3146103b35780636bc87c3a146103c857806370a08231146103dd57806370e50241146103fd578063715018a6146104125761021a565b80633b124fe714610354578063437823ec1461036957806349bd5a5e146103895780634a74bb021461039e5761021a565b806318160ddd116101e257806318160ddd146102bb57806323b872dd146102dd578063293230b8146102fd578063313ce5671461031257806339509351146103345761021a565b8063061c82d01461021f57806306fdde0314610241578063095ea7b31461026c5780631694505e146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611c04565b61061a565b005b34801561024d57600080fd5b5061025661065d565b6040516102639190611d1b565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611b8d565b6106ef565b6040516102639190611cdb565b3480156102a557600080fd5b506102ae61070d565b6040516102639190611c8c565b3480156102c757600080fd5b506102d0610731565b60405161026391906120de565b3480156102e957600080fd5b5061028c6102f8366004611b4d565b610737565b34801561030957600080fd5b5061023f6107be565b34801561031e57600080fd5b506103276108bc565b6040516102639190612139565b34801561034057600080fd5b5061028c61034f366004611b8d565b6108c5565b34801561036057600080fd5b506102d0610913565b34801561037557600080fd5b5061023f610384366004611add565b610919565b34801561039557600080fd5b506102ae610972565b3480156103aa57600080fd5b5061028c610996565b3480156103bf57600080fd5b5061028c6109a4565b3480156103d457600080fd5b506102d06109b3565b3480156103e957600080fd5b506102d06103f8366004611add565b6109b9565b34801561040957600080fd5b506102d06109d8565b34801561041e57600080fd5b5061023f6109de565b34801561043357600080fd5b5061023f610442366004611bd2565b610a4b565b34801561045357600080fd5b506102ae610aa3565b34801561046857600080fd5b5061023f610477366004611c04565b610ab2565b34801561048857600080fd5b50610256610aec565b34801561049d57600080fd5b5061023f6104ac366004611c04565b610afb565b3480156104bd57600080fd5b5061028c6104cc366004611b8d565b610b35565b3480156104dd57600080fd5b5061023f610b9d565b3480156104f257600080fd5b5061028c610501366004611b8d565b610c3a565b34801561051257600080fd5b506102d0610c4e565b34801561052757600080fd5b5061023f610536366004611bb8565b610c54565b34801561054757600080fd5b5061028c610cd7565b34801561055c57600080fd5b506102d0610ce7565b34801561057157600080fd5b5061023f610580366004611add565b610ced565b34801561059157600080fd5b5061023f6105a0366004611c04565b610d62565b3480156105b157600080fd5b506102d06105c0366004611b15565b610df2565b3480156105d157600080fd5b5061023f6105e0366004611add565b610e1d565b3480156105f157600080fd5b5061023f610600366004611add565b610e73565b34801561061157600080fd5b506102d0610f17565b610622610f53565b6000546001600160a01b039081169116146106585760405162461bcd60e51b815260040161064f90611f94565b60405180910390fd5b600a55565b60606005805461066c906121b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610698906121b5565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b60006107036106fc610f53565b8484610f57565b5060015b92915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60085490565b600061074484848461100b565b6107b484610750610f53565b6107af8560405180606001604052806028815260200161221f602891396001600160a01b038a1660009081526004602052604081209061078e610f53565b6001600160a01b03168152602081019190915260400160002054919061148c565b610f57565b5060019392505050565b6107c6610f53565b6000546001600160a01b039081169116146107f35760405162461bcd60e51b815260040161064f90611f94565b600c546301000000900460ff161561081d5760405162461bcd60e51b815260040161064f90611f5d565b600c805462ff00001961ff001963ff00000019909216630100000017919091166101001716620100001790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061087a90600190611cdb565b60405180910390a17f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c060016040516108b29190611cdb565b60405180910390a1565b60075460ff1690565b60006107036108d2610f53565b846107af85600460006108e3610f53565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f1d565b600a5481565b610921610f53565b6000546001600160a01b0390811691161461094e5760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b7f000000000000000000000000b129fb8a8199dae0b3d54473c8a3d27d8274548a81565b600c54610100900460ff1681565b600c5462010000900460ff1681565b600b5481565b6001600160a01b0381166000908152600360205260409020545b919050565b600f5481565b6109e6610f53565b6000546001600160a01b03908116911614610a135760405162461bcd60e51b815260040161064f90611f94565b600080546040516001600160a01b0390911690600080516020612247833981519152908390a3600080546001600160a01b0319169055565b610a53610f53565b6000546001600160a01b03908116911614610a805760405162461bcd60e51b815260040161064f90611f94565b600c8054931515620100000262ff00001990941693909317909255600f55600e55565b6000546001600160a01b031690565b610aba610f53565b6000546001600160a01b03908116911614610ae75760405162461bcd60e51b815260040161064f90611f94565b600b55565b60606006805461066c906121b5565b610b03610f53565b6000546001600160a01b03908116911614610b305760405162461bcd60e51b815260040161064f90611f94565b600d55565b6000610703610b42610f53565b846107af856040518060600160405280602581526020016122676025913960046000610b6c610f53565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061148c565b6001546001600160a01b03163314610bc75760405162461bcd60e51b815260040161064f9061209b565b6002544211610be85760405162461bcd60e51b815260040161064f90611db1565b600154600080546040516001600160a01b03938416939091169160008051602061224783398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610703610c47610f53565b848461100b565b60025490565b610c5c610f53565b6000546001600160a01b03908116911614610c895760405162461bcd60e51b815260040161064f90611f94565b600c805461ff001916610100831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610ccc908390611cdb565b60405180910390a150565b600c546301000000900460ff1681565b600e5481565b610cf5610f53565b6000546001600160a01b03908116911614610d225760405162461bcd60e51b815260040161064f90611f94565b601054610d37906001600160a01b0316610e1d565b610d4081610919565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a610f53565b6000546001600160a01b03908116911614610d975760405162461bcd60e51b815260040161064f90611f94565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610dc68142612147565b600255600080546040516001600160a01b0390911690600080516020612247833981519152908390a350565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610e25610f53565b6000546001600160a01b03908116911614610e525760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b03166000908152600960205260409020805460ff19169055565b610e7b610f53565b6000546001600160a01b03908116911614610ea85760405162461bcd60e51b815260040161064f90611f94565b6001600160a01b038116610ece5760405162461bcd60e51b815260040161064f90611df6565b600080546040516001600160a01b038085169392169160008051602061224783398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600d5481565b600080610f2a8385612147565b905083811015610f4c5760405162461bcd60e51b815260040161064f90611e7e565b9392505050565b3390565b6001600160a01b038316610f7d5760405162461bcd60e51b815260040161064f90612057565b6001600160a01b038216610fa35760405162461bcd60e51b815260040161064f90611e3c565b6001600160a01b0380841660008181526004602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ffe9085906120de565b60405180910390a3505050565b6001600160a01b0383166110315760405162461bcd60e51b815260040161064f90612012565b6001600160a01b0382166110575760405162461bcd60e51b815260040161064f90611d6e565b600081116110775760405162461bcd60e51b815260040161064f90611fc9565b6001600160a01b0383166000908152600360205260409020548111156110af5760405162461bcd60e51b815260040161064f90611ee5565b600c546301000000900460ff161580156110e257506110cc610aa3565b6001600160a01b0316836001600160a01b031614155b801561110757506110f1610aa3565b6001600160a01b0316826001600160a01b031614155b1561119c577f000000000000000000000000b129fb8a8199dae0b3d54473c8a3d27d8274548a6001600160a01b0316836001600160a01b03161415801561118057507f000000000000000000000000b129fb8a8199dae0b3d54473c8a3d27d8274548a6001600160a01b0316826001600160a01b031614155b61119c5760405162461bcd60e51b815260040161064f90611eb5565b6001600160a01b03831660009081526009602052604081205460ff161580156111de57506001600160a01b03831660009081526009602052604090205460ff16155b156113bf576000611206612710611200600a54866114c690919063ffffffff16565b9061150b565b6010546001600160a01b031660009081526003602052604090205490915061122e9082610f1d565b601080546001600160a01b0390811660009081526003602052604090819020939093559054915191811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128a9085906120de565b60405180910390a360006112af612710611200600b54876114c690919063ffffffff16565b306000908152600360205260409020549091506112cc9082610f1d565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061131b9085906120de565b60405180910390a330600090815260036020526040902054600d548110801590819061134a5750600c5460ff16155b801561138857507f000000000000000000000000b129fb8a8199dae0b3d54473c8a3d27d8274548a6001600160a01b0316886001600160a01b031614155b801561139b5750600c54610100900460ff165b156113ae57600d5491506113ae8261154d565b6113b88484610f1d565b9450505050505b6001600160a01b0384166000908152600360205260409020546113e290836116c9565b6001600160a01b03851660009081526003602052604090205561142761140883836116c9565b6001600160a01b03851660009081526003602052604090205490610f1d565b6001600160a01b0380851660008181526003602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61147185856116c9565b60405161147e91906120de565b60405180910390a350505050565b600081848411156114b05760405162461bcd60e51b815260040161064f9190611d1b565b5060006114bd848661219e565b95945050505050565b6000826114d557506000610707565b60006114e1838561217f565b9050826114ee858361215f565b14610f4c5760405162461bcd60e51b815260040161064f90611f1c565b6000610f4c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061170b565b600c805460ff19166001179055600061156782600261150b565b9050600061157583836116c9565b9050476115a27f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611739565b60006115ae47836116c9565b90506115e37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6115dc610aa3565b85846118b8565b600c5462010000900460ff1680156115fc5750600e5482115b1561167d57600f5482111561161157600f5491505b6116467f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d3061164185600a61150b565b61194e565b61165182600a61150b565b60405130907f515a362443b428d4aab92057f742255c765d68033ba3f00847b57e323d0468d490600090a35b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516116b093929190612123565b60405180910390a15050600c805460ff19169055505050565b6000610f4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148c565b6000818361172c5760405162461bcd60e51b815260040161064f9190611d1b565b5060006114bd848661215f565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061178057634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d957600080fd5b505afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190611af9565b8160018151811061183257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152821663791ac947846000843061186042610168612147565b6040518663ffffffff1660e01b81526004016118809594939291906120e7565b600060405180830381600087803b15801561189a57600080fd5b505af11580156118ae573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a6118db42610168612147565b6040518863ffffffff1660e01b81526004016118fc96959493929190611ca0565b6060604051808303818588803b15801561191557600080fd5b505af1158015611929573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ae9190611c1c565b60408051600280825260608201835285926000929190602083019080368337019050509050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ac57600080fd5b505afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e49190611af9565b81600081518110611a0557634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611a4757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152821663b6f9de958460008488611a7542610168612147565b6040518663ffffffff1660e01b8152600401611a949493929190611ce6565b6000604051808303818588803b158015611aad57600080fd5b505af1158015611ac1573d6000803e3d6000fd5b50505050505050505050565b803580151581146109d357600080fd5b600060208284031215611aee578081fd5b8135610f4c81612206565b600060208284031215611b0a578081fd5b8151610f4c81612206565b60008060408385031215611b27578081fd5b8235611b3281612206565b91506020830135611b4281612206565b809150509250929050565b600080600060608486031215611b61578081fd5b8335611b6c81612206565b92506020840135611b7c81612206565b929592945050506040919091013590565b60008060408385031215611b9f578182fd5b8235611baa81612206565b946020939093013593505050565b600060208284031215611bc9578081fd5b610f4c82611acd565b600080600060608486031215611be6578283fd5b611bef84611acd565b95602085013595506040909401359392505050565b600060208284031215611c15578081fd5b5035919050565b600080600060608486031215611c30578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015611c815781516001600160a01b031687529582019590820190600101611c5c565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600085825260806020830152611cff6080830186611c49565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015611d4757858101830151858201604001528201611d2b565b81811115611d585783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526025908201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604082015264206461797360d81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604082015260600190565b6020808252601f908201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526018908201527f5472616469696e6720616c726561647920656e61626c65640000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526023908201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6040820152626f636b60e81b606082015260800190565b90815260200190565b600086825285602083015260a0604083015261210660a0830186611c49565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b6000821982111561215a5761215a6121f0565b500190565b60008261217a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612199576121996121f0565b500290565b6000828210156121b0576121b06121f0565b500390565b6002810460018216806121c957607f821691505b602082108114156121ea57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461221b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206d00868509ac65c46e47d6bfdb288bba684deab5d8e6991082cb2d4192850f3264736f6c63430008000033

Deployed Bytecode Sourcemap

14725:11352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20380:96;;;;;;;;;;-1:-1:-1;20380:96:0;;;;;:::i;:::-;;:::i;:::-;;17637:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18422:195;;;;;;;;;;-1:-1:-1;18422:195:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15189:51::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17739:102::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18625:448::-;;;;;;;;;;-1:-1:-1;18625:448:0;;;;;:::i;:::-;;:::i;21608:308::-;;;;;;;;;;;;;:::i;17429:94::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19081:283::-;;;;;;;;;;-1:-1:-1;19081:283:0;;;;;:::i;:::-;;:::i;15123:22::-;;;;;;;;;;;;;:::i;20143:111::-;;;;;;;;;;-1:-1:-1;20143:111:0;;;;;:::i;:::-;;:::i;15247:38::-;;;;;;;;;;;;;:::i;15322:33::-;;;;;;;;;;;;;:::i;15407:26::-;;;;;;;;;;;;;:::i;15152:28::-;;;;;;;;;;;;;:::i;17849:162::-;;;;;;;;;;-1:-1:-1;17849:162:0;;;;;:::i;:::-;;:::i;15678:42::-;;;;;;;;;;;;;:::i;2055:150::-;;;;;;;;;;;;;:::i;20987:256::-;;;;;;;;;;-1:-1:-1;20987:256:0;;;;;:::i;:::-;;:::i;1841:79::-;;;;;;;;;;;;;:::i;20484:120::-;;;;;;;;;;-1:-1:-1;20484:120:0;;;;;:::i;:::-;;:::i;17531:98::-;;;;;;;;;;;;;:::i;20612:188::-;;;;;;;;;;-1:-1:-1;20612:188:0;;;;;:::i;:::-;;:::i;19372:383::-;;;;;;;;;;-1:-1:-1;19372:383:0;;;;;:::i;:::-;;:::i;2965:422::-;;;;;;;;;;;;;:::i;18019:201::-;;;;;;;;;;-1:-1:-1;18019:201:0;;;;;:::i;:::-;;:::i;2502:89::-;;;;;;;;;;;;;:::i;20808:171::-;;;;;;;;;;-1:-1:-1;20808:171:0;;;;;:::i;:::-;;:::i;15491:24::-;;;;;;;;;;;;;:::i;15627:44::-;;;;;;;;;;;;;:::i;21251:349::-;;;;;;;;;;-1:-1:-1;21251:349:0;;;;;:::i;:::-;;:::i;2667:226::-;;;;;;;;;;-1:-1:-1;2667:226:0;;;;;:::i;:::-;;:::i;18228:186::-;;;;;;;;;;-1:-1:-1;18228:186:0;;;;;:::i;:::-;;:::i;20262:110::-;;;;;;;;;;-1:-1:-1;20262:110:0;;;;;:::i;:::-;;:::i;2213:281::-;;;;;;;;;;-1:-1:-1;2213:281:0;;;;;:::i;:::-;;:::i;15579:41::-;;;;;;;;;;;;;:::i;20380:96::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;;;;;;;;;20452:7:::1;:16:::0;20380:96::o;17637:94::-;17685:13;17718:5;17711:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17637:94;:::o;18422:195::-;18526:4;18548:39;18557:12;:10;:12::i;:::-;18571:7;18580:6;18548:8;:39::i;:::-;-1:-1:-1;18605:4:0;18422:195;;;;;:::o;15189:51::-;;;:::o;17739:102::-;17821:12;;17739:102;:::o;18625:448::-;18759:4;18776:36;18786:6;18794:9;18805:6;18776:9;:36::i;:::-;18823:220;18846:6;18867:12;:10;:12::i;:::-;18894:138;18950:6;18894:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18894:19:0;;;;;;:11;:19;;;;;;18914:12;:10;:12::i;:::-;-1:-1:-1;;;;;18894:33:0;;;;;;;;;;;;-1:-1:-1;18894:33:0;;;:138;:37;:138::i;:::-;18823:8;:220::i;:::-;-1:-1:-1;19061:4:0;18625:448;;;;;:::o;21608:308::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;21671:12:::1;::::0;;;::::1;;;21670:13;21662:50;;;;-1:-1:-1::0;;;21662:50:0::1;;;;;;;:::i;:::-;21723:12;:19:::0;;-1:-1:-1;;;;;;21723:19:0;;::::1;::::0;::::1;21753:28:::0;;;::::1;21723:19;21753:28;21792:21;::::0;::::1;::::0;;21831:34:::1;::::0;::::1;::::0;::::1;::::0;21738:4:::1;::::0;21831:34:::1;:::i;:::-;;;;;;;;21881:27;21903:4;21881:27;;;;;;:::i;:::-;;;;;;;;21608:308::o:0;17429:94::-;17506:9;;;;17429:94;:::o;19081:283::-;19179:4;19201:133;19224:12;:10;:12::i;:::-;19251:7;19273:50;19312:10;19273:11;:25;19285:12;:10;:12::i;:::-;-1:-1:-1;;;;;19273:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19273:25:0;;;:34;;;;;;;;;;;:38;:50::i;15123:22::-;;;;:::o;20143:111::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20212:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;20212:34:0::1;20242:4;20212:34;::::0;;20143:111::o;15247:38::-;;;:::o;15322:33::-;;;;;;;;;:::o;15407:26::-;;;;;;;;;:::o;15152:28::-;;;;:::o;17849:162::-;-1:-1:-1;;;;;17985:18:0;;17953:7;17985:18;;;:9;:18;;;;;;17849:162;;;;:::o;15678:42::-;;;;:::o;2055:150::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;2162:1:::1;2146:6:::0;;2125:40:::1;::::0;-1:-1:-1;;;;;2146:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2125:40:0;2162:1;;2125:40:::1;2194:1;2176:21:::0;;-1:-1:-1;;;;;;2176:21:0::1;::::0;;2055:150::o;20987:256::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;21126:14:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21126:23:0;;::::1;::::0;;;::::1;::::0;;;21160:17:::1;:32:::0;21203:17:::1;:32:::0;20987:256::o;1841:79::-;1879:7;1906:6;-1:-1:-1;;;;;1906:6:0;1841:79;:::o;20484:120::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;20568:13:::1;:28:::0;20484:120::o;17531:98::-;17581:13;17614:7;17607:14;;;;;:::i;20612:188::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;20738:26:::1;:54:::0;20612:188::o;19372:383::-;19475:4;19497:228;19520:12;:10;:12::i;:::-;19547:7;19569:145;19626:15;19569:145;;;;;;;;;;;;;;;;;:11;:25;19581:12;:10;:12::i;:::-;-1:-1:-1;;;;;19569:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19569:25:0;;;:34;;;;;;;;;;;:145;:38;:145::i;2965:422::-;3031:14;;-1:-1:-1;;;;;3031:14:0;3049:10;3031:28;3009:113;;;;-1:-1:-1;;;3009:113:0;;;;;;;:::i;:::-;3173:9;;3155:15;:27;3133:114;;;;-1:-1:-1;;;3133:114:0;;;;;;;:::i;:::-;3292:14;;;3284:6;;3263:44;;-1:-1:-1;;;;;3292:14:0;;;;3284:6;;;;-1:-1:-1;;;;;;;;;;;3263:44:0;;3327:14;;;;3318:23;;-1:-1:-1;;;;;;3318:23:0;;;-1:-1:-1;;;;;3327:14:0;;3318:23;;;;3352:27;;;2965:422::o;18019:201::-;18126:4;18148:42;18158:12;:10;:12::i;:::-;18172:9;18183:6;18148:9;:42::i;2502:89::-;2574:9;;2502:89;:::o;20808:171::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;20885:21:::1;:32:::0;;-1:-1:-1;;20885:32:0::1;;::::0;::::1;;;;::::0;;20933:38:::1;::::0;::::1;::::0;::::1;::::0;20885:32;;20933:38:::1;:::i;:::-;;;;;;;;20808:171:::0;:::o;15491:24::-;;;;;;;;;:::o;15627:44::-;;;;:::o;21251:349::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;21415:15:::1;::::0;21402:29:::1;::::0;-1:-1:-1;;;;;21415:15:0::1;21402:12;:29::i;:::-;21509:34;21524:18;21509:14;:34::i;:::-;21556:15;:36:::0;;-1:-1:-1;;;;;;21556:36:0::1;-1:-1:-1::0;;;;;21556:36:0;;;::::1;::::0;;;::::1;::::0;;21251:349::o;2667:226::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;2748:6:::1;::::0;;;2731:23;;-1:-1:-1;;;;;;2731:23:0;;::::1;-1:-1:-1::0;;;;;2748:6:0;::::1;2731:23;::::0;;;2765:19:::1;::::0;;2807:22:::1;2825:4:::0;2807:15:::1;:22;:::i;:::-;2795:9;:34:::0;2882:1:::1;2866:6:::0;;2845:40:::1;::::0;-1:-1:-1;;;;;2866:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2845:40:0;2882:1;;2845:40:::1;2667:226:::0;:::o;18228:186::-;-1:-1:-1;;;;;18379:18:0;;;18347:7;18379:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18228:186::o;20262:110::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20329:27:0::1;20359:5;20329:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;20329:35:0::1;::::0;;20262:110::o;2213:281::-;1978:12;:10;:12::i;:::-;1968:6;;-1:-1:-1;;;;;1968:6:0;;;:22;;;1960:67;;;;-1:-1:-1;;;1960:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2316:22:0;::::1;2294:110;;;;-1:-1:-1::0;;;2294:110:0::1;;;;;;;:::i;:::-;2441:6;::::0;;2420:38:::1;::::0;-1:-1:-1;;;;;2420:38:0;;::::1;::::0;2441:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2420:38:0;::::1;2469:6;:17:::0;;-1:-1:-1;;;;;;2469:17:0::1;-1:-1:-1::0;;;;;2469:17:0;;;::::1;::::0;;;::::1;::::0;;2213:281::o;15579:41::-;;;;:::o;26105:181::-;26163:7;;26195:5;26199:1;26195;:5;:::i;:::-;26183:17;;26224:1;26219;:6;;26211:46;;;;-1:-1:-1;;;26211:46:0;;;;;;;:::i;:::-;26277:1;26105:181;-1:-1:-1;;;26105:181:0:o;1123:100::-;1204:10;1123:100;:::o;19763:372::-;-1:-1:-1;;;;;19891:19:0;;19883:68;;;;-1:-1:-1;;;19883:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19970:21:0;;19962:68;;;;-1:-1:-1;;;19962:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20043:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;20095:32;;;;;20073:6;;20095:32;:::i;:::-;;;;;;;;19763:372;;;:::o;21924:2593::-;-1:-1:-1;;;;;22056:20:0;;22048:70;;;;-1:-1:-1;;;22048:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22137:23:0;;22129:71;;;;-1:-1:-1;;;22129:71:0;;;;;;;:::i;:::-;22228:1;22219:6;:10;22211:64;;;;-1:-1:-1;;;22211:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22294:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;22294:27:0;22286:71;;;;-1:-1:-1;;;22286:71:0;;;;;;;:::i;:::-;22375:12;;;;;;;22374:13;:34;;;;;22401:7;:5;:7::i;:::-;-1:-1:-1;;;;;22391:17:0;:6;-1:-1:-1;;;;;22391:17:0;;;22374:34;:58;;;;;22425:7;:5;:7::i;:::-;-1:-1:-1;;;;;22412:20:0;:9;-1:-1:-1;;;;;22412:20:0;;;22374:58;22370:228;;;22485:13;-1:-1:-1;;;;;22475:23:0;:6;-1:-1:-1;;;;;22475:23:0;;;:53;;;;;22515:13;-1:-1:-1;;;;;22502:26:0;:9;-1:-1:-1;;;;;22502:26:0;;;22475:53;22449:137;;;;-1:-1:-1;;;22449:137:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22648:26:0;;22610:16;22648:26;;;:18;:26;;;;;;;;22647:27;:61;;;;-1:-1:-1;;;;;;22679:29:0;;;;;;:18;:29;;;;;;;;22678:30;22647:61;22643:1660;;;22802:20;22825:30;22849:5;22825:19;22836:7;;22825:6;:10;;:19;;;;:::i;:::-;:23;;:30::i;:::-;22909:15;;-1:-1:-1;;;;;22909:15:0;22899:26;;;;:9;:26;;;;;;22802:53;;-1:-1:-1;22899:76:0;;22802:53;22899:30;:76::i;:::-;22880:15;;;-1:-1:-1;;;;;22880:15:0;;;22870:26;;;;:9;:26;;;;;;;:105;;;;23012:15;;22995:47;;23012:15;;;;22995:47;;;;;;;;23029:12;;22995:47;:::i;:::-;;;;;;;;23121:26;23150:36;23180:5;23150:25;23161:13;;23150:6;:10;;:25;;;;:::i;:36::-;23246:4;23228:24;;;;:9;:24;;;;;;23121:65;;-1:-1:-1;23228:80:0;;23121:65;23228:28;:80::i;:::-;23219:4;23201:24;;;;:9;:24;;;;;;;:107;;;;23328:51;;-1:-1:-1;;;;;23328:51:0;;;;;;;23360:18;;23328:51;:::i;:::-;;;;;;;;23743:4;23694:28;23725:24;;;:9;:24;;;;;;23834:26;;23793:67;;;;;;;23897:57;;-1:-1:-1;23938:16:0;;;;23937:17;23897:57;:101;;;;;23985:13;-1:-1:-1;;;;;23975:23:0;:6;-1:-1:-1;;;;;23975:23:0;;;23897:101;:143;;;;-1:-1:-1;24019:21:0;;;;;;;23897:143;23875:353;;;24098:26;;24075:49;;24176:36;24191:20;24176:14;:36::i;:::-;24255;:12;24272:18;24255:16;:36::i;:::-;24244:47;;22643:1660;;;;;-1:-1:-1;;;;;24335:17:0;;;;;;:9;:17;;;;;;:29;;24357:6;24335:21;:29::i;:::-;-1:-1:-1;;;;;24315:17:0;;;;;;:9;:17;;;;;:49;24398:46;24423:20;:6;24434:8;24423:10;:20::i;:::-;-1:-1:-1;;;;;24398:20:0;;;;;;:9;:20;;;;;;;:24;:46::i;:::-;-1:-1:-1;;;;;24375:20:0;;;;;;;:9;:20;;;;;:69;;;;24460:49;;;24488:20;:6;24499:8;24488:10;:20::i;:::-;24460:49;;;;;;:::i;:::-;;;;;;;;21924:2593;;;;:::o;26438:226::-;26558:7;26594:12;26586:6;;;;26578:29;;;;-1:-1:-1;;;26578:29:0;;;;;;;;:::i;:::-;-1:-1:-1;26618:9:0;26630:5;26634:1;26630;:5;:::i;:::-;26618:17;26438:226;-1:-1:-1;;;;;26438:226:0:o;26672:471::-;26730:7;26975:6;26971:47;;-1:-1:-1;27005:1:0;26998:8;;26971:47;27030:9;27042:5;27046:1;27042;:5;:::i;:::-;27030:17;-1:-1:-1;27075:1:0;27066:5;27070:1;27030:17;27066:5;:::i;:::-;:10;27058:56;;;;-1:-1:-1;;;27058:56:0;;;;;;;:::i;27151:132::-;27209:7;27236:39;27240:1;27243;27236:39;;;;;;;;;;;;;;;;;:3;:39::i;24525:1549::-;16114:16;:23;;-1:-1:-1;;16114:23:0;16133:4;16114:23;;;:16;24676:27:::1;:20:::0;24701:1:::1;24676:24;:27::i;:::-;24661:42:::0;-1:-1:-1;24714:17:0::1;24734:30;:20:::0;24661:42;24734:24:::1;:30::i;:::-;24714:50:::0;-1:-1:-1;25067:21:0::1;25148:54;25179:15;25197:4:::0;25148:22:::1;:54::i;:::-;25263:18;25284:41;:21;25310:14:::0;25284:25:::1;:41::i;:::-;25263:62;;25375:139;25416:15;25447:7;:5;:7::i;:::-;25469:9;25493:10;25375:18;:139::i;:::-;25589:14;::::0;;;::::1;;;:61:::0;::::1;;;;25632:17;;25607:14;:43;25589:61;25585:421;;;25688:17;;25671:14;:34;25667:91;;;25741:17;;25724:34;;25667:91;25773:153;25822:15;25865:4;25889:22;:14:::0;25908:2:::1;25889:18;:22::i;:::-;25773;:153::i;:::-;25971:22;:14:::0;25990:2:::1;25971:18;:22::i;:::-;25948:46;::::0;25964:4:::1;::::0;25948:46:::1;::::0;;;::::1;25585:421;26023:43;26038:4;26044:10;26056:9;26023:43;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;16160:16:0;:24;;-1:-1:-1;;16160:24:0;;;-1:-1:-1;;;24525:1549:0:o;26294:136::-;26352:7;26379:43;26383:1;26386;26379:43;;;;;;;;;;;;;;;;;:3;:43::i;27291:312::-;27411:7;27446:12;27439:5;27431:28;;;;-1:-1:-1;;;27431:28:0;;;;;;;;:::i;:::-;-1:-1:-1;27470:9:0;27482:5;27486:1;27482;:5;:::i;12777:641::-;13048:16;;;13062:1;13048:16;;;;;;;;12937:13;;12881:34;;13048:16;13062:1;13048:16;;;;;;;;;;-1:-1:-1;13048:16:0;13024:40;;13093:4;13075;13080:1;13075:7;;;;;;-1:-1:-1;;;13075:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;13075:23:0;;;-1:-1:-1;;;;;13075:23:0;;;;;13119:15;-1:-1:-1;;;;;13119:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13109:4;13114:1;13109:7;;;;;;-1:-1:-1;;;13109:7:0;;;;;;;;;-1:-1:-1;;;;;13109:32:0;;;:7;;;;;;;;;:32;13180:66;;;13261:11;13287:1;13331:4;13358;13378:21;:15;13396:3;13378:21;:::i;:::-;13180:230;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12777:641;;;;:::o;14133:540::-;14352:13;-1:-1:-1;;;;;14409:31:0;;;14448:9;14481:4;14501:11;14296:34;;14613:5;14633:21;:15;14651:3;14633:21;:::i;:::-;14409:256;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13426:699::-;13734:16;;;13748:1;13734:16;;;;;;;;13623:13;;13567:34;;13734:16;13748:1;13734:16;;;;;;;;;;-1:-1:-1;13734:16:0;13710:40;;13771:15;-1:-1:-1;;;;;13771:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13761:4;13766:1;13761:7;;;;;;-1:-1:-1;;;13761:7:0;;;;;;;;;;;;;;:32;-1:-1:-1;;;;;13761:32:0;;;-1:-1:-1;;;;;13761:32:0;;;;;13822:4;13804;13809:1;13804:7;;;;;;-1:-1:-1;;;13804:7:0;;;;;;;;;-1:-1:-1;;;;;13804:23:0;;;:7;;;;;;;;;:23;13866:66;;;13954:9;13989:1;14033:4;14060:9;14085:21;:15;14103:3;14085:21;:::i;:::-;13866:251;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13426:699;;;;;:::o;14:162:1:-;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:327::-;;;1724:2;1712:9;1703:7;1699:23;1695:32;1692:2;;;1745:6;1737;1730:22;1692:2;1789:9;1776:23;1808:33;1835:5;1808:33;:::i;:::-;1860:5;1912:2;1897:18;;;;1884:32;;-1:-1:-1;;;1682:240:1:o;1927:192::-;;2036:2;2024:9;2015:7;2011:23;2007:32;2004:2;;;2057:6;2049;2042:22;2004:2;2085:28;2103:9;2085:28;:::i;2124:328::-;;;;2267:2;2255:9;2246:7;2242:23;2238:32;2235:2;;;2288:6;2280;2273:22;2235:2;2316:28;2334:9;2316:28;:::i;:::-;2306:38;2391:2;2376:18;;2363:32;;-1:-1:-1;2442:2:1;2427:18;;;2414:32;;2225:227;-1:-1:-1;;;2225:227:1:o;2457:190::-;;2569:2;2557:9;2548:7;2544:23;2540:32;2537:2;;;2590:6;2582;2575:22;2537:2;-1:-1:-1;2618:23:1;;2527:120;-1:-1:-1;2527:120:1:o;2652:316::-;;;;2809:2;2797:9;2788:7;2784:23;2780:32;2777:2;;;2830:6;2822;2815:22;2777:2;2864:9;2858:16;2848:26;;2914:2;2903:9;2899:18;2893:25;2883:35;;2958:2;2947:9;2943:18;2937:25;2927:35;;2767:201;;;;;:::o;2973:469::-;;3070:5;3064:12;3097:6;3092:3;3085:19;3123:4;3152:2;3147:3;3143:12;3136:19;;3189:2;3182:5;3178:14;3210:3;3222:195;3236:6;3233:1;3230:13;3222:195;;;3301:13;;-1:-1:-1;;;;;3297:39:1;3285:52;;3357:12;;;;3392:15;;;;3333:1;3251:9;3222:195;;;-1:-1:-1;3433:3:1;;3040:402;-1:-1:-1;;;;;3040:402:1:o;3447:203::-;-1:-1:-1;;;;;3611:32:1;;;;3593:51;;3581:2;3566:18;;3548:102::o;3655:607::-;-1:-1:-1;;;;;4014:15:1;;;3996:34;;4061:2;4046:18;;4039:34;;;;4104:2;4089:18;;4082:34;;;;4147:2;4132:18;;4125:34;;;;4196:15;;;4190:3;4175:19;;4168:44;3976:3;4228:19;;4221:35;;;;3945:3;3930:19;;3912:350::o;4267:187::-;4432:14;;4425:22;4407:41;;4395:2;4380:18;;4362:92::o;4693:516::-;;4964:6;4953:9;4946:25;5007:3;5002:2;4991:9;4987:18;4980:31;5028:63;5086:3;5075:9;5071:19;5063:6;5028:63;:::i;:::-;-1:-1:-1;;;;;5127:32:1;;;;5122:2;5107:18;;5100:60;-1:-1:-1;5191:2:1;5176:18;5169:34;5020:71;4936:273;-1:-1:-1;;4936:273:1:o;5214:603::-;;5355:2;5384;5373:9;5366:21;5416:6;5410:13;5459:6;5454:2;5443:9;5439:18;5432:34;5484:4;5497:140;5511:6;5508:1;5505:13;5497:140;;;5606:14;;;5602:23;;5596:30;5572:17;;;5591:2;5568:26;5561:66;5526:10;;5497:140;;;5655:6;5652:1;5649:13;5646:2;;;5725:4;5720:2;5711:6;5700:9;5696:22;5692:31;5685:45;5646:2;-1:-1:-1;5801:2:1;5780:15;-1:-1:-1;;5776:29:1;5761:45;;;;5808:2;5757:54;;5335:482;-1:-1:-1;;;5335:482:1:o;5822:399::-;6024:2;6006:21;;;6063:2;6043:18;;;6036:30;6102:34;6097:2;6082:18;;6075:62;-1:-1:-1;;;6168:2:1;6153:18;;6146:33;6211:3;6196:19;;5996:225::o;6226:401::-;6428:2;6410:21;;;6467:2;6447:18;;;6440:30;6506:34;6501:2;6486:18;;6479:62;-1:-1:-1;;;6572:2:1;6557:18;;6550:35;6617:3;6602:19;;6400:227::o;6632:402::-;6834:2;6816:21;;;6873:2;6853:18;;;6846:30;6912:34;6907:2;6892:18;;6885:62;-1:-1:-1;;;6978:2:1;6963:18;;6956:36;7024:3;7009:19;;6806:228::o;7039:398::-;7241:2;7223:21;;;7280:2;7260:18;;;7253:30;7319:34;7314:2;7299:18;;7292:62;-1:-1:-1;;;7385:2:1;7370:18;;7363:32;7427:3;7412:19;;7213:224::o;7442:351::-;7644:2;7626:21;;;7683:2;7663:18;;;7656:30;7722:29;7717:2;7702:18;;7695:57;7784:2;7769:18;;7616:177::o;7798:346::-;8000:2;7982:21;;;8039:2;8019:18;;;8012:30;-1:-1:-1;;;8073:2:1;8058:18;;8051:52;8135:2;8120:18;;7972:172::o;8149:355::-;8351:2;8333:21;;;8390:2;8370:18;;;8363:30;8429:33;8424:2;8409:18;;8402:61;8495:2;8480:18;;8323:181::o;8509:397::-;8711:2;8693:21;;;8750:2;8730:18;;;8723:30;8789:34;8784:2;8769:18;;8762:62;-1:-1:-1;;;8855:2:1;8840:18;;8833:31;8896:3;8881:19;;8683:223::o;8911:348::-;9113:2;9095:21;;;9152:2;9132:18;;;9125:30;9191:26;9186:2;9171:18;;9164:54;9250:2;9235:18;;9085:174::o;9264:356::-;9466:2;9448:21;;;9485:18;;;9478:30;9544:34;9539:2;9524:18;;9517:62;9611:2;9596:18;;9438:182::o;9625:405::-;9827:2;9809:21;;;9866:2;9846:18;;;9839:30;9905:34;9900:2;9885:18;;9878:62;-1:-1:-1;;;9971:2:1;9956:18;;9949:39;10020:3;10005:19;;9799:231::o;10035:401::-;10237:2;10219:21;;;10276:2;10256:18;;;10249:30;10315:34;10310:2;10295:18;;10288:62;-1:-1:-1;;;10381:2:1;10366:18;;10359:35;10426:3;10411:19;;10209:227::o;10441:400::-;10643:2;10625:21;;;10682:2;10662:18;;;10655:30;10721:34;10716:2;10701:18;;10694:62;-1:-1:-1;;;10787:2:1;10772:18;;10765:34;10831:3;10816:19;;10615:226::o;10846:399::-;11048:2;11030:21;;;11087:2;11067:18;;;11060:30;11126:34;11121:2;11106:18;;11099:62;-1:-1:-1;;;11192:2:1;11177:18;;11170:33;11235:3;11220:19;;11020:225::o;11250:177::-;11396:25;;;11384:2;11369:18;;11351:76::o;11432:588::-;;11731:6;11720:9;11713:25;11774:6;11769:2;11758:9;11754:18;11747:34;11817:3;11812:2;11801:9;11797:18;11790:31;11838:63;11896:3;11885:9;11881:19;11873:6;11838:63;:::i;:::-;-1:-1:-1;;;;;11937:32:1;;;;11932:2;11917:18;;11910:60;-1:-1:-1;12001:3:1;11986:19;11979:35;11830:71;11703:317;-1:-1:-1;;;11703:317:1:o;12025:319::-;12227:25;;;12283:2;12268:18;;12261:34;;;;12326:2;12311:18;;12304:34;12215:2;12200:18;;12182:162::o;12349:184::-;12521:4;12509:17;;;;12491:36;;12479:2;12464:18;;12446:87::o;12538:128::-;;12609:1;12605:6;12602:1;12599:13;12596:2;;;12615:18;;:::i;:::-;-1:-1:-1;12651:9:1;;12586:80::o;12671:217::-;;12737:1;12727:2;;-1:-1:-1;;;12762:31:1;;12816:4;12813:1;12806:15;12844:4;12769:1;12834:15;12727:2;-1:-1:-1;12873:9:1;;12717:171::o;12893:168::-;;12999:1;12995;12991:6;12987:14;12984:1;12981:21;12976:1;12969:9;12962:17;12958:45;12955:2;;;13006:18;;:::i;:::-;-1:-1:-1;13046:9:1;;12945:116::o;13066:125::-;;13134:1;13131;13128:8;13125:2;;;13139:18;;:::i;:::-;-1:-1:-1;13176:9:1;;13115:76::o;13196:380::-;13281:1;13271:12;;13328:1;13318:12;;;13339:2;;13393:4;13385:6;13381:17;13371:27;;13339:2;13446;13438:6;13435:14;13415:18;13412:38;13409:2;;;13492:10;13487:3;13483:20;13480:1;13473:31;13527:4;13524:1;13517:15;13555:4;13552:1;13545:15;13409:2;;13251:325;;;:::o;13581:127::-;13642:10;13637:3;13633:20;13630:1;13623:31;13673:4;13670:1;13663:15;13697:4;13694:1;13687:15;13713:133;-1:-1:-1;;;;;13790:31:1;;13780:42;;13770:2;;13836:1;13833;13826:12;13770:2;13760:86;:::o

Swarm Source

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