ETH Price: $3,503.68 (+2.27%)
Gas: 3 Gwei

Token

Project X (PX)
 

Overview

Max Total Supply

1,000,000,000 PX

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,318,288.594848841134977841 PX

Value
$0.00
0xaeda6b70523d2cbfda5b7051c1484b43529c0210
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ProjectX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// ██████  ███████ ██    ██  ██████  ██      ██    ██ ███████ ██  ██████  ███    ██                   
// ██   ██ ██      ██    ██ ██    ██ ██      ██    ██     ██  ██ ██    ██ ████   ██                  
// ██████  █████   ██    ██ ██    ██ ██      ██    ██   ██    ██ ██    ██ ██ ██  ██                   
// ██   ██ ██       ██  ██  ██    ██ ██      ██    ██  ██     ██ ██    ██ ██  ██ ██                   
// ██   ██ ███████   ████    ██████  ███████  ██████  ███████ ██  ██████  ██   ████    

// SAFU CONTRACT DEVELOPED BY REVOLUZION

//Revoluzion Ecosystem
//WEB: https://revoluzion.io
//DAPP: https://revoluzion.app

// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

/********************************************************************************************
  INTERFACE
********************************************************************************************/

interface IERC20 {
    
    // EVENT 

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

    // FUNCTION

    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 account) external view returns (uint256);
    
    function transfer(address to, uint256 amount) external returns (bool);
    
    function allowance(address owner, address spender) external view returns (uint256);
    
    function approve(address spender, uint256 amount) external returns (bool);
    
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IPair {

    // FUNCTION

    function token0() external view returns (address);

    function token1() external view returns (address);
}

interface IFactory {

    // FUNCTION

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

interface IRouter {

    // FUNCTION

    function WETH() external pure returns (address);
        
    function factory() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(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 swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);
}

interface ICommonError {

    // ERROR

    error CannotUseCurrentAddress(address current);

    error CannotUseCurrentValue(uint256 current);

    error CannotUseCurrentState(bool current);

    error InvalidAddress(address invalid);

