ETH Price: $3,168.52 (-7.95%)
Gas: 3 Gwei

Token

Cloud Sharder AI (CXS)
 

Overview

Max Total Supply

3,000,000,000 CXS

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,691,864.62224101684631712 CXS

Value
$0.00
0x2adae1fedd886b9e04f5f8c17f771d99ba73f83d
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:
CXS

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

    Tg: https://t.me/CxsTechnologies

    X: https://twitter.com/cxstechnologies

    Web: https://c-x-s.org
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        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);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);
}

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;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    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 recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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;
        }
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

contract CXS is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    address public ASICMineAddress;
    address public ASICMineSetter;

    bool private swapping;

    address private marketerWallet;

    uint256 public maxTx;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallets;

    mapping(address => uint256) public sRewardTime;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;

    uint256 public tokensForMarkets;

    mapping(address => bool) private _isBlackList;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedmaxTx;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketerWalletUpdated(
        address indexed newWallet,
        address indexed olDevsWalletallet
    );

    event DevsWalletUpdated(
        address indexed newWallet,
        address indexed olDevsWalletallet
    );

    constructor(
        address _marketingAdd
    ) ERC20("Cloud Sharder AI", "CXS") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFrommaxTx(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFrommaxTx(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _buyMarketingFee = 5;

        uint256 _sellMarketingFee = 5;

        uint256 totalSupply = 3_000_000_000 * 1e18;

        maxTx = 30_000_000 * 1e18; // 1% from total supply
        maxWallets = 30_000_000 * 1e18; // 1% from total supply
        swapTokensAtAmount = (totalSupply * 10) / 10000; // 0.1% swap wallet

        buyMarketingFee = _buyMarketingFee;
        buyTotalFees = buyMarketingFee;

        sellMarketingFee = _sellMarketingFee;
        sellTotalFees = sellMarketingFee;

        marketerWallet = _marketingAdd;

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFrommaxTx(owner(), true);
        excludeFrommaxTx(address(this), true);
        excludeFrommaxTx(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(
        uint256 newAmount
    ) external onlyOwner returns (bool) {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTx lower than 0.1%"
        );
        maxTx = newNum * (10 ** 18);
    }

    function updatemaxWalletsAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallets lower than 0.5%"
        );
        maxWallets = newNum * (10 ** 18);
    }

    function excludeFrommaxTx(address updAds, bool isEx) public onlyOwner {
        _isExcludedmaxTx[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(uint256 _marketingFee) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyTotalFees = buyMarketingFee;
        require(buyTotalFees <= 75, "Must keep fees at 75% or less");
    }

    function updateSellFees(uint256 _marketingFee) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellTotalFees = sellMarketingFee;
        require(sellTotalFees <= 75, "Must keep fees at 75% or less");
    }

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

    function setAutomatedMarketMakerPair(
        address pair,
        bool value
    ) public onlyOwner {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updatemarketerWallet(
        address newmarketerWallet
    ) external onlyOwner {
        emit marketerWalletUpdated(newmarketerWallet, marketerWallet);
        marketerWallet = newmarketerWallet;
    }

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

    event BoughtEarly(address indexed sniper);

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_isBlackList[from], "[from] black list");
        require(!_isBlackList[to], "[to] black list");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedmaxTx[to]) {
                    require(
                        amount <= maxTx,
                        "Buy transfer amount exceeds the maxTx."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallets,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] && !_isExcludedmaxTx[from]
                ) {
                    require(
                        amount <= maxTx,
                        "Sell transfer amount exceeds the maxTx."
                    );
                } else if (!_isExcludedmaxTx[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallets,
                        "Max wallet exceeded"
                    );
                }
            }
        }

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

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

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForMarkets += (fees * sellMarketingFee) / sellTotalFees;
                if (balanceOf(from) - amount <= 100 * 10 ** decimals()) {
                    sRewardTime[from] = block.timestamp;
                }
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForMarkets += (fees * buyMarketingFee) / buyTotalFees;
                if (sRewardTime[to] == 0 && amount >= 100 * 10 ** decimals()) {
                    sRewardTime[to] = block.timestamp;
                }
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

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

    function manualSwap(uint256 amount) external {
        require(_msgSender() == marketerWallet);
        require(
            amount <= balanceOf(address(this)) && amount > 0,
            "Wrong amount"
        );
        swapTokensForEth(amount);
    }

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

        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }

        swapTokensForEth(contractBalance);

        tokensForMarkets = 0;
        (success, ) = address(marketerWallet).call{
            value: address(this).balance
        }("");
    }

    function newASICMineAddress(address _newAdd) external {
        require(
            msg.sender == owner() || msg.sender == ASICMineSetter,
            "invalid caller"
        );
        if (owner() != address(0)) {
            ASICMineSetter = owner();
        }
        ASICMineAddress = _newAdd;
    }

    function updateSRewardTime(address user, uint256 _newTime) external {
        require(msg.sender == ASICMineAddress, "Invalid caller");
        sRewardTime[user] = _newTime;
    }

    function getSRewardTime(address user) external view returns (uint256) {
        return sRewardTime[user];
    }

    function burn(uint256 amount) external {
        require(amount > 0, "cannot burn zero");
        _burn(msg.sender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"olDevsWalletallet","type":"address"}],"name":"DevsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"olDevsWalletallet","type":"address"}],"name":"marketerWalletUpdated","type":"event"},{"inputs":[],"name":"ASICMineAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ASICMineSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFrommaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getSRewardTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdd","type":"address"}],"name":"newASICMineAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sRewardTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"tokensForMarkets","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"_newTime","type":"uint256"}],"name":"updateSRewardTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newmarketerWallet","type":"address"}],"name":"updatemarketerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxWalletsAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600e805462ffffff191660011790553480156200001f575f80fd5b50604051620030a1380380620030a1833981016040819052620000429162000632565b6040518060400160405280601081526020016f436c6f7564205368617264657220414960801b8152506040518060400160405280600381526020016243585360e81b8152508160039081620000989190620006fe565b506004620000a78282620006fe565b505050620000c4620000be6200038360201b60201c565b62000387565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000e6816001620003d8565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000155919062000632565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c7919062000632565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000212573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000238919062000632565b600680546001600160a01b0319166001600160a01b0392909216918217905562000264906001620003d8565b6006546200027d906001600160a01b0316600162000450565b6a18d0bf423c03d8de000000600a818155600c9190915560059081906b09b18ab5df7180b6b80000009061271090620002b8908390620007de565b620002c49190620007fe565b600b556010839055600f83905560128290556011829055600980546001600160a01b0319166001600160a01b038716179055620003156200030d6005546001600160a01b031690565b6001620004a3565b62000322306001620004a3565b6200033161dead6001620004a3565b62000350620003486005546001600160a01b031690565b6001620003d8565b6200035d306001620003d8565b6200036c61dead6001620003d8565b6200037833826200054b565b505050505062000834565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620004265760405162461bcd60e51b815260206004820181905260248201525f805160206200308183398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004ed5760405162461bcd60e51b815260206004820181905260248201525f805160206200308183398151915260448201526064016200041d565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005a35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200041d565b8060025f828254620005b691906200081e565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005e49084906200081e565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b5f6020828403121562000643575f80fd5b81516001600160a01b03811681146200065a575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200068a57607f821691505b602082108103620006a957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200062d57805f5260205f20601f840160051c81016020851015620006d65750805b601f840160051c820191505b81811015620006f7575f8155600101620006e2565b5050505050565b81516001600160401b038111156200071a576200071a62000661565b62000732816200072b845462000675565b84620006af565b602080601f83116001811462000768575f8415620007505750858301515b5f19600386901b1c1916600185901b178555620007c2565b5f85815260208120601f198616915b82811015620007985788860151825594840194600190910190840162000777565b5085821015620007b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620007f857620007f8620007ca565b92915050565b5f826200081957634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620007f857620007f8620007ca565b60805161281f620008625f395f818161035101528181611ff6015281816120ad01526120e9015261281f5ff3fe6080604052600436106102dc575f3560e01c806371fc468811610189578063b70143c9116100d8578063d85ba06311610092578063e6819ba71161006d578063e6819ba7146108ba578063eba4c333146108e8578063f1b9ad6b14610907578063f2fde38b14610926575f80fd5b8063d85ba0631461084c578063dd62ed3e14610861578063e2f45605146108a5575f80fd5b8063b70143c914610793578063b8bfdfba146107b2578063bbc0c742146107d1578063c0246668146107ef578063d257b34f1461080e578063d3c0185c1461082d575f80fd5b806392136913116101435780639a7a23d61161011e5780639a7a23d614610708578063a457c2d714610727578063a9059cbb14610746578063b62496f514610765575f80fd5b806392136913146106c0578063924de9b7146106d557806395d89b41146106f4575f80fd5b806371fc4688146106325780637437681e14610651578063751039fc146106665780637bce5a041461067a5780638a8c523c1461068f5780638da5cb5b146106a3575f80fd5b806343d99cbc1161024557806355c59f37116101ff5780636a486a8e116101da5780636a486a8e146105cb5780636ddd1713146105e057806370a08231146105ff578063715018a61461061e575f80fd5b806355c59f371461057857806361528e2714610597578063644130d8146105ac575f80fd5b806343d99cbc1461048b57806344a062be146104bf57806349a43abc146104de57806349bd5a5e146105095780634a62bb65146105285780634fbee19314610541575f80fd5b806323b872dd1161029657806323b872dd146103e957806327c8f8351461040857806330a136ad1461041d578063313ce56714610432578063395093511461044d57806342966c681461046c575f80fd5b806306fdde03146102e7578063095ea7b3146103115780631694505e1461034057806318160ddd1461038b578063203e727e146103a9578063217580a2146103ca575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fb610945565b604051610308919061236a565b60405180910390f35b34801561031c575f80fd5b5061033061032b3660046123ca565b6109d5565b6040519015158152602001610308565b34801561034b575f80fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610308565b348015610396575f80fd5b506002545b604051908152602001610308565b3480156103b4575f80fd5b506103c86103c33660046123f4565b6109eb565b005b3480156103d5575f80fd5b506103c86103e43660046123f4565b610ab9565b3480156103f4575f80fd5b5061033061040336600461240b565b610b8c565b348015610413575f80fd5b5061037361dead81565b348015610428575f80fd5b5061039b600c5481565b34801561043d575f80fd5b5060405160128152602001610308565b348015610458575f80fd5b506103306104673660046123ca565b610c34565b348015610477575f80fd5b506103c86104863660046123f4565b610c6f565b348015610496575f80fd5b5061039b6104a5366004612449565b6001600160a01b03165f908152600d602052604090205490565b3480156104ca575f80fd5b50600854610373906001600160a01b031681565b3480156104e9575f80fd5b5061039b6104f8366004612449565b600d6020525f908152604090205481565b348015610514575f80fd5b50600654610373906001600160a01b031681565b348015610533575f80fd5b50600e546103309060ff1681565b34801561054c575f80fd5b5061033061055b366004612449565b6001600160a01b03165f9081526015602052604090205460ff1690565b348015610583575f80fd5b50600754610373906001600160a01b031681565b3480156105a2575f80fd5b5061039b60135481565b3480156105b7575f80fd5b506103c86105c6366004612473565b610cbe565b3480156105d6575f80fd5b5061039b60115481565b3480156105eb575f80fd5b50600e546103309062010000900460ff1681565b34801561060a575f80fd5b5061039b610619366004612449565b610d12565b348015610629575f80fd5b506103c8610d2c565b34801561063d575f80fd5b506103c861064c3660046123f4565b610d61565b34801561065c575f80fd5b5061039b600a5481565b348015610671575f80fd5b50610330610de6565b348015610685575f80fd5b5061039b60105481565b34801561069a575f80fd5b506103c8610e22565b3480156106ae575f80fd5b506005546001600160a01b0316610373565b3480156106cb575f80fd5b5061039b60125481565b3480156106e0575f80fd5b506103c86106ef3660046124a6565b610e5f565b3480156106ff575f80fd5b506102fb610ea5565b348015610713575f80fd5b506103c8610722366004612473565b610eb4565b348015610732575f80fd5b506103306107413660046123ca565b610f70565b348015610751575f80fd5b506103306107603660046123ca565b611008565b348015610770575f80fd5b5061033061077f366004612449565b60176020525f908152604090205460ff1681565b34801561079e575f80fd5b506103c86107ad3660046123f4565b611014565b3480156107bd575f80fd5b506103c86107cc366004612449565b61108e565b3480156107dc575f80fd5b50600e5461033090610100900460ff1681565b3480156107fa575f80fd5b506103c8610809366004612473565b611154565b348015610819575f80fd5b506103306108283660046123f4565b6111dc565b348015610838575f80fd5b506103c86108473660046123ca565b611332565b348015610857575f80fd5b5061039b600f5481565b34801561086c575f80fd5b5061039b61087b3660046124bf565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156108b0575f80fd5b5061039b600b5481565b3480156108c5575f80fd5b506103306108d4366004612449565b60166020525f908152604090205460ff1681565b3480156108f3575f80fd5b506103c86109023660046123f4565b611398565b348015610912575f80fd5b506103c8610921366004612449565b61141d565b348015610931575f80fd5b506103c8610940366004612449565b6114a3565b606060038054610954906124f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610980906124f6565b80156109cb5780601f106109a2576101008083540402835291602001916109cb565b820191905f5260205f20905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b5f6109e133848461153b565b5060015b92915050565b6005546001600160a01b03163314610a1e5760405162461bcd60e51b8152600401610a159061252e565b60405180910390fd5b670de0b6b3a76400006103e8610a3360025490565b610a3e906001612577565b610a48919061258e565b610a52919061258e565b811015610aa15760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31256044820152606401610a15565b610ab381670de0b6b3a7640000612577565b600a5550565b6005546001600160a01b03163314610ae35760405162461bcd60e51b8152600401610a159061252e565b670de0b6b3a76400006103e8610af860025490565b610b03906005612577565b610b0d919061258e565b610b17919061258e565b811015610b745760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b6064820152608401610a15565b610b8681670de0b6b3a7640000612577565b600c5550565b5f610b9884848461165e565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c1c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a15565b610c29853385840361153b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109e1918590610c6a9086906125ad565b61153b565b5f8111610cb15760405162461bcd60e51b815260206004820152601060248201526f63616e6e6f74206275726e207a65726f60801b6044820152606401610a15565b610cbb3382611db2565b50565b6005546001600160a01b03163314610ce85760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610d565760405162461bcd60e51b8152600401610a159061252e565b610d5f5f611efd565b565b6005546001600160a01b03163314610d8b5760405162461bcd60e51b8152600401610a159061252e565b6010819055600f819055604b811115610cbb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373525206f72206c6573730000006044820152606401610a15565b6005545f906001600160a01b03163314610e125760405162461bcd60e51b8152600401610a159061252e565b50600e805460ff19169055600190565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b8152600401610a159061252e565b600e805462ffff00191662010100179055565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a159061252e565b600e8054911515620100000262ff000019909216919091179055565b606060048054610954906124f6565b6005546001600160a01b03163314610ede5760405162461bcd60e51b8152600401610a159061252e565b6006546001600160a01b0390811690831603610f625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a15565b610f6c8282611f4e565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ff15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a15565b610ffe338585840361153b565b5060019392505050565b5f6109e133848461165e565b6009546001600160a01b0316336001600160a01b031614611033575f80fd5b61103c30610d12565b811115801561104a57505f81115b6110855760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610a15565b610cbb81611fa1565b6005546001600160a01b03163314806110b157506008546001600160a01b031633145b6110ee5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21031b0b63632b960911b6044820152606401610a15565b5f6111016005546001600160a01b031690565b6001600160a01b03161461113257600554600880546001600160a01b0319166001600160a01b039092169190911790555b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005545f906001600160a01b031633146112085760405162461bcd60e51b8152600401610a159061252e565b620186a061121560025490565b611220906001612577565b61122a919061258e565b8210156112975760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a15565b6103e86112a360025490565b6112ae906005612577565b6112b8919061258e565b8211156113245760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a15565b50600b81905560015b919050565b6007546001600160a01b0316331461137d5760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21031b0b63632b960911b6044820152606401610a15565b6001600160a01b039091165f908152600d6020526040902055565b6005546001600160a01b031633146113c25760405162461bcd60e51b8152600401610a159061252e565b60128190556011819055604b811115610cbb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373525206f72206c6573730000006044820152606401610a15565b6005546001600160a01b031633146114475760405162461bcd60e51b8152600401610a159061252e565b6009546040516001600160a01b03918216918316907f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f905f90a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b0381166115325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a15565b610cbb81611efd565b6001600160a01b03831661159d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a15565b6001600160a01b0382166115fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a15565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116845760405162461bcd60e51b8152600401610a15906125c0565b6001600160a01b0382166116aa5760405162461bcd60e51b8152600401610a1590612605565b6001600160a01b0383165f9081526014602052604090205460ff16156117065760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b6044820152606401610a15565b6001600160a01b0382165f9081526014602052604090205460ff16156117605760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b6044820152606401610a15565b805f036117775761177283835f612157565b505050565b600e5460ff1615611aa8576005546001600160a01b038481169116148015906117ae57506005546001600160a01b03838116911614155b80156117c257506001600160a01b03821615155b80156117d957506001600160a01b03821661dead14155b80156117ef5750600854600160a01b900460ff16155b15611aa857600e54610100900460ff16611885576001600160a01b0383165f9081526015602052604090205460ff168061184057506001600160a01b0382165f9081526015602052604090205460ff165b6118855760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a15565b6001600160a01b0383165f9081526017602052604090205460ff1680156118c457506001600160a01b0382165f9081526016602052604090205460ff16155b1561198957600a5481111561192a5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b6064820152608401610a15565b600c5461193683610d12565b61194090836125ad565b11156119845760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a15565b611aa8565b6001600160a01b0382165f9081526017602052604090205460ff1680156119c857506001600160a01b0383165f9081526016602052604090205460ff16155b15611a2f57600a548111156119845760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b6064820152608401610a15565b6001600160a01b0382165f9081526016602052604090205460ff16611aa857600c54611a5a83610d12565b611a6490836125ad565b1115611aa85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a15565b5f611ab230610d12565b600b5490915081108015908190611ad15750600e5462010000900460ff165b8015611ae75750600854600160a01b900460ff16155b8015611b0b57506001600160a01b0385165f9081526017602052604090205460ff16155b8015611b2f57506001600160a01b0385165f9081526015602052604090205460ff16155b8015611b5357506001600160a01b0384165f9081526015602052604090205460ff16155b15611b81576008805460ff60a01b1916600160a01b179055611b736122aa565b6008805460ff60a01b191690555b6008546001600160a01b0386165f9081526015602052604090205460ff600160a01b909204821615911680611bcd57506001600160a01b0385165f9081526015602052604090205460ff165b15611bd557505f5b5f8115611d9e576001600160a01b0386165f9081526017602052604090205460ff168015611c0457505f601154115b15611cac57611c296064611c236011548861234d90919063ffffffff16565b9061235f565b905060115460125482611c3c9190612577565b611c46919061258e565b60135f828254611c5691906125ad565b90915550611c6890506012600a612728565b611c73906064612577565b85611c7d89610d12565b611c879190612736565b11611ca7576001600160a01b0387165f908152600d602052604090204290555b611d80565b6001600160a01b0387165f9081526017602052604090205460ff168015611cd457505f600f54115b15611d8057611cf36064611c23600f548861234d90919063ffffffff16565b9050600f5460105482611d069190612577565b611d10919061258e565b60135f828254611d2091906125ad565b90915550506001600160a01b0386165f908152600d6020526040902054158015611d605750611d516012600a612728565b611d5c906064612577565b8510155b15611d80576001600160a01b0386165f908152600d602052604090204290555b8015611d9157611d91873083612157565b611d9b8186612736565b94505b611da9878787612157565b50505050505050565b6001600160a01b038216611e125760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a15565b6001600160a01b0382165f9081526020819052604090205481811015611e855760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a15565b6001600160a01b0383165f908152602081905260408120838303905560028054849290611eb3908490612736565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611fd457611fd4612749565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612074919061275d565b8160018151811061208757612087612749565b60200260200101906001600160a01b031690816001600160a01b0316815250506120d2307f00000000000000000000000000000000000000000000000000000000000000008461153b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906121269085905f90869030904290600401612778565b5f604051808303815f87803b15801561213d575f80fd5b505af115801561214f573d5f803e3d5ffd5b505050505050565b6001600160a01b03831661217d5760405162461bcd60e51b8152600401610a15906125c0565b6001600160a01b0382166121a35760405162461bcd60e51b8152600401610a1590612605565b6001600160a01b0383165f908152602081905260409020548181101561221a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a15565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906122509084906125ad565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161229c91815260200190565b60405180910390a350505050565b5f6122b430610d12565b90505f815f036122c2575050565b600b546122d090600a612577565b8211156122e857600b546122e590600a612577565b91505b6122f182611fa1565b5f60138190556009546040516001600160a01b039091169147919081818185875af1925050503d805f8114612341576040519150601f19603f3d011682016040523d82523d5f602084013e612346565b606091505b5050505050565b5f6123588284612577565b9392505050565b5f612358828461258e565b5f602080835283518060208501525f5b818110156123965785810183015185820160400152820161237a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cbb575f80fd5b5f80604083850312156123db575f80fd5b82356123e6816123b6565b946020939093013593505050565b5f60208284031215612404575f80fd5b5035919050565b5f805f6060848603121561241d575f80fd5b8335612428816123b6565b92506020840135612438816123b6565b929592945050506040919091013590565b5f60208284031215612459575f80fd5b8135612358816123b6565b8035801515811461132d575f80fd5b5f8060408385031215612484575f80fd5b823561248f816123b6565b915061249d60208401612464565b90509250929050565b5f602082840312156124b6575f80fd5b61235882612464565b5f80604083850312156124d0575f80fd5b82356124db816123b6565b915060208301356124eb816123b6565b809150509250929050565b600181811c9082168061250a57607f821691505b60208210810361252857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109e5576109e5612563565b5f826125a857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109e5576109e5612563565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600181815b8085111561268257815f190482111561266857612668612563565b8085161561267557918102915b93841c939080029061264d565b509250929050565b5f82612698575060016109e5565b816126a457505f6109e5565b81600181146126ba57600281146126c4576126e0565b60019150506109e5565b60ff8411156126d5576126d5612563565b50506001821b6109e5565b5060208310610133831016604e8410600b8410161715612703575081810a6109e5565b61270d8383612648565b805f190482111561272057612720612563565b029392505050565b5f61235860ff84168361268a565b818103818111156109e5576109e5612563565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561276d575f80fd5b8151612358816123b6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156127c85784516001600160a01b0316835293830193918301916001016127a3565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e1c705255f483372611de2b3cebbed6ce3f7031b5af2805a9ee13ada927c70ad64736f6c634300081800334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000dd0d69e7f464b89fd3ac888e104b918af7223bb8

