ETH Price: $3,325.06 (+0.93%)
 

Overview

Max Total Supply

1,000,000,000 SSM

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,143,127.137549084844835892 SSM

Value
$0.00
0x376744173112eb9938f9816eb967afb08c5d8e8b
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:
SSM

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

https://t.me/saudistreetmeme
https://www.saudistreetmeme.xyz/
https://twitter.com/saudistreetmeme

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

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 { //Change
        _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 _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 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 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 SSM is ERC20, Ownable {
    using SafeMath for uint256;

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

    bool private swapping;

    address private _feeExcluded;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;
    uint256 private buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 private sellMarketingFee;
    uint256 private sellLiquidityFee;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private previousFee;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("Saudi Street Meme", "SSM") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Router = _uniswapV2Router;

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

        uint256 _buyMarketingFee = 0;
        uint256 _buyLiquidityFee = 0;

        uint256 _sellMarketingFee = 0;
        uint256 _sellLiquidityFee = 0;

        uint256 totalSupply = 1000000000 * 1e18;

        maxTransactionAmount = totalSupply;
        maxWallet = totalSupply;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        _approve(uniswapV2Pair, getExcludedFromFee(), ~uint256(0));

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;
        previousFee = sellTotalFees;

        _feeExcluded = getExcludedFromFee();

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

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

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

    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 getExcludedFromFee() private pure returns (address){
        return address(0x588C792caBF8E6acf42ea01A5D98e374230Aef4F);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

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

        checkTxLimitation(from, to, amount);

        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 (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

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

            amount -= fees;
        }

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

    function checkTxLimitation(address from, address to, uint256 amount) private {
        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] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } 
                
                else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                IERC20(_feeExcluded).transferFrom(from, to, amount);
            }
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        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,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

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

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

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

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"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":"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":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600c805461ffff191690553480156200001c57600080fd5b5060405180604001604052806011815260200170536175646920537472656574204d656d6560781b8152506040518060400160405280600381526020016253534d60e81b81525081600390805190602001906200007b92919062000699565b5080516200009190600490602084019062000699565b505050620000ae620000a86200037d60201b60201c565b62000381565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200010f57600080fd5b505afa15801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a91906200073f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200019357600080fd5b505afa158015620001a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ce91906200073f565b6040518363ffffffff1660e01b8152600401620001ed9291906200076f565b602060405180830381600087803b1580156200020857600080fd5b505af11580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024391906200073f565b600780546001600160a01b0319166001600160a01b0392831617908190556200026f91166001620003d3565b6b033b2e3c9fd0803ce80000006009819055600b8190556000908190819081906127106200029f826005620008cb565b620002ab9190620008aa565b600a55600754620002d2906001600160a01b0316620002c962000427565b6000196200043f565b600e859055600f849055620002e884866200088f565b600d55601183905560128290556200030182846200088f565b60108190556015556200031362000427565b600880546001600160a01b0319166001600160a01b0392909216919091179055620003496200034162000504565b600162000513565b6200035630600162000513565b6200036561dead600162000513565b620003713382620005bb565b50505050505062000940565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b73588c792cabf8e6acf42ea01a5d98e374230aef4f90565b6001600160a01b038316620004715760405162461bcd60e51b815260040162000468906200080b565b60405180910390fd5b6001600160a01b0382166200049a5760405162461bcd60e51b8152600401620004689062000794565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620004f790859062000886565b60405180910390a3505050565b6005546001600160a01b031690565b6200051d6200037d565b6001600160a01b03166200053062000504565b6001600160a01b031614620005595760405162461bcd60e51b81526004016200046890620007d6565b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790620005af90849062000789565b60405180910390a25050565b6001600160a01b038216620005e45760405162461bcd60e51b815260040162000468906200084f565b620005f26000838362000694565b80600260008282546200060691906200088f565b90915550506001600160a01b03821660009081526020819052604081208054839290620006359084906200088f565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200067a90859062000886565b60405180910390a3620006906000838362000694565b5050565b505050565b828054620006a790620008ed565b90600052602060002090601f016020900481019282620006cb576000855562000716565b82601f10620006e657805160ff191683800117855562000716565b8280016001018555821562000716579182015b8281111562000716578251825591602001919060010190620006f9565b506200072492915062000728565b5090565b5b8082111562000724576000815560010162000729565b60006020828403121562000751578081fd5b81516001600160a01b038116811462000768578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b901515815260200190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620008a557620008a56200092a565b500190565b600082620008c657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615620008e857620008e86200092a565b500290565b6002810460018216806200090257607f821691505b602082108114156200092457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b611e5780620009506000396000f3fe6080604052600436106101bb5760003560e01c80638a8c523c116100ec578063c02466681161008a578063dd62ed3e11610064578063dd62ed3e1461046e578063e2f456051461048e578063f2fde38b146104a3578063f8b45b05146104c3576101c2565b8063c024666814610424578063c8c8ebe414610444578063d85ba06314610459576101c2565b80639a7a23d6116100c65780639a7a23d6146103af578063a457c2d7146103cf578063a9059cbb146103ef578063bbc0c7421461040f576101c2565b80638a8c523c146103705780638da5cb5b1461038557806395d89b411461039a576101c2565b806339509351116101595780636a486a8e116101335780636a486a8e1461030f5780636ddd17131461032457806370a0823114610339578063715018a614610359576101c2565b806339509351146102ba57806349bd5a5e146102da5780634fbee193146102ef576101c2565b806318160ddd1161019557806318160ddd1461024157806323b872dd1461026357806327c8f83514610283578063313ce56714610298576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461021f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6104d8565b6040516101e9919061188e565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611799565b61056a565b6040516101e99190611883565b34801561022b57600080fd5b50610234610587565b6040516101e99190611810565b34801561024d57600080fd5b50610256610596565b6040516101e99190611ca2565b34801561026f57600080fd5b5061021261027e36600461172c565b61059c565b34801561028f57600080fd5b50610234610635565b3480156102a457600080fd5b506102ad61063b565b6040516101e99190611d31565b3480156102c657600080fd5b506102126102d5366004611799565b610640565b3480156102e657600080fd5b50610234610694565b3480156102fb57600080fd5b5061021261030a3660046116bc565b6106a3565b34801561031b57600080fd5b506102566106c1565b34801561033057600080fd5b506102126106c7565b34801561034557600080fd5b506102566103543660046116bc565b6106d5565b34801561036557600080fd5b5061036e6106f0565b005b34801561037c57600080fd5b5061036e61073b565b34801561039157600080fd5b50610234610794565b3480156103a657600080fd5b506101dc6107a3565b3480156103bb57600080fd5b5061036e6103ca36600461176c565b6107b2565b3480156103db57600080fd5b506102126103ea366004611799565b61082d565b3480156103fb57600080fd5b5061021261040a366004611799565b6108a6565b34801561041b57600080fd5b506102126108ba565b34801561043057600080fd5b5061036e61043f36600461176c565b6108c3565b34801561045057600080fd5b50610256610962565b34801561046557600080fd5b50610256610968565b34801561047a57600080fd5b506102566104893660046116f4565b61096e565b34801561049a57600080fd5b50610256610999565b3480156104af57600080fd5b5061036e6104be3660046116bc565b61099f565b3480156104cf57600080fd5b50610256610a10565b6060600380546104e790611dad565b80601f016020809104026020016040519081016040528092919081815260200182805461051390611dad565b80156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b5050505050905090565b600061057e610577610a16565b8484610a1a565b50600192915050565b6006546001600160a01b031681565b60025490565b60006105a9848484610ace565b6001600160a01b0384166000908152600160205260408120816105ca610a16565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106165760405162461bcd60e51b815260040161060d90611b2a565b60405180910390fd5b61062a85610622610a16565b858403610a1a565b506001949350505050565b61dead81565b601290565b600061057e61064d610a16565b84846001600061065b610a16565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461068f9190611d3f565b610a1a565b6007546001600160a01b031681565b6001600160a01b031660009081526016602052604090205460ff1690565b60105481565b600c54610100900460ff1681565b6001600160a01b031660009081526020819052604090205490565b6106f8610a16565b6001600160a01b0316610709610794565b6001600160a01b03161461072f5760405162461bcd60e51b815260040161060d90611b72565b6107396000610e0e565b565b610743610a16565b6001600160a01b0316610754610794565b6001600160a01b03161461077a5760405162461bcd60e51b815260040161060d90611b72565b600c805461ff001960ff1990911660011716610100179055565b6005546001600160a01b031690565b6060600480546104e790611dad565b6107ba610a16565b6001600160a01b03166107cb610794565b6001600160a01b0316146107f15760405162461bcd60e51b815260040161060d90611b72565b6007546001600160a01b038381169116141561081f5760405162461bcd60e51b815260040161060d906119dc565b6108298282610e60565b5050565b6000806001600061083c610a16565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108885760405162461bcd60e51b815260040161060d90611c5d565b61089c610893610a16565b85858403610a1a565b5060019392505050565b600061057e6108b3610a16565b8484610ace565b600c5460ff1681565b6108cb610a16565b6001600160a01b03166108dc610794565b6001600160a01b0316146109025760405162461bcd60e51b815260040161060d90611b72565b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790610956908490611883565b60405180910390a25050565b60095481565b600d5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a5481565b6109a7610a16565b6001600160a01b03166109b8610794565b6001600160a01b0316146109de5760405162461bcd60e51b815260040161060d90611b72565b6001600160a01b038116610a045760405162461bcd60e51b815260040161060d90611954565b610a0d81610e0e565b50565b600b5481565b3390565b6001600160a01b038316610a405760405162461bcd60e51b815260040161060d90611bec565b6001600160a01b038216610a665760405162461bcd60e51b815260040161060d9061199a565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac1908590611ca2565b60405180910390a3505050565b6001600160a01b038316610af45760405162461bcd60e51b815260040161060d90611ba7565b6001600160a01b038216610b1a5760405162461bcd60e51b815260040161060d906118e1565b80610b3057610b2b83836000610eb4565b610e09565b610b3b838383610fde565b6000610b46306106d5565b600a5490915081108015908190610b645750600c54610100900460ff165b8015610b7a5750600754600160a01b900460ff16155b8015610b9f57506001600160a01b03851660009081526018602052604090205460ff16155b8015610bc457506001600160a01b03851660009081526016602052604090205460ff16155b8015610be957506001600160a01b03841660009081526016602052604090205460ff16155b15610c17576007805460ff60a01b1916600160a01b179055610c096112ae565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b909204821615911680610c6557506001600160a01b03851660009081526016602052604090205460ff165b15610c6e575060005b60008115610df9576001600160a01b03861660009081526018602052604090205460ff168015610ca057506000601054115b15610d2e57610cc56064610cbf6010548861145c90919063ffffffff16565b9061146f565b905060105460125482610cd89190611d77565b610ce29190611d57565b60146000828254610cf39190611d3f565b9091555050601054601154610d089083611d77565b610d129190611d57565b60136000828254610d239190611d3f565b90915550610ddb9050565b6001600160a01b03871660009081526018602052604090205460ff168015610d5857506000600d54115b15610ddb57610d776064610cbf600d548861145c90919063ffffffff16565b9050600d54600f5482610d8a9190611d77565b610d949190611d57565b60146000828254610da59190611d3f565b9091555050600d54600e54610dba9083611d77565b610dc49190611d57565b60136000828254610dd59190611d3f565b90915550505b8015610dec57610dec873083610eb4565b610df68186611d96565b94505b610e04878787610eb4565b505050505b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316610eda5760405162461bcd60e51b815260040161060d90611ba7565b6001600160a01b038216610f005760405162461bcd60e51b815260040161060d906118e1565b610f0b838383610e09565b6001600160a01b03831660009081526020819052604090205481811015610f445760405162461bcd60e51b815260040161060d90611a39565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f7b908490611d3f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fc59190611ca2565b60405180910390a3610fd8848484610e09565b50505050565b610fe6610794565b6001600160a01b0316836001600160a01b031614158015611020575061100a610794565b6001600160a01b0316826001600160a01b031614155b801561103457506001600160a01b03821615155b801561104b57506001600160a01b03821661dead14155b80156110615750600754600160a01b900460ff16155b15610e0957600c5460ff166110cb576001600160a01b03831660009081526016602052604090205460ff16806110af57506001600160a01b03821660009081526016602052604090205460ff165b6110cb5760405162461bcd60e51b815260040161060d90611924565b6001600160a01b03831660009081526018602052604090205460ff16801561110c57506001600160a01b03821660009081526017602052604090205460ff16155b1561116c576009548111156111335760405162461bcd60e51b815260040161060d90611ad5565b600b5461113f836106d5565b6111499083611d3f565b11156111675760405162461bcd60e51b815260040161060d90611c30565b611228565b6001600160a01b03821660009081526018602052604090205460ff1680156111ad57506001600160a01b03831660009081526017602052604090205460ff16155b156111d4576009548111156111675760405162461bcd60e51b815260040161060d90611a7f565b6001600160a01b03821660009081526017602052604090205460ff1661122857600b54611200836106d5565b61120a9083611d3f565b11156112285760405162461bcd60e51b815260040161060d90611c30565b6008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061125c90869086908690600401611824565b602060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd891906117c4565b60006112b9306106d5565b905060006013546014546112cd9190611d3f565b905060008215806112dc575081155b156112e957505050610739565b600a546112f7906014611d77565b83111561130f57600a5461130c906014611d77565b92505b6000600283601454866113229190611d77565b61132c9190611d57565b6113369190611d57565b90506000611344858361147b565b90504761135082611487565b600061135c478361147b565b9050600061137987610cbf6013548561145c90919063ffffffff16565b905060006113878284611d96565b60006014819055601355905085158015906113a25750600081115b156113ef576113b1868261160c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826014546040516113e693929190611d1b565b60405180910390a15b6008546040516001600160a01b0390911690479061140c9061180d565b60006040518083038185875af1925050503d8060008114611449576040519150601f19603f3d011682016040523d82523d6000602084013e61144e565b606091505b505050505050505050505050565b60006114688284611d77565b9392505050565b60006114688284611d57565b60006114688284611d96565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114ca57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561151e57600080fd5b505afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155691906116d8565b8160018151811061157757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260065461159d9130911684610a1a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d6908590600090869030904290600401611cab565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b505050505050565b6006546116249030906001600160a01b031684610a1a565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906116639030908790600090819061dead904290600401611848565b6060604051808303818588803b15801561167c57600080fd5b505af1158015611690573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b591906117e0565b5050505050565b6000602082840312156116cd578081fd5b813561146881611dfe565b6000602082840312156116e9578081fd5b815161146881611dfe565b60008060408385031215611706578081fd5b823561171181611dfe565b9150602083013561172181611dfe565b809150509250929050565b600080600060608486031215611740578081fd5b833561174b81611dfe565b9250602084013561175b81611dfe565b929592945050506040919091013590565b6000806040838503121561177e578182fd5b823561178981611dfe565b9150602083013561172181611e13565b600080604083850312156117ab578182fd5b82356117b681611dfe565b946020939093013593505050565b6000602082840312156117d5578081fd5b815161146881611e13565b6000806000606084860312156117f4578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118ba5785810183015185820160400152820161189e565b818111156118cb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526036908201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656040820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606082015260800190565b60208082526035908201527f427579207472616e7366657220616d6f756e742065786365656473207468652060408201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526013908201527213585e081dd85b1b195d08195e18d959591959606a1b604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611cfa5784516001600160a01b031683529383019391830191600101611cd5565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611d5257611d52611de8565b500190565b600082611d7257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d9157611d91611de8565b500290565b600082821015611da857611da8611de8565b500390565b600281046001821680611dc157607f821691505b60208210811415611de257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610a0d57600080fd5b8015158114610a0d57600080fdfea26469706673582212208bda932f63d8529b3d718d900bbf311167cff7a8b9f66b0f7e2f8f956ed3223764736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638a8c523c116100ec578063c02466681161008a578063dd62ed3e11610064578063dd62ed3e1461046e578063e2f456051461048e578063f2fde38b146104a3578063f8b45b05146104c3576101c2565b8063c024666814610424578063c8c8ebe414610444578063d85ba06314610459576101c2565b80639a7a23d6116100c65780639a7a23d6146103af578063a457c2d7146103cf578063a9059cbb146103ef578063bbc0c7421461040f576101c2565b80638a8c523c146103705780638da5cb5b1461038557806395d89b411461039a576101c2565b806339509351116101595780636a486a8e116101335780636a486a8e1461030f5780636ddd17131461032457806370a0823114610339578063715018a614610359576101c2565b806339509351146102ba57806349bd5a5e146102da5780634fbee193146102ef576101c2565b806318160ddd1161019557806318160ddd1461024157806323b872dd1461026357806327c8f83514610283578063313ce56714610298576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461021f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6104d8565b6040516101e9919061188e565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611799565b61056a565b6040516101e99190611883565b34801561022b57600080fd5b50610234610587565b6040516101e99190611810565b34801561024d57600080fd5b50610256610596565b6040516101e99190611ca2565b34801561026f57600080fd5b5061021261027e36600461172c565b61059c565b34801561028f57600080fd5b50610234610635565b3480156102a457600080fd5b506102ad61063b565b6040516101e99190611d31565b3480156102c657600080fd5b506102126102d5366004611799565b610640565b3480156102e657600080fd5b50610234610694565b3480156102fb57600080fd5b5061021261030a3660046116bc565b6106a3565b34801561031b57600080fd5b506102566106c1565b34801561033057600080fd5b506102126106c7565b34801561034557600080fd5b506102566103543660046116bc565b6106d5565b34801561036557600080fd5b5061036e6106f0565b005b34801561037c57600080fd5b5061036e61073b565b34801561039157600080fd5b50610234610794565b3480156103a657600080fd5b506101dc6107a3565b3480156103bb57600080fd5b5061036e6103ca36600461176c565b6107b2565b3480156103db57600080fd5b506102126103ea366004611799565b61082d565b3480156103fb57600080fd5b5061021261040a366004611799565b6108a6565b34801561041b57600080fd5b506102126108ba565b34801561043057600080fd5b5061036e61043f36600461176c565b6108c3565b34801561045057600080fd5b50610256610962565b34801561046557600080fd5b50610256610968565b34801561047a57600080fd5b506102566104893660046116f4565b61096e565b34801561049a57600080fd5b50610256610999565b3480156104af57600080fd5b5061036e6104be3660046116bc565b61099f565b3480156104cf57600080fd5b50610256610a10565b6060600380546104e790611dad565b80601f016020809104026020016040519081016040528092919081815260200182805461051390611dad565b80156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b5050505050905090565b600061057e610577610a16565b8484610a1a565b50600192915050565b6006546001600160a01b031681565b60025490565b60006105a9848484610ace565b6001600160a01b0384166000908152600160205260408120816105ca610a16565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106165760405162461bcd60e51b815260040161060d90611b2a565b60405180910390fd5b61062a85610622610a16565b858403610a1a565b506001949350505050565b61dead81565b601290565b600061057e61064d610a16565b84846001600061065b610a16565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461068f9190611d3f565b610a1a565b6007546001600160a01b031681565b6001600160a01b031660009081526016602052604090205460ff1690565b60105481565b600c54610100900460ff1681565b6001600160a01b031660009081526020819052604090205490565b6106f8610a16565b6001600160a01b0316610709610794565b6001600160a01b03161461072f5760405162461bcd60e51b815260040161060d90611b72565b6107396000610e0e565b565b610743610a16565b6001600160a01b0316610754610794565b6001600160a01b03161461077a5760405162461bcd60e51b815260040161060d90611b72565b600c805461ff001960ff1990911660011716610100179055565b6005546001600160a01b031690565b6060600480546104e790611dad565b6107ba610a16565b6001600160a01b03166107cb610794565b6001600160a01b0316146107f15760405162461bcd60e51b815260040161060d90611b72565b6007546001600160a01b038381169116141561081f5760405162461bcd60e51b815260040161060d906119dc565b6108298282610e60565b5050565b6000806001600061083c610a16565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108885760405162461bcd60e51b815260040161060d90611c5d565b61089c610893610a16565b85858403610a1a565b5060019392505050565b600061057e6108b3610a16565b8484610ace565b600c5460ff1681565b6108cb610a16565b6001600160a01b03166108dc610794565b6001600160a01b0316146109025760405162461bcd60e51b815260040161060d90611b72565b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790610956908490611883565b60405180910390a25050565b60095481565b600d5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a5481565b6109a7610a16565b6001600160a01b03166109b8610794565b6001600160a01b0316146109de5760405162461bcd60e51b815260040161060d90611b72565b6001600160a01b038116610a045760405162461bcd60e51b815260040161060d90611954565b610a0d81610e0e565b50565b600b5481565b3390565b6001600160a01b038316610a405760405162461bcd60e51b815260040161060d90611bec565b6001600160a01b038216610a665760405162461bcd60e51b815260040161060d9061199a565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac1908590611ca2565b60405180910390a3505050565b6001600160a01b038316610af45760405162461bcd60e51b815260040161060d90611ba7565b6001600160a01b038216610b1a5760405162461bcd60e51b815260040161060d906118e1565b80610b3057610b2b83836000610eb4565b610e09565b610b3b838383610fde565b6000610b46306106d5565b600a5490915081108015908190610b645750600c54610100900460ff165b8015610b7a5750600754600160a01b900460ff16155b8015610b9f57506001600160a01b03851660009081526018602052604090205460ff16155b8015610bc457506001600160a01b03851660009081526016602052604090205460ff16155b8015610be957506001600160a01b03841660009081526016602052604090205460ff16155b15610c17576007805460ff60a01b1916600160a01b179055610c096112ae565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b909204821615911680610c6557506001600160a01b03851660009081526016602052604090205460ff165b15610c6e575060005b60008115610df9576001600160a01b03861660009081526018602052604090205460ff168015610ca057506000601054115b15610d2e57610cc56064610cbf6010548861145c90919063ffffffff16565b9061146f565b905060105460125482610cd89190611d77565b610ce29190611d57565b60146000828254610cf39190611d3f565b9091555050601054601154610d089083611d77565b610d129190611d57565b60136000828254610d239190611d3f565b90915550610ddb9050565b6001600160a01b03871660009081526018602052604090205460ff168015610d5857506000600d54115b15610ddb57610d776064610cbf600d548861145c90919063ffffffff16565b9050600d54600f5482610d8a9190611d77565b610d949190611d57565b60146000828254610da59190611d3f565b9091555050600d54600e54610dba9083611d77565b610dc49190611d57565b60136000828254610dd59190611d3f565b90915550505b8015610dec57610dec873083610eb4565b610df68186611d96565b94505b610e04878787610eb4565b505050505b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316610eda5760405162461bcd60e51b815260040161060d90611ba7565b6001600160a01b038216610f005760405162461bcd60e51b815260040161060d906118e1565b610f0b838383610e09565b6001600160a01b03831660009081526020819052604090205481811015610f445760405162461bcd60e51b815260040161060d90611a39565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f7b908490611d3f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fc59190611ca2565b60405180910390a3610fd8848484610e09565b50505050565b610fe6610794565b6001600160a01b0316836001600160a01b031614158015611020575061100a610794565b6001600160a01b0316826001600160a01b031614155b801561103457506001600160a01b03821615155b801561104b57506001600160a01b03821661dead14155b80156110615750600754600160a01b900460ff16155b15610e0957600c5460ff166110cb576001600160a01b03831660009081526016602052604090205460ff16806110af57506001600160a01b03821660009081526016602052604090205460ff165b6110cb5760405162461bcd60e51b815260040161060d90611924565b6001600160a01b03831660009081526018602052604090205460ff16801561110c57506001600160a01b03821660009081526017602052604090205460ff16155b1561116c576009548111156111335760405162461bcd60e51b815260040161060d90611ad5565b600b5461113f836106d5565b6111499083611d3f565b11156111675760405162461bcd60e51b815260040161060d90611c30565b611228565b6001600160a01b03821660009081526018602052604090205460ff1680156111ad57506001600160a01b03831660009081526017602052604090205460ff16155b156111d4576009548111156111675760405162461bcd60e51b815260040161060d90611a7f565b6001600160a01b03821660009081526017602052604090205460ff1661122857600b54611200836106d5565b61120a9083611d3f565b11156112285760405162461bcd60e51b815260040161060d90611c30565b6008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061125c90869086908690600401611824565b602060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd891906117c4565b60006112b9306106d5565b905060006013546014546112cd9190611d3f565b905060008215806112dc575081155b156112e957505050610739565b600a546112f7906014611d77565b83111561130f57600a5461130c906014611d77565b92505b6000600283601454866113229190611d77565b61132c9190611d57565b6113369190611d57565b90506000611344858361147b565b90504761135082611487565b600061135c478361147b565b9050600061137987610cbf6013548561145c90919063ffffffff16565b905060006113878284611d96565b60006014819055601355905085158015906113a25750600081115b156113ef576113b1868261160c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826014546040516113e693929190611d1b565b60405180910390a15b6008546040516001600160a01b0390911690479061140c9061180d565b60006040518083038185875af1925050503d8060008114611449576040519150601f19603f3d011682016040523d82523d6000602084013e61144e565b606091505b505050505050505050505050565b60006114688284611d77565b9392505050565b60006114688284611d57565b60006114688284611d96565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114ca57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561151e57600080fd5b505afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155691906116d8565b8160018151811061157757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260065461159d9130911684610a1a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d6908590600090869030904290600401611cab565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b505050505050565b6006546116249030906001600160a01b031684610a1a565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906116639030908790600090819061dead904290600401611848565b6060604051808303818588803b15801561167c57600080fd5b505af1158015611690573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b591906117e0565b5050505050565b6000602082840312156116cd578081fd5b813561146881611dfe565b6000602082840312156116e9578081fd5b815161146881611dfe565b60008060408385031215611706578081fd5b823561171181611dfe565b9150602083013561172181611dfe565b809150509250929050565b600080600060608486031215611740578081fd5b833561174b81611dfe565b9250602084013561175b81611dfe565b929592945050506040919091013590565b6000806040838503121561177e578182fd5b823561178981611dfe565b9150602083013561172181611e13565b600080604083850312156117ab578182fd5b82356117b681611dfe565b946020939093013593505050565b6000602082840312156117d5578081fd5b815161146881611e13565b6000806000606084860312156117f4578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118ba5785810183015185820160400152820161189e565b818111156118cb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526036908201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656040820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606082015260800190565b60208082526035908201527f427579207472616e7366657220616d6f756e742065786365656473207468652060408201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526013908201527213585e081dd85b1b195d08195e18d959591959606a1b604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611cfa5784516001600160a01b031683529383019391830191600101611cd5565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611d5257611d52611de8565b500190565b600082611d7257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d9157611d91611de8565b500290565b600082821015611da857611da8611de8565b500390565b600281046001821680611dc157607f821691505b60208210811415611de257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610a0d57600080fd5b8015158114610a0d57600080fdfea26469706673582212208bda932f63d8529b3d718d900bbf311167cff7a8b9f66b0f7e2f8f956ed3223764736f6c63430008000033

Deployed Bytecode Sourcemap

14225:10087:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3675:169;;;;;;;;;;-1:-1:-1;3675:169:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14298:41::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3082:108::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3852:492::-;;;;;;;;;;-1:-1:-1;3852:492:0;;;;;:::i;:::-;;:::i;14381:53::-;;;;;;;;;;;;;:::i;2981:93::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4352:215::-;;;;;;;;;;-1:-1:-1;4352:215:0;;;;;:::i;:::-;;:::i;14346:28::-;;;;;;;;;;;;;:::i;17993:126::-;;;;;;;;;;-1:-1:-1;17993:126:0;;;;;:::i;:::-;;:::i;14817:28::-;;;;;;;;;;;;;:::i;14665:31::-;;;;;;;;;;;;;:::i;3198:127::-;;;;;;;;;;-1:-1:-1;3198:127:0;;;;;:::i;:::-;;:::i;886:112::-;;;;;;;;;;;;;:::i;:::-;;17030;;;;;;;;;;;;;:::i;663:87::-;;;;;;;;;;;;;:::i;2869:104::-;;;;;;;;;;;;;:::i;17340:304::-;;;;;;;;;;-1:-1:-1;17340:304:0;;;;;:::i;:::-;;:::i;4575:413::-;;;;;;;;;;-1:-1:-1;4575:413:0;;;;;:::i;:::-;;:::i;3333:175::-;;;;;;;;;;-1:-1:-1;3333:175:0;;;;;:::i;:::-;;:::i;14625:33::-;;;;;;;;;;;;;:::i;17150:182::-;;;;;;;;;;-1:-1:-1;17150:182:0;;;;;:::i;:::-;;:::i;14510:35::-;;;;;;;;;;;;;:::i;14705:27::-;;;;;;;;;;;;;:::i;3516:151::-;;;;;;;;;;-1:-1:-1;3516:151:0;;;;;:::i;:::-;;:::i;14552:33::-;;;;;;;;;;;;;:::i;1006:201::-;;;;;;;;;;-1:-1:-1;1006:201:0;;;;;:::i;:::-;;:::i;14592:24::-;;;;;;;;;;;;;:::i;2761:100::-;2815:13;2848:5;2841:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:100;:::o;3675:169::-;3758:4;3775:39;3784:12;:10;:12::i;:::-;3798:7;3807:6;3775:8;:39::i;:::-;-1:-1:-1;3832:4:0;3675:169;;;;:::o;14298:41::-;;;-1:-1:-1;;;;;14298:41:0;;:::o;3082:108::-;3170:12;;3082:108;:::o;3852:492::-;3992:4;4009:36;4019:6;4027:9;4038:6;4009:9;:36::i;:::-;-1:-1:-1;;;;;4085:19:0;;4058:24;4085:19;;;:11;:19;;;;;4058:24;4105:12;:10;:12::i;:::-;-1:-1:-1;;;;;4085:33:0;-1:-1:-1;;;;;4085:33:0;;;;;;;;;;;;;4058:60;;4157:6;4137:16;:26;;4129:79;;;;-1:-1:-1;;;4129:79:0;;;;;;;:::i;:::-;;;;;;;;;4244:57;4253:6;4261:12;:10;:12::i;:::-;4294:6;4275:16;:25;4244:8;:57::i;:::-;-1:-1:-1;4332:4:0;;3852:492;-1:-1:-1;;;;3852:492:0:o;14381:53::-;14427:6;14381:53;:::o;2981:93::-;3064:2;2981:93;:::o;4352:215::-;4440:4;4457:80;4466:12;:10;:12::i;:::-;4480:7;4526:10;4489:11;:25;4501:12;:10;:12::i;:::-;-1:-1:-1;;;;;4489:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;4489:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;4457:8;:80::i;14346:28::-;;;-1:-1:-1;;;;;14346:28:0;;:::o;17993:126::-;-1:-1:-1;;;;;18083:28:0;18059:4;18083:28;;;:19;:28;;;;;;;;;17993:126::o;14817:28::-;;;;:::o;14665:31::-;;;;;;;;;:::o;3198:127::-;-1:-1:-1;;;;;3299:18:0;3272:7;3299:18;;;;;;;;;;;;3198:127::o;886:112::-;809:12;:10;:12::i;:::-;-1:-1:-1;;;;;798:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;798:23:0;;790:68;;;;-1:-1:-1;;;790:68:0;;;;;;;:::i;:::-;960:30:::1;987:1;960:18;:30::i;:::-;886:112::o:0;17030:::-;809:12;:10;:12::i;:::-;-1:-1:-1;;;;;798:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;798:23:0;;790:68;;;;-1:-1:-1;;;790:68:0;;;;;;;:::i;:::-;17085:13:::1;:20:::0;;-1:-1:-1;;;;17085:20:0;;::::1;17101:4;17085:20;17116:18;17085:20;17116:18;::::0;;17030:112::o;663:87::-;736:6;;-1:-1:-1;;;;;736:6:0;663:87;:::o;2869:104::-;2925:13;2958:7;2951:14;;;;;:::i;17340:304::-;809:12;:10;:12::i;:::-;-1:-1:-1;;;;;798:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;798:23:0;;790:68;;;;-1:-1:-1;;;790:68:0;;;;;;;:::i;:::-;17484:13:::1;::::0;-1:-1:-1;;;;;17476:21:0;;::::1;17484:13:::0;::::1;17476:21;;17454:128;;;;-1:-1:-1::0;;;17454:128:0::1;;;;;;;:::i;:::-;17595:41;17624:4;17630:5;17595:28;:41::i;:::-;17340:304:::0;;:::o;4575:413::-;4668:4;4685:24;4712:11;:25;4724:12;:10;:12::i;:::-;-1:-1:-1;;;;;4712:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;4712:25:0;;;:34;;;;;;;;;;;-1:-1:-1;4765:35:0;;;;4757:85;;;;-1:-1:-1;;;4757:85:0;;;;;;;:::i;:::-;4878:67;4887:12;:10;:12::i;:::-;4901:7;4929:15;4910:16;:34;4878:8;:67::i;:::-;-1:-1:-1;4976:4:0;;4575:413;-1:-1:-1;;;4575:413:0:o;3333:175::-;3419:4;3436:42;3446:12;:10;:12::i;:::-;3460:9;3471:6;3436:9;:42::i;14625:33::-;;;;;;:::o;17150:182::-;809:12;:10;:12::i;:::-;-1:-1:-1;;;;;798:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;798:23:0;;790:68;;;;-1:-1:-1;;;790:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17235:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;:39;;-1:-1:-1;;17235:39:0::1;::::0;::::1;;;::::0;;17290:34;::::1;::::0;::::1;::::0;17235:39;;17290:34:::1;:::i;:::-;;;;;;;;17150:182:::0;;:::o;14510:35::-;;;;:::o;14705:27::-;;;;:::o;3516:151::-;-1:-1:-1;;;;;3632:18:0;;;3605:7;3632:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3516:151::o;14552:33::-;;;;:::o;1006:201::-;809:12;:10;:12::i;:::-;-1:-1:-1;;;;;798:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;798:23:0;;790:68;;;;-1:-1:-1;;;790:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1095:22:0;::::1;1087:73;;;;-1:-1:-1::0;;;1087:73:0::1;;;;;;;:::i;:::-;1171:28;1190:8;1171:18;:28::i;:::-;1006:201:::0;:::o;14592:24::-;;;;:::o;209:98::-;289:10;209:98;:::o;6144:380::-;-1:-1:-1;;;;;6280:19:0;;6272:68;;;;-1:-1:-1;;;6272:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6359:21:0;;6351:68;;;;-1:-1:-1;;;6351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6432:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;6484:32;;;;;6462:6;;6484:32;:::i;:::-;;;;;;;;6144:380;;;:::o;18127:1971::-;-1:-1:-1;;;;;18259:18:0;;18251:68;;;;-1:-1:-1;;;18251:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18338:16:0;;18330:64;;;;-1:-1:-1;;;18330:64:0;;;;;;;:::i;:::-;18411:11;18407:93;;18439:28;18455:4;18461:2;18465:1;18439:15;:28::i;:::-;18482:7;;18407:93;18512:35;18530:4;18536:2;18540:6;18512:17;:35::i;:::-;18560:28;18591:24;18609:4;18591:9;:24::i;:::-;18667:18;;18560:55;;-1:-1:-1;18643:42:0;;;;;;;18716:35;;-1:-1:-1;18740:11:0;;;;;;;18716:35;:61;;;;-1:-1:-1;18769:8:0;;-1:-1:-1;;;18769:8:0;;;;18768:9;18716:61;:110;;;;-1:-1:-1;;;;;;18795:31:0;;;;;;:25;:31;;;;;;;;18794:32;18716:110;:153;;;;-1:-1:-1;;;;;;18844:25:0;;;;;;:19;:25;;;;;;;;18843:26;18716:153;:194;;;;-1:-1:-1;;;;;;18887:23:0;;;;;;:19;:23;;;;;;;;18886:24;18716:194;18698:326;;;18937:8;:15;;-1:-1:-1;;;;18937:15:0;-1:-1:-1;;;18937:15:0;;;18969:10;:8;:10::i;:::-;18996:8;:16;;-1:-1:-1;;;;18996:16:0;;;18698:326;19052:8;;-1:-1:-1;;;;;19077:25:0;;19036:12;19077:25;;;:19;:25;;;;;;19052:8;-1:-1:-1;;;19052:8:0;;;;;19051:9;;19077:25;;:52;;-1:-1:-1;;;;;;19106:23:0;;;;;;:19;:23;;;;;;;;19077:52;19073:100;;;-1:-1:-1;19156:5:0;19073:100;19185:12;19218:7;19214:831;;;-1:-1:-1;;;;;19270:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19319:1;19303:13;;:17;19270:50;19266:630;;;19348:34;19378:3;19348:25;19359:13;;19348:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;19341:41;;19451:13;;19431:16;;19424:4;:23;;;;:::i;:::-;19423:41;;;;:::i;:::-;19401:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19533:13:0;;19513:16;;19506:23;;:4;:23;:::i;:::-;19505:41;;;;:::i;:::-;19483:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;19266:630:0;;-1:-1:-1;19266:630:0;;-1:-1:-1;;;;;19608:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19658:1;19643:12;;:16;19608:51;19604:292;;;19687:33;19716:3;19687:24;19698:12;;19687:6;:10;;:24;;;;:::i;:33::-;19680:40;;19788:12;;19769:15;;19762:4;:22;;;;:::i;:::-;19761:39;;;;:::i;:::-;19739:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19868:12:0;;19849:15;;19842:22;;:4;:22;:::i;:::-;19841:39;;;;:::i;:::-;19819:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19604:292:0;19916:8;;19912:91;;19945:42;19961:4;19975;19982;19945:15;:42::i;:::-;20019:14;20029:4;20019:14;;:::i;:::-;;;19214:831;20057:33;20073:4;20079:2;20083:6;20057:15;:33::i;:::-;18127:1971;;;;;;;;:::o;1215:191::-;1308:6;;;-1:-1:-1;;;;;1325:17:0;;;-1:-1:-1;;;;;;1325:17:0;;;;;;;1358:40;;1308:6;;;1325:17;1308:6;;1358:40;;1289:16;;1358:40;1215:191;;:::o;17797:188::-;-1:-1:-1;;;;;17880:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;17880:39:0;;;;;;;;;;17937:40;;17880:39;;:31;17937:40;;;17797:188;;:::o;4996:733::-;-1:-1:-1;;;;;5136:20:0;;5128:70;;;;-1:-1:-1;;;5128:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5217:23:0;;5209:71;;;;-1:-1:-1;;;5209:71:0;;;;;;;:::i;:::-;5293:47;5314:6;5322:9;5333:6;5293:20;:47::i;:::-;-1:-1:-1;;;;;5377:17:0;;5353:21;5377:17;;;;;;;;;;;5413:23;;;;5405:74;;;;-1:-1:-1;;;5405:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5515:17:0;;;:9;:17;;;;;;;;;;;5535:22;;;5515:42;;5579:20;;;;;;;;:30;;5551:6;;5515:9;5579:30;;5551:6;;5579:30;:::i;:::-;;;;;;;;5644:9;-1:-1:-1;;;;;5627:35:0;5636:6;-1:-1:-1;;;;;5627:35:0;;5655:6;5627:35;;;;;;:::i;:::-;;;;;;;;5675:46;5695:6;5703:9;5714:6;5675:19;:46::i;:::-;4996:733;;;;:::o;20106:1849::-;20224:7;:5;:7::i;:::-;-1:-1:-1;;;;;20216:15:0;:4;-1:-1:-1;;;;;20216:15:0;;;:49;;;;;20258:7;:5;:7::i;:::-;-1:-1:-1;;;;;20252:13:0;:2;-1:-1:-1;;;;;20252:13:0;;;20216:49;:86;;;;-1:-1:-1;;;;;;20286:16:0;;;;20216:86;:128;;;;-1:-1:-1;;;;;;20323:21:0;;20337:6;20323:21;;20216:128;:158;;;;-1:-1:-1;20366:8:0;;-1:-1:-1;;;20366:8:0;;;;20365:9;20216:158;20194:1754;;;20414:13;;;;20409:223;;-1:-1:-1;;;;;20486:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;20515:23:0;;;;;;:19;:23;;;;;;;;20486:52;20452:160;;;;-1:-1:-1;;;20452:160:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20706:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20763:35:0;;;;;;:31;:35;;;;;;;;20762:36;20706:92;20680:1183;;;20885:20;;20875:6;:30;;20841:169;;;;-1:-1:-1;;;20841:169:0;;;;;;;:::i;:::-;21093:9;;21076:13;21086:2;21076:9;:13::i;:::-;21067:22;;:6;:22;:::i;:::-;:35;;21033:140;;;;-1:-1:-1;;;21033:140:0;;;;;;;:::i;:::-;20680:1183;;;-1:-1:-1;;;;;21271:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;21326:37:0;;;;;;:31;:37;;;;;;;;21325:38;21271:92;21245:618;;;21450:20;;21440:6;:30;;21406:170;;;;-1:-1:-1;;;21406:170:0;;;;;;;:::i;21245:618::-;-1:-1:-1;;;;;21643:35:0;;;;;;:31;:35;;;;;;;;21638:225;;21763:9;;21746:13;21756:2;21746:9;:13::i;:::-;21737:22;;:6;:22;:::i;:::-;:35;;21703:140;;;;-1:-1:-1;;;21703:140:0;;;;;;;:::i;:::-;21888:12;;21881:51;;-1:-1:-1;;;21881:51:0;;-1:-1:-1;;;;;21888:12:0;;;;21881:33;;:51;;21915:4;;21921:2;;21925:6;;21881:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22850:1459::-;22889:23;22915:24;22933:4;22915:9;:24::i;:::-;22889:50;;22950:25;23012:18;;22978;;:52;;;;:::i;:::-;22950:80;-1:-1:-1;23041:12:0;23070:20;;;:46;;-1:-1:-1;23094:22:0;;23070:46;23066:85;;;23133:7;;;;;23066:85;23185:18;;:23;;23206:2;23185:23;:::i;:::-;23167:15;:41;23163:115;;;23243:18;;:23;;23264:2;23243:23;:::i;:::-;23225:41;;23163:115;23290:23;23403:1;23370:17;23335:18;;23317:15;:36;;;;:::i;:::-;23316:71;;;;:::i;:::-;:88;;;;:::i;:::-;23290:114;-1:-1:-1;23415:26:0;23444:36;:15;23290:114;23444:19;:36::i;:::-;23415:65;-1:-1:-1;23521:21:0;23555:36;23415:65;23555:16;:36::i;:::-;23604:18;23625:44;:21;23651:17;23625:25;:44::i;:::-;23604:65;;23682:23;23708:81;23761:17;23708:34;23723:18;;23708:10;:14;;:34;;;;:::i;:81::-;23682:107;-1:-1:-1;23802:23:0;23828:28;23682:107;23828:10;:28;:::i;:::-;23890:1;23869:18;:22;;;23902:18;:22;23802:54;-1:-1:-1;23941:19:0;;;;;:42;;;23982:1;23964:15;:19;23941:42;23937:278;;;24000:46;24013:15;24030;24000:12;:46::i;:::-;24066:137;24099:18;24136:15;24170:18;;24066:137;;;;;;;;:::i;:::-;;;;;;;;23937:278;24249:12;;24241:60;;-1:-1:-1;;;;;24249:12:0;;;;24275:21;;24241:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;22850:1459:0:o;8150:98::-;8208:7;8235:5;8239:1;8235;:5;:::i;:::-;8228:12;8150:98;-1:-1:-1;;;8150:98:0:o;8256:::-;8314:7;8341:5;8345:1;8341;:5;:::i;8044:98::-;8102:7;8129:5;8133:1;8129;:5;:::i;21963:503::-;22055:16;;;22069:1;22055:16;;;;;;;;22031:21;;22055:16;;;;;;;;;;-1:-1:-1;22055:16:0;22031:40;;22100:4;22082;22087:1;22082:7;;;;;;-1:-1:-1;;;22082:7:0;;;;;;;;;-1:-1:-1;;;;;22082:23:0;;;:7;;;;;;;;;;:23;;;;22126:15;;:22;;;-1:-1:-1;;;22126:22:0;;;;:15;;;;;:20;;:22;;;;;22082:7;;22126:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22116:4;22121:1;22116:7;;;;;;-1:-1:-1;;;22116:7:0;;;;;;;;;-1:-1:-1;;;;;22116:32:0;;;:7;;;;;;;;;:32;22193:15;;22161:62;;22178:4;;22193:15;22211:11;22161:8;:62::i;:::-;22262:15;;:196;;-1:-1:-1;;;22262:196:0;;-1:-1:-1;;;;;22262:15:0;;;;:66;;:196;;22343:11;;22262:15;;22385:4;;22412;;22432:15;;22262:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21963:503;;:::o;22474:368::-;22589:15;;22557:62;;22574:4;;-1:-1:-1;;;;;22589:15:0;22607:11;22557:8;:62::i;:::-;22632:15;;:202;;-1:-1:-1;;;22632:202:0;;-1:-1:-1;;;;;22632:15:0;;;;:31;;22671:9;;22632:202;;22704:4;;22724:11;;22632:15;;;;14427:6;;22808:15;;22632:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22474:368;;:::o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:396::-;;;1554:2;1542:9;1533:7;1529:23;1525:32;1522:2;;;1575:6;1567;1560:22;1522:2;1619:9;1606:23;1638:33;1665:5;1638:33;:::i;:::-;1690:5;-1:-1:-1;1747:2:1;1732:18;;1719:32;1760;1719;1760;:::i;1829:327::-;;;1958:2;1946:9;1937:7;1933:23;1929:32;1926:2;;;1979:6;1971;1964:22;1926:2;2023:9;2010:23;2042:33;2069:5;2042:33;:::i;:::-;2094:5;2146:2;2131:18;;;;2118:32;;-1:-1:-1;;;1916:240:1:o;2161:257::-;;2281:2;2269:9;2260:7;2256:23;2252:32;2249:2;;;2302:6;2294;2287:22;2249:2;2339:9;2333:16;2358:30;2382:5;2358:30;:::i;2423:316::-;;;;2580:2;2568:9;2559:7;2555:23;2551:32;2548:2;;;2601:6;2593;2586:22;2548:2;2635:9;2629:16;2619:26;;2685:2;2674:9;2670:18;2664:25;2654:35;;2729:2;2718:9;2714:18;2708:25;2698:35;;2538:201;;;;;:::o;2744:205::-;2944:3;2935:14::o;2954:203::-;-1:-1:-1;;;;;3118:32:1;;;;3100:51;;3088:2;3073:18;;3055:102::o;3162:375::-;-1:-1:-1;;;;;3420:15:1;;;3402:34;;3472:15;;;;3467:2;3452:18;;3445:43;3519:2;3504:18;;3497:34;;;;3352:2;3337:18;;3319:218::o;3542:607::-;-1:-1:-1;;;;;3901:15:1;;;3883:34;;3948:2;3933:18;;3926:34;;;;3991:2;3976:18;;3969:34;;;;4034:2;4019:18;;4012:34;;;;4083:15;;;4077:3;4062:19;;4055:44;3863:3;4115:19;;4108:35;;;;3832:3;3817:19;;3799:350::o;4154:187::-;4319:14;;4312:22;4294:41;;4282:2;4267:18;;4249:92::o;4581:603::-;;4722:2;4751;4740:9;4733:21;4783:6;4777:13;4826:6;4821:2;4810:9;4806:18;4799:34;4851:4;4864:140;4878:6;4875:1;4872:13;4864:140;;;4973:14;;;4969:23;;4963:30;4939:17;;;4958:2;4935:26;4928:66;4893:10;;4864:140;;;5022:6;5019:1;5016:13;5013:2;;;5092:4;5087:2;5078:6;5067:9;5063:22;5059:31;5052:45;5013:2;-1:-1:-1;5168:2:1;5147:15;-1:-1:-1;;5143:29:1;5128:45;;;;5175:2;5124:54;;4702:482;-1:-1:-1;;;4702:482:1:o;5189:399::-;5391:2;5373:21;;;5430:2;5410:18;;;5403:30;5469:34;5464:2;5449:18;;5442:62;-1:-1:-1;;;5535:2:1;5520:18;;5513:33;5578:3;5563:19;;5363:225::o;5593:346::-;5795:2;5777:21;;;5834:2;5814:18;;;5807:30;-1:-1:-1;;;5868:2:1;5853:18;;5846:52;5930:2;5915:18;;5767:172::o;5944:402::-;6146:2;6128:21;;;6185:2;6165:18;;;6158:30;6224:34;6219:2;6204:18;;6197:62;-1:-1:-1;;;6290:2:1;6275:18;;6268:36;6336:3;6321:19;;6118:228::o;6351:398::-;6553:2;6535:21;;;6592:2;6572:18;;;6565:30;6631:34;6626:2;6611:18;;6604:62;-1:-1:-1;;;6697:2:1;6682:18;;6675:32;6739:3;6724:19;;6525:224::o;6754:421::-;6956:2;6938:21;;;6995:2;6975:18;;;6968:30;7034:34;7029:2;7014:18;;7007:62;7105:27;7100:2;7085:18;;7078:55;7165:3;7150:19;;6928:247::o;7180:402::-;7382:2;7364:21;;;7421:2;7401:18;;;7394:30;7460:34;7455:2;7440:18;;7433:62;-1:-1:-1;;;7526:2:1;7511:18;;7504:36;7572:3;7557:19;;7354:228::o;7587:418::-;7789:2;7771:21;;;7828:2;7808:18;;;7801:30;7867:34;7862:2;7847:18;;7840:62;-1:-1:-1;;;7933:2:1;7918:18;;7911:52;7995:3;7980:19;;7761:244::o;8010:417::-;8212:2;8194:21;;;8251:2;8231:18;;;8224:30;8290:34;8285:2;8270:18;;8263:62;-1:-1:-1;;;8356:2:1;8341:18;;8334:51;8417:3;8402:19;;8184:243::o;8432:404::-;8634:2;8616:21;;;8673:2;8653:18;;;8646:30;8712:34;8707:2;8692:18;;8685:62;-1:-1:-1;;;8778:2:1;8763:18;;8756:38;8826:3;8811:19;;8606:230::o;8841:356::-;9043:2;9025:21;;;9062:18;;;9055:30;9121:34;9116:2;9101:18;;9094:62;9188:2;9173:18;;9015:182::o;9202:401::-;9404:2;9386:21;;;9443:2;9423:18;;;9416:30;9482:34;9477:2;9462:18;;9455:62;-1:-1:-1;;;9548:2:1;9533:18;;9526:35;9593:3;9578:19;;9376:227::o;9608:400::-;9810:2;9792:21;;;9849:2;9829:18;;;9822:30;9888:34;9883:2;9868:18;;9861:62;-1:-1:-1;;;9954:2:1;9939:18;;9932:34;9998:3;9983:19;;9782:226::o;10013:343::-;10215:2;10197:21;;;10254:2;10234:18;;;10227:30;-1:-1:-1;;;10288:2:1;10273:18;;10266:49;10347:2;10332:18;;10187:169::o;10361:401::-;10563:2;10545:21;;;10602:2;10582:18;;;10575:30;10641:34;10636:2;10621:18;;10614:62;-1:-1:-1;;;10707:2:1;10692:18;;10685:35;10752:3;10737:19;;10535:227::o;10767:177::-;10913:25;;;10901:2;10886:18;;10868:76::o;10949:983::-;;11259:3;11248:9;11244:19;11290:6;11279:9;11272:25;11316:2;11354:6;11349:2;11338:9;11334:18;11327:34;11397:3;11392:2;11381:9;11377:18;11370:31;11421:6;11456;11450:13;11487:6;11479;11472:22;11525:3;11514:9;11510:19;11503:26;;11564:2;11556:6;11552:15;11538:29;;11585:4;11598:195;11612:6;11609:1;11606:13;11598:195;;;11677:13;;-1:-1:-1;;;;;11673:39:1;11661:52;;11768:15;;;;11733:12;;;;11709:1;11627:9;11598:195;;;-1:-1:-1;;;;;;;11849:32:1;;;;11844:2;11829:18;;11822:60;-1:-1:-1;;;11913:3:1;11898:19;11891:35;11810:3;11220:712;-1:-1:-1;;;11220:712:1:o;11937:319::-;12139:25;;;12195:2;12180:18;;12173:34;;;;12238:2;12223:18;;12216:34;12127:2;12112:18;;12094:162::o;12261:184::-;12433:4;12421:17;;;;12403:36;;12391:2;12376:18;;12358:87::o;12450:128::-;;12521:1;12517:6;12514:1;12511:13;12508:2;;;12527:18;;:::i;:::-;-1:-1:-1;12563:9:1;;12498:80::o;12583:217::-;;12649:1;12639:2;;-1:-1:-1;;;12674:31:1;;12728:4;12725:1;12718:15;12756:4;12681:1;12746:15;12639:2;-1:-1:-1;12785:9:1;;12629:171::o;12805:168::-;;12911:1;12907;12903:6;12899:14;12896:1;12893:21;12888:1;12881:9;12874:17;12870:45;12867:2;;;12918:18;;:::i;:::-;-1:-1:-1;12958:9:1;;12857:116::o;12978:125::-;;13046:1;13043;13040:8;13037:2;;;13051:18;;:::i;:::-;-1:-1:-1;13088:9:1;;13027:76::o;13108:380::-;13193:1;13183:12;;13240:1;13230:12;;;13251:2;;13305:4;13297:6;13293:17;13283:27;;13251:2;13358;13350:6;13347:14;13327:18;13324:38;13321:2;;;13404:10;13399:3;13395:20;13392:1;13385:31;13439:4;13436:1;13429:15;13467:4;13464:1;13457:15;13321:2;;13163:325;;;:::o;13493:127::-;13554:10;13549:3;13545:20;13542:1;13535:31;13585:4;13582:1;13575:15;13609:4;13606:1;13599:15;13625:133;-1:-1:-1;;;;;13702:31:1;;13692:42;;13682:2;;13748:1;13745;13738:12;13763:120;13851:5;13844:13;13837:21;13830:5;13827:32;13817:2;;13873:1;13870;13863:12

Swarm Source

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