    error InvalidValue(uint256 invalid);
}

/********************************************************************************************
  ACCESS
********************************************************************************************/

abstract contract Ownable {
    
    // DATA

    address private _owner;

    // MODIFIER

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    // ERROR

    error InvalidOwner(address account);

    error UnauthorizedAccount(address account);

    // CONSTRUCTOR

    constructor(address initialOwner) {
        _transferOwnership(initialOwner);
    }

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

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

    function _checkOwner() internal view virtual {
        if (owner() != msg.sender) {
            revert UnauthorizedAccount(msg.sender);
        }
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert InvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/********************************************************************************************
  TOKEN
********************************************************************************************/

contract ProjectX is Ownable, ICommonError, IERC20 {

    // DATA

    IRouter public router;

    string private constant NAME = "Project X";
    string private constant SYMBOL = "PX";

    uint8 private constant DECIMALS = 18;

    uint256 private _totalSupply;
    
    uint256 public constant FEEDENOMINATOR = 10_000;

    uint256 public constant BUYFEE = 100;
    uint256 public constant SELLFEE = 100;
    uint256 public constant TRANSFERFEE = 0;

    uint256 public totalFeeCollected = 0;
    uint256 public totalFeeRedeemed = 0;
    uint256 public totalTriggerZeusBuyback = 0;
    uint256 public lastTriggerZeusTimestamp = 0;
    uint256 public minSwap = 100 ether;

    bool private constant ISPX = true;

    bool public tradeEnabled = false;
    bool public presaleFinalized = false;
    bool public isFeeActive = false;
    bool public isSwapEnabled = false;
    bool public inSwap = false;

    address public constant ZERO = address(0);
    address public constant DEAD = address(0xdead);
    address public constant PROJECTOWNER = 0xE0aa781648ff8562A5727350876b04f3772746a0;
    address public constant FEERECEIVER = 0xE0aa781648ff8562A5727350876b04f3772746a0;

    address public pair;
    
    // MAPPING

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludeFromFees;
    mapping(address => bool) public isPairLP;

    // MODIFIER

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    // ERROR

    error InvalidTradeEnabledState(bool current);

    error InvalidFeeActiveState(bool current);

    error InvalidSwapEnabledState(bool current);

    error PresaleAlreadyFinalized(bool current);

    error TradeDisabled();

    // CONSTRUCTOR

    constructor() Ownable (msg.sender) {
        _mint(msg.sender, 1_000_000_000 * 10**DECIMALS);

        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());

        isPairLP[pair] = true;

        isExcludeFromFees[msg.sender] = true;
        isExcludeFromFees[PROJECTOWNER] = true;
        isExcludeFromFees[address(router)] = true;
    }

    // EVENT

    event UpdateRouter(address oldRouter, address newRouter, address caller, uint256 timestamp);

    event UpdateMinSwap(uint256 oldMinSwap, uint256 newMinSwap, address caller, uint256 timestamp);

    event UpdateFeeActive(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    event UpdateSwapEnabled(bool oldStatus, bool newStatus, address caller, uint256 timestamp);
        
    event AutoRedeem(uint256 feeDistribution, uint256 amountToRedeem, address caller, uint256 timestamp);

    event EnableTrading(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    // FUNCTION

    /* General */

    receive() external payable {}

    function enableTrading() external onlyOwner {
        if (tradeEnabled) { revert InvalidTradeEnabledState(tradeEnabled); }
        if (isFeeActive) { revert InvalidFeeActiveState(isFeeActive); }
        if (isSwapEnabled) { revert InvalidSwapEnabledState(isSwapEnabled); }
        tradeEnabled = true;
        isFeeActive = true;
        isSwapEnabled = true;
        presaleFinalized = true;
    }

    function finalizePresale() external onlyOwner {
        if (presaleFinalized) { revert PresaleAlreadyFinalized(presaleFinalized); }
        if (isFeeActive) { revert InvalidFeeActiveState(isFeeActive); }
        if (isSwapEnabled) { revert InvalidSwapEnabledState(isSwapEnabled); }
        isFeeActive = true;
        isSwapEnabled = true;
        presaleFinalized = true;
    }

    /* Redeem */

    function autoRedeem(uint256 amountToRedeem) public swapping {          
        totalFeeRedeemed += amountToRedeem;

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

        _approve(address(this), address(router), amountToRedeem);
        
        emit AutoRedeem(amountToRedeem, amountToRedeem, msg.sender, block.timestamp);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToRedeem,
            0,
            path,
            FEERECEIVER,
            block.timestamp
        );
    }

    /* Check */

    function isProjectX() external pure returns (bool) {
        return ISPX;
    }

    function circulatingSupply() external view returns (uint256) {
        return totalSupply() - balanceOf(DEAD) - balanceOf(ZERO);
    }

    /* Update */

    function updateRouter(address newRouter) external onlyOwner {
        if (address(router) == newRouter) { revert CannotUseCurrentAddress(newRouter); }
        address oldRouter = address(router);
        router = IRouter(newRouter);
        
        isExcludeFromFees[newRouter] = true;

        emit UpdateRouter(oldRouter, newRouter, msg.sender, block.timestamp);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        isPairLP[pair] = true;
    }

    function updateMinSwap(uint256 newMinSwap) external onlyOwner {
        if (minSwap == newMinSwap) { revert CannotUseCurrentValue(newMinSwap); }
        uint256 oldMinSwap = minSwap;
        minSwap = newMinSwap;
        emit UpdateMinSwap(oldMinSwap, newMinSwap, msg.sender, block.timestamp);
    }

    function updateFeeActive(bool newStatus) external onlyOwner {
        if (isFeeActive == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isFeeActive;
        isFeeActive = newStatus;
        emit UpdateFeeActive(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function updateSwapEnabled(bool newStatus) external onlyOwner {
        if (isSwapEnabled == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isSwapEnabled;
        isSwapEnabled = newStatus;
        emit UpdateSwapEnabled(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function setExcludeFromFees(address user, bool status) external onlyOwner {
        if (isExcludeFromFees[user] == status) { revert CannotUseCurrentState(status); }
        isExcludeFromFees[user] = status;
    }

    function setPairLP(address lpPair, bool status) external onlyOwner {
        if (isPairLP[lpPair] == status) { revert CannotUseCurrentState(status); }
        if (IPair(lpPair).token0() != address(this) && IPair(lpPair).token1() != address(this)) { revert InvalidAddress(lpPair); }
        isPairLP[lpPair] = status;
    }

    /* Fee */

    function takeBuyFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * BUYFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeSellFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * SELLFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeTransferFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * TRANSFERFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function tallyCollection(address from, uint256 collectFee) internal swapping {
        totalFeeCollected += collectFee;
        _balances[from] -= collectFee;
        _balances[address(this)] += collectFee;
    }

    /* Buyback */

    function triggerZeusBuyback(uint256 amount) external onlyOwner {
        totalTriggerZeusBuyback += amount;
        lastTriggerZeusTimestamp = block.timestamp;
        buyTokens(amount, DEAD);
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        if (msg.sender == DEAD) { revert InvalidAddress(DEAD); }
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: amount
        } (0, path, to, block.timestamp);
    }

    /* ERC20 Standard */

    function name() external view virtual override returns (string memory) {
        return NAME;
    }
    
    function symbol() external view virtual override returns (string memory) {
        return SYMBOL;
    }
    
    function decimals() external view virtual override returns (uint8) {
        return DECIMALS;
    }
    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address to, uint256 amount) external virtual override returns (bool) {
        address provider = msg.sender;
        return _transfer(provider, to, amount);
    }
    
    function allowance(address provider, address spender) public view virtual override returns (uint256) {
        return _allowances[provider][spender];
    }
    
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, amount);
        return true;
    }
    
    function transferFrom(address from, address to, uint256 amount) external virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        return _transfer(from, to, amount);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, allowance(provider, spender) + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        address provider = msg.sender;
        uint256 currentAllowance = allowance(provider, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(provider, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        if (account == ZERO) { revert InvalidAddress(account); }

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    function _approve(address provider, address spender, uint256 amount) internal virtual {
        if (provider == ZERO) { revert InvalidAddress(provider); }
        if (spender == ZERO) { revert InvalidAddress(spender); }

        _allowances[provider][spender] = amount;
        emit Approval(provider, spender, amount);
    }
    
    function _spendAllowance(address provider, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(provider, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(provider, spender, currentAllowance - amount);
            }
        }
    }

    /* Additional */

    function _basicTransfer(address from, address to, uint256 amount ) internal returns (bool) {
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
        return true;
    }
    
    /* Overrides */
 
    function _transfer(address from, address to, uint256 amount) internal virtual returns (bool) {
        if (from == ZERO) { revert InvalidAddress(from); }
        if (to == ZERO) { revert InvalidAddress(to); }

        if (!tradeEnabled && !isExcludeFromFees[from] && !isExcludeFromFees[to]) { revert TradeDisabled(); }

        if (inSwap || isExcludeFromFees[from]) {
            return _basicTransfer(from, to, amount);
        }

        if (from != pair && isSwapEnabled && balanceOf(address(this)) >= minSwap && totalFeeCollected - totalFeeRedeemed >= minSwap) {
            autoRedeem(minSwap);
        }

        uint256 newAmount = amount;

        if (isFeeActive && !isExcludeFromFees[from] && !isExcludeFromFees[to]) {
            newAmount = _beforeTokenTransfer(from, to, amount);
        }

        require(_balances[from] >= newAmount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = _balances[from] - newAmount;
            _balances[to] += newAmount;
        }

        emit Transfer(from, to, newAmount);

        return true;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal swapping virtual returns (uint256) {
        if (isPairLP[from] && (BUYFEE > 0)) {
            return takeBuyFee(from, amount);
        }
        if (isPairLP[to] && (SELLFEE > 0)) {
            return takeSellFee(from, amount);
        }
        if (!isPairLP[from] && !isPairLP[to] && (TRANSFERFEE > 0)) {
            return takeTransferFee(from, amount);
        }
        return amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"current","type":"address"}],"name":"CannotUseCurrentAddress","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"CannotUseCurrentState","type":"error"},{"inputs":[{"internalType":"uint256","name":"current","type":"uint256"}],"name":"CannotUseCurrentValue","type":"error"},{"inputs":[{"internalType":"address","name":"invalid","type":"address"}],"name":"InvalidAddress","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidFeeActiveState","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidOwner","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidSwapEnabledState","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidTradeEnabledState","type":"error"},{"inputs":[{"internalType":"uint256","name":"invalid","type":"uint256"}],"name":"InvalidValue","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"PresaleAlreadyFinalized","type":"error"},{"inputs":[],"name":"TradeDisabled","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"UnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeDistribution","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToRedeem","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AutoRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"EnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateFeeActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinSwap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinSwap","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateMinSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateSwapEnabled","type":"event"},{"inputs":[],"name":"BUYFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEEDENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEERECEIVER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECTOWNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELLFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFERFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"provider","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":"uint256","name":"amountToRedeem","type":"uint256"}],"name":"autoRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProjectX","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTriggerZeusTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpPair","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPairLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeRedeemed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTriggerZeusBuyback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateFeeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwap","type":"uint256"}],"name":"updateMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060038190556004819055600581905560065568056bc75e2d631000006007556008805464ffffffffff191690553480156200004057600080fd5b50336200004d81620002a7565b506200007733620000616012600a620004b0565b6200007190633b9aca00620004c8565b620002f7565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620000dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001029190620004e2565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b9190620004e2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff9190620004e2565b60088054600160281b600160c81b031916650100000000006001600160a01b0393841681029190911791829055900481166000908152600c60209081526040808320805460ff199081166001908117909255338552600b90935281842080548416821790557f1bfef16158bb73004cc3b71f85db9cc9ba8c86b12996fc9753bbd41bfe74f8ab8054841682179055805490941683529091208054909116909117905562000523565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200032e57604051634726455360e11b81526001600160a01b038316600482015260240160405180910390fd5b80600260008282546200034291906200050d565b90915550506001600160a01b0382166000818152600960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f2578160001904821115620003d657620003d66200039b565b80851615620003e457918102915b93841c9390800290620003b6565b509250929050565b6000826200040b57506001620004aa565b816200041a57506000620004aa565b81600181146200043357600281146200043e576200045e565b6001915050620004aa565b60ff8411156200045257620004526200039b565b50506001821b620004aa565b5060208310610133831016604e8410600b841016171562000483575081810a620004aa565b6200048f8383620003b1565b8060001904821115620004a657620004a66200039b565b0290505b92915050565b6000620004c160ff841683620003fa565b9392505050565b8082028115828204841417620004aa57620004aa6200039b565b600060208284031215620004f557600080fd5b81516001600160a01b0381168114620004c157600080fd5b80820180821115620004aa57620004aa6200039b565b611fe380620005336000396000f3fe6080604052600436106102575760003560e01c806378eec3311161013a578063b9b2b5cd116100b1578063b9b2b5cd1461068a578063c76c529f146106a0578063c851cc32146106b4578063d621e813146106d4578063d63cad22146106ee578063d83067861461070e578063da4daf711461072f578063dd62ed3e14610745578063e43504da14610765578063f2a4268714610785578063f2fde38b146107b5578063f887ea40146107d557600080fd5b806378eec331146103fd5780638a8c523c1461054f5780638da5cb5b14610564578063924de9b7146105825780639358928b146105a257806395d89b41146105b757806397e1b9d3146105e2578063a0a6e940146105f8578063a457c2d71461060d578063a8aa1b311461062d578063a9059cbb14610654578063ab28a04c1461067457600080fd5b80633bf31454116101ce5780633bf31454146104255780633fc8aa8f1461044557806358fa63ca1461045a57806359cd90311461046f578063625dd6051461048557806363a95492146104a5578063690f776b146104455780636d498093146104c557806370a08231146104e4578063715018a61461050457806371538eed1461051957806375fed3c71461052f57600080fd5b8063012951431461026357806303fd2a451461028557806306fdde03146102b157806308c43650146102ec578063095ea7b31461032c57806318160ddd1461034c57806323b872dd1461036b5780632ce0c0a01461038b578063313ce567146103a0578063351a964d146103bc57806339509351146103dd57806339d445bf146103fd57600080fd5b3661025e57005b600080fd5b34801561026f57600080fd5b5061028361027e366004611c08565b6107f5565b005b34801561029157600080fd5b5061029b61dead81565b6040516102a89190611c21565b60405180910390f35b3480156102bd57600080fd5b506040805180820190915260098152680a0e4ded4cac6e840b60bb1b60208201525b6040516102a89190611c35565b3480156102f857600080fd5b5061031c610307366004611c98565b600c6020526000908152604090205460ff1681565b60405190151581526020016102a8565b34801561033857600080fd5b5061031c610347366004611cb5565b6109da565b34801561035857600080fd5b506002545b6040519081526020016102a8565b34801561037757600080fd5b5061031c610386366004611ce1565b6109f4565b34801561039757600080fd5b5061035d600081565b3480156103ac57600080fd5b50604051601281526020016102a8565b3480156103c857600080fd5b5060085461031c906301000000900460ff1681565b3480156103e957600080fd5b5061031c6103f8366004611cb5565b610a18565b34801561040957600080fd5b5061029b73e0aa781648ff8562a5727350876b04f3772746a081565b34801561043157600080fd5b50610283610440366004611d37565b610a3a565b34801561045157600080fd5b5061035d606481565b34801561046657600080fd5b5061029b600081565b34801561047b57600080fd5b5061035d60075481565b34801561049157600080fd5b506102836104a0366004611d52565b610ae1565b3480156104b157600080fd5b506102836104c0366004611c08565b610c6e565b3480156104d157600080fd5b5060085461031c90610100900460ff1681565b3480156104f057600080fd5b5061035d6104ff366004611c98565b610ca0565b34801561051057600080fd5b50610283610cbb565b34801561052557600080fd5b5061035d60045481565b34801561053b57600080fd5b5061028361054a366004611c08565b610ccf565b34801561055b57600080fd5b50610283610d3a565b34801561057057600080fd5b506000546001600160a01b031661029b565b34801561058e57600080fd5b5061028361059d366004611d37565b610dfc565b3480156105ae57600080fd5b5061035d610e94565b3480156105c357600080fd5b506040805180820190915260028152610a0b60f31b60208201526102df565b3480156105ee57600080fd5b5061035d60065481565b34801561060457600080fd5b50610283610ec7565b34801561061957600080fd5b5061031c610628366004611cb5565b610f91565b34801561063957600080fd5b5060085461029b90600160281b90046001600160a01b031681565b34801561066057600080fd5b5061031c61066f366004611cb5565b611017565b34801561068057600080fd5b5061035d61271081565b34801561069657600080fd5b5061035d60035481565b3480156106ac57600080fd5b50600161031c565b3480156106c057600080fd5b506102836106cf366004611c98565b61102d565b3480156106e057600080fd5b5060085461031c9060ff1681565b3480156106fa57600080fd5b50610283610709366004611d52565b6112a2565b34801561071a57600080fd5b5060085461031c90600160201b900460ff1681565b34801561073b57600080fd5b5061035d60055481565b34801561075157600080fd5b5061035d610760366004611d87565b611319565b34801561077157600080fd5b5060085461031c9062010000900460ff1681565b34801561079157600080fd5b5061031c6107a0366004611c98565b600b6020526000908152604090205460ff1681565b3480156107c157600080fd5b506102836107d0366004611c98565b611344565b3480156107e157600080fd5b5060015461029b906001600160a01b031681565b6008805460ff60201b1916600160201b1790556004805482919060009061081d908490611dd6565b9091555050604080516002808252606082018352600092602083019080368337019050509050308160008151811061085757610857611de9565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611dff565b816001815181106108e7576108e7611de9565b6001600160a01b03928316602091820292909201015260015461090d913091168461137f565b7fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c30828333426040516109429493929190611e1c565b60405180910390a160015460405163791ac94760e01b81526001600160a01b039091169063791ac94790610997908590600090869073e0aa781648ff8562a5727350876b04f3772746a0904290600401611e84565b600060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b50506008805460ff60201b1916905550505050565b6000336109e881858561137f565b60019150505b92915050565b600033610a02858285611432565b610a0d8585856114ac565b9150505b9392505050565b6000336109e8818585610a2b8383611319565b610a359190611dd6565b61137f565b610a4261173f565b801515600860029054906101000a900460ff16151503610a7d5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b6008805462ff00001981166201000084151581029190911790925560405191900460ff16907ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f90610ad5908390859033904290611ec0565b60405180910390a15050565b610ae961173f565b6001600160a01b0382166000908152600c602052604090205481151560ff909116151503610b2d5760405162a7e72d60e41b81528115156004820152602401610a74565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190611dff565b6001600160a01b031614158015610c235750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611dff565b6001600160a01b031614155b15610c435781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610c7661173f565b8060056000828254610c889190611dd6565b909155505042600655610c9d8161dead61177b565b50565b6001600160a01b031660009081526009602052604090205490565b610cc361173f565b610ccd6000611914565b565b610cd761173f565b8060075403610cfc5760405163657e16cf60e01b815260048101829052602401610a74565b60078054908290556040517f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590610ad5908390859033904290611e1c565b610d4261173f565b60085460ff1615610d71576008546040516301bf623960e61b815260ff90911615156004820152602401610a74565b60085462010000900460ff1615610dab57600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610de75760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffffff19166301010101179055565b610e0461173f565b801515600860039054906101000a900460ff16151503610e3a5760405162a7e72d60e41b81528115156004820152602401610a74565b6008805463ff000000198116630100000084151581029190911790925560405191900460ff16907fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490610ad5908390859033904290611ec0565b6000610ea06000610ca0565b610eab61dead610ca0565b600254610eb89190611ee6565b610ec29190611ee6565b905090565b610ecf61173f565b600854610100900460ff1615610f0657600854604051624dc03960e01b815261010090910460ff1615156004820152602401610a74565b60085462010000900460ff1615610f4057600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610f7c5760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffff0019166301010100179055565b60003381610f9f8286611319565b905083811015610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a74565b61100c828686840361137f565b506001949350505050565b6000336110258185856114ac565b949350505050565b61103561173f565b6001546001600160a01b03808316911603611065578060405163a936636960e01b8152600401610a749190611c21565b600180546001600160a01b038381166001600160a01b03198316811784556000818152600b6020908152604091829020805460ff19169096179095558051929093168083529382015233918101919091524260608201527fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111609190611dff565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e69190611dff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611dff565b60088054600160281b600160c81b031916600160281b6001600160a01b03938416810291909117918290559004166000908152600c60205260409020805460ff191660011790555050565b6112aa61173f565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036112ee5760405162a7e72d60e41b81528115156004820152602401610a74565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61134c61173f565b6001600160a01b03811661137657600060405163b20f76e360e01b8152600401610a749190611c21565b610c9d81611914565b6001600160a01b0383166113a85782604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0382166113d15781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061143e8484611319565b905060001981146114a657818110156114995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a74565b6114a6848484840361137f565b50505050565b60006001600160a01b0384166114d75783604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0383166115005782604051634726455360e11b8152600401610a749190611c21565b60085460ff1615801561152c57506001600160a01b0384166000908152600b602052604090205460ff16155b801561155157506001600160a01b0383166000908152600b602052604090205460ff16155b1561156f57604051632b61510560e11b815260040160405180910390fd5b600854600160201b900460ff168061159f57506001600160a01b0384166000908152600b602052604090205460ff165b156115b6576115af848484611964565b9050610a11565b6008546001600160a01b03858116600160281b90920416148015906115e457506008546301000000900460ff165b80156115fa57506007546115f730610ca0565b10155b801561161757506007546004546003546116149190611ee6565b10155b15611627576116276007546107f5565b600854829062010000900460ff16801561165a57506001600160a01b0385166000908152600b602052604090205460ff16155b801561167f57506001600160a01b0384166000908152600b602052604090205460ff16155b156116925761168f8585856119fd565b90505b6001600160a01b0385166000908152600960205260409020548111156116ca5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b03808616600081815260096020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9085815260200190565b60405180910390a3506001949350505050565b336117526000546001600160a01b031690565b6001600160a01b031614610ccd57336040516332b2baa360e01b8152600401610a749190611c21565b6008805460ff60201b1916600160201b17905561deac1933016117b55761dead604051634726455360e11b8152600401610a749190611c21565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190611dff565b8160008151811061185657611856611de9565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061188a5761188a611de9565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de959085906118d090600090869088904290600401611f3f565b6000604051808303818588803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b50506008805460ff60201b19169055505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600960205260408120548281101561199d5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b0380861660008181526009602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9087815260200190565b6008805460ff60201b1916600160201b1790556001600160a01b0383166000908152600c602052604081205460ff168015611a36575060015b15611a4c57611a458483611af3565b9050611adf565b6001600160a01b0383166000908152600c602052604090205460ff168015611a72575060015b15611a8157611a458483611af3565b6001600160a01b0384166000908152600c602052604090205460ff16158015611ac357506001600160a01b0383166000908152600c602052604090205460ff16155b8015611acd575060005b15611adc57611a458483611b56565b50805b6008805460ff60201b191690559392505050565b6008805460ff60201b1916600160201b179055600080612710611b17606485611f74565b611b219190611f8b565b90506000611b2f8285611ee6565b90508115611b4157611b418583611b79565b6008805460ff60201b19169055949350505050565b6008805460ff60201b1916600160201b179055600080612710611b178285611f74565b6008805460ff60201b1916600160201b17905560038054829190600090611ba1908490611dd6565b90915550506001600160a01b03821660009081526009602052604081208054839290611bce908490611ee6565b90915550503060009081526009602052604081208054839290611bf2908490611dd6565b90915550506008805460ff60201b191690555050565b600060208284031215611c1a57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208083528351808285015260005b81811015611c6257858101830151858201604001528201611c46565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b600060208284031215611caa57600080fd5b8135610a1181611c83565b60008060408385031215611cc857600080fd5b8235611cd381611c83565b946020939093013593505050565b600080600060608486031215611cf657600080fd5b8335611d0181611c83565b92506020840135611d1181611c83565b929592945050506040919091013590565b80358015158114611d3257600080fd5b919050565b600060208284031215611d4957600080fd5b610a1182611d22565b60008060408385031215611d6557600080fd5b8235611d7081611c83565b9150611d7e60208401611d22565b90509250929050565b60008060408385031215611d9a57600080fd5b8235611da581611c83565b91506020830135611db581611c83565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ee576109ee611dc0565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1157600080fd5b8151610a1181611c83565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600081518084526020808501945080840160005b83811015611e795781516001600160a01b031687529582019590820190600101611e54565b509495945050505050565b85815284602082015260a060408201526000611ea360a0830186611e40565b6001600160a01b0394909416606083015250608001529392505050565b931515845291151560208401526001600160a01b03166040830152606082015260800190565b818103818111156109ee576109ee611dc0565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b848152608060208201526000611f586080830186611e40565b6001600160a01b03949094166040830152506060015292915050565b80820281158282048414176109ee576109ee611dc0565b600082611fa857634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209b5e87ea352af447780b2d21001c14467a6d0c5e312dfe5973de9084c4a12e7d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102575760003560e01c806378eec3311161013a578063b9b2b5cd116100b1578063b9b2b5cd1461068a578063c76c529f146106a0578063c851cc32146106b4578063d621e813146106d4578063d63cad22146106ee578063d83067861461070e578063da4daf711461072f578063dd62ed3e14610745578063e43504da14610765578063f2a4268714610785578063f2fde38b146107b5578063f887ea40146107d557600080fd5b806378eec331146103fd5780638a8c523c1461054f5780638da5cb5b14610564578063924de9b7146105825780639358928b146105a257806395d89b41146105b757806397e1b9d3146105e2578063a0a6e940146105f8578063a457c2d71461060d578063a8aa1b311461062d578063a9059cbb14610654578063ab28a04c1461067457600080fd5b80633bf31454116101ce5780633bf31454146104255780633fc8aa8f1461044557806358fa63ca1461045a57806359cd90311461046f578063625dd6051461048557806363a95492146104a5578063690f776b146104455780636d498093146104c557806370a08231146104e4578063715018a61461050457806371538eed1461051957806375fed3c71461052f57600080fd5b8063012951431461026357806303fd2a451461028557806306fdde03146102b157806308c43650146102ec578063095ea7b31461032c57806318160ddd1461034c57806323b872dd1461036b5780632ce0c0a01461038b578063313ce567146103a0578063351a964d146103bc57806339509351146103dd57806339d445bf146103fd57600080fd5b3661025e57005b600080fd5b34801561026f57600080fd5b5061028361027e366004611c08565b6107f5565b005b34801561029157600080fd5b5061029b61dead81565b6040516102a89190611c21565b60405180910390f35b3480156102bd57600080fd5b506040805180820190915260098152680a0e4ded4cac6e840b60bb1b60208201525b6040516102a89190611c35565b3480156102f857600080fd5b5061031c610307366004611c98565b600c6020526000908152604090205460ff1681565b60405190151581526020016102a8565b34801561033857600080fd5b5061031c610347366004611cb5565b6109da565b34801561035857600080fd5b506002545b6040519081526020016102a8565b34801561037757600080fd5b5061031c610386366004611ce1565b6109f4565b34801561039757600080fd5b5061035d600081565b3480156103ac57600080fd5b50604051601281526020016102a8565b3480156103c857600080fd5b5060085461031c906301000000900460ff1681565b3480156103e957600080fd5b5061031c6103f8366004611cb5565b610a18565b34801561040957600080fd5b5061029b73e0aa781648ff8562a5727350876b04f3772746a081565b34801561043157600080fd5b50610283610440366004611d37565b610a3a565b34801561045157600080fd5b5061035d606481565b34801561046657600080fd5b5061029b600081565b34801561047b57600080fd5b5061035d60075481565b34801561049157600080fd5b506102836104a0366004611d52565b610ae1565b3480156104b157600080fd5b506102836104c0366004611c08565b610c6e565b3480156104d157600080fd5b5060085461031c90610100900460ff1681565b3480156104f057600080fd5b5061035d6104ff366004611c98565b610ca0565b34801561051057600080fd5b50610283610cbb565b34801561052557600080fd5b5061035d60045481565b34801561053b57600080fd5b5061028361054a366004611c08565b610ccf565b34801561055b57600080fd5b50610283610d3a565b34801561057057600080fd5b506000546001600160a01b031661029b565b34801561058e57600080fd5b5061028361059d366004611d37565b610dfc565b3480156105ae57600080fd5b5061035d610e94565b3480156105c357600080fd5b506040805180820190915260028152610a0b60f31b60208201526102df565b3480156105ee57600080fd5b5061035d60065481565b34801561060457600080fd5b50610283610ec7565b34801561061957600080fd5b5061031c610628366004611cb5565b610f91565b34801561063957600080fd5b5060085461029b90600160281b90046001600160a01b031681565b34801561066057600080fd5b5061031c61066f366004611cb5565b611017565b34801561068057600080fd5b5061035d61271081565b34801561069657600080fd5b5061035d60035481565b3480156106ac57600080fd5b50600161031c565b3480156106c057600080fd5b506102836106cf366004611c98565b61102d565b3480156106e057600080fd5b5060085461031c9060ff1681565b3480156106fa57600080fd5b50610283610709366004611d52565b6112a2565b34801561071a57600080fd5b5060085461031c90600160201b900460ff1681565b34801561073b57600080fd5b5061035d60055481565b34801561075157600080fd5b5061035d610760366004611d87565b611319565b34801561077157600080fd5b5060085461031c9062010000900460ff1681565b34801561079157600080fd5b5061031c6107a0366004611c98565b600b6020526000908152604090205460ff1681565b3480156107c157600080fd5b506102836107d0366004611c98565b611344565b3480156107e157600080fd5b5060015461029b906001600160a01b031681565b6008805460ff60201b1916600160201b1790556004805482919060009061081d908490611dd6565b9091555050604080516002808252606082018352600092602083019080368337019050509050308160008151811061085757610857611de9565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611dff565b816001815181106108e7576108e7611de9565b6001600160a01b03928316602091820292909201015260015461090d913091168461137f565b7fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c30828333426040516109429493929190611e1c565b60405180910390a160015460405163791ac94760e01b81526001600160a01b039091169063791ac94790610997908590600090869073e0aa781648ff8562a5727350876b04f3772746a0904290600401611e84565b600060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b50506008805460ff60201b1916905550505050565b6000336109e881858561137f565b60019150505b92915050565b600033610a02858285611432565b610a0d8585856114ac565b9150505b9392505050565b6000336109e8818585610a2b8383611319565b610a359190611dd6565b61137f565b610a4261173f565b801515600860029054906101000a900460ff16151503610a7d5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b6008805462ff00001981166201000084151581029190911790925560405191900460ff16907ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f90610ad5908390859033904290611ec0565b60405180910390a15050565b610ae961173f565b6001600160a01b0382166000908152600c602052604090205481151560ff909116151503610b2d5760405162a7e72d60e41b81528115156004820152602401610a74565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190611dff565b6001600160a01b031614158015610c235750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611dff565b6001600160a01b031614155b15610c435781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610c7661173f565b8060056000828254610c889190611dd6565b909155505042600655610c9d8161dead61177b565b50565b6001600160a01b031660009081526009602052604090205490565b610cc361173f565b610ccd6000611914565b565b610cd761173f565b8060075403610cfc5760405163657e16cf60e01b815260048101829052602401610a74565b60078054908290556040517f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590610ad5908390859033904290611e1c565b610d4261173f565b60085460ff1615610d71576008546040516301bf623960e61b815260ff90911615156004820152602401610a74565b60085462010000900460ff1615610dab57600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610de75760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffffff19166301010101179055565b610e0461173f565b801515600860039054906101000a900460ff16151503610e3a5760405162a7e72d60e41b81528115156004820152602401610a74565b6008805463ff000000198116630100000084151581029190911790925560405191900460ff16907fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490610ad5908390859033904290611ec0565b6000610ea06000610ca0565b610eab61dead610ca0565b600254610eb89190611ee6565b610ec29190611ee6565b905090565b610ecf61173f565b600854610100900460ff1615610f0657600854604051624dc03960e01b815261010090910460ff1615156004820152602401610a74565b60085462010000900460ff1615610f4057600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610f7c5760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffff0019166301010100179055565b60003381610f9f8286611319565b905083811015610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a74565b61100c828686840361137f565b506001949350505050565b6000336110258185856114ac565b949350505050565b61103561173f565b6001546001600160a01b03808316911603611065578060405163a936636960e01b8152600401610a749190611c21565b600180546001600160a01b038381166001600160a01b03198316811784556000818152600b6020908152604091829020805460ff19169096179095558051929093168083529382015233918101919091524260608201527fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111609190611dff565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e69190611dff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611dff565b60088054600160281b600160c81b031916600160281b6001600160a01b03938416810291909117918290559004166000908152600c60205260409020805460ff191660011790555050565b6112aa61173f565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036112ee5760405162a7e72d60e41b81528115156004820152602401610a74565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61134c61173f565b6001600160a01b03811661137657600060405163b20f76e360e01b8152600401610a749190611c21565b610c9d81611914565b6001600160a01b0383166113a85782604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0382166113d15781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061143e8484611319565b905060001981146114a657818110156114995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a74565b6114a6848484840361137f565b50505050565b60006001600160a01b0384166114d75783604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0383166115005782604051634726455360e11b8152600401610a749190611c21565b60085460ff1615801561152c57506001600160a01b0384166000908152600b602052604090205460ff16155b801561155157506001600160a01b0383166000908152600b602052604090205460ff16155b1561156f57604051632b61510560e11b815260040160405180910390fd5b600854600160201b900460ff168061159f57506001600160a01b0384166000908152600b602052604090205460ff165b156115b6576115af848484611964565b9050610a11565b6008546001600160a01b03858116600160281b90920416148015906115e457506008546301000000900460ff165b80156115fa57506007546115f730610ca0565b10155b801561161757506007546004546003546116149190611ee6565b10155b15611627576116276007546107f5565b600854829062010000900460ff16801561165a57506001600160a01b0385166000908152600b602052604090205460ff16155b801561167f57506001600160a01b0384166000908152600b602052604090205460ff16155b156116925761168f8585856119fd565b90505b6001600160a01b0385166000908152600960205260409020548111156116ca5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b03808616600081815260096020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9085815260200190565b60405180910390a3506001949350505050565b336117526000546001600160a01b031690565b6001600160a01b031614610ccd57336040516332b2baa360e01b8152600401610a749190611c21565b6008805460ff60201b1916600160201b17905561deac1933016117b55761dead604051634726455360e11b8152600401610a749190611c21565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190611dff565b8160008151811061185657611856611de9565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061188a5761188a611de9565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de959085906118d090600090869088904290600401611f3f565b6000604051808303818588803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b50506008805460ff60201b19169055505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600960205260408120548281101561199d5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b0380861660008181526009602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9087815260200190565b6008805460ff60201b1916600160201b1790556001600160a01b0383166000908152600c602052604081205460ff168015611a36575060015b15611a4c57611a458483611af3565b9050611adf565b6001600160a01b0383166000908152600c602052604090205460ff168015611a72575060015b15611a8157611a458483611af3565b6001600160a01b0384166000908152600c602052604090205460ff16158015611ac357506001600160a01b0383166000908152600c602052604090205460ff16155b8015611acd575060005b15611adc57611a458483611b56565b50805b6008805460ff60201b191690559392505050565b6008805460ff60201b1916600160201b179055600080612710611b17606485611f74565b611b219190611f8b565b90506000611b2f8285611ee6565b90508115611b4157611b418583611b79565b6008805460ff60201b19169055949350505050565b6008805460ff60201b1916600160201b179055600080612710611b178285611f74565b6008805460ff60201b1916600160201b17905560038054829190600090611ba1908490611dd6565b90915550506001600160a01b03821660009081526009602052604081208054839290611bce908490611ee6565b90915550503060009081526009602052604081208054839290611bf2908490611dd6565b90915550506008805460ff60201b191690555050565b600060208284031215611c1a57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208083528351808285015260005b81811015611c6257858101830151858201604001528201611c46565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b600060208284031215611caa57600080fd5b8135610a1181611c83565b60008060408385031215611cc857600080fd5b8235611cd381611c83565b946020939093013593505050565b600080600060608486031215611cf657600080fd5b8335611d0181611c83565b92506020840135611d1181611c83565b929592945050506040919091013590565b80358015158114611d3257600080fd5b919050565b600060208284031215611d4957600080fd5b610a1182611d22565b60008060408385031215611d6557600080fd5b8235611d7081611c83565b9150611d7e60208401611d22565b90509250929050565b60008060408385031215611d9a57600080fd5b8235611da581611c83565b91506020830135611db581611c83565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ee576109ee611dc0565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1157600080fd5b8151610a1181611c83565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600081518084526020808501945080840160005b83811015611e795781516001600160a01b031687529582019590820190600101611e54565b509495945050505050565b85815284602082015260a060408201526000611ea360a0830186611e40565b6001600160a01b0394909416606083015250608001529392505050565b931515845291151560208401526001600160a01b03166040830152606082015260800190565b818103818111156109ee576109ee611dc0565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b848152608060208201526000611f586080830186611e40565b6001600160a01b03949094166040830152506060015292915050565b80820281158282048414176109ee576109ee611dc0565b600082611fa857634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209b5e87ea352af447780b2d21001c14467a6d0c5e312dfe5973de9084c4a12e7d64736f6c63430008120033

Deployed Bytecode Sourcemap

5274:14031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9147:611;;;;;;;;;;-1:-1:-1;9147:611:0;;;;;:::i;:::-;;:::i;:::-;;6263:46;;;;;;;;;;;;6302:6;6263:46;;;;;;;;;:::i;:::-;;;;;;;;13956:101;;;;;;;;;;-1:-1:-1;14045:4:0;;;;;;;;;;;;-1:-1:-1;;;14045:4:0;;;;13956:101;;;;;;;:::i;6725:40::-;;;;;;;;;;-1:-1:-1;6725:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1513:14:1;;1506:22;1488:41;;1476:2;1461:18;6725:40:0;1348:187:1;14923:205:0;;;;;;;;;;-1:-1:-1;14923:205:0;;;;;:::i;:::-;;:::i;14299:108::-;;;;;;;;;;-1:-1:-1;14387:12:0;;14299:108;;;2006:25:1;;;1994:2;1979:18;14299:108:0;1860:177:1;15140:246:0;;;;;;;;;;-1:-1:-1;15140:246:0;;;;;:::i;:::-;;:::i;5703:39::-;;;;;;;;;;;;5741:1;5703:39;;14186:101;;;;;;;;;;-1:-1:-1;14186:101:0;;5508:2;2645:36:1;;2633:2;2618:18;14186:101:0;2503:184:1;6140:33:0;;;;;;;;;;-1:-1:-1;6140:33:0;;;;;;;;;;;15398:247;;;;;;;;;;-1:-1:-1;15398:247:0;;;;;:::i;:::-;;:::i;6404:80::-;;;;;;;;;;;;6442:42;6404:80;;10854:307;;;;;;;;;;-1:-1:-1;10854:307:0;;;;;:::i;:::-;;:::i;5616:36::-;;;;;;;;;;;;5649:3;5616:36;;6215:41;;;;;;;;;;;;6254:1;6215:41;;5935:34;;;;;;;;;;;;;;;;11717:326;;;;;;;;;;-1:-1:-1;11717:326:0;;;;;:::i;:::-;;:::i;13312:202::-;;;;;;;;;;-1:-1:-1;13312:202:0;;;;;:::i;:::-;;:::i;6059:36::-;;;;;;;;;;-1:-1:-1;6059:36:0;;;;;;;;;;;14419:127;;;;;;;;;;-1:-1:-1;14419:127:0;;;;;:::i;:::-;;:::i;4543:103::-;;;;;;;;;;;;;:::i;5794:35::-;;;;;;;;;;;;;;;;10542:304;;;;;;;;;;-1:-1:-1;10542:304:0;;;;;:::i;:::-;;:::i;8320:406::-;;;;;;;;;;;;;:::i;4285:87::-;;;;;;;;;;-1:-1:-1;4331:7:0;4358:6;-1:-1:-1;;;;;4358:6:0;4285:87;;11169:317;;;;;;;;;;-1:-1:-1;11169:317:0;;;;;:::i;:::-;;:::i;9874:136::-;;;;;;;;;;;;;:::i;14069:105::-;;;;;;;;;;-1:-1:-1;14160:6:0;;;;;;;;;;;;-1:-1:-1;;;14160:6:0;;;;14069:105;;5885:43;;;;;;;;;;;;;;;;8734:385;;;;;;;;;;;;;:::i;15657:445::-;;;;;;;;;;-1:-1:-1;15657:445:0;;;;;:::i;:::-;;:::i;6493:19::-;;;;;;;;;;-1:-1:-1;6493:19:0;;;;-1:-1:-1;;;6493:19:0;;-1:-1:-1;;;;;6493:19:0;;;14558:184;;;;;;;;;;-1:-1:-1;14558:184:0;;;;;:::i;:::-;;:::i;5560:47::-;;;;;;;;;;;;5601:6;5560:47;;5751:36;;;;;;;;;;;;;;;;9785:81;;;;;;;;;;-1:-1:-1;6007:4:0;9785:81;;10038:496;;;;;;;;;;-1:-1:-1;10038:496:0;;;;;:::i;:::-;;:::i;6020:32::-;;;;;;;;;;-1:-1:-1;6020:32:0;;;;;;;;11494:215;;;;;;;;;;-1:-1:-1;11494:215:0;;;;;:::i;:::-;;:::i;6180:26::-;;;;;;;;;;-1:-1:-1;6180:26:0;;;;-1:-1:-1;;;6180:26:0;;;;;;5836:42;;;;;;;;;;;;;;;;14754:157;;;;;;;;;;-1:-1:-1;14754:157:0;;;;;:::i;:::-;;:::i;6102:31::-;;;;;;;;;;-1:-1:-1;6102:31:0;;;;;;;;;;;6669:49;;;;;;;;;;-1:-1:-1;6669:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4654:213;;;;;;;;;;-1:-1:-1;4654:213:0;;;;;:::i;:::-;;:::i;5349:21::-;;;;;;;;;;-1:-1:-1;5349:21:0;;;;-1:-1:-1;;;;;5349:21:0;;;9147:611;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;:6;9228:34;;9248:14;;6824:6;:13;;9228:34:::1;::::0;9248:14;;9228:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;9299:16:0::1;::::0;;9313:1:::1;9299:16:::0;;;;;::::1;::::0;;9275:21:::1;::::0;9299:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9299:16:0::1;9275:40;;9344:4;9326;9331:1;9326:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9326:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9370:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9370:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9326:7;;9370:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9360:4;9365:1;9360:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9360:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9428:6:::1;::::0;9396:56:::1;::::0;9413:4:::1;::::0;9428:6:::1;9437:14:::0;9396:8:::1;:56::i;:::-;9478:71;9489:14;9505;9521:10;9533:15;9478:71;;;;;;;;;:::i;:::-;;;;;;;;9562:6;::::0;:188:::1;::::0;-1:-1:-1;;;9562:188:0;;-1:-1:-1;;;;;9562:6:0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9634:14;;9562:6:::1;::::0;9679:4;;6442:42:::1;::::0;9724:15:::1;::::0;9562:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;;;9147:611:0:o;14923:205::-;15006:4;15042:10;15063:35;15042:10;15082:7;15091:6;15063:8;:35::i;:::-;15116:4;15109:11;;;14923:205;;;;;:::o;15140:246::-;15239:4;15274:10;15295:38;15311:4;15274:10;15326:6;15295:15;:38::i;:::-;15351:27;15361:4;15367:2;15371:6;15351:9;:27::i;:::-;15344:34;;;15140:246;;;;;;:::o;15398:247::-;15488:4;15524:10;15545:70;15524:10;15564:7;15604:10;15573:28;15524:10;15564:7;15573:9;:28::i;:::-;:41;;;;:::i;:::-;15545:8;:70::i;10854:307::-;3883:13;:11;:13::i;:::-;10944:9:::1;10929:24;;:11;;;;;;;;;;;:24;;::::0;10925:74:::1;;10964:32;::::0;-1:-1:-1;;;10964:32:0;;1513:14:1;;1506:22;10964:32:0::1;::::0;::::1;1488:41:1::0;1461:18;;10964:32:0::1;;;;;;;;10925:74;11026:11;::::0;;-1:-1:-1;;11048:23:0;::::1;11026:11:::0;11048:23;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;11087:66:::1;::::0;11026:11;;::::1;;;::::0;11087:66:::1;::::0;::::1;::::0;11026:11;;11048:23;;11125:10:::1;::::0;11137:15:::1;::::0;11087:66:::1;:::i;:::-;;;;;;;;10914:247;10854:307:::0;:::o;11717:326::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;11799:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;;:26;::::1;;:16;::::0;;::::1;:26;;::::0;11795:73:::1;;11836:29;::::0;-1:-1:-1;;;11836:29:0;;1513:14:1;;1506:22;11836:29:0::1;::::0;::::1;1488:41:1::0;1461:18;;11836:29:0::1;1348:187:1::0;11795:73:0::1;11916:4;-1:-1:-1::0;;;;;11882:39:0::1;11888:6;-1:-1:-1::0;;;;;11882:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11882:39:0::1;;;:82;;;;;11959:4;-1:-1:-1::0;;;;;11925:39:0::1;11931:6;-1:-1:-1::0;;;;;11925:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11925:39:0::1;;;11882:82;11878:122;;;11990:6;11975:22;;-1:-1:-1::0;;;11975:22:0::1;;;;;;;;:::i;11878:122::-;-1:-1:-1::0;;;;;12010:16:0;;;::::1;;::::0;;;:8:::1;:16;::::0;;;;:25;;-1:-1:-1;;12010:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11717:326::o;13312:202::-;3883:13;:11;:13::i;:::-;13413:6:::1;13386:23;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13457:15:0::1;13430:24;:42:::0;13483:23:::1;13493:6:::0;6302::::1;13483:9;:23::i;:::-;13312:202:::0;:::o;14419:127::-;-1:-1:-1;;;;;14520:18:0;14493:7;14520:18;;;:9;:18;;;;;;;14419:127::o;4543:103::-;3883:13;:11;:13::i;:::-;4608:30:::1;4635:1;4608:18;:30::i;:::-;4543:103::o:0;10542:304::-;3883:13;:11;:13::i;:::-;10630:10:::1;10619:7;;:21:::0;10615:72:::1;;10651:33;::::0;-1:-1:-1;;;10651:33:0;;::::1;::::0;::::1;2006:25:1::0;;;1979:18;;10651:33:0::1;1860:177:1::0;10615:72:0::1;10718:7;::::0;;10736:20;;;;10772:66:::1;::::0;::::1;::::0;::::1;::::0;10718:7;;10746:10;;10810::::1;::::0;10822:15:::1;::::0;10772:66:::1;:::i;8320:406::-:0;3883:13;:11;:13::i;:::-;8379:12:::1;::::0;::::1;;8375:68;;;8427:12;::::0;8402:38:::1;::::0;-1:-1:-1;;;8402:38:0;;8427:12:::1;::::0;;::::1;1513:14:1::0;1506:22;8402:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8402:38:0::1;1348:187:1::0;8375:68:0::1;8457:11;::::0;;;::::1;;;8453:63;;;8501:11;::::0;8479:34:::1;::::0;-1:-1:-1;;;8479:34:0;;8501:11;;;::::1;;;1513:14:1::0;1506:22;8479:34:0::1;::::0;::::1;1488:41:1::0;1461:18;;8479:34:0::1;1348:187:1::0;8453:63:0::1;8530:13;::::0;;;::::1;;;8526:69;;;8578:13;::::0;8554:38:::1;::::0;-1:-1:-1;;;8554:38:0;;8578:13;;;::::1;;;1513:14:1::0;1506:22;8554:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8554:38:0::1;1348:187:1::0;8526:69:0::1;8605:12;:19:::0;;-1:-1:-1;;8695:23:0;;;;;8320:406::o;11169:317::-;3883:13;:11;:13::i;:::-;11263:9:::1;11246:26;;:13;;;;;;;;;;;:26;;::::0;11242:76:::1;;11283:32;::::0;-1:-1:-1;;;11283:32:0;;1513:14:1;;1506:22;11283:32:0::1;::::0;::::1;1488:41:1::0;1461:18;;11283:32:0::1;1348:187:1::0;11242:76:0::1;11345:13;::::0;;-1:-1:-1;;11369:25:0;::::1;11345:13:::0;11369:25;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;11410:68:::1;::::0;11345:13;;::::1;;;::::0;11410:68:::1;::::0;::::1;::::0;11345:13;;11369:25;;11450:10:::1;::::0;11462:15:::1;::::0;11410:68:::1;:::i;9874:136::-:0;9926:7;9987:15;6254:1;9987:9;:15::i;:::-;9969;6302:6;9969:9;:15::i;:::-;14387:12;;9953:31;;;;:::i;:::-;:49;;;;:::i;:::-;9946:56;;9874:136;:::o;8734:385::-;3883:13;:11;:13::i;:::-;8795:16:::1;::::0;::::1;::::0;::::1;;;8791:75;;;8846:16;::::0;8822:41:::1;::::0;-1:-1:-1;;;8822:41:0;;8846:16:::1;::::0;;::::1;;;1513:14:1::0;1506:22;8822:41:0::1;::::0;::::1;1488::1::0;1461:18;;8822:41:0::1;1348:187:1::0;8791:75:0::1;8880:11;::::0;;;::::1;;;8876:63;;;8924:11;::::0;8902:34:::1;::::0;-1:-1:-1;;;8902:34:0;;8924:11;;;::::1;;;1513:14:1::0;1506:22;8902:34:0::1;::::0;::::1;1488:41:1::0;1461:18;;8902:34:0::1;1348:187:1::0;8876:63:0::1;8953:13;::::0;;;::::1;;;8949:69;;;9001:13;::::0;8977:38:::1;::::0;-1:-1:-1;;;8977:38:0;;9001:13;;;::::1;;;1513:14:1::0;1506:22;8977:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8977:38:0::1;1348:187:1::0;8949:69:0::1;9028:11;:18:::0;;-1:-1:-1;;9088:23:0;;;;;8734:385::o;15657:445::-;15752:4;15788:10;15752:4;15836:28;15788:10;15856:7;15836:9;:28::i;:::-;15809:55;;15903:15;15883:16;:35;;15875:85;;;;-1:-1:-1;;;15875:85:0;;7012:2:1;15875:85:0;;;6994:21:1;7051:2;7031:18;;;7024:30;7090:34;7070:18;;;7063:62;-1:-1:-1;;;7141:18:1;;;7134:35;7186:19;;15875:85:0;6810:401:1;15875:85:0;15996:63;16005:8;16015:7;16043:15;16024:16;:34;15996:8;:63::i;:::-;-1:-1:-1;16090:4:0;;15657:445;-1:-1:-1;;;;15657:445:0:o;14558:184::-;14639:4;14675:10;14703:31;14675:10;14723:2;14727:6;14703:9;:31::i;:::-;14696:38;14558:184;-1:-1:-1;;;;14558:184:0:o;10038:496::-;3883:13;:11;:13::i;:::-;10121:6:::1;::::0;-1:-1:-1;;;;;10113:28:0;;::::1;10121:6:::0;::::1;10113:28:::0;10109:80:::1;;10176:9;10152:34;;-1:-1:-1::0;;;10152:34:0::1;;;;;;;;:::i;10109:80::-;10227:6;::::0;;-1:-1:-1;;;;;10245:27:0;;::::1;-1:-1:-1::0;;;;;;10245:27:0;::::1;::::0;::::1;::::0;;-1:-1:-1;10293:28:0;;;:17:::1;:28;::::0;;;;;;;;:35;;-1:-1:-1;;10293:35:0::1;::::0;;::::1;::::0;;;10346:63;;10227:6;;;::::1;7485:34:1::0;;;7535:18;;;7528:43;10381:10:0::1;7587:18:1::0;;;7580:43;;;;10393:15:0::1;7654:2:1::0;7639:18;;7632:34;10346:63:0::1;::::0;7434:3:1;7419:19;10346:63:0::1;;;;;;;10436:6;;;;;;;;;-1:-1:-1::0;;;;;10436:6:0::1;-1:-1:-1::0;;;;;10436:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10427:37:0::1;;10473:4;10480:6;;;;;;;;;-1:-1:-1::0;;;;;10480:6:0::1;-1:-1:-1::0;;;;;10480:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10427:67;::::0;-1:-1:-1;;;;;;10427:67:0::1;::::0;;;;;;-1:-1:-1;;;;;7907:15:1;;;10427:67:0::1;::::0;::::1;7889:34:1::0;7959:15;;7939:18;;;7932:43;7824:18;;10427:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10420:4;:74:::0;;-1:-1:-1;;;;;;;;10420:74:0::1;-1:-1:-1::0;;;;;;;;10420:74:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10514:4;::::1;;-1:-1:-1::0;10505:14:0;;;:8:::1;:14;::::0;;;;:21;;-1:-1:-1;;10505:21:0::1;-1:-1:-1::0;10505:21:0::1;::::0;;-1:-1:-1;;10038:496:0:o;11494:215::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;11583:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;:33;::::1;;:23;::::0;;::::1;:33;;::::0;11579:80:::1;;11627:29;::::0;-1:-1:-1;;;11627:29:0;;1513:14:1;;1506:22;11627:29:0::1;::::0;::::1;1488:41:1::0;1461:18;;11627:29:0::1;1348:187:1::0;11579:80:0::1;-1:-1:-1::0;;;;;11669:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:32;;-1:-1:-1;;11669:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11494:215::o;14754:157::-;-1:-1:-1;;;;;14873:21:0;;;14846:7;14873:21;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;14754:157::o;4654:213::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;4739:22:0;::::1;4735:86;;4806:1;4785:24;;-1:-1:-1::0;;;4785:24:0::1;;;;;;;;:::i;4735:86::-;4831:28;4850:8;4831:18;:28::i;16424:331::-:0;-1:-1:-1;;;;;16525:16:0;;16521:58;;16567:8;16552:24;;-1:-1:-1;;;16552:24:0;;;;;;;;:::i;16521:58::-;-1:-1:-1;;;;;16593:15:0;;16589:56;;16634:7;16619:23;;-1:-1:-1;;;16619:23:0;;;;;;;;:::i;16589:56::-;-1:-1:-1;;;;;16657:21:0;;;;;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;:39;;;16712:35;;2006:25:1;;;16712:35:0;;1979:18:1;16712:35:0;;;;;;;16424:331;;;:::o;16767:428::-;16871:24;16898:28;16908:8;16918:7;16898:9;:28::i;:::-;16871:55;;-1:-1:-1;;16941:16:0;:37;16937:251;;17023:6;17003:16;:26;;16995:68;;;;-1:-1:-1;;;16995:68:0;;8188:2:1;16995:68:0;;;8170:21:1;8227:2;8207:18;;;8200:30;8266:31;8246:18;;;8239:59;8315:18;;16995:68:0;7986:353:1;16995:68:0;17107:54;17116:8;17126:7;17154:6;17135:16;:25;17107:8;:54::i;:::-;16860:335;16767:428;;;:::o;17682:1124::-;17769:4;-1:-1:-1;;;;;17790:12:0;;17786:50;;17828:4;17813:20;;-1:-1:-1;;;17813:20:0;;;;;;;;:::i;17786:50::-;-1:-1:-1;;;;;17850:10:0;;17846:46;;17886:2;17871:18;;-1:-1:-1;;;17871:18:0;;;;;;;;:::i;17846:46::-;17909:12;;;;17908:13;:41;;;;-1:-1:-1;;;;;;17926:23:0;;;;;;:17;:23;;;;;;;;17925:24;17908:41;:67;;;;-1:-1:-1;;;;;;17954:21:0;;;;;;:17;:21;;;;;;;;17953:22;17908:67;17904:100;;;17986:15;;-1:-1:-1;;;17986:15:0;;;;;;;;;;;17904:100;18020:6;;-1:-1:-1;;;18020:6:0;;;;;:33;;-1:-1:-1;;;;;;18030:23:0;;;;;;:17;:23;;;;;;;;18020:33;18016:105;;;18077:32;18092:4;18098:2;18102:6;18077:14;:32::i;:::-;18070:39;;;;18016:105;18145:4;;-1:-1:-1;;;;;18137:12:0;;;-1:-1:-1;;;18145:4:0;;;;18137:12;;;;:29;;-1:-1:-1;18153:13:0;;;;;;;18137:29;:68;;;;;18198:7;;18170:24;18188:4;18170:9;:24::i;:::-;:35;;18137:68;:119;;;;;18249:7;;18229:16;;18209:17;;:36;;;;:::i;:::-;:47;;18137:119;18133:171;;;18273:19;18284:7;;18273:10;:19::i;:::-;18359:11;;18336:6;;18359:11;;;;;:39;;;;-1:-1:-1;;;;;;18375:23:0;;;;;;:17;:23;;;;;;;;18374:24;18359:39;:65;;;;-1:-1:-1;;;;;;18403:21:0;;;;;;:17;:21;;;;;;;;18402:22;18359:65;18355:148;;;18453:38;18474:4;18480:2;18484:6;18453:20;:38::i;:::-;18441:50;;18355:148;-1:-1:-1;;;;;18523:15:0;;;;;;:9;:15;;;;;;:28;-1:-1:-1;18523:28:0;18515:79;;;;-1:-1:-1;;;18515:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18648:15:0;;;;;;;:9;:15;;;;;;;;:27;;;18630:45;;18690:13;;;;;;;;;;:26;;;;;;18745:29;;;;;;18666:9;2006:25:1;;1994:2;1979:18;;1860:177;18745:29:0;;;;;;;;-1:-1:-1;18794:4:0;;17682:1124;-1:-1:-1;;;;17682:1124:0:o;4380:155::-;4451:10;4440:7;4331;4358:6;-1:-1:-1;;;;;4358:6:0;;4285:87;4440:7;-1:-1:-1;;;;;4440:21:0;;4436:92;;4505:10;4485:31;;-1:-1:-1;;;4485:31:0;;;;;;;;:::i;13522:398::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;-1:-1:-1;;13602:10:0::1;:18:::0;13598:56:::1;;6302:6;13631:20;;-1:-1:-1::0;;;13631:20:0::1;;;;;;;;:::i;13598:56::-;13688:16;::::0;;13702:1:::1;13688:16:::0;;;;;::::1;::::0;;13664:21:::1;::::0;13688:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;13725:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13725:13:0;;;;13664:40;;-1:-1:-1;;;;;;13725:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;13725:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13715:4;13720:1;13715:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13715:23:0::1;;;-1:-1:-1::0;;;;;13715:23:0::1;;;::::0;::::1;13767:4;13749;13754:1;13749:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13749:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13785:6:::1;::::0;:127:::1;::::0;-1:-1:-1;;;13785:127:0;;:6;::::1;::::0;:57:::1;::::0;13864:6;;13785:127:::1;::::0;:6:::1;::::0;13886:4;;13892:2;;13896:15:::1;::::0;13785:127:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;;;;;13522:398:0:o;4875:191::-;4949:16;4968:6;;-1:-1:-1;;;;;4985:17:0;;;-1:-1:-1;;;;;;4985:17:0;;;;;;5018:40;;4968:6;;;;;;;5018:40;;4949:16;5018:40;4938:128;4875:191;:::o;17227:419::-;-1:-1:-1;;;;;17351:15:0;;17312:4;17351:15;;;:9;:15;;;;;;17385:21;;;;17377:72;;;;-1:-1:-1;;;17377:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17485:15:0;;;;;;;:9;:15;;;;;;17503:20;;;17485:38;;17538:13;;;;;;;;;;:23;;;;;;17590:26;;;;;;17517:6;2006:25:1;;1994:2;1979:18;;1860:177;18814:488:0;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;-1:-1:-1;;;;;18945:14:0;::::1;18921:7:::0;18945:14;;;:8:::1;:14;::::0;;;;;6824:13;18945:14:::1;:30:::0;::::1;;;-1:-1:-1::0;18964:10:0;18945:30:::1;18941:94;;;18999:24;19010:4;19016:6;18999:10;:24::i;:::-;18992:31;;;;18941:94;-1:-1:-1::0;;;;;19049:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;:29:::0;::::1;;;-1:-1:-1::0;19066:11:0;19049:29:::1;19045:94;;;19102:25;19114:4;19120:6;19102:11;:25::i;19045:94::-;-1:-1:-1::0;;;;;19154:14:0;::::1;;::::0;;;:8:::1;:14;::::0;;;;;::::1;;19153:15;:32:::0;::::1;;;-1:-1:-1::0;;;;;;19173:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;19172:13;19153:32;:53;;;;-1:-1:-1::0;19204:1:0::1;19153:53;19149:122;;;19230:29;19246:4;19252:6;19230:15;:29::i;19149:122::-;-1:-1:-1::0;19288:6:0;6848:1:::1;6860:6:::0;:14;;-1:-1:-1;;;;6860:14:0;;;18814:488;;-1:-1:-1;;;18814:488:0:o;12068:321::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;12145:7;;5601:6:::1;12185:15;5649:3;12185:6:::0;:15:::1;:::i;:::-;:32;;;;:::i;:::-;12165:52:::0;-1:-1:-1;12228:17:0::1;12248:18;12165:52:::0;12248:6;:18:::1;:::i;:::-;12228:38:::0;-1:-1:-1;12281:13:0;;12277:78:::1;;12311:32;12327:4;12333:9;12311:15;:32::i;:::-;6860:6:::0;:14;;-1:-1:-1;;;;6860:14:0;;;12372:9;12068:321;-1:-1:-1;;;;12068:321:0:o;12728:331::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;12810:7;;5601:6:::1;12850:20;12810:7:::0;12850:6;:20:::1;:::i;13067:216::-:0;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;13155:17:::1;:31:::0;;13176:10;;13155:17;6824:13;;13155:31:::1;::::0;13176:10;;13155:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;13197:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:29;;13216:10;;13197:15;:29:::1;::::0;13216:10;;13197:29:::1;:::i;:::-;::::0;;;-1:-1:-1;;13255:4:0::1;13237:24;::::0;;;:9:::1;:24;::::0;;;;:38;;13265:10;;13237:24;:38:::1;::::0;13265:10;;13237:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;13067:216:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:203::-;-1:-1:-1;;;;;363:32:1;;;;345:51;;333:2;318:18;;199:203::o;407:548::-;519:4;548:2;577;566:9;559:21;609:6;603:13;652:6;647:2;636:9;632:18;625:34;677:1;687:140;701:6;698:1;695:13;687:140;;;796:14;;;792:23;;786:30;762:17;;;781:2;758:26;751:66;716:10;;687:140;;;691:3;876:1;871:2;862:6;851:9;847:22;843:31;836:42;946:2;939;935:7;930:2;922:6;918:15;914:29;903:9;899:45;895:54;887:62;;;;407:548;;;;:::o;960:131::-;-1:-1:-1;;;;;1035:31:1;;1025:42;;1015:70;;1081:1;1078;1071:12;1096:247;1155:6;1208:2;1196:9;1187:7;1183:23;1179:32;1176:52;;;1224:1;1221;1214:12;1176:52;1263:9;1250:23;1282:31;1307:5;1282:31;:::i;1540:315::-;1608:6;1616;1669:2;1657:9;1648:7;1644:23;1640:32;1637:52;;;1685:1;1682;1675:12;1637:52;1724:9;1711:23;1743:31;1768:5;1743:31;:::i;:::-;1793:5;1845:2;1830:18;;;;1817:32;;-1:-1:-1;;;1540:315:1:o;2042:456::-;2119:6;2127;2135;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2243:9;2230:23;2262:31;2287:5;2262:31;:::i;:::-;2312:5;-1:-1:-1;2369:2:1;2354:18;;2341:32;2382:33;2341:32;2382:33;:::i;:::-;2042:456;;2434:7;;-1:-1:-1;;;2488:2:1;2473:18;;;;2460:32;;2042:456::o;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2786:60;2692:160;;;:::o;2857:180::-;2913:6;2966:2;2954:9;2945:7;2941:23;2937:32;2934:52;;;2982:1;2979;2972:12;2934:52;3005:26;3021:9;3005:26;:::i;3042:315::-;3107:6;3115;3168:2;3156:9;3147:7;3143:23;3139:32;3136:52;;;3184:1;3181;3174:12;3136:52;3223:9;3210:23;3242:31;3267:5;3242:31;:::i;:::-;3292:5;-1:-1:-1;3316:35:1;3347:2;3332:18;;3316:35;:::i;:::-;3306:45;;3042:315;;;;;:::o;3362:388::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;3546:9;3533:23;3565:31;3590:5;3565:31;:::i;:::-;3615:5;-1:-1:-1;3672:2:1;3657:18;;3644:32;3685:33;3644:32;3685:33;:::i;:::-;3737:7;3727:17;;;3362:388;;;;;:::o;3978:127::-;4039:10;4034:3;4030:20;4027:1;4020:31;4070:4;4067:1;4060:15;4094:4;4091:1;4084:15;4110:125;4175:9;;;4196:10;;;4193:36;;;4209:18;;:::i;4372:127::-;4433:10;4428:3;4424:20;4421:1;4414:31;4464:4;4461:1;4454:15;4488:4;4485:1;4478:15;4504:251;4574:6;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;4675:9;4669:16;4694:31;4719:5;4694:31;:::i;4760:417::-;4991:25;;;5047:2;5032:18;;5025:34;;;;-1:-1:-1;;;;;5095:32:1;5090:2;5075:18;;5068:60;5159:2;5144:18;;5137:34;4978:3;4963:19;;4760:417::o;5182:461::-;5235:3;5273:5;5267:12;5300:6;5295:3;5288:19;5326:4;5355:2;5350:3;5346:12;5339:19;;5392:2;5385:5;5381:14;5413:1;5423:195;5437:6;5434:1;5431:13;5423:195;;;5502:13;;-1:-1:-1;;;;;5498:39:1;5486:52;;5558:12;;;;5593:15;;;;5534:1;5452:9;5423:195;;;-1:-1:-1;5634:3:1;;5182:461;-1:-1:-1;;;;;5182:461:1:o;5648:582::-;5947:6;5936:9;5929:25;5990:6;5985:2;5974:9;5970:18;5963:34;6033:3;6028:2;6017:9;6013:18;6006:31;5910:4;6054:57;6106:3;6095:9;6091:19;6083:6;6054:57;:::i;:::-;-1:-1:-1;;;;;6147:32:1;;;;6142:2;6127:18;;6120:60;-1:-1:-1;6211:3:1;6196:19;6189:35;6046:65;5648:582;-1:-1:-1;;;5648:582:1:o;6235:437::-;6479:14;;6472:22;6454:41;;6538:14;;6531:22;6526:2;6511:18;;6504:50;-1:-1:-1;;;;;6590:32:1;6585:2;6570:18;;6563:60;6654:2;6639:18;;6632:34;6441:3;6426:19;;6235:437::o;6677:128::-;6744:9;;;6765:11;;;6762:37;;;6779:18;;:::i;8344:402::-;8546:2;8528:21;;;8585:2;8565:18;;;8558:30;8624:34;8619:2;8604:18;;8597:62;-1:-1:-1;;;8690:2:1;8675:18;;8668:36;8736:3;8721:19;;8344:402::o;8751:510::-;9022:6;9011:9;9004:25;9065:3;9060:2;9049:9;9045:18;9038:31;8985:4;9086:57;9138:3;9127:9;9123:19;9115:6;9086:57;:::i;:::-;-1:-1:-1;;;;;9179:32:1;;;;9174:2;9159:18;;9152:60;-1:-1:-1;9243:2:1;9228:18;9221:34;9078:65;8751:510;-1:-1:-1;;8751:510:1:o;9266:168::-;9339:9;;;9370;;9387:15;;;9381:22;;9367:37;9357:71;;9408:18;;:::i;9439:217::-;9479:1;9505;9495:132;;9549:10;9544:3;9540:20;9537:1;9530:31;9584:4;9581:1;9574:15;9612:4;9609:1;9602:15;9495:132;-1:-1:-1;9641:9:1;;9439:217::o

Swarm Source

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