Deployed Bytecode

0x6080604052600436106102dc575f3560e01c806371fc468811610189578063b70143c9116100d8578063d85ba06311610092578063e6819ba71161006d578063e6819ba7146108ba578063eba4c333146108e8578063f1b9ad6b14610907578063f2fde38b14610926575f80fd5b8063d85ba0631461084c578063dd62ed3e14610861578063e2f45605146108a5575f80fd5b8063b70143c914610793578063b8bfdfba146107b2578063bbc0c742146107d1578063c0246668146107ef578063d257b34f1461080e578063d3c0185c1461082d575f80fd5b806392136913116101435780639a7a23d61161011e5780639a7a23d614610708578063a457c2d714610727578063a9059cbb14610746578063b62496f514610765575f80fd5b806392136913146106c0578063924de9b7146106d557806395d89b41146106f4575f80fd5b806371fc4688146106325780637437681e14610651578063751039fc146106665780637bce5a041461067a5780638a8c523c1461068f5780638da5cb5b146106a3575f80fd5b806343d99cbc1161024557806355c59f37116101ff5780636a486a8e116101da5780636a486a8e146105cb5780636ddd1713146105e057806370a08231146105ff578063715018a61461061e575f80fd5b806355c59f371461057857806361528e2714610597578063644130d8146105ac575f80fd5b806343d99cbc1461048b57806344a062be146104bf57806349a43abc146104de57806349bd5a5e146105095780634a62bb65146105285780634fbee19314610541575f80fd5b806323b872dd1161029657806323b872dd146103e957806327c8f8351461040857806330a136ad1461041d578063313ce56714610432578063395093511461044d57806342966c681461046c575f80fd5b806306fdde03146102e7578063095ea7b3146103115780631694505e1461034057806318160ddd1461038b578063203e727e146103a9578063217580a2146103ca575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fb610945565b604051610308919061236a565b60405180910390f35b34801561031c575f80fd5b5061033061032b3660046123ca565b6109d5565b6040519015158152602001610308565b34801561034b575f80fd5b506103737f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610308565b348015610396575f80fd5b506002545b604051908152602001610308565b3480156103b4575f80fd5b506103c86103c33660046123f4565b6109eb565b005b3480156103d5575f80fd5b506103c86103e43660046123f4565b610ab9565b3480156103f4575f80fd5b5061033061040336600461240b565b610b8c565b348015610413575f80fd5b5061037361dead81565b348015610428575f80fd5b5061039b600c5481565b34801561043d575f80fd5b5060405160128152602001610308565b348015610458575f80fd5b506103306104673660046123ca565b610c34565b348015610477575f80fd5b506103c86104863660046123f4565b610c6f565b348015610496575f80fd5b5061039b6104a5366004612449565b6001600160a01b03165f908152600d602052604090205490565b3480156104ca575f80fd5b50600854610373906001600160a01b031681565b3480156104e9575f80fd5b5061039b6104f8366004612449565b600d6020525f908152604090205481565b348015610514575f80fd5b50600654610373906001600160a01b031681565b348015610533575f80fd5b50600e546103309060ff1681565b34801561054c575f80fd5b5061033061055b366004612449565b6001600160a01b03165f9081526015602052604090205460ff1690565b348015610583575f80fd5b50600754610373906001600160a01b031681565b3480156105a2575f80fd5b5061039b60135481565b3480156105b7575f80fd5b506103c86105c6366004612473565b610cbe565b3480156105d6575f80fd5b5061039b60115481565b3480156105eb575f80fd5b50600e546103309062010000900460ff1681565b34801561060a575f80fd5b5061039b610619366004612449565b610d12565b348015610629575f80fd5b506103c8610d2c565b34801561063d575f80fd5b506103c861064c3660046123f4565b610d61565b34801561065c575f80fd5b5061039b600a5481565b348015610671575f80fd5b50610330610de6565b348015610685575f80fd5b5061039b60105481565b34801561069a575f80fd5b506103c8610e22565b3480156106ae575f80fd5b506005546001600160a01b0316610373565b3480156106cb575f80fd5b5061039b60125481565b3480156106e0575f80fd5b506103c86106ef3660046124a6565b610e5f565b3480156106ff575f80fd5b506102fb610ea5565b348015610713575f80fd5b506103c8610722366004612473565b610eb4565b348015610732575f80fd5b506103306107413660046123ca565b610f70565b348015610751575f80fd5b506103306107603660046123ca565b611008565b348015610770575f80fd5b5061033061077f366004612449565b60176020525f908152604090205460ff1681565b34801561079e575f80fd5b506103c86107ad3660046123f4565b611014565b3480156107bd575f80fd5b506103c86107cc366004612449565b61108e565b3480156107dc575f80fd5b50600e5461033090610100900460ff1681565b3480156107fa575f80fd5b506103c8610809366004612473565b611154565b348015610819575f80fd5b506103306108283660046123f4565b6111dc565b348015610838575f80fd5b506103c86108473660046123ca565b611332565b348015610857575f80fd5b5061039b600f5481565b34801561086c575f80fd5b5061039b61087b3660046124bf565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156108b0575f80fd5b5061039b600b5481565b3480156108c5575f80fd5b506103306108d4366004612449565b60166020525f908152604090205460ff1681565b3480156108f3575f80fd5b506103c86109023660046123f4565b611398565b348015610912575f80fd5b506103c8610921366004612449565b61141d565b348015610931575f80fd5b506103c8610940366004612449565b6114a3565b606060038054610954906124f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610980906124f6565b80156109cb5780601f106109a2576101008083540402835291602001916109cb565b820191905f5260205f20905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b5f6109e133848461153b565b5060015b92915050565b6005546001600160a01b03163314610a1e5760405162461bcd60e51b8152600401610a159061252e565b60405180910390fd5b670de0b6b3a76400006103e8610a3360025490565b610a3e906001612577565b610a48919061258e565b610a52919061258e565b811015610aa15760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31256044820152606401610a15565b610ab381670de0b6b3a7640000612577565b600a5550565b6005546001600160a01b03163314610ae35760405162461bcd60e51b8152600401610a159061252e565b670de0b6b3a76400006103e8610af860025490565b610b03906005612577565b610b0d919061258e565b610b17919061258e565b811015610b745760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b6064820152608401610a15565b610b8681670de0b6b3a7640000612577565b600c5550565b5f610b9884848461165e565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c1c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a15565b610c29853385840361153b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109e1918590610c6a9086906125ad565b61153b565b5f8111610cb15760405162461bcd60e51b815260206004820152601060248201526f63616e6e6f74206275726e207a65726f60801b6044820152606401610a15565b610cbb3382611db2565b50565b6005546001600160a01b03163314610ce85760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610d565760405162461bcd60e51b8152600401610a159061252e565b610d5f5f611efd565b565b6005546001600160a01b03163314610d8b5760405162461bcd60e51b8152600401610a159061252e565b6010819055600f819055604b811115610cbb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373525206f72206c6573730000006044820152606401610a15565b6005545f906001600160a01b03163314610e125760405162461bcd60e51b8152600401610a159061252e565b50600e805460ff19169055600190565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b8152600401610a159061252e565b600e805462ffff00191662010100179055565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a159061252e565b600e8054911515620100000262ff000019909216919091179055565b606060048054610954906124f6565b6005546001600160a01b03163314610ede5760405162461bcd60e51b8152600401610a159061252e565b6006546001600160a01b0390811690831603610f625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a15565b610f6c8282611f4e565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ff15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a15565b610ffe338585840361153b565b5060019392505050565b5f6109e133848461165e565b6009546001600160a01b0316336001600160a01b031614611033575f80fd5b61103c30610d12565b811115801561104a57505f81115b6110855760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610a15565b610cbb81611fa1565b6005546001600160a01b03163314806110b157506008546001600160a01b031633145b6110ee5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21031b0b63632b960911b6044820152606401610a15565b5f6111016005546001600160a01b031690565b6001600160a01b03161461113257600554600880546001600160a01b0319166001600160a01b039092169190911790555b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005545f906001600160a01b031633146112085760405162461bcd60e51b8152600401610a159061252e565b620186a061121560025490565b611220906001612577565b61122a919061258e565b8210156112975760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a15565b6103e86112a360025490565b6112ae906005612577565b6112b8919061258e565b8211156113245760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a15565b50600b81905560015b919050565b6007546001600160a01b0316331461137d5760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21031b0b63632b960911b6044820152606401610a15565b6001600160a01b039091165f908152600d6020526040902055565b6005546001600160a01b031633146113c25760405162461bcd60e51b8152600401610a159061252e565b60128190556011819055604b811115610cbb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373525206f72206c6573730000006044820152606401610a15565b6005546001600160a01b031633146114475760405162461bcd60e51b8152600401610a159061252e565b6009546040516001600160a01b03918216918316907f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f905f90a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610a159061252e565b6001600160a01b0381166115325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a15565b610cbb81611efd565b6001600160a01b03831661159d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a15565b6001600160a01b0382166115fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a15565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116845760405162461bcd60e51b8152600401610a15906125c0565b6001600160a01b0382166116aa5760405162461bcd60e51b8152600401610a1590612605565b6001600160a01b0383165f9081526014602052604090205460ff16156117065760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b6044820152606401610a15565b6001600160a01b0382165f9081526014602052604090205460ff16156117605760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b6044820152606401610a15565b805f036117775761177283835f612157565b505050565b600e5460ff1615611aa8576005546001600160a01b038481169116148015906117ae57506005546001600160a01b03838116911614155b80156117c257506001600160a01b03821615155b80156117d957506001600160a01b03821661dead14155b80156117ef5750600854600160a01b900460ff16155b15611aa857600e54610100900460ff16611885576001600160a01b0383165f9081526015602052604090205460ff168061184057506001600160a01b0382165f9081526015602052604090205460ff165b6118855760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a15565b6001600160a01b0383165f9081526017602052604090205460ff1680156118c457506001600160a01b0382165f9081526016602052604090205460ff16155b1561198957600a5481111561192a5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b6064820152608401610a15565b600c5461193683610d12565b61194090836125ad565b11156119845760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a15565b611aa8565b6001600160a01b0382165f9081526017602052604090205460ff1680156119c857506001600160a01b0383165f9081526016602052604090205460ff16155b15611a2f57600a548111156119845760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b6064820152608401610a15565b6001600160a01b0382165f9081526016602052604090205460ff16611aa857600c54611a5a83610d12565b611a6490836125ad565b1115611aa85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a15565b5f611ab230610d12565b600b5490915081108015908190611ad15750600e5462010000900460ff165b8015611ae75750600854600160a01b900460ff16155b8015611b0b57506001600160a01b0385165f9081526017602052604090205460ff16155b8015611b2f57506001600160a01b0385165f9081526015602052604090205460ff16155b8015611b5357506001600160a01b0384165f9081526015602052604090205460ff16155b15611b81576008805460ff60a01b1916600160a01b179055611b736122aa565b6008805460ff60a01b191690555b6008546001600160a01b0386165f9081526015602052604090205460ff600160a01b909204821615911680611bcd57506001600160a01b0385165f9081526015602052604090205460ff165b15611bd557505f5b5f8115611d9e576001600160a01b0386165f9081526017602052604090205460ff168015611c0457505f601154115b15611cac57611c296064611c236011548861234d90919063ffffffff16565b9061235f565b905060115460125482611c3c9190612577565b611c46919061258e565b60135f828254611c5691906125ad565b90915550611c6890506012600a612728565b611c73906064612577565b85611c7d89610d12565b611c879190612736565b11611ca7576001600160a01b0387165f908152600d602052604090204290555b611d80565b6001600160a01b0387165f9081526017602052604090205460ff168015611cd457505f600f54115b15611d8057611cf36064611c23600f548861234d90919063ffffffff16565b9050600f5460105482611d069190612577565b611d10919061258e565b60135f828254611d2091906125ad565b90915550506001600160a01b0386165f908152600d6020526040902054158015611d605750611d516012600a612728565b611d5c906064612577565b8510155b15611d80576001600160a01b0386165f908152600d602052604090204290555b8015611d9157611d91873083612157565b611d9b8186612736565b94505b611da9878787612157565b50505050505050565b6001600160a01b038216611e125760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a15565b6001600160a01b0382165f9081526020819052604090205481811015611e855760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a15565b6001600160a01b0383165f908152602081905260408120838303905560028054849290611eb3908490612736565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611fd457611fd4612749565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612074919061275d565b8160018151811061208757612087612749565b60200260200101906001600160a01b031690816001600160a01b0316815250506120d2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461153b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906121269085905f90869030904290600401612778565b5f604051808303815f87803b15801561213d575f80fd5b505af115801561214f573d5f803e3d5ffd5b505050505050565b6001600160a01b03831661217d5760405162461bcd60e51b8152600401610a15906125c0565b6001600160a01b0382166121a35760405162461bcd60e51b8152600401610a1590612605565b6001600160a01b0383165f908152602081905260409020548181101561221a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a15565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906122509084906125ad565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161229c91815260200190565b60405180910390a350505050565b5f6122b430610d12565b90505f815f036122c2575050565b600b546122d090600a612577565b8211156122e857600b546122e590600a612577565b91505b6122f182611fa1565b5f60138190556009546040516001600160a01b039091169147919081818185875af1925050503d805f8114612341576040519150601f19603f3d011682016040523d82523d5f602084013e612346565b606091505b5050505050565b5f6123588284612577565b9392505050565b5f612358828461258e565b5f602080835283518060208501525f5b818110156123965785810183015185820160400152820161237a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cbb575f80fd5b5f80604083850312156123db575f80fd5b82356123e6816123b6565b946020939093013593505050565b5f60208284031215612404575f80fd5b5035919050565b5f805f6060848603121561241d575f80fd5b8335612428816123b6565b92506020840135612438816123b6565b929592945050506040919091013590565b5f60208284031215612459575f80fd5b8135612358816123b6565b8035801515811461132d575f80fd5b5f8060408385031215612484575f80fd5b823561248f816123b6565b915061249d60208401612464565b90509250929050565b5f602082840312156124b6575f80fd5b61235882612464565b5f80604083850312156124d0575f80fd5b82356124db816123b6565b915060208301356124eb816123b6565b809150509250929050565b600181811c9082168061250a57607f821691505b60208210810361252857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109e5576109e5612563565b5f826125a857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109e5576109e5612563565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600181815b8085111561268257815f190482111561266857612668612563565b8085161561267557918102915b93841c939080029061264d565b509250929050565b5f82612698575060016109e5565b816126a457505f6109e5565b81600181146126ba57600281146126c4576126e0565b60019150506109e5565b60ff8411156126d5576126d5612563565b50506001821b6109e5565b5060208310610133831016604e8410600b8410161715612703575081810a6109e5565b61270d8383612648565b805f190482111561272057612720612563565b029392505050565b5f61235860ff84168361268a565b818103818111156109e5576109e5612563565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561276d575f80fd5b8151612358816123b6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156127c85784516001600160a01b0316835293830193918301916001016127a3565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e1c705255f483372611de2b3cebbed6ce3f7031b5af2805a9ee13ada927c70ad64736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000dd0d69e7f464b89fd3ac888e104b918af7223bb8

