ETH Price: $3,402.07 (-1.24%)
Gas: 3 Gwei

Token

TrendGuru (TrendGuru)
 

Overview

Max Total Supply

1,000,000,000 TrendGuru

Holders

134

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
66,180.90452 TrendGuru

Value
$0.00
0xd0f52Cbd4D7e631FDABC00F852c3f247f26Ac02F
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:
TrendGuru

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 350 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-16
*/

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

pragma solidity ^0.8.0;


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

pragma solidity ^0.8.0;


abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

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


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


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


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

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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);


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

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


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

pragma solidity ^0.8.0;



contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }


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


    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

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

        _afterTokenTransfer(from, to, amount);
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

//SPDX-License-Identifier: MIT




pragma solidity 0.8.19;

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

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

    function WETH() external pure returns (address);

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

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

contract TrendGuru is ERC20, Ownable {
    struct Tax {
        uint256 marketingTax;
    }

    uint256 private constant _totalSupply = 1_000_000_000 * 1e18;

    //Router
    DexRouter public immutable uniswapRouter;
    address public immutable pairAddress;

    //Taxes
    Tax public buyTaxes = Tax(15);
    Tax public sellTaxes = Tax(15);


    //Whitelisting from taxes/maxwallet/txlimit/etc
    mapping(address => bool) private whitelisted;

    //Swapping
    uint256 public swapTokensAtAmount = _totalSupply / 100000; //after 0.001% of total supply, swap them
    bool public swapAndLiquifyEnabled = true;
    bool public isSwapping = false;
    bool public tradingEnabled = false;
    uint256 public startTradingBlock;

    //Wallets
    address public marketingWallet = 0x0ac2b75E5D1f50BBD1b25cFe1E132e0a546B3490 ;
    address public developmentWallet = 0xDb6F46184223Aa32F241b80e2108C138c3416b30 ;
    uint256 public maxWalletPercentage = 2;

    //Events

    event BuyFeesUpdated(uint256 indexed _trFee);
    event SellFeesUpdated(uint256 indexed _trFee);
    event marketingWalletChanged(address indexed _trWallet);
    event developmentWalletChanged(address indexed _trWallet);
    event SwapThresholdUpdated(uint256 indexed _newThreshold);
    event Whitelist(address indexed _target, bool indexed _status);
    event TransferFailed(address recipient, uint256 amount);
    event MaxWChanged(uint256 percentage);



    constructor() ERC20("TrendGuru", "TrendGuru") {

        uniswapRouter = DexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainet
        pairAddress = DexFactory(uniswapRouter.factory()).createPair(
            address(this),
            uniswapRouter.WETH()
        );
        whitelisted[msg.sender] = true;
        whitelisted[address(uniswapRouter)] = true;
        whitelisted[address(this)] = true;       
        _mint(msg.sender, _totalSupply);

    }

    function isContract(address account) internal view returns (bool) {
    return account.code.length > 0;
    }

    function setmarketingWallet(address _newmarketing) external onlyOwner {
        require(
            _newmarketing != address(0),
            "can not set marketing to dead wallet"
        );
        require(!isContract(_newmarketing), "Address can not be a contract address");
        marketingWallet = _newmarketing;
        emit marketingWalletChanged(_newmarketing);
    }

    function setdevelopmentWallet(address _newdevelopment) external onlyOwner {
        require(
            _newdevelopment != address(0),
            "can not set marketing to dead wallet"
        );

        require(!isContract(_newdevelopment), "Address can not be a contract address");
        developmentWallet = _newdevelopment;
        emit developmentWalletChanged(_newdevelopment);
    }    
    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        startTradingBlock = block.number;
    }
    function setBuyTaxes(uint256 _marketingTax) external onlyOwner {
        buyTaxes.marketingTax = _marketingTax;
        require(_marketingTax <= 20, "Can not set buy fees higher than 30%");
        emit BuyFeesUpdated(_marketingTax);
    }

    function setSellTaxes(uint256 _marketingTax) external onlyOwner {
        sellTaxes.marketingTax = _marketingTax;
        require(_marketingTax <= 20, "Can not set buy fees higher than 30%");
        emit SellFeesUpdated(_marketingTax);
    }
    function setSwapTokensAtAmount(uint256 _newAmount) external onlyOwner {
        require(
            _newAmount > 0 && _newAmount <= (_totalSupply * 5) / 1000,
            "Minimum swap amount must be greater than 0 and less than 0.5% of total supply!"
        );
        swapTokensAtAmount = _newAmount;
        emit SwapThresholdUpdated(swapTokensAtAmount);
    }

    function toggleSwapping() external onlyOwner {
        swapAndLiquifyEnabled = (swapAndLiquifyEnabled) ? false : true;
    }

    function setWhitelistStatus(
        address _wallet,
        bool _status
    ) external onlyOwner {
        whitelisted[_wallet] = _status;
        emit Whitelist(_wallet, _status);
    }

    function checkWhitelist(address _wallet) external view returns (bool) {
        return whitelisted[_wallet];
    }

    // this function is reponsible for managing tax, if _from or _to is whitelisted, we simply return _amount and skip all the limitations
    function _takeTax(
        address _from,
        address _to,
        uint256 _amount
    ) internal returns (uint256) {
        if (whitelisted[_from] || whitelisted[_to]) {
            return _amount;
        }
        uint256 totalTax = 0;

        if (_to == pairAddress) {
            totalTax = sellTaxes.marketingTax;
        } else if (_from == pairAddress) {
            totalTax = buyTaxes.marketingTax;
        }

        uint256 tax = 0;
        if (totalTax > 0) {
            tax = (_amount * totalTax) / 100;
            super._transfer(_from, address(this), tax);
        }
        return (_amount - tax);
    }

    function _transfer(
        address _from,
        address _to,
        uint256 _amount
    ) internal virtual override {
        require(_from != address(0), "transfer from address zero");
        require(_to != address(0), "transfer to address zero");
        require(_amount > 0, "Transfer amount must be greater than zero");


            // Calculate the maximum wallet amount based on the total supply and the maximum wallet percentage
    uint256 maxWalletAmount = _totalSupply * maxWalletPercentage / 100;

    // Check if the transaction is within the maximum wallet limit
    if (!whitelisted[_from] && !whitelisted[_to] && _to != address(0) && _to != address(this) && _to != pairAddress) {
        require(balanceOf(_to) + _amount <= maxWalletAmount, "Exceeds maximum wallet amount");
    }

        uint256 toTransfer = _takeTax(_from, _to, _amount);

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

            !whitelisted[_from] &&
            !whitelisted[_to] 
 
        ) {
        require(tradingEnabled, "Trading no active");
            if (pairAddress == _to &&
                swapAndLiquifyEnabled &&
                canSwap&&
                !isSwapping  ) 
            {
        internalSwap();
            }
        }
        super._transfer(_from, _to, toTransfer);
    }

function internalSwap() internal {
    isSwapping = true;
    uint256 taxAmount = balanceOf(address(this)); 
    if (taxAmount == 0) {
        return;
    }
    swapToETH(balanceOf(address(this)));
    (bool success, ) = marketingWallet.call{value: address(this).balance*1/2}("");
    (bool success2, ) = developmentWallet.call{value: address(this).balance}("");

    if (!success) {
        // Log the failure rather than reverting the transaction
        emit TransferFailed(marketingWallet, address(this).balance);
    } else {
        // Only set isSwapping to false if the transfer succeeded
        isSwapping = false;
    }
    if (!success2) {
        // Log the failure rather than reverting the transaction
        emit TransferFailed(developmentWallet, address(this).balance);
    } else {
        // Only set isSwapping to false if the transfer succeeded
        isSwapping = false;
    }
}

    function swapToETH(uint256 _amount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), _amount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function withdrawStuckETH() external onlyOwner {
        (bool success, ) = address(msg.sender).call{
            value: address(this).balance
        }("");
        require(success, "transferring ETH failed");
    }

    function withdrawStuckTokens(address BEP20_token) external onlyOwner {
        bool success = IERC20(BEP20_token).transfer(
            msg.sender,
            IERC20(BEP20_token).balanceOf(address(this))
        );
        require(success, "transferring tokens failed!");
        require(BEP20_token != address(this), "Owner cannot claim native tokens"); 
           }


    function setMaxWalletPercentage(uint256 _percentage) external onlyOwner {
    require(_percentage > 1, "Percentage must be greater than 1%");
    require(_percentage <= 100, "Percentage must be less than or equal to 100");
    maxWalletPercentage = _percentage;
    emit MaxWChanged(_percentage);
}
    receive() external payable {}
}

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":"uint256","name":"_trFee","type":"uint256"}],"name":"BuyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"MaxWChanged","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":"uint256","name":"_trFee","type":"uint256"}],"name":"SellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"name":"SwapThresholdUpdated","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":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_target","type":"address"},{"indexed":true,"internalType":"bool","name":"_status","type":"bool"}],"name":"Whitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_trWallet","type":"address"}],"name":"developmentWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_trWallet","type":"address"}],"name":"marketingWalletChanged","type":"event"},{"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":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"checkWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","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":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","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":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setMaxWalletPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingTax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setWhitelistStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newdevelopment","type":"address"}],"name":"setdevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newmarketing","type":"address"}],"name":"setmarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleSwapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":[],"name":"uniswapRouter","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"BEP20_token","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600f60c0819052600681905561010060405260e081905260075562000034620186a06b033b2e3c9fd0803ce800000062000401565b600955600a805462ffffff19166001179055600c80546001600160a01b0319908116730ac2b75e5d1f50bbd1b25cfe1e132e0a546b349017909155600d805490911673db6f46184223aa32f241b80e2108c138c3416b301790556002600e55348015620000a057600080fd5b506040805180820182526009808252685472656e644775727560b81b6020808401829052845180860190955291845290830152906003620000e28382620004c8565b506004620000f18282620004c8565b5050506200010e62000108620002e060201b60201c565b620002e4565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a919062000594565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000200919062000594565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000274919062000594565b6001600160a01b0390811660a052336000818152600860205260408082208054600160ff199182168117909255608051909516835281832080548616821790553083529120805490931617909155620002da906b033b2e3c9fd0803ce800000062000336565b620005ee565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620003a59190620005c6565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000826200041f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044f57607f821691505b6020821081036200047057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003fc57600081815260208120601f850160051c810160208610156200049f5750805b601f850160051c820191505b81811015620004c057828155600101620004ab565b505050505050565b81516001600160401b03811115620004e457620004e462000424565b620004fc81620004f584546200043a565b8462000476565b602080601f8311600181146200053457600084156200051b5750858301515b600019600386901b1c1916600185901b178555620004c0565b600085815260208120601f198616915b82811015620005655788860151825594840194600190910190840162000544565b5085821015620005845787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005a757600080fd5b81516001600160a01b0381168114620005bf57600080fd5b9392505050565b80820180821115620005e857634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05161219d62000645600039600081816105b4015281816115fd015281816117720152818161188701526118c901526000818161047301528181611d0201528181611dbb0152611df7015261219d6000f3fe6080604052600436106102295760003560e01c80637a845ece11610123578063afa4f3b2116100ab578063e2f456051161006f578063e2f45605146106bb578063ef586f71146106d1578063f2fde38b146106e6578063f5648a4f14610706578063f66895a31461071b57600080fd5b8063afa4f3b2146105f6578063b886311514610616578063c04a541414610635578063cb96372814610655578063dd62ed3e1461067557600080fd5b806395d89b41116100f257806395d89b411461054d578063a3ca847d14610562578063a457c2d714610582578063a8b08982146105a2578063a9059cbb146105d657600080fd5b80637a845ece146104e3578063864701a5146105035780638a8c523c1461051a5780638da5cb5b1461052f57600080fd5b806339509351116101b157806370a082311161017557806370a0823114610416578063715018a61461044c578063735de9f71461046157806375f0a874146104ad57806376be96f3146104cd57600080fd5b806339509351146103865780634830aa17146103a65780634a74bb02146103c65780634ada218b146103e0578063599ca3971461040057600080fd5b806318160ddd116101f857806318160ddd146102d25780631950c218146102f1578063224611731461032a57806323b872dd1461034a578063313ce5671461036a57600080fd5b806306fdde03146102355780630940bbc714610260578063095ea7b3146102825780630c424284146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a610732565b6040516102579190611e63565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611eb1565b6107c4565b005b34801561028e57600080fd5b506102a261029d366004611edf565b610861565b6040519015158152602001610257565b3480156102be57600080fd5b506102806102cd366004611f19565b61087b565b3480156102de57600080fd5b506002545b604051908152602001610257565b3480156102fd57600080fd5b506102a261030c366004611f52565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561033657600080fd5b50610280610345366004611f52565b6108d7565b34801561035657600080fd5b506102a2610365366004611f6f565b6109f1565b34801561037657600080fd5b5060405160128152602001610257565b34801561039257600080fd5b506102a26103a1366004611edf565b610a17565b3480156103b257600080fd5b506102806103c1366004611f52565b610a56565b3480156103d257600080fd5b50600a546102a29060ff1681565b3480156103ec57600080fd5b50600a546102a29062010000900460ff1681565b34801561040c57600080fd5b506102e3600e5481565b34801561042257600080fd5b506102e3610431366004611f52565b6001600160a01b031660009081526020819052604090205490565b34801561045857600080fd5b50610280610b70565b34801561046d57600080fd5b506104957f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b3480156104b957600080fd5b50600c54610495906001600160a01b031681565b3480156104d957600080fd5b506102e3600b5481565b3480156104ef57600080fd5b506102806104fe366004611eb1565b610b84565b34801561050f57600080fd5b506006546102e39081565b34801561052657600080fd5b50610280610c88565b34801561053b57600080fd5b506005546001600160a01b0316610495565b34801561055957600080fd5b5061024a610d00565b34801561056e57600080fd5b5061028061057d366004611eb1565b610d0f565b34801561058e57600080fd5b506102a261059d366004611edf565b610da7565b3480156105ae57600080fd5b506104957f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e257600080fd5b506102a26105f1366004611edf565b610e44565b34801561060257600080fd5b50610280610611366004611eb1565b610e52565b34801561062257600080fd5b50600a546102a290610100900460ff1681565b34801561064157600080fd5b50600d54610495906001600160a01b031681565b34801561066157600080fd5b50610280610670366004611f52565b610f49565b34801561068157600080fd5b506102e3610690366004611fb0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106c757600080fd5b506102e360095481565b3480156106dd57600080fd5b506102806110f8565b3480156106f257600080fd5b50610280610701366004611f52565b611127565b34801561071257600080fd5b506102806111a0565b34801561072757600080fd5b506007546102e39081565b60606003805461074190611fde565b80601f016020809104026020016040519081016040528092919081815260200182805461076d90611fde565b80156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b5050505050905090565b6107cc611240565b600781905560148111156108335760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f742073657420627579206665657320686967686572207468616e6044820152632033302560e01b60648201526084015b60405180910390fd5b60405181907f16df2c25b3392f376a685a3826b941b25140108d95899d6b1bd983feafbc1c5590600090a250565b60003361086f81858561129a565b60019150505b92915050565b610883611240565b6001600160a01b038216600081815260086020526040808220805460ff191685151590811790915590519092917f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d91a35050565b6108df611240565b6001600160a01b0381166109415760405162461bcd60e51b8152602060048201526024808201527f63616e206e6f7420736574206d61726b6574696e6720746f20646561642077616044820152631b1b195d60e21b606482015260840161082a565b6001600160a01b0381163b156109a75760405162461bcd60e51b815260206004820152602560248201527f416464726573732063616e206e6f74206265206120636f6e7472616374206164604482015264647265737360d81b606482015260840161082a565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517fd1a6f806ccf6e5a2241d358891af2601bbf89feaad0fb4a891c9fbde2933761990600090a250565b6000336109ff8582856113be565b610a0a858585611450565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061086f9082908690610a5190879061202e565b61129a565b610a5e611240565b6001600160a01b038116610ac05760405162461bcd60e51b8152602060048201526024808201527f63616e206e6f7420736574206d61726b6574696e6720746f20646561642077616044820152631b1b195d60e21b606482015260840161082a565b6001600160a01b0381163b15610b265760405162461bcd60e51b815260206004820152602560248201527f416464726573732063616e206e6f74206265206120636f6e7472616374206164604482015264647265737360d81b606482015260840161082a565b600d80546001600160a01b0319166001600160a01b0383169081179091556040517fbeaabd0126ed018f14bda12cf4f7e23b1919648d9c80283d4f9c9743736b197190600090a250565b610b78611240565b610b8260006117e6565b565b610b8c611240565b60018111610be75760405162461bcd60e51b815260206004820152602260248201527f50657263656e74616765206d7573742062652067726561746572207468616e20604482015261312560f01b606482015260840161082a565b6064811115610c4d5760405162461bcd60e51b815260206004820152602c60248201527f50657263656e74616765206d757374206265206c657373207468616e206f722060448201526b0657175616c20746f203130360a41b606482015260840161082a565b600e8190556040518181527f35d0d65816d2618c40bb72544c0686674a06ef8d669a0819ecba314be8292df09060200160405180910390a150565b610c90611240565b600a5462010000900460ff1615610ce95760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161082a565b600a805462ff000019166201000017905543600b55565b60606004805461074190611fde565b610d17611240565b60068190556014811115610d795760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f742073657420627579206665657320686967686572207468616e6044820152632033302560e01b606482015260840161082a565b60405181907f491005465ab6f82fd10f4b13a1b1e5ca452bc4856b019f63775e33a6b1ad2feb90600090a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610e2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161082a565b610e39828686840361129a565b506001949350505050565b60003361086f818585611450565b610e5a611240565b600081118015610e8d57506103e8610e7f6b033b2e3c9fd0803ce80000006005612041565b610e899190612058565b8111155b610f165760405162461bcd60e51b815260206004820152604e60248201527f4d696e696d756d207377617020616d6f756e74206d757374206265206772656160448201527f746572207468616e203020616e64206c657373207468616e20302e3525206f6660648201526d20746f74616c20737570706c792160901b608482015260a40161082a565b600981905560405181907f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647690600090a250565b610f51611240565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc6919061207a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d9190612093565b90508061109c5760405162461bcd60e51b815260206004820152601b60248201527f7472616e7366657272696e6720746f6b656e73206661696c6564210000000000604482015260640161082a565b306001600160a01b038316036110f45760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73604482015260640161082a565b5050565b611100611240565b600a5460ff16611111576001611114565b60005b600a805460ff1916911515919091179055565b61112f611240565b6001600160a01b0381166111945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082a565b61119d816117e6565b50565b6111a8611240565b604051600090339047908381818185875af1925050503d80600081146111ea576040519150601f19603f3d011682016040523d82523d6000602084013e6111ef565b606091505b505090508061119d5760405162461bcd60e51b815260206004820152601760248201527f7472616e7366657272696e6720455448206661696c6564000000000000000000604482015260640161082a565b6005546001600160a01b03163314610b825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6001600160a01b0383166112fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082a565b6001600160a01b03821661135d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461144a578181101561143d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161082a565b61144a848484840361129a565b50505050565b6001600160a01b0383166114a65760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f000000000000604482015260640161082a565b6001600160a01b0382166114fc5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f0000000000000000604482015260640161082a565b6000811161155e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082a565b60006064600e546b033b2e3c9fd0803ce800000061157c9190612041565b6115869190612058565b6001600160a01b03851660009081526008602052604090205490915060ff161580156115cb57506001600160a01b03831660009081526008602052604090205460ff16155b80156115df57506001600160a01b03831615155b80156115f457506001600160a01b0383163014155b801561163257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156116b0578082611658856001600160a01b031660009081526020819052604090205490565b611662919061202e565b11156116b05760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161082a565b60006116bd858585611838565b60095430600090815260208181526040808320546001600160a01b038b16845260089092529091205492935010159060ff1615801561171557506001600160a01b03851660009081526008602052604090205460ff16155b156117d357600a5462010000900460ff166117665760405162461bcd60e51b815260206004820152601160248201527054726164696e67206e6f2061637469766560781b604482015260640161082a565b846001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480156117a95750600a5460ff165b80156117b25750805b80156117c65750600a54610100900460ff16155b156117d3576117d3611944565b6117de868684611b07565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831660009081526008602052604081205460ff168061187757506001600160a01b03831660009081526008602052604090205460ff165b15611883575080610a10565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316036118c75750600754611905565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361190557506006545b600081156119305760646119198386612041565b6119239190612058565b9050611930863083611b07565b61193a81856120b0565b9695505050505050565b600a805461ff001916610100179055306000908152602081905260408120549050806000036119705750565b3060009081526020819052604090205461198990611cab565b600c546000906001600160a01b031660026119a5476001612041565b6119af9190612058565b604051600081818185875af1925050503d80600081146119eb576040519150601f19603f3d011682016040523d82523d6000602084013e6119f0565b606091505b5050600d546040519192506000916001600160a01b039091169047908381818185875af1925050503d8060008114611a44576040519150601f19603f3d011682016040523d82523d6000602084013e611a49565b606091505b5050905081611a9c57600c54604080516001600160a01b0390921682524760208301527f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81910160405180910390a1611aa8565b600a805461ff00191690555b80611af757600d54604080516001600160a01b0390921682524760208301527f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81910160405180910390a1505050565b600a805461ff0019169055505050565b6001600160a01b038316611b6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082a565b6001600160a01b038216611bcd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082a565b6001600160a01b03831660009081526020819052604090205481811015611c455760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161082a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361144a565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce057611ce06120c3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906120d9565b81600181518110611d9557611d956120c3565b60200260200101906001600160a01b031690816001600160a01b031681525050611de0307f00000000000000000000000000000000000000000000000000000000000000008461129a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611e359085906000908690309042906004016120f6565b600060405180830381600087803b158015611e4f57600080fd5b505af11580156117de573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611e9057858101830151858201604001528201611e74565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611ec357600080fd5b5035919050565b6001600160a01b038116811461119d57600080fd5b60008060408385031215611ef257600080fd5b8235611efd81611eca565b946020939093013593505050565b801515811461119d57600080fd5b60008060408385031215611f2c57600080fd5b8235611f3781611eca565b91506020830135611f4781611f0b565b809150509250929050565b600060208284031215611f6457600080fd5b8135610a1081611eca565b600080600060608486031215611f8457600080fd5b8335611f8f81611eca565b92506020840135611f9f81611eca565b929592945050506040919091013590565b60008060408385031215611fc357600080fd5b8235611fce81611eca565b91506020830135611f4781611eca565b600181811c90821680611ff257607f821691505b60208210810361201257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561087557610875612018565b808202811582820484141761087557610875612018565b60008261207557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561208c57600080fd5b5051919050565b6000602082840312156120a557600080fd5b8151610a1081611f0b565b8181038181111561087557610875612018565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120eb57600080fd5b8151610a1081611eca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121465784516001600160a01b031683529383019391830191600101612121565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dbccd45422570ae8428eb82c80a4369a1129d7e6f011ac1da54c05887b8caaca64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80637a845ece11610123578063afa4f3b2116100ab578063e2f456051161006f578063e2f45605146106bb578063ef586f71146106d1578063f2fde38b146106e6578063f5648a4f14610706578063f66895a31461071b57600080fd5b8063afa4f3b2146105f6578063b886311514610616578063c04a541414610635578063cb96372814610655578063dd62ed3e1461067557600080fd5b806395d89b41116100f257806395d89b411461054d578063a3ca847d14610562578063a457c2d714610582578063a8b08982146105a2578063a9059cbb146105d657600080fd5b80637a845ece146104e3578063864701a5146105035780638a8c523c1461051a5780638da5cb5b1461052f57600080fd5b806339509351116101b157806370a082311161017557806370a0823114610416578063715018a61461044c578063735de9f71461046157806375f0a874146104ad57806376be96f3146104cd57600080fd5b806339509351146103865780634830aa17146103a65780634a74bb02146103c65780634ada218b146103e0578063599ca3971461040057600080fd5b806318160ddd116101f857806318160ddd146102d25780631950c218146102f1578063224611731461032a57806323b872dd1461034a578063313ce5671461036a57600080fd5b806306fdde03146102355780630940bbc714610260578063095ea7b3146102825780630c424284146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a610732565b6040516102579190611e63565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611eb1565b6107c4565b005b34801561028e57600080fd5b506102a261029d366004611edf565b610861565b6040519015158152602001610257565b3480156102be57600080fd5b506102806102cd366004611f19565b61087b565b3480156102de57600080fd5b506002545b604051908152602001610257565b3480156102fd57600080fd5b506102a261030c366004611f52565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561033657600080fd5b50610280610345366004611f52565b6108d7565b34801561035657600080fd5b506102a2610365366004611f6f565b6109f1565b34801561037657600080fd5b5060405160128152602001610257565b34801561039257600080fd5b506102a26103a1366004611edf565b610a17565b3480156103b257600080fd5b506102806103c1366004611f52565b610a56565b3480156103d257600080fd5b50600a546102a29060ff1681565b3480156103ec57600080fd5b50600a546102a29062010000900460ff1681565b34801561040c57600080fd5b506102e3600e5481565b34801561042257600080fd5b506102e3610431366004611f52565b6001600160a01b031660009081526020819052604090205490565b34801561045857600080fd5b50610280610b70565b34801561046d57600080fd5b506104957f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610257565b3480156104b957600080fd5b50600c54610495906001600160a01b031681565b3480156104d957600080fd5b506102e3600b5481565b3480156104ef57600080fd5b506102806104fe366004611eb1565b610b84565b34801561050f57600080fd5b506006546102e39081565b34801561052657600080fd5b50610280610c88565b34801561053b57600080fd5b506005546001600160a01b0316610495565b34801561055957600080fd5b5061024a610d00565b34801561056e57600080fd5b5061028061057d366004611eb1565b610d0f565b34801561058e57600080fd5b506102a261059d366004611edf565b610da7565b3480156105ae57600080fd5b506104957f000000000000000000000000816e54627d501ba3cc651d08d2aa9df4ab20418781565b3480156105e257600080fd5b506102a26105f1366004611edf565b610e44565b34801561060257600080fd5b50610280610611366004611eb1565b610e52565b34801561062257600080fd5b50600a546102a290610100900460ff1681565b34801561064157600080fd5b50600d54610495906001600160a01b031681565b34801561066157600080fd5b50610280610670366004611f52565b610f49565b34801561068157600080fd5b506102e3610690366004611fb0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106c757600080fd5b506102e360095481565b3480156106dd57600080fd5b506102806110f8565b3480156106f257600080fd5b50610280610701366004611f52565b611127565b34801561071257600080fd5b506102806111a0565b34801561072757600080fd5b506007546102e39081565b60606003805461074190611fde565b80601f016020809104026020016040519081016040528092919081815260200182805461076d90611fde565b80156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b5050505050905090565b6107cc611240565b600781905560148111156108335760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f742073657420627579206665657320686967686572207468616e6044820152632033302560e01b60648201526084015b60405180910390fd5b60405181907f16df2c25b3392f376a685a3826b941b25140108d95899d6b1bd983feafbc1c5590600090a250565b60003361086f81858561129a565b60019150505b92915050565b610883611240565b6001600160a01b038216600081815260086020526040808220805460ff191685151590811790915590519092917f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d91a35050565b6108df611240565b6001600160a01b0381166109415760405162461bcd60e51b8152602060048201526024808201527f63616e206e6f7420736574206d61726b6574696e6720746f20646561642077616044820152631b1b195d60e21b606482015260840161082a565b6001600160a01b0381163b156109a75760405162461bcd60e51b815260206004820152602560248201527f416464726573732063616e206e6f74206265206120636f6e7472616374206164604482015264647265737360d81b606482015260840161082a565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517fd1a6f806ccf6e5a2241d358891af2601bbf89feaad0fb4a891c9fbde2933761990600090a250565b6000336109ff8582856113be565b610a0a858585611450565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061086f9082908690610a5190879061202e565b61129a565b610a5e611240565b6001600160a01b038116610ac05760405162461bcd60e51b8152602060048201526024808201527f63616e206e6f7420736574206d61726b6574696e6720746f20646561642077616044820152631b1b195d60e21b606482015260840161082a565b6001600160a01b0381163b15610b265760405162461bcd60e51b815260206004820152602560248201527f416464726573732063616e206e6f74206265206120636f6e7472616374206164604482015264647265737360d81b606482015260840161082a565b600d80546001600160a01b0319166001600160a01b0383169081179091556040517fbeaabd0126ed018f14bda12cf4f7e23b1919648d9c80283d4f9c9743736b197190600090a250565b610b78611240565b610b8260006117e6565b565b610b8c611240565b60018111610be75760405162461bcd60e51b815260206004820152602260248201527f50657263656e74616765206d7573742062652067726561746572207468616e20604482015261312560f01b606482015260840161082a565b6064811115610c4d5760405162461bcd60e51b815260206004820152602c60248201527f50657263656e74616765206d757374206265206c657373207468616e206f722060448201526b0657175616c20746f203130360a41b606482015260840161082a565b600e8190556040518181527f35d0d65816d2618c40bb72544c0686674a06ef8d669a0819ecba314be8292df09060200160405180910390a150565b610c90611240565b600a5462010000900460ff1615610ce95760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161082a565b600a805462ff000019166201000017905543600b55565b60606004805461074190611fde565b610d17611240565b60068190556014811115610d795760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f742073657420627579206665657320686967686572207468616e6044820152632033302560e01b606482015260840161082a565b60405181907f491005465ab6f82fd10f4b13a1b1e5ca452bc4856b019f63775e33a6b1ad2feb90600090a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610e2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161082a565b610e39828686840361129a565b506001949350505050565b60003361086f818585611450565b610e5a611240565b600081118015610e8d57506103e8610e7f6b033b2e3c9fd0803ce80000006005612041565b610e899190612058565b8111155b610f165760405162461bcd60e51b815260206004820152604e60248201527f4d696e696d756d207377617020616d6f756e74206d757374206265206772656160448201527f746572207468616e203020616e64206c657373207468616e20302e3525206f6660648201526d20746f74616c20737570706c792160901b608482015260a40161082a565b600981905560405181907f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647690600090a250565b610f51611240565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc6919061207a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d9190612093565b90508061109c5760405162461bcd60e51b815260206004820152601b60248201527f7472616e7366657272696e6720746f6b656e73206661696c6564210000000000604482015260640161082a565b306001600160a01b038316036110f45760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73604482015260640161082a565b5050565b611100611240565b600a5460ff16611111576001611114565b60005b600a805460ff1916911515919091179055565b61112f611240565b6001600160a01b0381166111945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082a565b61119d816117e6565b50565b6111a8611240565b604051600090339047908381818185875af1925050503d80600081146111ea576040519150601f19603f3d011682016040523d82523d6000602084013e6111ef565b606091505b505090508061119d5760405162461bcd60e51b815260206004820152601760248201527f7472616e7366657272696e6720455448206661696c6564000000000000000000604482015260640161082a565b6005546001600160a01b03163314610b825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6001600160a01b0383166112fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082a565b6001600160a01b03821661135d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461144a578181101561143d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161082a565b61144a848484840361129a565b50505050565b6001600160a01b0383166114a65760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f000000000000604482015260640161082a565b6001600160a01b0382166114fc5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f0000000000000000604482015260640161082a565b6000811161155e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082a565b60006064600e546b033b2e3c9fd0803ce800000061157c9190612041565b6115869190612058565b6001600160a01b03851660009081526008602052604090205490915060ff161580156115cb57506001600160a01b03831660009081526008602052604090205460ff16155b80156115df57506001600160a01b03831615155b80156115f457506001600160a01b0383163014155b801561163257507f000000000000000000000000816e54627d501ba3cc651d08d2aa9df4ab2041876001600160a01b0316836001600160a01b031614155b156116b0578082611658856001600160a01b031660009081526020819052604090205490565b611662919061202e565b11156116b05760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161082a565b60006116bd858585611838565b60095430600090815260208181526040808320546001600160a01b038b16845260089092529091205492935010159060ff1615801561171557506001600160a01b03851660009081526008602052604090205460ff16155b156117d357600a5462010000900460ff166117665760405162461bcd60e51b815260206004820152601160248201527054726164696e67206e6f2061637469766560781b604482015260640161082a565b846001600160a01b03167f000000000000000000000000816e54627d501ba3cc651d08d2aa9df4ab2041876001600160a01b03161480156117a95750600a5460ff165b80156117b25750805b80156117c65750600a54610100900460ff16155b156117d3576117d3611944565b6117de868684611b07565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831660009081526008602052604081205460ff168061187757506001600160a01b03831660009081526008602052604090205460ff165b15611883575080610a10565b60007f000000000000000000000000816e54627d501ba3cc651d08d2aa9df4ab2041876001600160a01b0316846001600160a01b0316036118c75750600754611905565b7f000000000000000000000000816e54627d501ba3cc651d08d2aa9df4ab2041876001600160a01b0316856001600160a01b03160361190557506006545b600081156119305760646119198386612041565b6119239190612058565b9050611930863083611b07565b61193a81856120b0565b9695505050505050565b600a805461ff001916610100179055306000908152602081905260408120549050806000036119705750565b3060009081526020819052604090205461198990611cab565b600c546000906001600160a01b031660026119a5476001612041565b6119af9190612058565b604051600081818185875af1925050503d80600081146119eb576040519150601f19603f3d011682016040523d82523d6000602084013e6119f0565b606091505b5050600d546040519192506000916001600160a01b039091169047908381818185875af1925050503d8060008114611a44576040519150601f19603f3d011682016040523d82523d6000602084013e611a49565b606091505b5050905081611a9c57600c54604080516001600160a01b0390921682524760208301527f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81910160405180910390a1611aa8565b600a805461ff00191690555b80611af757600d54604080516001600160a01b0390921682524760208301527f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81910160405180910390a1505050565b600a805461ff0019169055505050565b6001600160a01b038316611b6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082a565b6001600160a01b038216611bcd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082a565b6001600160a01b03831660009081526020819052604090205481811015611c455760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161082a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361144a565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce057611ce06120c3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906120d9565b81600181518110611d9557611d956120c3565b60200260200101906001600160a01b031690816001600160a01b031681525050611de0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461129a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611e359085906000908690309042906004016120f6565b600060405180830381600087803b158015611e4f57600080fd5b505af11580156117de573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611e9057858101830151858201604001528201611e74565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611ec357600080fd5b5035919050565b6001600160a01b038116811461119d57600080fd5b60008060408385031215611ef257600080fd5b8235611efd81611eca565b946020939093013593505050565b801515811461119d57600080fd5b60008060408385031215611f2c57600080fd5b8235611f3781611eca565b91506020830135611f4781611f0b565b809150509250929050565b600060208284031215611f6457600080fd5b8135610a1081611eca565b600080600060608486031215611f8457600080fd5b8335611f8f81611eca565b92506020840135611f9f81611eca565b929592945050506040919091013590565b60008060408385031215611fc357600080fd5b8235611fce81611eca565b91506020830135611f4781611eca565b600181811c90821680611ff257607f821691505b60208210810361201257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561087557610875612018565b808202811582820484141761087557610875612018565b60008261207557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561208c57600080fd5b5051919050565b6000602082840312156120a557600080fd5b8151610a1081611f0b565b8181038181111561087557610875612018565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120eb57600080fd5b8151610a1081611eca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121465784516001600160a01b031683529383019391830191600101612121565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dbccd45422570ae8428eb82c80a4369a1129d7e6f011ac1da54c05887b8caaca64736f6c63430008130033