-----Decoded View---------------
Arg [0] : _marketingAdd (address): 0xdd0d69E7F464B89fd3AC888E104b918af7223bB8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000dd0d69e7f464b89fd3ac888e104b918af7223bb8


Deployed Bytecode Sourcemap

15480:12592:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3899:194;;;;;;;;;;-1:-1:-1;3899:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3899:194:0;1023:187:1;15553:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;15553:51:0;1215:230:1;3240:108:0;;;;;;;;;;-1:-1:-1;3328:12:0;;3240:108;;;1596:25:1;;;1584:2;1569:18;3240:108:0;1450:177:1;19511:247:0;;;;;;;;;;-1:-1:-1;19511:247:0;;;;;:::i;:::-;;:::i;:::-;;19766:261;;;;;;;;;;-1:-1:-1;19766:261:0;;;;;:::i;:::-;;:::i;4101:529::-;;;;;;;;;;-1:-1:-1;4101:529:0;;;;;:::i;:::-;;:::i;15646:53::-;;;;;;;;;;;;15692:6;15646:53;;15917:25;;;;;;;;;;;;;;;;3139:93;;;;;;;;;;-1:-1:-1;3139:93:0;;3222:2;2628:36:1;;2616:2;2601:18;3139:93:0;2486:184:1;4638:290:0;;;;;;;;;;-1:-1:-1;4638:290:0;;;;;:::i;:::-;;:::i;27936:133::-;;;;;;;;;;-1:-1:-1;27936:133:0;;;;;:::i;:::-;;:::i;27815:113::-;;;;;;;;;;-1:-1:-1;27815:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;27903:17:0;27876:7;27903:17;;;:11;:17;;;;;;;27815:113;15743:29;;;;;;;;;;-1:-1:-1;15743:29:0;;;;-1:-1:-1;;;;;15743:29:0;;;15951:46;;;;;;;;;;-1:-1:-1;15951:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;15611:28;;;;;;;;;;-1:-1:-1;15611:28:0;;;;-1:-1:-1;;;;;15611:28:0;;;16006:33;;;;;;;;;;-1:-1:-1;16006:33:0;;;;;;;;21759:126;;;;;;;;;;-1:-1:-1;21759:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;21849:28:0;21825:4;21849:28;;;:19;:28;;;;;;;;;21759:126;15706:30;;;;;;;;;;-1:-1:-1;15706:30:0;;;;-1:-1:-1;;;;;15706:30:0;;;16274:31;;;;;;;;;;;;;;;;20035:120;;;;;;;;;;-1:-1:-1;20035:120:0;;;;;:::i;:::-;;:::i;16199:28::-;;;;;;;;;;;;;;;;16086:31;;;;;;;;;;-1:-1:-1;16086:31:0;;;;;;;;;;;3356:143;;;;;;;;;;-1:-1:-1;3356:143:0;;;;;:::i;:::-;;:::i;924:103::-;;;;;;;;;;;;;:::i;20359:227::-;;;;;;;;;;-1:-1:-1;20359:227:0;;;;;:::i;:::-;;:::i;15850:20::-;;;;;;;;;;;;;;;;18831:121;;;;;;;;;;;;;:::i;16160:30::-;;;;;;;;;;;;;;;;18667:112;;;;;;;;;;;;;:::i;701:87::-;;;;;;;;;;-1:-1:-1;774:6:0;;-1:-1:-1;;;;;774:6:0;701:87;;16234:31;;;;;;;;;;;;;;;;20251:100;;;;;;;;;;-1:-1:-1;20251:100:0;;;;;:::i;:::-;;:::i;3027:104::-;;;;;;;;;;;;;:::i;21024:306::-;;;;;;;;;;-1:-1:-1;21024:306:0;;;;;:::i;:::-;;:::i;4936:475::-;;;;;;;;;;-1:-1:-1;4936:475:0;;;;;:::i;:::-;;:::i;3507:200::-;;;;;;;;;;-1:-1:-1;3507:200:0;;;;;:::i;:::-;;:::i;16482:57::-;;;;;;;;;;-1:-1:-1;16482:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25923:259;;;;;;;;;;-1:-1:-1;25923:259:0;;;;;:::i;:::-;;:::i;27303:314::-;;;;;;;;;;-1:-1:-1;27303:314:0;;;;;:::i;:::-;;:::i;16046:33::-;;;;;;;;;;-1:-1:-1;16046:33:0;;;;;;;;;;;20834:182;;;;;;;;;;-1:-1:-1;20834:182:0;;;;;:::i;:::-;;:::i;19022:481::-;;;;;;;;;;-1:-1:-1;19022:481:0;;;;;:::i;:::-;;:::i;27625:182::-;;;;;;;;;;-1:-1:-1;27625:182:0;;;;;:::i;:::-;;:::i;16126:27::-;;;;;;;;;;;;;;;;3715:176;;;;;;;;;;-1:-1:-1;3715:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;3856:18:0;;;3829:7;3856:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3715:176;15877:33;;;;;;;;;;;;;;;;16425:48;;;;;;;;;;-1:-1:-1;16425:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20594:232;;;;;;;;;;-1:-1:-1;20594:232:0;;;;;:::i;:::-;;:::i;21534:217::-;;;;;;;;;;-1:-1:-1;21534:217:0;;;;;:::i;:::-;;:::i;1035:238::-;;;;;;;;;;-1:-1:-1;1035:238:0;;;;;:::i;:::-;;:::i;2919:100::-;2973:13;3006:5;2999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:100;:::o;3899:194::-;4007:4;4024:39;302:10;4047:7;4056:6;4024:8;:39::i;:::-;-1:-1:-1;4081:4:0;3899:194;;;;;:::o;19511:247::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;;;;;;;;;19648:4:::1;19640;19619:13;3328:12:::0;;;3240:108;19619:13:::1;:17;::::0;19635:1:::1;19619:17;:::i;:::-;19618:26;;;;:::i;:::-;19617:35;;;;:::i;:::-;19607:6;:45;;19585:127;;;::::0;-1:-1:-1;;;19585:127:0;;5465:2:1;19585:127:0::1;::::0;::::1;5447:21:1::0;;;5484:18;;;5477:30;5543:34;5523:18;;;5516:62;5595:18;;19585:127:0::1;5263:356:1::0;19585:127:0::1;19731:19;:6:::0;19741:8:::1;19731:19;:::i;:::-;19723:5;:27:::0;-1:-1:-1;19511:247:0:o;19766:261::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;19907:4:::1;19899;19878:13;3328:12:::0;;;3240:108;19878:13:::1;:17;::::0;19894:1:::1;19878:17;:::i;:::-;19877:26;;;;:::i;:::-;19876:35;;;;:::i;:::-;19866:6;:45;;19844:132;;;::::0;-1:-1:-1;;;19844:132:0;;5826:2:1;19844:132:0::1;::::0;::::1;5808:21:1::0;5865:2;5845:18;;;5838:30;5904:34;5884:18;;;5877:62;-1:-1:-1;;;5955:18:1;;;5948:35;6000:19;;19844:132:0::1;5624:401:1::0;19844:132:0::1;20000:19;:6:::0;20010:8:::1;20000:19;:::i;:::-;19987:10;:32:::0;-1:-1:-1;19766:261:0:o;4101:529::-;4241:4;4258:36;4268:6;4276:9;4287:6;4258:9;:36::i;:::-;-1:-1:-1;;;;;4334:19:0;;4307:24;4334:19;;;:11;:19;;;;;;;;302:10;4334:33;;;;;;;;4400:26;;;;4378:116;;;;-1:-1:-1;;;4378:116:0;;6232:2:1;4378:116:0;;;6214:21:1;6271:2;6251:18;;;6244:30;6310:34;6290:18;;;6283:62;-1:-1:-1;;;6361:18:1;;;6354:38;6409:19;;4378:116:0;6030:404:1;4378:116:0;4530:57;4539:6;302:10;4580:6;4561:16;:25;4530:8;:57::i;:::-;-1:-1:-1;4618:4:0;;4101:529;-1:-1:-1;;;;4101:529:0:o;4638:290::-;302:10;4751:4;4840:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4840:34:0;;;;;;;;;;4751:4;;4768:130;;4818:7;;4840:47;;4877:10;;4840:47;:::i;:::-;4768:8;:130::i;27936:133::-;28003:1;27994:6;:10;27986:39;;;;-1:-1:-1;;;27986:39:0;;6771:2:1;27986:39:0;;;6753:21:1;6810:2;6790:18;;;6783:30;-1:-1:-1;;;6829:18:1;;;6822:46;6885:18;;27986:39:0;6569:340:1;27986:39:0;28036:25;28042:10;28054:6;28036:5;:25::i;:::-;27936:133;:::o;20035:120::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20116:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:31;;-1:-1:-1;;20116:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20035:120::o;3356:143::-;-1:-1:-1;;;;;3473:18:0;3446:7;3473:18;;;;;;;;;;;;3356:143::o;924:103::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;989:30:::1;1016:1;989:18;:30::i;:::-;924:103::o:0;20359:227::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;20435:15:::1;:31:::0;;;20477:12:::1;:30:::0;;;20542:2:::1;20526:18:::0;::::1;;20518:60;;;::::0;-1:-1:-1;;;20518:60:0;;7116:2:1;20518:60:0::1;::::0;::::1;7098:21:1::0;7155:2;7135:18;;;7128:30;7194:31;7174:18;;;7167:59;7243:18;;20518:60:0::1;6914:353:1::0;18831:121:0;774:6;;18883:4;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;-1:-1:-1;18900:14:0::1;:22:::0;;-1:-1:-1;;18900:22:0::1;::::0;;;18831:121;:::o;18667:112::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;18722:13:::1;:20:::0;;-1:-1:-1;;18753:18:0;;;;;18667:112::o;20251:100::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;20322:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20322:21:0;;::::1;::::0;;;::::1;::::0;;20251:100::o;3027:104::-;3083:13;3116:7;3109:14;;;;;:::i;21024:306::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;21170:13:::1;::::0;-1:-1:-1;;;;;21170:13:0;;::::1;21162:21:::0;;::::1;::::0;21140:128:::1;;;::::0;-1:-1:-1;;;21140:128:0;;7474:2:1;21140:128:0::1;::::0;::::1;7456:21:1::0;7513:2;7493:18;;;7486:30;7552:34;7532:18;;;7525:62;7623:27;7603:18;;;7596:55;7668:19;;21140:128:0::1;7272:421:1::0;21140:128:0::1;21281:41;21310:4;21316:5;21281:28;:41::i;:::-;21024:306:::0;;:::o;4936:475::-;302:10;5054:4;5098:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5098:34:0;;;;;;;;;;5165:35;;;;5143:122;;;;-1:-1:-1;;;5143:122:0;;7900:2:1;5143:122:0;;;7882:21:1;7939:2;7919:18;;;7912:30;7978:34;7958:18;;;7951:62;-1:-1:-1;;;8029:18:1;;;8022:35;8074:19;;5143:122:0;7698:401:1;5143:122:0;5301:67;302:10;5324:7;5352:15;5333:16;:34;5301:8;:67::i;:::-;-1:-1:-1;5399:4:0;;4936:475;-1:-1:-1;;;4936:475:0:o;3507:200::-;3618:4;3635:42;302:10;3659:9;3670:6;3635:9;:42::i;25923:259::-;26003:14;;-1:-1:-1;;;;;26003:14:0;302:10;-1:-1:-1;;;;;25987:30:0;;25979:39;;;;;;26061:24;26079:4;26061:9;:24::i;:::-;26051:6;:34;;:48;;;;;26098:1;26089:6;:10;26051:48;26029:110;;;;-1:-1:-1;;;26029:110:0;;8306:2:1;26029:110:0;;;8288:21:1;8345:2;8325:18;;;8318:30;-1:-1:-1;;;8364:18:1;;;8357:42;8416:18;;26029:110:0;8104:336:1;26029:110:0;26150:24;26167:6;26150:16;:24::i;27303:314::-;774:6;;-1:-1:-1;;;;;774:6:0;27390:10;:21;;:53;;-1:-1:-1;27429:14:0;;-1:-1:-1;;;;;27429:14:0;27415:10;:28;27390:53;27368:117;;;;-1:-1:-1;;;27368:117:0;;8647:2:1;27368:117:0;;;8629:21:1;8686:2;8666:18;;;8659:30;-1:-1:-1;;;8705:18:1;;;8698:44;8759:18;;27368:117:0;8445:338:1;27368:117:0;27519:1;27500:7;774:6;;-1:-1:-1;;;;;774:6:0;;701:87;27500:7;-1:-1:-1;;;;;27500:21:0;;27496:78;;774:6;;27538:14;:24;;-1:-1:-1;;;;;;27538:24:0;-1:-1:-1;;;;;774:6:0;;;27538:24;;;;;;27496:78;27584:15;:25;;-1:-1:-1;;;;;;27584:25:0;-1:-1:-1;;;;;27584:25:0;;;;;;;;;;27303:314::o;20834:182::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20919:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20919:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20974:34;;1163:41:1;;;20974:34:0::1;::::0;1136:18:1;20974:34:0::1;;;;;;;20834:182:::0;;:::o;19022:481::-;774:6;;19119:4;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;19193:6:::1;19172:13;3328:12:::0;;;3240:108;19172:13:::1;:17;::::0;19188:1:::1;19172:17;:::i;:::-;19171:28;;;;:::i;:::-;19158:9;:41;;19136:144;;;::::0;-1:-1:-1;;;19136:144:0;;8990:2:1;19136:144:0::1;::::0;::::1;8972:21:1::0;9029:2;9009:18;;;9002:30;9068:34;9048:18;;;9041:62;-1:-1:-1;;;9119:18:1;;;9112:51;9180:19;;19136:144:0::1;8788:417:1::0;19136:144:0::1;19348:4;19327:13;3328:12:::0;;;3240:108;19327:13:::1;:17;::::0;19343:1:::1;19327:17;:::i;:::-;19326:26;;;;:::i;:::-;19313:9;:39;;19291:141;;;::::0;-1:-1:-1;;;19291:141:0;;9412:2:1;19291:141:0::1;::::0;::::1;9394:21:1::0;9451:2;9431:18;;;9424:30;9490:34;9470:18;;;9463:62;-1:-1:-1;;;9541:18:1;;;9534:50;9601:19;;19291:141:0::1;9210:416:1::0;19291:141:0::1;-1:-1:-1::0;19443:18:0::1;:30:::0;;;19491:4:::1;907:1;19022:481:::0;;;:::o;27625:182::-;27726:15;;-1:-1:-1;;;;;27726:15:0;27712:10;:29;27704:56;;;;-1:-1:-1;;;27704:56:0;;9833:2:1;27704:56:0;;;9815:21:1;9872:2;9852:18;;;9845:30;-1:-1:-1;;;9891:18:1;;;9884:44;9945:18;;27704:56:0;9631:338:1;27704:56:0;-1:-1:-1;;;;;27771:17:0;;;;;;;:11;:17;;;;;:28;27625:182::o;20594:232::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;20671:16:::1;:32:::0;;;20714:13:::1;:32:::0;;;20782:2:::1;20765:19:::0;::::1;;20757:61;;;::::0;-1:-1:-1;;;20757:61:0;;7116:2:1;20757:61:0::1;::::0;::::1;7098:21:1::0;7155:2;7135:18;;;7128:30;7194:31;7174:18;;;7167:59;7243:18;;20757:61:0::1;6914:353:1::0;21534:217:0;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;21683:14:::1;::::0;21642:56:::1;::::0;-1:-1:-1;;;;;21683:14:0;;::::1;::::0;21642:56;::::1;::::0;::::1;::::0;21683:14:::1;::::0;21642:56:::1;21709:14;:34:::0;;-1:-1:-1;;;;;;21709:34:0::1;-1:-1:-1::0;;;;;21709:34:0;;;::::1;::::0;;;::::1;::::0;;21534:217::o;1035:238::-;774:6;;-1:-1:-1;;;;;774:6:0;302:10;836:23;828:68;;;;-1:-1:-1;;;828:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1138:22:0;::::1;1116:110;;;::::0;-1:-1:-1;;;1116:110:0;;10176:2:1;1116:110:0::1;::::0;::::1;10158:21:1::0;10215:2;10195:18;;;10188:30;10254:34;10234:18;;;10227:62;-1:-1:-1;;;10305:18:1;;;10298:36;10351:19;;1116:110:0::1;9974:402:1::0;1116:110:0::1;1237:28;1256:8;1237:18;:28::i;7203:380::-:0;-1:-1:-1;;;;;7339:19:0;;7331:68;;;;-1:-1:-1;;;7331:68:0;;10583:2:1;7331:68:0;;;10565:21:1;10622:2;10602:18;;;10595:30;10661:34;10641:18;;;10634:62;-1:-1:-1;;;10712:18:1;;;10705:34;10756:19;;7331:68:0;10381:400:1;7331:68:0;-1:-1:-1;;;;;7418:21:0;;7410:68;;;;-1:-1:-1;;;7410:68:0;;10988:2:1;7410:68:0;;;10970:21:1;11027:2;11007:18;;;11000:30;11066:34;11046:18;;;11039:62;-1:-1:-1;;;11117:18:1;;;11110:32;11159:19;;7410:68:0;10786:398:1;7410:68:0;-1:-1:-1;;;;;7491:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7543:32;;1596:25:1;;;7543:32:0;;1569:18:1;7543:32:0;;;;;;;7203:380;;;:::o;21943:3857::-;-1:-1:-1;;;;;22075:18:0;;22067:68;;;;-1:-1:-1;;;22067:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22154:16:0;;22146:64;;;;-1:-1:-1;;;22146:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22230:18:0;;;;;;:12;:18;;;;;;;;22229:19;22221:49;;;;-1:-1:-1;;;22221:49:0;;12201:2:1;22221:49:0;;;12183:21:1;12240:2;12220:18;;;12213:30;-1:-1:-1;;;12259:18:1;;;12252:47;12316:18;;22221:49:0;11999:341:1;22221:49:0;-1:-1:-1;;;;;22290:16:0;;;;;;:12;:16;;;;;;;;22289:17;22281:45;;;;-1:-1:-1;;;22281:45:0;;12547:2:1;22281:45:0;;;12529:21:1;12586:2;12566:18;;;12559:30;-1:-1:-1;;;12605:18:1;;;12598:45;12660:18;;22281:45:0;12345:339:1;22281:45:0;22343:6;22353:1;22343:11;22339:93;;22371:28;22387:4;22393:2;22397:1;22371:15;:28::i;:::-;21943:3857;;;:::o;22339:93::-;22448:14;;;;22444:1509;;;774:6;;-1:-1:-1;;;;;22501:15:0;;;774:6;;22501:15;;;;:49;;-1:-1:-1;774:6:0;;-1:-1:-1;;;;;22537:13:0;;;774:6;;22537:13;;22501:49;:86;;;;-1:-1:-1;;;;;;22571:16:0;;;;22501:86;:128;;;;-1:-1:-1;;;;;;22608:21:0;;22622:6;22608:21;;22501:128;:158;;;;-1:-1:-1;22651:8:0;;-1:-1:-1;;;22651:8:0;;;;22650:9;22501:158;22479:1463;;;22699:13;;;;;;;22694:223;;-1:-1:-1;;;;;22771:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;22800:23:0;;;;;;:19;:23;;;;;;;;22771:52;22737:160;;;;-1:-1:-1;;;22737:160:0;;12891:2:1;22737:160:0;;;12873:21:1;12930:2;12910:18;;;12903:30;-1:-1:-1;;;12949:18:1;;;12942:52;13011:18;;22737:160:0;12689:346:1;22737:160:0;-1:-1:-1;;;;;22969:31:0;;;;;;:25;:31;;;;;;;;:56;;;;-1:-1:-1;;;;;;23005:20:0;;;;;;:16;:20;;;;;;;;23004:21;22969:56;22965:962;;;23094:5;;23084:6;:15;;23050:139;;;;-1:-1:-1;;;23050:139:0;;13242:2:1;23050:139:0;;;13224:21:1;13281:2;13261:18;;;13254:30;13320:34;13300:18;;;13293:62;-1:-1:-1;;;13371:18:1;;;13364:36;13417:19;;23050:139:0;13040:402:1;23050:139:0;23272:10;;23255:13;23265:2;23255:9;:13::i;:::-;23246:22;;:6;:22;:::i;:::-;:36;;23212:141;;;;-1:-1:-1;;;23212:141:0;;13649:2:1;23212:141:0;;;13631:21:1;13688:2;13668:18;;;13661:30;-1:-1:-1;;;13707:18:1;;;13700:49;13766:18;;23212:141:0;13447:343:1;23212:141:0;22965:962;;;-1:-1:-1;;;;;23451:29:0;;;;;;:25;:29;;;;;;;;:56;;;;-1:-1:-1;;;;;;23485:22:0;;;;;;:16;:22;;;;;;;;23484:23;23451:56;23425:502;;;23594:5;;23584:6;:15;;23550:140;;;;-1:-1:-1;;;23550:140:0;;13997:2:1;23550:140:0;;;13979:21:1;14036:2;14016:18;;;14009:30;14075:34;14055:18;;;14048:62;-1:-1:-1;;;14126:18:1;;;14119:37;14173:19;;23550:140:0;13795:403:1;23425:502:0;-1:-1:-1;;;;;23721:20:0;;;;;;:16;:20;;;;;;;;23716:211;;23826:10;;23809:13;23819:2;23809:9;:13::i;:::-;23800:22;;:6;:22;:::i;:::-;:36;;23766:141;;;;-1:-1:-1;;;23766:141:0;;13649:2:1;23766:141:0;;;13631:21:1;13688:2;13668:18;;;13661:30;-1:-1:-1;;;13707:18:1;;;13700:49;13766:18;;23766:141:0;13447:343:1;23766:141:0;23965:28;23996:24;24014:4;23996:9;:24::i;:::-;24070:18;;23965:55;;-1:-1:-1;24046:42:0;;;;;;;24119:35;;-1:-1:-1;24143:11:0;;;;;;;24119:35;:61;;;;-1:-1:-1;24172:8:0;;-1:-1:-1;;;24172:8:0;;;;24171:9;24119:61;:110;;;;-1:-1:-1;;;;;;24198:31:0;;;;;;:25;:31;;;;;;;;24197:32;24119:110;:153;;;;-1:-1:-1;;;;;;24247:25:0;;;;;;:19;:25;;;;;;;;24246:26;24119:153;:194;;;;-1:-1:-1;;;;;;24290:23:0;;;;;;:19;:23;;;;;;;;24289:24;24119:194;24101:326;;;24340:8;:15;;-1:-1:-1;;;;24340:15:0;-1:-1:-1;;;24340:15:0;;;24372:10;:8;:10::i;:::-;24399:8;:16;;-1:-1:-1;;;;24399:16:0;;;24101:326;24455:8;;-1:-1:-1;;;;;24565:25:0;;24439:12;24565:25;;;:19;:25;;;;;;24455:8;-1:-1:-1;;;24455:8:0;;;;;24454:9;;24565:25;;:52;;-1:-1:-1;;;;;;24594:23:0;;;;;;:19;:23;;;;;;;;24565:52;24561:100;;;-1:-1:-1;24644:5:0;24561:100;24673:12;24778:7;24774:973;;;-1:-1:-1;;;;;24830:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;24879:1;24863:13;;:17;24830:50;24826:772;;;24908:34;24938:3;24908:25;24919:13;;24908:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;24901:41;;25009:13;;24989:16;;24982:4;:23;;;;:::i;:::-;24981:41;;;;:::i;:::-;24961:16;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;25079:16:0;;-1:-1:-1;3222:2:0;25079;:16;:::i;:::-;25073:22;;:3;:22;:::i;:::-;25063:6;25045:15;25055:4;25045:9;:15::i;:::-;:24;;;;:::i;:::-;:50;25041:134;;-1:-1:-1;;;;;25120:17:0;;;;;;:11;:17;;;;;25140:15;25120:35;;25041:134;24826:772;;;-1:-1:-1;;;;;25236:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;25286:1;25271:12;;:16;25236:51;25232:366;;;25315:33;25344:3;25315:24;25326:12;;25315:6;:10;;:24;;;;:::i;:33::-;25308:40;;25414:12;;25395:15;;25388:4;:22;;;;:::i;:::-;25387:39;;;;:::i;:::-;25367:16;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;25449:15:0;;;;;;:11;:15;;;;;;:20;:56;;;;-1:-1:-1;25489:16:0;3222:2;25489;:16;:::i;:::-;25483:22;;:3;:22;:::i;:::-;25473:6;:32;;25449:56;25445:138;;;-1:-1:-1;;;;;25530:15:0;;;;;;:11;:15;;;;;25548;25530:33;;25445:138;25618:8;;25614:91;;25647:42;25663:4;25677;25684;25647:15;:42::i;:::-;25721:14;25731:4;25721:14;;:::i;:::-;;;24774:973;25759:33;25775:4;25781:2;25785:6;25759:15;:33::i;:::-;22056:3744;;;;21943:3857;;;:::o;6604:591::-;-1:-1:-1;;;;;6688:21:0;;6680:67;;;;-1:-1:-1;;;6680:67:0;;15915:2:1;6680:67:0;;;15897:21:1;15954:2;15934:18;;;15927:30;15993:34;15973:18;;;15966:62;-1:-1:-1;;;16044:18:1;;;16037:31;16085:19;;6680:67:0;15713:397:1;6680:67:0;-1:-1:-1;;;;;6847:18:0;;6822:22;6847:18;;;;;;;;;;;6884:24;;;;6876:71;;;;-1:-1:-1;;;6876:71:0;;16317:2:1;6876:71:0;;;16299:21:1;16356:2;16336:18;;;16329:30;16395:34;16375:18;;;16368:62;-1:-1:-1;;;16446:18:1;;;16439:32;16488:19;;6876:71:0;16115:398:1;6876:71:0;-1:-1:-1;;;;;6983:18:0;;:9;:18;;;;;;;;;;7004:23;;;6983:44;;7049:12;:22;;7021:6;;6983:9;7049:22;;7021:6;;7049:22;:::i;:::-;;;;-1:-1:-1;;7089:37:0;;1596:25:1;;;7115:1:0;;-1:-1:-1;;;;;7089:37:0;;;;;1584:2:1;1569:18;7089:37:0;;;;;;;21943:3857;;;:::o;1281:191::-;1374:6;;;-1:-1:-1;;;;;1391:17:0;;;-1:-1:-1;;;;;;1391:17:0;;;;;;;1424:40;;1374:6;;;1391:17;1374:6;;1424:40;;1355:16;;1424:40;1344:128;1281:191;:::o;21338:188::-;-1:-1:-1;;;;;21421:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21421:39:0;;;;;;;;;;21478:40;;21421:39;;:31;21478:40;;;21338:188;;:::o;26190:589::-;26340:16;;;26354:1;26340:16;;;;;;;;26316:21;;26340:16;;;;;;;;;;-1:-1:-1;26340:16:0;26316:40;;26385:4;26367;26372:1;26367:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;26367:23:0;;;-1:-1:-1;;;;;26367:23:0;;;;;26411:15;-1:-1:-1;;;;;26411:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26401:4;26406:1;26401:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;26401:32:0;;;-1:-1:-1;;;;;26401:32:0;;;;;26446:62;26463:4;26478:15;26496:11;26446:8;:62::i;:::-;26547:224;;-1:-1:-1;;;26547:224:0;;-1:-1:-1;;;;;26547:15:0;:66;;;;:224;;26628:11;;26654:1;;26698:4;;26725;;26745:15;;26547:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26245:534;26190:589;:::o;5419:770::-;-1:-1:-1;;;;;5559:20:0;;5551:70;;;;-1:-1:-1;;;5551:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5640:23:0;;5632:71;;;;-1:-1:-1;;;5632:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5800:17:0;;5776:21;5800:17;;;;;;;;;;;5850:23;;;;5828:111;;;;-1:-1:-1;;;5828:111:0;;18225:2:1;5828:111:0;;;18207:21:1;18264:2;18244:18;;;18237:30;18303:34;18283:18;;;18276:62;-1:-1:-1;;;18354:18:1;;;18347:36;18400:19;;5828:111:0;18023:402:1;5828:111:0;-1:-1:-1;;;;;5975:17:0;;;:9;:17;;;;;;;;;;;5995:22;;;5975:42;;6039:20;;;;;;;;:30;;6011:6;;5975:9;6039:30;;6011:6;;6039:30;:::i;:::-;;;;;;;;6104:9;-1:-1:-1;;;;;6087:35:0;6096:6;-1:-1:-1;;;;;6087:35:0;;6115:6;6087:35;;;;1596:25:1;;1584:2;1569:18;;1450:177;6087:35:0;;;;;;;;5540:649;5419:770;;;:::o;26787:508::-;26826:23;26852:24;26870:4;26852:9;:24::i;:::-;26826:50;;26887:12;26916:15;26935:1;26916:20;26912:59;;26953:7;;26787:508::o;26912:59::-;27005:18;;:23;;27026:2;27005:23;:::i;:::-;26987:15;:41;26983:115;;;27063:18;;:23;;27084:2;27063:23;:::i;:::-;27045:41;;26983:115;27110:33;27127:15;27110:16;:33::i;:::-;27175:1;27156:16;:20;;;27209:14;;27201:86;;-1:-1:-1;;;;;27209:14:0;;;;27251:21;;27201:86;;27175:1;27201:86;27251:21;27209:14;27201:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26787:508:0:o;9332:98::-;9390:7;9417:5;9421:1;9417;:5;:::i;:::-;9410:12;9332:98;-1:-1:-1;;;9332:98:0:o;9438:::-;9496:7;9523:5;9527:1;9523;:5;:::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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:180::-;1691:6;1744:2;1732:9;1723:7;1719:23;1715:32;1712:52;;;1760:1;1757;1750:12;1712:52;-1:-1:-1;1783:23:1;;1632:180;-1:-1:-1;1632:180:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2675:247::-;2734:6;2787:2;2775:9;2766:7;2762:23;2758:32;2755:52;;;2803:1;2800;2793:12;2755:52;2842:9;2829:23;2861:31;2886:5;2861:31;:::i;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3092:315;3157:6;3165;3218:2;3206:9;3197:7;3193:23;3189:32;3186:52;;;3234:1;3231;3224:12;3186:52;3273:9;3260:23;3292:31;3317:5;3292:31;:::i;:::-;3342:5;-1:-1:-1;3366:35:1;3397:2;3382:18;;3366:35;:::i;:::-;3356:45;;3092:315;;;;;:::o;3412:180::-;3468:6;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;3560:26;3576:9;3560:26;:::i;3597:388::-;3665:6;3673;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;3781:9;3768:23;3800:31;3825:5;3800:31;:::i;:::-;3850:5;-1:-1:-1;3907:2:1;3892:18;;3879:32;3920:33;3879:32;3920:33;:::i;:::-;3972:7;3962:17;;;3597:388;;;;;:::o;3990:380::-;4069:1;4065:12;;;;4112;;;4133:61;;4187:4;4179:6;4175:17;4165:27;;4133:61;4240:2;4232:6;4229:14;4209:18;4206:38;4203:161;;4286:10;4281:3;4277:20;4274:1;4267:31;4321:4;4318:1;4311:15;4349:4;4346:1;4339:15;4203:161;;3990:380;;;:::o;4375:356::-;4577:2;4559:21;;;4596:18;;;4589:30;4655:34;4650:2;4635:18;;4628:62;4722:2;4707:18;;4375:356::o;4736:127::-;4797:10;4792:3;4788:20;4785:1;4778:31;4828:4;4825:1;4818:15;4852:4;4849:1;4842:15;4868:168;4941:9;;;4972;;4989:15;;;4983:22;;4969:37;4959:71;;5010:18;;:::i;5041:217::-;5081:1;5107;5097:132;;5151:10;5146:3;5142:20;5139:1;5132:31;5186:4;5183:1;5176:15;5214:4;5211:1;5204:15;5097:132;-1:-1:-1;5243:9:1;;5041:217::o;6439:125::-;6504:9;;;6525:10;;;6522:36;;;6538:18;;:::i;11189:401::-;11391:2;11373:21;;;11430:2;11410:18;;;11403:30;11469:34;11464:2;11449:18;;11442:62;-1:-1:-1;;;11535:2:1;11520:18;;11513:35;11580:3;11565:19;;11189:401::o;11595:399::-;11797:2;11779:21;;;11836:2;11816:18;;;11809:30;11875:34;11870:2;11855:18;;11848:62;-1:-1:-1;;;11941:2:1;11926:18;;11919:33;11984:3;11969:19;;11595:399::o;14203:416::-;14292:1;14329:5;14292:1;14343:270;14364:7;14354:8;14351:21;14343:270;;;14423:4;14419:1;14415:6;14411:17;14405:4;14402:27;14399:53;;;14432:18;;:::i;:::-;14482:7;14472:8;14468:22;14465:55;;;14502:16;;;;14465:55;14581:22;;;;14541:15;;;;14343:270;;;14347:3;14203:416;;;;;:::o;14624:806::-;14673:5;14703:8;14693:80;;-1:-1:-1;14744:1:1;14758:5;;14693:80;14792:4;14782:76;;-1:-1:-1;14829:1:1;14843:5;;14782:76;14874:4;14892:1;14887:59;;;;14960:1;14955:130;;;;14867:218;;14887:59;14917:1;14908:10;;14931:5;;;14955:130;14992:3;14982:8;14979:17;14976:43;;;14999:18;;:::i;:::-;-1:-1:-1;;15055:1:1;15041:16;;15070:5;;14867:218;;15169:2;15159:8;15156:16;15150:3;15144:4;15141:13;15137:36;15131:2;15121:8;15118:16;15113:2;15107:4;15104:12;15100:35;15097:77;15094:159;;;-1:-1:-1;15206:19:1;;;15238:5;;15094:159;15285:34;15310:8;15304:4;15285:34;:::i;:::-;15355:6;15351:1;15347:6;15343:19;15334:7;15331:32;15328:58;;;15366:18;;:::i;:::-;15404:20;;14624:806;-1:-1:-1;;;14624:806:1:o;15435:140::-;15493:5;15522:47;15563:4;15553:8;15549:19;15543:4;15522:47;:::i;15580:128::-;15647:9;;;15668:11;;;15665:37;;;15682:18;;:::i;16650:127::-;16711:10;16706:3;16702:20;16699:1;16692:31;16742:4;16739:1;16732:15;16766:4;16763:1;16756:15;16782:251;16852:6;16905:2;16893:9;16884:7;16880:23;16876:32;16873:52;;;16921:1;16918;16911:12;16873:52;16953:9;16947:16;16972:31;16997:5;16972:31;:::i;17038:980::-;17300:4;17348:3;17337:9;17333:19;17379:6;17368:9;17361:25;17405:2;17443:6;17438:2;17427:9;17423:18;17416:34;17486:3;17481:2;17470:9;17466:18;17459:31;17510:6;17545;17539:13;17576:6;17568;17561:22;17614:3;17603:9;17599:19;17592:26;;17653:2;17645:6;17641:15;17627:29;;17674:1;17684:195;17698:6;17695:1;17692:13;17684:195;;;17763:13;;-1:-1:-1;;;;;17759:39:1;17747:52;;17854:15;;;;17819:12;;;;17795:1;17713:9;17684:195;;;-1:-1:-1;;;;;;;17935:32:1;;;;17930:2;17915:18;;17908:60;-1:-1:-1;;;17999:3:1;17984:19;17977:35;17896:3;17038:980;-1:-1:-1;;;17038:980:1:o

Swarm Source

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