Deployed Bytecode Sourcemap

11331:8954:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4961:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14672:246;;;;;;;;;;-1:-1:-1;14672:246:0;;;;;:::i;:::-;;:::i;:::-;;6177:201;;;;;;;;;;-1:-1:-1;6177:201:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;6177:201:0;1231:187:1;15438:195:0;;;;;;;;;;-1:-1:-1;15438:195:0;;;;;:::i;:::-;;:::i;5452:108::-;;;;;;;;;;-1:-1:-1;5540:12:0;;5452:108;;;2079:25:1;;;2067:2;2052:18;5452:108:0;1933:177:1;15641:116:0;;;;;;;;;;-1:-1:-1;15641:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;15729:20:0;15705:4;15729:20;;;:11;:20;;;;;;;;;15641:116;13419:384;;;;;;;;;;-1:-1:-1;13419:384:0;;;;;:::i;:::-;;:::i;6388:295::-;;;;;;;;;;-1:-1:-1;6388:295:0;;;;;:::i;:::-;;:::i;5294:93::-;;;;;;;;;;-1:-1:-1;5294:93:0;;5377:2;2970:36:1;;2958:2;2943:18;5294:93:0;2828:184:1;6691:238:0;;;;;;;;;;-1:-1:-1;6691:238:0;;;;;:::i;:::-;;:::i;13811:402::-;;;;;;;;;;-1:-1:-1;13811:402:0;;;;;:::i;:::-;;:::i;11926:40::-;;;;;;;;;;-1:-1:-1;11926:40:0;;;;;;;;12010:34;;;;;;;;;;-1:-1:-1;12010:34:0;;;;;;;;;;;12275:38;;;;;;;;;;;;;;;;5623:127;;;;;;;;;;-1:-1:-1;5623:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5724:18:0;5697:7;5724:18;;;;;;;;;;;;5623:127;1310:103;;;;;;;;;;;;;:::i;11516:40::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3198:55:1;;;3180:74;;3168:2;3153:18;11516:40:0;3017:243:1;12107:75:0;;;;;;;;;;-1:-1:-1;12107:75:0;;;;-1:-1:-1;;;;;12107:75:0;;;12051:32;;;;;;;;;;;;;;;;19944:303;;;;;;;;;;-1:-1:-1;19944:303:0;;;;;:::i;:::-;;:::i;11621:29::-;;;;;;;;;;-1:-1:-1;11621:29:0;;;;;;14223:192;;;;;;;;;;;;;:::i;1003:87::-;;;;;;;;;;-1:-1:-1;1076:6:0;;-1:-1:-1;;;;;1076:6:0;1003:87;;5180:104;;;;;;;;;;;;;:::i;14421:243::-;;;;;;;;;;-1:-1:-1;14421:243:0;;;;;:::i;:::-;;:::i;6939:436::-;;;;;;;;;;-1:-1:-1;6939:436:0;;;;;:::i;:::-;;:::i;11563:36::-;;;;;;;;;;;;;;;5760:193;;;;;;;;;;-1:-1:-1;5760:193:0;;;;;:::i;:::-;;:::i;14924:372::-;;;;;;;;;;-1:-1:-1;14924:372:0;;;;;:::i;:::-;;:::i;11973:30::-;;;;;;;;;;-1:-1:-1;11973:30:0;;;;;;;;;;;12190:77;;;;;;;;;;-1:-1:-1;12190:77:0;;;;-1:-1:-1;;;;;12190:77:0;;;19558:376;;;;;;;;;;-1:-1:-1;19558:376:0;;;;;:::i;:::-;;:::i;6016:151::-;;;;;;;;;;-1:-1:-1;6016:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;6132:18:0;;;6105:7;6132:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6016:151;11820:57;;;;;;;;;;;;;;;;15304:126;;;;;;;;;;;;;:::i;1423:201::-;;;;;;;;;;-1:-1:-1;1423:201:0;;;;;:::i;:::-;;:::i;19329:221::-;;;;;;;;;;;;;:::i;11657:30::-;;;;;;;;;;-1:-1:-1;11657:30:0;;;;;;4961:100;5015:13;5048:5;5041:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4961:100;:::o;14672:246::-;889:13;:11;:13::i;:::-;14747:9:::1;:38:::0;;;14821:2:::1;14804:19:::0;::::1;;14796:68;;;::::0;-1:-1:-1;;;14796:68:0;;4476:2:1;14796:68:0::1;::::0;::::1;4458:21:1::0;4515:2;4495:18;;;4488:30;4554:34;4534:18;;;4527:62;-1:-1:-1;;;4605:18:1;;;4598:34;4649:19;;14796:68:0::1;;;;;;;;;14880:30;::::0;14896:13;;14880:30:::1;::::0;;;::::1;14672:246:::0;:::o;6177:201::-;6260:4;198:10;6316:32;198:10;6332:7;6341:6;6316:8;:32::i;:::-;6366:4;6359:11;;;6177:201;;;;;:::o;15438:195::-;889:13;:11;:13::i;:::-;-1:-1:-1;;;;;15552:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:30;;-1:-1:-1;;15552:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15598:27;;15552:30;;:20;15598:27:::1;::::0;::::1;15438:195:::0;;:::o;13419:384::-;889:13;:11;:13::i;:::-;-1:-1:-1;;;;;13522:27:0;::::1;13500:113;;;::::0;-1:-1:-1;;;13500:113:0;;4881:2:1;13500:113:0::1;::::0;::::1;4863:21:1::0;4920:2;4900:18;;;4893:30;4959:34;4939:18;;;4932:62;-1:-1:-1;;;5010:18:1;;;5003:34;5054:19;;13500:113:0::1;4679:400:1::0;13500:113:0::1;-1:-1:-1::0;;;;;13380:19:0;;;:23;13624:76:::1;;;::::0;-1:-1:-1;;;13624:76:0;;5286:2:1;13624:76:0::1;::::0;::::1;5268:21:1::0;5325:2;5305:18;;;5298:30;5364:34;5344:18;;;5337:62;-1:-1:-1;;;5415:18:1;;;5408:35;5460:19;;13624:76:0::1;5084:401:1::0;13624:76:0::1;13711:15;:31:::0;;-1:-1:-1;;;;;;13711:31:0::1;-1:-1:-1::0;;;;;13711:31:0;::::1;::::0;;::::1;::::0;;;13758:37:::1;::::0;::::1;::::0;-1:-1:-1;;13758:37:0::1;13419:384:::0;:::o;6388:295::-;6519:4;198:10;6577:38;6593:4;198:10;6608:6;6577:15;:38::i;:::-;6626:27;6636:4;6642:2;6646:6;6626:9;:27::i;:::-;6671:4;6664:11;;;6388:295;;;;;;:::o;6691:238::-;198:10;6779:4;6132:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6132:27:0;;;;;;;;;;6779:4;;198:10;6835:64;;198:10;;6132:27;;6860:38;;6888:10;;6860:38;:::i;:::-;6835:8;:64::i;13811:402::-;889:13;:11;:13::i;:::-;-1:-1:-1;;;;;13918:29:0;::::1;13896:115;;;::::0;-1:-1:-1;;;13896:115:0;;4881:2:1;13896:115:0::1;::::0;::::1;4863:21:1::0;4920:2;4900:18;;;4893:30;4959:34;4939:18;;;4932:62;-1:-1:-1;;;5010:18:1;;;5003:34;5054:19;;13896:115:0::1;4679:400:1::0;13896:115:0::1;-1:-1:-1::0;;;;;13380:19:0;;;:23;14024:78:::1;;;::::0;-1:-1:-1;;;14024:78:0;;5286:2:1;14024:78:0::1;::::0;::::1;5268:21:1::0;5325:2;5305:18;;;5298:30;5364:34;5344:18;;;5337:62;-1:-1:-1;;;5415:18:1;;;5408:35;5460:19;;14024:78:0::1;5084:401:1::0;14024:78:0::1;14113:17;:35:::0;;-1:-1:-1;;;;;;14113:35:0::1;-1:-1:-1::0;;;;;14113:35:0;::::1;::::0;;::::1;::::0;;;14164:41:::1;::::0;::::1;::::0;-1:-1:-1;;14164:41:0::1;13811:402:::0;:::o;1310:103::-;889:13;:11;:13::i;:::-;1375:30:::1;1402:1;1375:18;:30::i;:::-;1310:103::o:0;19944:303::-;889:13;:11;:13::i;:::-;20045:1:::1;20031:11;:15;20023:62;;;::::0;-1:-1:-1;;;20023:62:0;;5954:2:1;20023:62:0::1;::::0;::::1;5936:21:1::0;5993:2;5973:18;;;5966:30;6032:34;6012:18;;;6005:62;-1:-1:-1;;;6083:18:1;;;6076:32;6125:19;;20023:62:0::1;5752:398:1::0;20023:62:0::1;20115:3;20100:11;:18;;20092:75;;;::::0;-1:-1:-1;;;20092:75:0;;6357:2:1;20092:75:0::1;::::0;::::1;6339:21:1::0;6396:2;6376:18;;;6369:30;6435:34;6415:18;;;6408:62;-1:-1:-1;;;6486:18:1;;;6479:42;6538:19;;20092:75:0::1;6155:408:1::0;20092:75:0::1;20174:19;:33:::0;;;20219:24:::1;::::0;2079:25:1;;;20219:24:0::1;::::0;2067:2:1;2052:18;20219:24:0::1;;;;;;;19944:303:::0;:::o;14223:192::-;889:13;:11;:13::i;:::-;14287:14:::1;::::0;;;::::1;;;14286:15;14278:54;;;::::0;-1:-1:-1;;;14278:54:0;;6770:2:1;14278:54:0::1;::::0;::::1;6752:21:1::0;6809:2;6789:18;;;6782:30;6848:28;6828:18;;;6821:56;6894:18;;14278:54:0::1;6568:350:1::0;14278:54:0::1;14343:14;:21:::0;;-1:-1:-1;;14343:21:0::1;::::0;::::1;::::0;;14395:12:::1;14375:17;:32:::0;14223:192::o;5180:104::-;5236:13;5269:7;5262:14;;;;;:::i;14421:243::-;889:13;:11;:13::i;:::-;14495:8:::1;:37:::0;;;14568:2:::1;14551:19:::0;::::1;;14543:68;;;::::0;-1:-1:-1;;;14543:68:0;;4476:2:1;14543:68:0::1;::::0;::::1;4458:21:1::0;4515:2;4495:18;;;4488:30;4554:34;4534:18;;;4527:62;-1:-1:-1;;;4605:18:1;;;4598:34;4649:19;;14543:68:0::1;4274:400:1::0;14543:68:0::1;14627:29;::::0;14642:13;;14627:29:::1;::::0;;;::::1;14421:243:::0;:::o;6939:436::-;198:10;7032:4;6132:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6132:27:0;;;;;;;;;;7032:4;;198:10;7179:15;7159:16;:35;;7151:85;;;;-1:-1:-1;;;7151:85:0;;7125:2:1;7151:85:0;;;7107:21:1;7164:2;7144:18;;;7137:30;7203:34;7183:18;;;7176:62;-1:-1:-1;;;7254:18:1;;;7247:35;7299:19;;7151:85:0;6923:401:1;7151:85:0;7272:60;7281:5;7288:7;7316:15;7297:16;:34;7272:8;:60::i;:::-;-1:-1:-1;7363:4:0;;6939:436;-1:-1:-1;;;;6939:436:0:o;5760:193::-;5839:4;198:10;5895:28;198:10;5912:2;5916:6;5895:9;:28::i;14924:372::-;889:13;:11;:13::i;:::-;15040:1:::1;15027:10;:14;:57;;;;-1:-1:-1::0;15080:4:0::1;15060:16;11473:20;15075:1;15060:16;:::i;:::-;15059:25;;;;:::i;:::-;15045:10;:39;;15027:57;15005:185;;;::::0;-1:-1:-1;;;15005:185:0;;7926:2:1;15005:185:0::1;::::0;::::1;7908:21:1::0;7965:2;7945:18;;;7938:30;8004:34;7984:18;;;7977:62;8075:34;8055:18;;;8048:62;-1:-1:-1;;;8126:19:1;;;8119:45;8181:19;;15005:185:0::1;7724:482:1::0;15005:185:0::1;15201:18;:31:::0;;;15248:40:::1;::::0;15222:10;;15248:40:::1;::::0;;;::::1;14924:372:::0;:::o;19558:376::-;889:13;:11;:13::i;:::-;19721:44:::1;::::0;-1:-1:-1;;;19721:44:0;;19759:4:::1;19721:44;::::0;::::1;3180:74:1::0;19638:12:0::1;::::0;-1:-1:-1;;;;;19653:28:0;::::1;::::0;::::1;::::0;19696:10:::1;::::0;19653:28;;19721:29:::1;::::0;3153:18:1;;19721:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19653:123;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;8592:55:1;;;19653:123:0::1;::::0;::::1;8574:74:1::0;8664:18;;;8657:34;8547:18;;19653:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19638:138;;19795:7;19787:47;;;::::0;-1:-1:-1;;;19787:47:0;;9154:2:1;19787:47:0::1;::::0;::::1;9136:21:1::0;9193:2;9173:18;;;9166:30;9232:29;9212:18;;;9205:57;9279:18;;19787:47:0::1;8952:351:1::0;19787:47:0::1;19876:4;-1:-1:-1::0;;;;;19853:28:0;::::1;::::0;19845:73:::1;;;::::0;-1:-1:-1;;;19845:73:0;;9510:2:1;19845:73:0::1;::::0;::::1;9492:21:1::0;;;9529:18;;;9522:30;9588:34;9568:18;;;9561:62;9640:18;;19845:73:0::1;9308:356:1::0;19845:73:0::1;19627:307;19558:376:::0;:::o;15304:126::-;889:13;:11;:13::i;:::-;15385:21:::1;::::0;::::1;;15384:38;;15418:4;15384:38;;;15410:5;15384:38;15360:21;:62:::0;;-1:-1:-1;;15360:62:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15304:126::o;1423:201::-;889:13;:11;:13::i;:::-;-1:-1:-1;;;;;1512:22:0;::::1;1504:73;;;::::0;-1:-1:-1;;;1504:73:0;;9871:2:1;1504:73:0::1;::::0;::::1;9853:21:1::0;9910:2;9890:18;;;9883:30;9949:34;9929:18;;;9922:62;-1:-1:-1;;;10000:18:1;;;9993:36;10046:19;;1504:73:0::1;9669:402:1::0;1504:73:0::1;1588:28;1607:8;1588:18;:28::i;:::-;1423:201:::0;:::o;19329:221::-;889:13;:11;:13::i;:::-;19406:82:::1;::::0;19388:12:::1;::::0;19414:10:::1;::::0;19452:21:::1;::::0;19388:12;19406:82;19388:12;19406:82;19452:21;19414:10;19406:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19387:101;;;19507:7;19499:43;;;::::0;-1:-1:-1;;;19499:43:0;;10488:2:1;19499:43:0::1;::::0;::::1;10470:21:1::0;10527:2;10507:18;;;10500:30;10566:25;10546:18;;;10539:53;10609:18;;19499:43:0::1;10286:347:1::0;1168:132:0;1076:6;;-1:-1:-1;;;;;1076:6:0;198:10;1232:23;1224:68;;;;-1:-1:-1;;;1224:68:0;;10840:2:1;1224:68:0;;;10822:21:1;;;10859:18;;;10852:30;10918:34;10898:18;;;10891:62;10970:18;;1224:68:0;10638:356:1;9315:380:0;-1:-1:-1;;;;;9451:19:0;;9443:68;;;;-1:-1:-1;;;9443:68:0;;11201:2:1;9443:68:0;;;11183:21:1;11240:2;11220:18;;;11213:30;11279:34;11259:18;;;11252:62;-1:-1:-1;;;11330:18:1;;;11323:34;11374:19;;9443:68:0;10999:400:1;9443:68:0;-1:-1:-1;;;;;9530:21:0;;9522:68;;;;-1:-1:-1;;;9522:68:0;;11606:2:1;9522:68:0;;;11588:21:1;11645:2;11625:18;;;11618:30;11684:34;11664:18;;;11657:62;-1:-1:-1;;;11735:18:1;;;11728:32;11777:19;;9522:68:0;11404:398:1;9522:68:0;-1:-1:-1;;;;;9603:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9655:32;;2079:25:1;;;9655:32:0;;2052:18:1;9655:32:0;;;;;;;9315:380;;;:::o;9705:453::-;-1:-1:-1;;;;;6132:18:0;;;9840:24;6132:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;9907:37:0;;9903:248;;9989:6;9969:16;:26;;9961:68;;;;-1:-1:-1;;;9961:68:0;;12009:2:1;9961:68:0;;;11991:21:1;12048:2;12028:18;;;12021:30;12087:31;12067:18;;;12060:59;12136:18;;9961:68:0;11807:353:1;9961:68:0;10073:51;10082:5;10089:7;10117:6;10098:16;:25;10073:8;:51::i;:::-;9829:329;9705:453;;;:::o;16563:1373::-;-1:-1:-1;;;;;16706:19:0;;16698:58;;;;-1:-1:-1;;;16698:58:0;;12367:2:1;16698:58:0;;;12349:21:1;12406:2;12386:18;;;12379:30;12445:28;12425:18;;;12418:56;12491:18;;16698:58:0;12165:350:1;16698:58:0;-1:-1:-1;;;;;16775:17:0;;16767:54;;;;-1:-1:-1;;;16767:54:0;;12722:2:1;16767:54:0;;;12704:21:1;12761:2;12741:18;;;12734:30;12800:26;12780:18;;;12773:54;12844:18;;16767:54:0;12520:348:1;16767:54:0;16850:1;16840:7;:11;16832:65;;;;-1:-1:-1;;;16832:65:0;;13075:2:1;16832:65:0;;;13057:21:1;13114:2;13094:18;;;13087:30;13153:34;13133:18;;;13126:62;-1:-1:-1;;;13204:18:1;;;13197:39;13253:19;;16832:65:0;12873:405:1;16832:65:0;17020:23;17083:3;17061:19;;11473:20;17046:34;;;;:::i;:::-;:40;;;;:::i;:::-;-1:-1:-1;;;;;17168:18:0;;;;;;:11;:18;;;;;;17020:66;;-1:-1:-1;17168:18:0;;17167:19;:40;;;;-1:-1:-1;;;;;;17191:16:0;;;;;;:11;:16;;;;;;;;17190:17;17167:40;:61;;;;-1:-1:-1;;;;;;17211:17:0;;;;17167:61;:85;;;;-1:-1:-1;;;;;;17232:20:0;;17247:4;17232:20;;17167:85;:107;;;;;17263:11;-1:-1:-1;;;;;17256:18:0;:3;-1:-1:-1;;;;;17256:18:0;;;17167:107;17163:217;;;17323:15;17312:7;17295:14;17305:3;-1:-1:-1;;;;;5724:18:0;5697:7;5724:18;;;;;;;;;;;;5623:127;17295:14;:24;;;;:::i;:::-;:43;;17287:85;;;;-1:-1:-1;;;17287:85:0;;13485:2:1;17287:85:0;;;13467:21:1;13524:2;13504:18;;;13497:30;13563:31;13543:18;;;13536:59;13612:18;;17287:85:0;13283:353:1;17287:85:0;17392:18;17413:29;17422:5;17429:3;17434:7;17413:8;:29::i;:::-;17498:18;;17488:4;17455:12;5724:18;;;;;;;;;;;;-1:-1:-1;;;;;17548:18:0;;;;:11;:18;;;;;;;17392:50;;-1:-1:-1;;17470:46:0;;17548:18;;17547:19;:53;;;;-1:-1:-1;;;;;;17584:16:0;;;;;;:11;:16;;;;;;;;17583:17;17547:53;17527:352;;;17635:14;;;;;;;17627:44;;;;-1:-1:-1;;;17627:44:0;;13843:2:1;17627:44:0;;;13825:21:1;13882:2;13862:18;;;13855:30;-1:-1:-1;;;13901:18:1;;;13894:47;13958:18;;17627:44:0;13641:341:1;17627:44:0;17705:3;-1:-1:-1;;;;;17690:18:0;:11;-1:-1:-1;;;;;17690:18:0;;:60;;;;-1:-1:-1;17729:21:0;;;;17690:60;:88;;;;;17771:7;17690:88;:119;;;;-1:-1:-1;17799:10:0;;;;;;;17798:11;17690:119;17686:182;;;17838:14;:12;:14::i;:::-;17889:39;17905:5;17912:3;17917:10;17889:15;:39::i;:::-;16687:1249;;;16563:1373;;;:::o;1634:191::-;1727:6;;;-1:-1:-1;;;;;1744:17:0;;;-1:-1:-1;;;;;;1744:17:0;;;;;;;1777:40;;1727:6;;;1744:17;1727:6;;1777:40;;1708:16;;1777:40;1697:128;1634:191;:::o;15905:650::-;-1:-1:-1;;;;;16044:18:0;;16020:7;16044:18;;;:11;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;16066:16:0;;;;;;:11;:16;;;;;;;;16044:38;16040:85;;;-1:-1:-1;16106:7:0;16099:14;;16040:85;16135:16;16179:11;-1:-1:-1;;;;;16172:18:0;:3;-1:-1:-1;;;;;16172:18:0;;16168:175;;-1:-1:-1;16218:9:0;:22;16168:175;;;16271:11;-1:-1:-1;;;;;16262:20:0;:5;-1:-1:-1;;;;;16262:20:0;;16258:85;;-1:-1:-1;16310:8:0;:21;16258:85;16355:11;16385:12;;16381:134;;16443:3;16421:18;16431:8;16421:7;:18;:::i;:::-;16420:26;;;;:::i;:::-;16414:32;;16461:42;16477:5;16492:4;16499:3;16461:15;:42::i;:::-;16533:13;16543:3;16533:7;:13;:::i;:::-;16525:22;15905:650;-1:-1:-1;;;;;;15905:650:0:o;17940:926::-;17980:10;:17;;-1:-1:-1;;17980:17:0;;;;;18042:4;-1:-1:-1;5724:18:0;;;;;;;;;;;18004:44;;18060:9;18073:1;18060:14;18056:45;;18087:7;17940:926::o;18056:45::-;18135:4;5697:7;5724:18;;;;;;;;;;;18107:35;;:9;:35::i;:::-;18168:15;;18150:12;;-1:-1:-1;;;;;18168:15:0;18220:1;18196:23;:21;18168:15;18196:23;:::i;:::-;:25;;;;:::i;:::-;18168:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18253:17:0;;:56;;18149:77;;-1:-1:-1;18234:13:0;;-1:-1:-1;;;;;18253:17:0;;;;18283:21;;18234:13;18253:56;18234:13;18253:56;18283:21;18253:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18233:76;;;18323:7;18318:268;;18429:15;;18414:54;;;-1:-1:-1;;;;;18429:15:0;;;8574:74:1;;18446:21:0;8679:2:1;8664:18;;8657:34;18414:54:0;;8547:18:1;18414:54:0;;;;;;;18318:268;;;18560:10;:18;;-1:-1:-1;;18560:18:0;;;18318:268;18597:8;18592:271;;18704:17;;18689:56;;;-1:-1:-1;;;;;18704:17:0;;;8574:74:1;;18723:21:0;8679:2:1;8664:18;;8657:34;18689:56:0;;8547:18:1;18689:56:0;;;;;;;17973:893;;;17940:926::o;18592:271::-;18837:10;:18;;-1:-1:-1;;18837:18:0;;;17973:893;;;17940:926::o;7385:677::-;-1:-1:-1;;;;;7516:18:0;;7508:68;;;;-1:-1:-1;;;7508:68:0;;14322:2:1;7508:68:0;;;14304:21:1;14361:2;14341:18;;;14334:30;14400:34;14380:18;;;14373:62;-1:-1:-1;;;14451:18:1;;;14444:35;14496:19;;7508:68:0;14120:401:1;7508:68:0;-1:-1:-1;;;;;7595:16:0;;7587:64;;;;-1:-1:-1;;;7587:64:0;;14728:2:1;7587:64:0;;;14710:21:1;14767:2;14747:18;;;14740:30;14806:34;14786:18;;;14779:62;-1:-1:-1;;;14857:18:1;;;14850:33;14900:19;;7587:64:0;14526:399:1;7587:64:0;-1:-1:-1;;;;;7737:15:0;;7715:19;7737:15;;;;;;;;;;;7771:21;;;;7763:72;;;;-1:-1:-1;;;7763:72:0;;15132:2:1;7763:72:0;;;15114:21:1;15171:2;15151:18;;;15144:30;15210:34;15190:18;;;15183:62;-1:-1:-1;;;15261:18:1;;;15254:36;15307:19;;7763:72:0;14930:402:1;7763:72:0;-1:-1:-1;;;;;7871:15:0;;;:9;:15;;;;;;;;;;;7889:20;;;7871:38;;7926:13;;;;;;;;;;:23;;;;;;7978:26;;2079:25:1;;;7926:13:0;;7978:26;;2052:18:1;7978:26:0;;;;;;;8017:37;17940:926;18874:447;18954:16;;;18968:1;18954:16;;;;;;;;18930:21;;18954:16;;;;;;;;;;-1:-1:-1;18954:16:0;18930:40;;18999:4;18981;18986:1;18981:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18981:23:0;;;-1:-1:-1;;;;;18981:23:0;;;;;19025:13;-1:-1:-1;;;;;19025:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19015:4;19020:1;19015:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;19015:30:0;;;-1:-1:-1;;;;;19015:30:0;;;;;19056:56;19073:4;19088:13;19104:7;19056:8;:56::i;:::-;19123:190;;-1:-1:-1;;;19123:190:0;;-1:-1:-1;;;;;19123:13:0;:64;;;;:190;;19202:7;;19224:1;;19240:4;;19267;;19287:15;;19123:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:154::-;-1:-1:-1;;;;;831:5:1;827:54;820:5;817:65;807:93;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1423:118::-;1509:5;1502:13;1495:21;1488:5;1485:32;1475:60;;1531:1;1528;1521:12;1546:382;1611:6;1619;1672:2;1660:9;1651:7;1647:23;1643:32;1640:52;;;1688:1;1685;1678:12;1640:52;1727:9;1714:23;1746:31;1771:5;1746:31;:::i;:::-;1796:5;-1:-1:-1;1853:2:1;1838:18;;1825:32;1866:30;1825:32;1866:30;:::i;:::-;1915:7;1905:17;;;1546:382;;;;;:::o;2115:247::-;2174:6;2227:2;2215:9;2206:7;2202:23;2198:32;2195:52;;;2243:1;2240;2233:12;2195:52;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;2367:456::-;2444:6;2452;2460;2513:2;2501:9;2492:7;2488:23;2484:32;2481:52;;;2529:1;2526;2519:12;2481:52;2568:9;2555:23;2587:31;2612:5;2587:31;:::i;:::-;2637:5;-1:-1:-1;2694:2:1;2679:18;;2666:32;2707:33;2666:32;2707:33;:::i;:::-;2367:456;;2759:7;;-1:-1:-1;;;2813:2:1;2798:18;;;;2785:32;;2367:456::o;3496:388::-;3564:6;3572;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;3680:9;3667:23;3699:31;3724:5;3699:31;:::i;:::-;3749:5;-1:-1:-1;3806:2:1;3791:18;;3778:32;3819:33;3778:32;3819:33;:::i;3889:380::-;3968:1;3964:12;;;;4011;;;4032:61;;4086:4;4078:6;4074:17;4064:27;;4032:61;4139:2;4131:6;4128:14;4108:18;4105:38;4102:161;;4185:10;4180:3;4176:20;4173:1;4166:31;4220:4;4217:1;4210:15;4248:4;4245:1;4238:15;4102:161;;3889:380;;;:::o;5490:127::-;5551:10;5546:3;5542:20;5539:1;5532:31;5582:4;5579:1;5572:15;5606:4;5603:1;5596:15;5622:125;5687:9;;;5708:10;;;5705:36;;;5721:18;;:::i;7329:168::-;7402:9;;;7433;;7450:15;;;7444:22;;7430:37;7420:71;;7471:18;;:::i;7502:217::-;7542:1;7568;7558:132;;7612:10;7607:3;7603:20;7600:1;7593:31;7647:4;7644:1;7637:15;7675:4;7672:1;7665:15;7558:132;-1:-1:-1;7704:9:1;;7502:217::o;8211:184::-;8281:6;8334:2;8322:9;8313:7;8309:23;8305:32;8302:52;;;8350:1;8347;8340:12;8302:52;-1:-1:-1;8373:16:1;;8211:184;-1:-1:-1;8211:184:1:o;8702:245::-;8769:6;8822:2;8810:9;8801:7;8797:23;8793:32;8790:52;;;8838:1;8835;8828:12;8790:52;8870:9;8864:16;8889:28;8911:5;8889:28;:::i;13987:128::-;14054:9;;;14075:11;;;14072:37;;;14089:18;;:::i;15469:127::-;15530:10;15525:3;15521:20;15518:1;15511:31;15561:4;15558:1;15551:15;15585:4;15582:1;15575:15;15601:251;15671:6;15724:2;15712:9;15703:7;15699:23;15695:32;15692:52;;;15740:1;15737;15730:12;15692:52;15772:9;15766:16;15791:31;15816:5;15791:31;:::i;15857:1026::-;16119:4;16167:3;16156:9;16152:19;16198:6;16187:9;16180:25;16224:2;16262:6;16257:2;16246:9;16242:18;16235:34;16305:3;16300:2;16289:9;16285:18;16278:31;16329:6;16364;16358:13;16395:6;16387;16380:22;16433:3;16422:9;16418:19;16411:26;;16472:2;16464:6;16460:15;16446:29;;16493:1;16503:218;16517:6;16514:1;16511:13;16503:218;;;16582:13;;-1:-1:-1;;;;;16578:62:1;16566:75;;16696:15;;;;16661:12;;;;16539:1;16532:9;16503:218;;;-1:-1:-1;;;;;;;16777:55:1;;;;16772:2;16757:18;;16750:83;-1:-1:-1;;;16864:3:1;16849:19;16842:35;16738:3;15857:1026;-1:-1:-1;;;15857:1026:1:o

Swarm Source

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