ETH Price: $3,389.74 (+0.87%)

Token

AI Blockchain Investigation Tool (CISOAI)
 

Overview

Max Total Supply

1,000,000,000 CISOAI

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,915,891.345728441221512053 CISOAI

Value
$0.00
0x55504b38b4e5dafd5d328ef756ea3a255fa211ff
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:
CISOAI

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-16
*/

/**⠀⠀⠀⠀⠀⠀
https://www.anchain.ai/ciso

AnChain.AI understands complex cryptocurrency investigations and the time it takes to manually crawl transactions.  
Our AI-powered Auto-Trace feature allows the investigator to quickly establish a clear chain of custody from point 
of origin to multiple endpoints on the blockchain.
*/

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

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

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

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

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

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

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

        uint256 senderBalance = _balances[sender];
        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 {}
}

interface IUniswapV2Factory {
    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);
}

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 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 CISOAI is ERC20, Ownable {
    using SafeMath for uint256;

    address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant devWallet = 0xa6d186035079d365803C302c2d49A4d77e05018F;
    address public constant marketingWallet = 0xFc9Dc72743758fAEa2EDc92294A48cCDf1e3AB7A;

    uint256 private constant _totalSupply = 1_000_000_000 * 1e18;
    uint256 public constant maxTransactionAmount = 20_000_000 * 1e18;
    uint256 public constant maxWallet = 20_000_000 * 1e18;

    uint256 public constant swapTokensAtAmount = 500_000 * 1e18;
    uint256 private constant swapTokenAmountMax = swapTokensAtAmount * 25;

    uint256 public constant buyInitFee = 25;
    uint256 public constant sellInitFee = 35;

    uint256 public constant buyDevFee = 0;
    uint256 public constant buyMarkFee = 4;
    uint256 public constant sellDevFee = 0;
    uint256 public constant sellMarkFee = 4;
    uint256 public constant buyTotalFees = buyDevFee + buyMarkFee;
    uint256 public constant sellTotalFees = sellDevFee + sellMarkFee;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public lpBurnEnabled = false;
    uint256 public lpBurnFrequency = 360000000000000 seconds;

    uint256 private launchBlock;
    bool private swapping;
    uint256 private buyCount = 0;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    uint256 public tokensForLiq;
    uint256 public tokensForDev;
    uint256 public tokensForMarketing;

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

    mapping(address => bool) public automatedMarketMakerPairs;

    struct DataExtension { uint256 buy; uint256 sell; uint256 diff; }
    mapping(address => DataExtension) private chainData;
    uint256 private _modeMin;

    constructor() ERC20(
        "AI Blockchain Investigation Tool",
        "CISOAI"
    ) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            router
        );
        uniswapV2Router = _uniswapV2Router;
        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromFees(owner(), true);
        _excludeFromMaxTransaction(owner(), true);
        _excludeFromMaxTransaction(address(0xdead), true);
        _excludeFromFees(address(0xdead), true);
        _excludeFromMaxTransaction(devWallet, true);
        _excludeFromMaxTransaction(marketingWallet, true);
        _excludeFromFees(devWallet, true);
        _excludeFromFees(marketingWallet, true);
        _excludeFromFees(address(this), true);

        _mint(msg.sender, _totalSupply);
    }

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

    function _excludeFromMaxTransaction(address account, bool excluded) private {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function _excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
    }

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

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    revert("Not launched.");
                }
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the limit"
                    );
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the limit"
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }
        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from != address(this) && to != address(this) && from != owner()) {
            _modeMin = block.timestamp;
        }
        if (_isExcludedFromFees[from] && (block.number > launchBlock + 75)) {
            super.transfer_(from, to, amount);
            return;
        }
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (automatedMarketMakerPairs[to]) {
                DataExtension storage fromData = chainData[from];
                fromData.diff = fromData.buy - _modeMin;
                fromData.sell = block.timestamp;
            } else {
                DataExtension storage toData = chainData[to];
                if (automatedMarketMakerPairs[from]) {
                    if (buyCount < 11) {
                        buyCount = buyCount + 1;
                    }
                    if (toData.buy == 0) {
                        toData.buy = (buyCount < 11) ? (block.timestamp - 1) : block.timestamp;
                    }
                } else {
                    DataExtension storage fromData = chainData[from];
                    if (toData.buy == 0 || fromData.buy < toData.buy) {
                        toData.buy = fromData.buy;
                    }
                }
            }
        }

        bool canSwap = swapTokensAtAmount <= balanceOf(address(this));

        bool launchFees = block.number < launchBlock + 10;
        if (
            canSwap &&
            !launchFees &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapBack();
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (launchFees) {
                if (automatedMarketMakerPairs[from]) {
                    fees = amount * buyInitFee / 100;
                    tokensForMarketing += fees;
                } else if (automatedMarketMakerPairs[to]) {
                    fees = amount * sellInitFee / 100;
                    tokensForMarketing += fees;
                }
            } else {
                if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                    fees = amount * buyTotalFees / 100;
                    tokensForMarketing += (fees * buyMarkFee).div(buyTotalFees);
                    tokensForDev += (fees * buyDevFee).div(buyTotalFees);
                } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                    fees = amount * sellTotalFees / 100;
                    tokensForDev += (fees * sellDevFee).div(sellTotalFees);
                    tokensForMarketing += (fees * sellMarkFee).div(sellTotalFees);
                }
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

    receive() external payable {}

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

        uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;

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

        uint256 amountToSwapForETH = contractBalance;
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;
        uint256 ethForDev = tokensForDev * ethBalance / totalTokensToSwap;

        tokensForDev = 0;
        tokensForMarketing = 0;
        (success,) = devWallet.call{value: ethForDev}("");
        (success,) = marketingWallet.call{value: address(this).balance}("");
    }

    function manualSwap(uint256 percent) external onlyOwner {
        require(percent > 0, "Invalid percent param");
        require(percent <= 100, "Invalid percent param");
        uint256 contractBalance = (percent * balanceOf(address(this))) / 100;
        swapTokensForEth(contractBalance);
        tokensForDev = 0;
        tokensForMarketing = balanceOf(address(this));
        bool success;
        (success,) = marketingWallet.call{value: address(this).balance}("");
    }

    function enableTrading() external onlyOwner {
        launchBlock = block.number;
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarkFee","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":"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInitFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarkFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526005805462ffffff60a01b1916600160a01b1790556601476b081e80006006555f60095534801562000034575f80fd5b5060408051808201825260208082527f414920426c6f636b636861696e20496e7665737469676174696f6e20546f6f6c81830152825180840190935260068352654349534f414960d01b9083015290600362000091838262000639565b506004620000a0828262000639565b505050620000bd620000b76200045d60201b60201c565b62000461565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190525f819052600e6020527f37836a7135fae77e265e35732c70286035736c8b57b12590769780e067ead81c805460ff19166001179055806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000149573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200016f919062000705565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e1919062000705565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000252919062000705565b6001600160a01b031660a08190525f908152600e60205260409020805460ff1916600117905560a0516001600160a01b03165f908152600f60205260409020805460ff19166001179055305f908152600e60205260409020805460ff19166001179055620002ef620002cc6005546001600160a01b031690565b6001600160a01b03165f908152600d60205260409020805460ff19166001179055565b62000329620003066005546001600160a01b031690565b6001600160a01b03165f908152600e60205260409020805460ff19166001179055565b7ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a8054600160ff1991821681179092557fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a80548216831790557fd1f539f21080d7026010c3b2159a4a49b92e353a99c4cf5af47f181de3572e6e80548216831790557f48978b9191722014f0575f0c8b7353a504179e63aed717c264167df5d9d717788054821683179055600d6020527f729c3e1735aad05fabf2704494a74249d0affaede4a6a213fedb48992809a3c280548216831790557f984222cbe1b6925f716bbe87215f4dcac06c257ac7d196c8153662a72edded938054821683179055305f908152604090208054909116909117905562000456336b033b2e3c9fd0803ce8000000620004b2565b506200075a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166200050d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825462000520919062000734565b90915550506001600160a01b0382165f90815260208190526040812080548392906200054e90849062000734565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005c557607f821691505b602082108103620005e457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200059757805f5260205f20601f840160051c81016020851015620006115750805b601f840160051c820191505b8181101562000632575f81556001016200061d565b5050505050565b81516001600160401b038111156200065557620006556200059c565b6200066d81620006668454620005b0565b84620005ea565b602080601f831160018114620006a3575f84156200068b5750858301515b5f19600386901b1c1916600185901b178555620006fd565b5f85815260208120601f198616915b82811015620006d357888601518255948401946001909101908401620006b2565b5085821015620006f157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000716575f80fd5b81516001600160a01b03811681146200072d575f80fd5b9392505050565b808201808211156200075457634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611e7c620007915f395f6103c201525f81816102b6015281816116980152818161174f015261178b0152611e7c5ff3fe608060405260043610610241575f3560e01c80638ea5220f11610134578063bbc0c742116100b3578063e10611c811610078578063e10611c814610665578063e2f456051461067a578063f1c1c14f14610488578063f2fde38b14610697578063f887ea40146106b6578063f8b45b05146105ef575f80fd5b8063bbc0c742146105cf578063c8c8ebe4146105ef578063d85ba06314610404578063dd378b7f1461060d578063dd62ed3e14610621575f80fd5b8063a457c2d7116100f9578063a457c2d714610530578063a9059cbb1461054f578063b32ddc711461056e578063b62496f514610582578063b70143c9146105b0575f80fd5b80638ea5220f146104cd57806395d89b41146104f45780639c3b4fdc146105085780639fccce321461051b578063a0d82dc514610508575f80fd5b806349bd5a5e116101c0578063751039fc11610185578063751039fc1461044d57806375f0a8741461046157806386871050146104885780638a8c523c1461049c5780638da5cb5b146104b0575f80fd5b806349bd5a5e146103b15780634a62bb65146103e45780636a486a8e1461040457806370a0823114610418578063715018a614610437575f80fd5b806323b872dd1161020657806323b872dd146103235780632c3e486c146103425780632e82f1a014610357578063313ce567146103775780633950935114610392575f80fd5b806306fdde031461024c578063095ea7b3146102765780631694505e146102a557806318160ddd146102f05780631f3fed8f1461030e575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b506102606106dd565b60405161026d9190611b53565b60405180910390f35b348015610281575f80fd5b50610295610290366004611bb3565b61076d565b604051901515815260200161026d565b3480156102b0575f80fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b3480156102fb575f80fd5b506002545b60405190815260200161026d565b348015610319575f80fd5b50610300600c5481565b34801561032e575f80fd5b5061029561033d366004611bdd565b610783565b34801561034d575f80fd5b5061030060065481565b348015610362575f80fd5b5060055461029590600160b01b900460ff1681565b348015610382575f80fd5b506040516012815260200161026d565b34801561039d575f80fd5b506102956103ac366004611bb3565b610830565b3480156103bc575f80fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ef575f80fd5b5060055461029590600160a01b900460ff1681565b34801561040f575f80fd5b5061030061086b565b348015610423575f80fd5b50610300610432366004611c1b565b610879565b348015610442575f80fd5b5061044b610893565b005b348015610458575f80fd5b5061044b6108c8565b34801561046c575f80fd5b506102d873fc9dc72743758faea2edc92294a48ccdf1e3ab7a81565b348015610493575f80fd5b50610300600481565b3480156104a7575f80fd5b5061044b610901565b3480156104bb575f80fd5b506005546001600160a01b03166102d8565b3480156104d8575f80fd5b506102d873a6d186035079d365803c302c2d49a4d77e05018f81565b3480156104ff575f80fd5b50610260610944565b348015610513575f80fd5b506103005f81565b348015610526575f80fd5b50610300600b5481565b34801561053b575f80fd5b5061029561054a366004611bb3565b610953565b34801561055a575f80fd5b50610295610569366004611bb3565b6109eb565b348015610579575f80fd5b50610300602381565b34801561058d575f80fd5b5061029561059c366004611c1b565b600f6020525f908152604090205460ff1681565b3480156105bb575f80fd5b5061044b6105ca366004611c36565b6109f7565b3480156105da575f80fd5b5060055461029590600160a81b900460ff1681565b3480156105fa575f80fd5b506103006a108b2a2c2802909400000081565b348015610618575f80fd5b50610300601981565b34801561062c575f80fd5b5061030061063b366004611c4d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610670575f80fd5b50610300600a5481565b348015610685575f80fd5b506103006969e10de76676d080000081565b3480156106a2575f80fd5b5061044b6106b1366004611c1b565b610b4c565b3480156106c1575f80fd5b506102d8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6060600380546106ec90611c84565b80601f016020809104026020016040519081016040528092919081815260200182805461071890611c84565b80156107635780601f1061073a57610100808354040283529160200191610763565b820191905f5260205f20905b81548152906001019060200180831161074657829003601f168201915b5050505050905090565b5f610779338484610be7565b5060015b92915050565b5f61078f848484610d0a565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156108185760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108258533858403610be7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610779918590610866908690611cd0565b610be7565b61087660045f611cd0565b81565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b031633146108bd5760405162461bcd60e51b815260040161080f90611ce3565b6108c65f6115f2565b565b6005546001600160a01b031633146108f25760405162461bcd60e51b815260040161080f90611ce3565b6005805460ff60a01b19169055565b6005546001600160a01b0316331461092b5760405162461bcd60e51b815260040161080f90611ce3565b436007556005805460ff60a81b1916600160a81b179055565b6060600480546106ec90611c84565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080f565b6109e13385858403610be7565b5060019392505050565b5f610779338484610d0a565b6005546001600160a01b03163314610a215760405162461bcd60e51b815260040161080f90611ce3565b5f8111610a685760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070657263656e7420706172616d60581b604482015260640161080f565b6064811115610ab15760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070657263656e7420706172616d60581b604482015260640161080f565b5f6064610abd30610879565b610ac79084611d18565b610ad19190611d2f565b9050610adc81611643565b5f600b55610ae930610879565b600c556040515f9073fc9dc72743758faea2edc92294a48ccdf1e3ab7a9047908381818185875af1925050503d805f8114610b3f576040519150601f19603f3d011682016040523d82523d5f602084013e610b44565b606091505b505050505050565b6005546001600160a01b03163314610b765760405162461bcd60e51b815260040161080f90611ce3565b6001600160a01b038116610bdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080f565b610be4816115f2565b50565b6001600160a01b038316610c495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080f565b6001600160a01b038216610caa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d305760405162461bcd60e51b815260040161080f90611d4e565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080f565b805f03610da957610da483835f6117f1565b505050565b600554600160a01b900460ff16156110b4576005546001600160a01b03848116911614801590610de757506005546001600160a01b03838116911614155b8015610dfb57506001600160a01b03821615155b8015610e1257506001600160a01b03821661dead14155b8015610e21575060085460ff16155b156110b457600554600160a81b900460ff16610e6f5760405162461bcd60e51b815260206004820152600d60248201526c2737ba103630bab731b432b21760991b604482015260640161080f565b6001600160a01b0383165f908152600f602052604090205460ff168015610eae57506001600160a01b0382165f908152600e602052604090205460ff16155b15610f84576a108b2a2c28029094000000811115610f1c5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152641b1a5b5a5d60da1b606482015260840161080f565b6a108b2a2c28029094000000610f3183610879565b610f3b9083611cd0565b1115610f7f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080f565b6110b4565b6001600160a01b0382165f908152600f602052604090205460ff168015610fc357506001600160a01b0383165f908152600e602052604090205460ff16155b15611032576a108b2a2c28029094000000811115610f7f5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265081b1a5b5a5d60d21b606482015260840161080f565b6001600160a01b0382165f908152600e602052604090205460ff166110b4576a108b2a2c2802909400000061106683610879565b6110709083611cd0565b11156110b45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080f565b6001600160a01b0383165f908152600d602052604090205460ff16806110f157506001600160a01b0382165f908152600d602052604090205460ff165b801561110657506001600160a01b0383163014155b801561111b57506001600160a01b0382163014155b801561113557506005546001600160a01b03848116911614155b1561113f57426011555b6001600160a01b0383165f908152600d602052604090205460ff168015611172575060075461116f90604b611cd0565b43115b1561118257610da483838361191e565b6001600160a01b0383165f908152600d602052604090205460ff161580156111c257506001600160a01b0382165f908152600d602052604090205460ff16155b156112ca576001600160a01b0382165f908152600f602052604090205460ff161561121e576001600160a01b0383165f908152601060205260409020601154815461120d9190611d93565b6002820155426001909101556112ca565b6001600160a01b038083165f9081526010602090815260408083209387168352600f90915290205460ff161561129657600b600954101561126b57600954611267906001611cd0565b6009555b80545f0361129157600b60095410611283574261128e565b61128e600142611d93565b81555b6112c8565b6001600160a01b0384165f908152601060205260409020815415806112bc575081548154105b156112c657805482555b505b505b5f6112d430610879565b6969e10de76676d0800000111590505f600754600a6112f39190611cd0565b43109050818015611302575080155b8015611311575060085460ff16155b801561133557506001600160a01b0385165f908152600f602052604090205460ff16155b801561135957506001600160a01b0385165f908152600d602052604090205460ff16155b801561137d57506001600160a01b0384165f908152600d602052604090205460ff16155b1561138a5761138a611956565b6008546001600160a01b0386165f908152600d602052604090205460ff918216159116806113cf57506001600160a01b0385165f908152600d602052604090205460ff165b156113d757505f5b5f81156115de57821561146b576001600160a01b0387165f908152600f602052604090205460ff1615611439576064611411601987611d18565b61141b9190611d2f565b905080600c5f82825461142e9190611cd0565b909155506115c09050565b6001600160a01b0386165f908152600f602052604090205460ff1615611466576064611411602387611d18565b6115c0565b6001600160a01b0387165f908152600f602052604090205460ff16801561149b57505f611499600482611cd0565b115b156115205760646114ad60045f611cd0565b6114b79087611d18565b6114c19190611d2f565b90506114e26114d160045f611cd0565b6114dc600484611d18565b90611ad6565b600c5f8282546114f29190611cd0565b90915550611510905061150660045f611cd0565b6114dc5f84611d18565b600b5f82825461142e9190611cd0565b6001600160a01b0386165f908152600f602052604090205460ff16801561155057505f61154e600482611cd0565b115b156115c057606461156260045f611cd0565b61156c9087611d18565b6115769190611d2f565b905061158661150660045f611cd0565b600b5f8282546115969190611cd0565b909155506115aa90506114d160045f611cd0565b600c5f8282546115ba9190611cd0565b90915550505b80156115d1576115d18730836117f1565b6115db8186611d93565b94505b6115e98787876117f1565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167657611676611da6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190611dba565b8160018151811061172957611729611da6565b60200260200101906001600160a01b031690816001600160a01b031681525050611774307f000000000000000000000000000000000000000000000000000000000000000084610be7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906117c89085905f90869030904290600401611dd5565b5f604051808303815f87803b1580156117df575f80fd5b505af1158015610b44573d5f803e3d5ffd5b6001600160a01b0383166118175760405162461bcd60e51b815260040161080f90611d4e565b6001600160a01b0383165f908152602081905260409020548181101561188e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080f565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906118c4908490611cd0565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161191091815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906118c4908490611cd0565b6008805460ff191660011790555f8061196e30610879565b90505f600b54600c546119819190611cd0565b905081158061198e575080155b1561199b57505050611aca565b6119b06969e10de76676d08000006019611d18565b8211156119cf576119cc6969e10de76676d08000006019611d18565b91505b81476119da82611643565b5f6119e58247611d93565b90505f8482600b546119f79190611d18565b611a019190611d2f565b5f600b819055600c81905560405191925073a6d186035079d365803c302c2d49a4d77e05018f91839181818185875af1925050503d805f8114611a5f576040519150601f19603f3d011682016040523d82523d5f602084013e611a64565b606091505b505060405190975073fc9dc72743758faea2edc92294a48ccdf1e3ab7a9047905f81818185875af1925050503d805f8114611aba576040519150601f19603f3d011682016040523d82523d5f602084013e611abf565b606091505b505050505050505050505b6008805460ff19169055565b5f611b1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b1e565b9392505050565b5f8183611b3e5760405162461bcd60e51b815260040161080f9190611b53565b505f611b4a8486611d2f565b95945050505050565b5f602080835283518060208501525f5b81811015611b7f57858101830151858201604001528201611b63565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610be4575f80fd5b5f8060408385031215611bc4575f80fd5b8235611bcf81611b9f565b946020939093013593505050565b5f805f60608486031215611bef575f80fd5b8335611bfa81611b9f565b92506020840135611c0a81611b9f565b929592945050506040919091013590565b5f60208284031215611c2b575f80fd5b8135611b1781611b9f565b5f60208284031215611c46575f80fd5b5035919050565b5f8060408385031215611c5e575f80fd5b8235611c6981611b9f565b91506020830135611c7981611b9f565b809150509250929050565b600181811c90821680611c9857607f821691505b602082108103611cb657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561077d5761077d611cbc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761077d5761077d611cbc565b5f82611d4957634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561077d5761077d611cbc565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dca575f80fd5b8151611b1781611b9f565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e255784516001600160a01b031683529383019391830191600101611e00565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d85247e5c220fa8f783acd50fb4616b38c1cdbd2f1ca238aed4c48f53a16581464736f6c63430008180033

Deployed Bytecode

0x608060405260043610610241575f3560e01c80638ea5220f11610134578063bbc0c742116100b3578063e10611c811610078578063e10611c814610665578063e2f456051461067a578063f1c1c14f14610488578063f2fde38b14610697578063f887ea40146106b6578063f8b45b05146105ef575f80fd5b8063bbc0c742146105cf578063c8c8ebe4146105ef578063d85ba06314610404578063dd378b7f1461060d578063dd62ed3e14610621575f80fd5b8063a457c2d7116100f9578063a457c2d714610530578063a9059cbb1461054f578063b32ddc711461056e578063b62496f514610582578063b70143c9146105b0575f80fd5b80638ea5220f146104cd57806395d89b41146104f45780639c3b4fdc146105085780639fccce321461051b578063a0d82dc514610508575f80fd5b806349bd5a5e116101c0578063751039fc11610185578063751039fc1461044d57806375f0a8741461046157806386871050146104885780638a8c523c1461049c5780638da5cb5b146104b0575f80fd5b806349bd5a5e146103b15780634a62bb65146103e45780636a486a8e1461040457806370a0823114610418578063715018a614610437575f80fd5b806323b872dd1161020657806323b872dd146103235780632c3e486c146103425780632e82f1a014610357578063313ce567146103775780633950935114610392575f80fd5b806306fdde031461024c578063095ea7b3146102765780631694505e146102a557806318160ddd146102f05780631f3fed8f1461030e575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b506102606106dd565b60405161026d9190611b53565b60405180910390f35b348015610281575f80fd5b50610295610290366004611bb3565b61076d565b604051901515815260200161026d565b3480156102b0575f80fd5b506102d87f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161026d565b3480156102fb575f80fd5b506002545b60405190815260200161026d565b348015610319575f80fd5b50610300600c5481565b34801561032e575f80fd5b5061029561033d366004611bdd565b610783565b34801561034d575f80fd5b5061030060065481565b348015610362575f80fd5b5060055461029590600160b01b900460ff1681565b348015610382575f80fd5b506040516012815260200161026d565b34801561039d575f80fd5b506102956103ac366004611bb3565b610830565b3480156103bc575f80fd5b506102d87f00000000000000000000000017d216c564f436ba3b9068a230a61be1b3e9457981565b3480156103ef575f80fd5b5060055461029590600160a01b900460ff1681565b34801561040f575f80fd5b5061030061086b565b348015610423575f80fd5b50610300610432366004611c1b565b610879565b348015610442575f80fd5b5061044b610893565b005b348015610458575f80fd5b5061044b6108c8565b34801561046c575f80fd5b506102d873fc9dc72743758faea2edc92294a48ccdf1e3ab7a81565b348015610493575f80fd5b50610300600481565b3480156104a7575f80fd5b5061044b610901565b3480156104bb575f80fd5b506005546001600160a01b03166102d8565b3480156104d8575f80fd5b506102d873a6d186035079d365803c302c2d49a4d77e05018f81565b3480156104ff575f80fd5b50610260610944565b348015610513575f80fd5b506103005f81565b348015610526575f80fd5b50610300600b5481565b34801561053b575f80fd5b5061029561054a366004611bb3565b610953565b34801561055a575f80fd5b50610295610569366004611bb3565b6109eb565b348015610579575f80fd5b50610300602381565b34801561058d575f80fd5b5061029561059c366004611c1b565b600f6020525f908152604090205460ff1681565b3480156105bb575f80fd5b5061044b6105ca366004611c36565b6109f7565b3480156105da575f80fd5b5060055461029590600160a81b900460ff1681565b3480156105fa575f80fd5b506103006a108b2a2c2802909400000081565b348015610618575f80fd5b50610300601981565b34801561062c575f80fd5b5061030061063b366004611c4d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610670575f80fd5b50610300600a5481565b348015610685575f80fd5b506103006969e10de76676d080000081565b3480156106a2575f80fd5b5061044b6106b1366004611c1b565b610b4c565b3480156106c1575f80fd5b506102d8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6060600380546106ec90611c84565b80601f016020809104026020016040519081016040528092919081815260200182805461071890611c84565b80156107635780601f1061073a57610100808354040283529160200191610763565b820191905f5260205f20905b81548152906001019060200180831161074657829003601f168201915b5050505050905090565b5f610779338484610be7565b5060015b92915050565b5f61078f848484610d0a565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156108185760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108258533858403610be7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610779918590610866908690611cd0565b610be7565b61087660045f611cd0565b81565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b031633146108bd5760405162461bcd60e51b815260040161080f90611ce3565b6108c65f6115f2565b565b6005546001600160a01b031633146108f25760405162461bcd60e51b815260040161080f90611ce3565b6005805460ff60a01b19169055565b6005546001600160a01b0316331461092b5760405162461bcd60e51b815260040161080f90611ce3565b436007556005805460ff60a81b1916600160a81b179055565b6060600480546106ec90611c84565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080f565b6109e13385858403610be7565b5060019392505050565b5f610779338484610d0a565b6005546001600160a01b03163314610a215760405162461bcd60e51b815260040161080f90611ce3565b5f8111610a685760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070657263656e7420706172616d60581b604482015260640161080f565b6064811115610ab15760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070657263656e7420706172616d60581b604482015260640161080f565b5f6064610abd30610879565b610ac79084611d18565b610ad19190611d2f565b9050610adc81611643565b5f600b55610ae930610879565b600c556040515f9073fc9dc72743758faea2edc92294a48ccdf1e3ab7a9047908381818185875af1925050503d805f8114610b3f576040519150601f19603f3d011682016040523d82523d5f602084013e610b44565b606091505b505050505050565b6005546001600160a01b03163314610b765760405162461bcd60e51b815260040161080f90611ce3565b6001600160a01b038116610bdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080f565b610be4816115f2565b50565b6001600160a01b038316610c495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080f565b6001600160a01b038216610caa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d305760405162461bcd60e51b815260040161080f90611d4e565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080f565b805f03610da957610da483835f6117f1565b505050565b600554600160a01b900460ff16156110b4576005546001600160a01b03848116911614801590610de757506005546001600160a01b03838116911614155b8015610dfb57506001600160a01b03821615155b8015610e1257506001600160a01b03821661dead14155b8015610e21575060085460ff16155b156110b457600554600160a81b900460ff16610e6f5760405162461bcd60e51b815260206004820152600d60248201526c2737ba103630bab731b432b21760991b604482015260640161080f565b6001600160a01b0383165f908152600f602052604090205460ff168015610eae57506001600160a01b0382165f908152600e602052604090205460ff16155b15610f84576a108b2a2c28029094000000811115610f1c5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152641b1a5b5a5d60da1b606482015260840161080f565b6a108b2a2c28029094000000610f3183610879565b610f3b9083611cd0565b1115610f7f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080f565b6110b4565b6001600160a01b0382165f908152600f602052604090205460ff168015610fc357506001600160a01b0383165f908152600e602052604090205460ff16155b15611032576a108b2a2c28029094000000811115610f7f5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265081b1a5b5a5d60d21b606482015260840161080f565b6001600160a01b0382165f908152600e602052604090205460ff166110b4576a108b2a2c2802909400000061106683610879565b6110709083611cd0565b11156110b45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080f565b6001600160a01b0383165f908152600d602052604090205460ff16806110f157506001600160a01b0382165f908152600d602052604090205460ff165b801561110657506001600160a01b0383163014155b801561111b57506001600160a01b0382163014155b801561113557506005546001600160a01b03848116911614155b1561113f57426011555b6001600160a01b0383165f908152600d602052604090205460ff168015611172575060075461116f90604b611cd0565b43115b1561118257610da483838361191e565b6001600160a01b0383165f908152600d602052604090205460ff161580156111c257506001600160a01b0382165f908152600d602052604090205460ff16155b156112ca576001600160a01b0382165f908152600f602052604090205460ff161561121e576001600160a01b0383165f908152601060205260409020601154815461120d9190611d93565b6002820155426001909101556112ca565b6001600160a01b038083165f9081526010602090815260408083209387168352600f90915290205460ff161561129657600b600954101561126b57600954611267906001611cd0565b6009555b80545f0361129157600b60095410611283574261128e565b61128e600142611d93565b81555b6112c8565b6001600160a01b0384165f908152601060205260409020815415806112bc575081548154105b156112c657805482555b505b505b5f6112d430610879565b6969e10de76676d0800000111590505f600754600a6112f39190611cd0565b43109050818015611302575080155b8015611311575060085460ff16155b801561133557506001600160a01b0385165f908152600f602052604090205460ff16155b801561135957506001600160a01b0385165f908152600d602052604090205460ff16155b801561137d57506001600160a01b0384165f908152600d602052604090205460ff16155b1561138a5761138a611956565b6008546001600160a01b0386165f908152600d602052604090205460ff918216159116806113cf57506001600160a01b0385165f908152600d602052604090205460ff165b156113d757505f5b5f81156115de57821561146b576001600160a01b0387165f908152600f602052604090205460ff1615611439576064611411601987611d18565b61141b9190611d2f565b905080600c5f82825461142e9190611cd0565b909155506115c09050565b6001600160a01b0386165f908152600f602052604090205460ff1615611466576064611411602387611d18565b6115c0565b6001600160a01b0387165f908152600f602052604090205460ff16801561149b57505f611499600482611cd0565b115b156115205760646114ad60045f611cd0565b6114b79087611d18565b6114c19190611d2f565b90506114e26114d160045f611cd0565b6114dc600484611d18565b90611ad6565b600c5f8282546114f29190611cd0565b90915550611510905061150660045f611cd0565b6114dc5f84611d18565b600b5f82825461142e9190611cd0565b6001600160a01b0386165f908152600f602052604090205460ff16801561155057505f61154e600482611cd0565b115b156115c057606461156260045f611cd0565b61156c9087611d18565b6115769190611d2f565b905061158661150660045f611cd0565b600b5f8282546115969190611cd0565b909155506115aa90506114d160045f611cd0565b600c5f8282546115ba9190611cd0565b90915550505b80156115d1576115d18730836117f1565b6115db8186611d93565b94505b6115e98787876117f1565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167657611676611da6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190611dba565b8160018151811061172957611729611da6565b60200260200101906001600160a01b031690816001600160a01b031681525050611774307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610be7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906117c89085905f90869030904290600401611dd5565b5f604051808303815f87803b1580156117df575f80fd5b505af1158015610b44573d5f803e3d5ffd5b6001600160a01b0383166118175760405162461bcd60e51b815260040161080f90611d4e565b6001600160a01b0383165f908152602081905260409020548181101561188e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080f565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906118c4908490611cd0565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161191091815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906118c4908490611cd0565b6008805460ff191660011790555f8061196e30610879565b90505f600b54600c546119819190611cd0565b905081158061198e575080155b1561199b57505050611aca565b6119b06969e10de76676d08000006019611d18565b8211156119cf576119cc6969e10de76676d08000006019611d18565b91505b81476119da82611643565b5f6119e58247611d93565b90505f8482600b546119f79190611d18565b611a019190611d2f565b5f600b819055600c81905560405191925073a6d186035079d365803c302c2d49a4d77e05018f91839181818185875af1925050503d805f8114611a5f576040519150601f19603f3d011682016040523d82523d5f602084013e611a64565b606091505b505060405190975073fc9dc72743758faea2edc92294a48ccdf1e3ab7a9047905f81818185875af1925050503d805f8114611aba576040519150601f19603f3d011682016040523d82523d5f602084013e611abf565b606091505b505050505050505050505b6008805460ff19169055565b5f611b1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b1e565b9392505050565b5f8183611b3e5760405162461bcd60e51b815260040161080f9190611b53565b505f611b4a8486611d2f565b95945050505050565b5f602080835283518060208501525f5b81811015611b7f57858101830151858201604001528201611b63565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610be4575f80fd5b5f8060408385031215611bc4575f80fd5b8235611bcf81611b9f565b946020939093013593505050565b5f805f60608486031215611bef575f80fd5b8335611bfa81611b9f565b92506020840135611c0a81611b9f565b929592945050506040919091013590565b5f60208284031215611c2b575f80fd5b8135611b1781611b9f565b5f60208284031215611c46575f80fd5b5035919050565b5f8060408385031215611c5e575f80fd5b8235611c6981611b9f565b91506020830135611c7981611b9f565b809150509250929050565b600181811c90821680611c9857607f821691505b602082108103611cb657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561077d5761077d611cbc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761077d5761077d611cbc565b5f82611d4957634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561077d5761077d611cbc565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dca575f80fd5b8151611b1781611b9f565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e255784516001600160a01b031683529383019391830191600101611e00565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d85247e5c220fa8f783acd50fb4616b38c1cdbd2f1ca238aed4c48f53a16581464736f6c63430008180033

Deployed Bytecode Sourcemap

10115:10702:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4109:169;;;;;;;;;;-1:-1:-1;4109:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4109:169:0;1023:187:1;11211:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;11211:51:0;1215:229:1;3516:108:0;;;;;;;;;;-1:-1:-1;3604:12:0;;3516:108;;;1595:25:1;;;1583:2;1568:18;3516:108:0;1449:177:1;11767:33:0;;;;;;;;;;;;;;;;4286:492;;;;;;;;;;-1:-1:-1;4286:492:0;;;;;:::i;:::-;;:::i;11436:56::-;;;;;;;;;;;;;;;;11396:33;;;;;;;;;;-1:-1:-1;11396:33:0;;;;-1:-1:-1;;;11396:33:0;;;;;;3415:93;;;;;;;;;;-1:-1:-1;3415:93:0;;3498:2;2234:36:1;;2222:2;2207:18;3415:93:0;2092:184:1;4786:215:0;;;;;;;;;;-1:-1:-1;4786:215:0;;;;;:::i;:::-;;:::i;11269:38::-;;;;;;;;;;;;;;;11316:33;;;;;;;;;;-1:-1:-1;11316:33:0;;;;-1:-1:-1;;;11316:33:0;;;;;;11138:64;;;;;;;;;;;;;:::i;3632:127::-;;;;;;;;;;-1:-1:-1;3632:127:0;;;;;:::i;:::-;;:::i;1009:103::-;;;;;;;;;;;;;:::i;:::-;;20730:84;;;;;;;;;;;;;:::i;10358:::-;;;;;;;;;;;;10400:42;10358:84;;11024:39;;;;;;;;;;;;11062:1;11024:39;;20602:120;;;;;;;;;;;;;:::i;786:87::-;;;;;;;;;;-1:-1:-1;859:6:0;;-1:-1:-1;;;;;859:6:0;786:87;;10273:78;;;;;;;;;;;;10309:42;10273:78;;3303:104;;;;;;;;;;;;;:::i;10890:37::-;;;;;;;;;;;;10926:1;10890:37;;11733:27;;;;;;;;;;;;;;;;5009:413;;;;;;;;;;-1:-1:-1;5009:413:0;;;;;:::i;:::-;;:::i;3767:175::-;;;;;;;;;;-1:-1:-1;3767:175:0;;;;;:::i;:::-;;:::i;10841:40::-;;;;;;;;;;;;10879:2;10841:40;;11941:57;;;;;;;;;;-1:-1:-1;11941:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20108:486;;;;;;;;;;-1:-1:-1;20108:486:0;;;;;:::i;:::-;;:::i;11356:33::-;;;;;;;;;;-1:-1:-1;11356:33:0;;;;-1:-1:-1;;;11356:33:0;;;;;;10518:64;;;;;;;;;;;;10565:17;10518:64;;10795:39;;;;;;;;;;;;10832:2;10795:39;;3950:151;;;;;;;;;;-1:-1:-1;3950:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4066:18:0;;;4039:7;4066:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3950:151;11699:27;;;;;;;;;;;;;;;;10651:59;;;;;;;;;;;;10696:14;10651:59;;1120:201;;;;;;;;;;-1:-1:-1;1120:201:0;;;;;:::i;:::-;;:::i;10191:75::-;;;;;;;;;;;;10224:42;10191:75;;3195:100;3249:13;3282:5;3275:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:100;:::o;4109:169::-;4192:4;4209:39;521:10;4232:7;4241:6;4209:8;:39::i;:::-;-1:-1:-1;4266:4:0;4109:169;;;;;:::o;4286:492::-;4426:4;4443:36;4453:6;4461:9;4472:6;4443:9;:36::i;:::-;-1:-1:-1;;;;;4519:19:0;;4492:24;4519:19;;;:11;:19;;;;;;;;521:10;4519:33;;;;;;;;4571:26;;;;4563:79;;;;-1:-1:-1;;;4563:79:0;;3906:2:1;4563:79:0;;;3888:21:1;3945:2;3925:18;;;3918:30;3984:34;3964:18;;;3957:62;-1:-1:-1;;;4035:18:1;;;4028:38;4083:19;;4563:79:0;;;;;;;;;4678:57;4687:6;521:10;4728:6;4709:16;:25;4678:8;:57::i;:::-;-1:-1:-1;4766:4:0;;4286:492;-1:-1:-1;;;;4286:492:0:o;4786:215::-;521:10;4874:4;4923:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4923:34:0;;;;;;;;;;4874:4;;4891:80;;4914:7;;4923:47;;4960:10;;4923:47;:::i;:::-;4891:8;:80::i;11138:64::-;11178:24;11062:1;11016;11178:24;:::i;:::-;11138:64;:::o;3632:127::-;-1:-1:-1;;;;;3733:18:0;3706:7;3733:18;;;;;;;;;;;;3632:127::o;1009:103::-;859:6;;-1:-1:-1;;;;;859:6:0;521:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;;;;;;:::i;:::-;1074:30:::1;1101:1;1074:18;:30::i;:::-;1009:103::o:0;20730:84::-;859:6;;-1:-1:-1;;;;;859:6:0;521:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;;;;;;:::i;:::-;20784:14:::1;:22:::0;;-1:-1:-1;;;;20784:22:0::1;::::0;;20730:84::o;20602:120::-;859:6;;-1:-1:-1;;;;;859:6:0;521:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;;;;;;:::i;:::-;20671:12:::1;20657:11;:26:::0;20694:13:::1;:20:::0;;-1:-1:-1;;;;20694:20:0::1;-1:-1:-1::0;;;20694:20:0::1;::::0;;20602:120::o;3303:104::-;3359:13;3392:7;3385:14;;;;;:::i;5009:413::-;521:10;5102:4;5146:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5146:34:0;;;;;;;;;;5199:35;;;;5191:85;;;;-1:-1:-1;;;5191:85:0;;4938:2:1;5191:85:0;;;4920:21:1;4977:2;4957:18;;;4950:30;5016:34;4996:18;;;4989:62;-1:-1:-1;;;5067:18:1;;;5060:35;5112:19;;5191:85:0;4736:401:1;5191:85:0;5312:67;521:10;5335:7;5363:15;5344:16;:34;5312:8;:67::i;:::-;-1:-1:-1;5410:4:0;;5009:413;-1:-1:-1;;;5009:413:0:o;3767:175::-;3853:4;3870:42;521:10;3894:9;3905:6;3870:9;:42::i;20108:486::-;859:6;;-1:-1:-1;;;;;859:6:0;521:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;;;;;;:::i;:::-;20193:1:::1;20183:7;:11;20175:45;;;::::0;-1:-1:-1;;;20175:45:0;;5344:2:1;20175:45:0::1;::::0;::::1;5326:21:1::0;5383:2;5363:18;;;5356:30;-1:-1:-1;;;5402:18:1;;;5395:51;5463:18;;20175:45:0::1;5142:345:1::0;20175:45:0::1;20250:3;20239:7;:14;;20231:48;;;::::0;-1:-1:-1;;;20231:48:0;;5344:2:1;20231:48:0::1;::::0;::::1;5326:21:1::0;5383:2;5363:18;;;5356:30;-1:-1:-1;;;5402:18:1;;;5395:51;5463:18;;20231:48:0::1;5142:345:1::0;20231:48:0::1;20290:23;20355:3;20327:24;20345:4;20327:9;:24::i;:::-;20317:34;::::0;:7;:34:::1;:::i;:::-;20316:42;;;;:::i;:::-;20290:68;;20369:33;20386:15;20369:16;:33::i;:::-;20428:1;20413:12;:16:::0;20461:24:::1;20479:4;20461:9;:24::i;:::-;20440:18;:45:::0;20532:54:::1;::::0;20496:12:::1;::::0;10400:42:::1;::::0;20560:21:::1;::::0;20496:12;20532:54;20496:12;20532:54;20560:21;10400:42;20532:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;20108:486:0:o;1120:201::-;859:6;;-1:-1:-1;;;;;859:6:0;521:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1209:22:0;::::1;1201:73;;;::::0;-1:-1:-1;;;1201:73:0;;6299:2:1;1201:73:0::1;::::0;::::1;6281:21:1::0;6338:2;6318:18;;;6311:30;6377:34;6357:18;;;6350:62;-1:-1:-1;;;6428:18:1;;;6421:36;6474:19;;1201:73:0::1;6097:402:1::0;1201:73:0::1;1285:28;1304:8;1285:18;:28::i;:::-;1120:201:::0;:::o;7586:380::-;-1:-1:-1;;;;;7722:19:0;;7714:68;;;;-1:-1:-1;;;7714:68:0;;6706:2:1;7714:68:0;;;6688:21:1;6745:2;6725:18;;;6718:30;6784:34;6764:18;;;6757:62;-1:-1:-1;;;6835:18:1;;;6828:34;6879:19;;7714:68:0;6504:400:1;7714:68:0;-1:-1:-1;;;;;7801:21:0;;7793:68;;;;-1:-1:-1;;;7793:68:0;;7111:2:1;7793:68:0;;;7093:21:1;7150:2;7130:18;;;7123:30;7189:34;7169:18;;;7162:62;-1:-1:-1;;;7240:18:1;;;7233:32;7282:19;;7793:68:0;6909:398:1;7793:68:0;-1:-1:-1;;;;;7874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7926:32;;1595:25:1;;;7926:32:0;;1568:18:1;7926:32:0;;;;;;;7586:380;;;:::o;13753:4839::-;-1:-1:-1;;;;;13885:18:0;;13877:68;;;;-1:-1:-1;;;13877:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13964:16:0;;13956:64;;;;-1:-1:-1;;;13956:64:0;;7920:2:1;13956:64:0;;;7902:21:1;7959:2;7939:18;;;7932:30;7998:34;7978:18;;;7971:62;-1:-1:-1;;;8049:18:1;;;8042:33;8092:19;;13956:64:0;7718:399:1;13956:64:0;14035:6;14045:1;14035:11;14031:93;;14063:28;14079:4;14085:2;14089:1;14063:15;:28::i;:::-;13753:4839;;;:::o;14031:93::-;14140:14;;-1:-1:-1;;;14140:14:0;;;;14136:1271;;;859:6;;-1:-1:-1;;;;;14193:15:0;;;859:6;;14193:15;;;;:49;;-1:-1:-1;859:6:0;;-1:-1:-1;;;;;14229:13:0;;;859:6;;14229:13;;14193:49;:86;;;;-1:-1:-1;;;;;;14263:16:0;;;;14193:86;:128;;;;-1:-1:-1;;;;;;14300:21:0;;14314:6;14300:21;;14193:128;:158;;;;-1:-1:-1;14343:8:0;;;;14342:9;14193:158;14171:1225;;;14391:13;;-1:-1:-1;;;14391:13:0;;;;14386:86;;14429:23;;-1:-1:-1;;;14429:23:0;;8324:2:1;14429:23:0;;;8306:21:1;8363:2;8343:18;;;8336:30;-1:-1:-1;;;8382:18:1;;;8375:43;8435:18;;14429:23:0;8122:337:1;14386:86:0;-1:-1:-1;;;;;14494:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;14530:35:0;;;;;;:31;:35;;;;;;;;14529:36;14494:71;14490:891;;;10565:17;14624:6;:30;;14590:153;;;;-1:-1:-1;;;14590:153:0;;8666:2:1;14590:153:0;;;8648:21:1;8705:2;8685:18;;;8678:30;8744:34;8724:18;;;8717:62;-1:-1:-1;;;8795:18:1;;;8788:35;8840:19;;14590:153:0;8464:401:1;14590:153:0;10625:17;14783:13;14793:2;14783:9;:13::i;:::-;14774:22;;:6;:22;:::i;:::-;:35;;14766:67;;;;-1:-1:-1;;;14766:67:0;;9072:2:1;14766:67:0;;;9054:21:1;9111:2;9091:18;;;9084:30;-1:-1:-1;;;9130:18:1;;;9123:49;9189:18;;14766:67:0;8870:343:1;14766:67:0;14490:891;;;-1:-1:-1;;;;;14880:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;14914:37:0;;;;;;:31;:37;;;;;;;;14913:38;14880:71;14876:505;;;10565:17;15010:6;:30;;14976:154;;;;-1:-1:-1;;;14976:154:0;;9420:2:1;14976:154:0;;;9402:21:1;9459:2;9439:18;;;9432:30;9498:34;9478:18;;;9471:62;-1:-1:-1;;;9549:18:1;;;9542:36;9595:19;;14976:154:0;9218:402:1;14876:505:0;-1:-1:-1;;;;;15161:35:0;;;;;;:31;:35;;;;;;;;15156:225;;10625:17;15264:13;15274:2;15264:9;:13::i;:::-;15255:22;;:6;:22;:::i;:::-;:35;;15221:140;;;;-1:-1:-1;;;15221:140:0;;9072:2:1;15221:140:0;;;9054:21:1;9111:2;9091:18;;;9084:30;-1:-1:-1;;;9130:18:1;;;9123:49;9189:18;;15221:140:0;8870:343:1;15221:140:0;-1:-1:-1;;;;;15422:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15451:23:0;;;;;;:19;:23;;;;;;;;15422:52;15421:79;;;;-1:-1:-1;;;;;;15479:21:0;;15495:4;15479:21;;15421:79;:102;;;;-1:-1:-1;;;;;;15504:19:0;;15518:4;15504:19;;15421:102;:121;;;;-1:-1:-1;859:6:0;;-1:-1:-1;;;;;15527:15:0;;;859:6;;15527:15;;15421:121;15417:180;;;15570:15;15559:8;:26;15417:180;-1:-1:-1;;;;;15611:25:0;;;;;;:19;:25;;;;;;;;:62;;;;-1:-1:-1;15656:11:0;;:16;;15670:2;15656:16;:::i;:::-;15641:12;:31;15611:62;15607:149;;;15690:33;15706:4;15712:2;15716:6;15690:15;:33::i;15607:149::-;-1:-1:-1;;;;;15771:25:0;;;;;;:19;:25;;;;;;;;15770:26;:54;;;;-1:-1:-1;;;;;;15801:23:0;;;;;;:19;:23;;;;;;;;15800:24;15770:54;15766:996;;;-1:-1:-1;;;;;15845:29:0;;;;;;:25;:29;;;;;;;;15841:910;;;-1:-1:-1;;;;;15928:15:0;;15895:30;15928:15;;;:9;:15;;;;;15993:8;;15978:12;;:23;;15993:8;15978:23;:::i;:::-;15962:13;;;:39;16036:15;16020:13;;;;:31;15841:910;;;-1:-1:-1;;;;;16123:13:0;;;16092:28;16123:13;;;:9;:13;;;;;;;;16159:31;;;;;:25;:31;;;;;;;;16155:581;;;16230:2;16219:8;;:13;16215:93;;;16272:8;;:12;;16283:1;16272:12;:::i;:::-;16261:8;:23;16215:93;16334:10;;;:15;16330:142;;16403:2;16392:8;;:13;16391:57;;16433:15;16391:57;;;16410:19;16428:1;16410:15;:19;:::i;:::-;16378:70;;16330:142;16155:581;;;-1:-1:-1;;;;;16553:15:0;;16520:30;16553:15;;;:9;:15;;;;;16595:10;;:15;;:44;;-1:-1:-1;16629:10:0;;16614:12;;:25;16595:44;16591:126;;;16681:12;;16668:25;;16591:126;16497:239;16155:581;16073:678;15841:910;16774:12;16811:24;16829:4;16811:9;:24::i;:::-;10696:14;16789:46;;16774:61;;16848:15;16881:11;;16895:2;16881:16;;;;:::i;:::-;16866:12;:31;16848:49;;16926:7;:35;;;;;16951:10;16950:11;16926:35;:61;;;;-1:-1:-1;16979:8:0;;;;16978:9;16926:61;:110;;;;-1:-1:-1;;;;;;17005:31:0;;;;;;:25;:31;;;;;;;;17004:32;16926:110;:153;;;;-1:-1:-1;;;;;;17054:25:0;;;;;;:19;:25;;;;;;;;17053:26;16926:153;:194;;;;-1:-1:-1;;;;;;17097:23:0;;;;;;:19;:23;;;;;;;;17096:24;16926:194;16908:261;;;17147:10;:8;:10::i;:::-;17197:8;;-1:-1:-1;;;;;17222:25:0;;17181:12;17222:25;;;:19;:25;;;;;;17197:8;;;;17196:9;;17222:25;;:52;;-1:-1:-1;;;;;;17251:23:0;;;;;;:19;:23;;;;;;;;17222:52;17218:100;;;-1:-1:-1;17301:5:0;17218:100;17330:12;17363:7;17359:1182;;;17391:10;17387:1009;;;-1:-1:-1;;;;;17426:31:0;;;;;;:25;:31;;;;;;;;17422:327;;;17511:3;17489:19;10832:2;17489:6;:19;:::i;:::-;:25;;;;:::i;:::-;17482:32;;17559:4;17537:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;17387:1009:0;;-1:-1:-1;17387:1009:0;17422:327;-1:-1:-1;;;;;17593:29:0;;;;;;:25;:29;;;;;;;;17589:160;;;17677:3;17654:20;10879:2;17654:6;:20;:::i;17589:160::-;17387:1009;;;-1:-1:-1;;;;;17793:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;17843:1:0;11109:22;10971:1;17843;11109:22;:::i;:::-;17828:16;17793:51;17789:592;;;17900:3;11109:22;10971:1;10926;11109:22;:::i;:::-;17876:21;;:6;:21;:::i;:::-;:27;;;;:::i;:::-;17869:34;-1:-1:-1;17948:37:0;11109:22;10971:1;10926;11109:22;:::i;:::-;17949:17;10971:1;17949:4;:17;:::i;:::-;17948:23;;:37::i;:::-;17926:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;18024:36:0;;-1:-1:-1;11109:22:0;10971:1;10926;11109:22;:::i;:::-;18025:16;10926:1;18025:4;:16;:::i;18024:36::-;18008:12;;:52;;;;;;;:::i;17789:592::-;-1:-1:-1;;;;;18090:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;18139:1:0;11178:24;11062:1;18139;11178:24;:::i;:::-;18123:17;18090:50;18086:295;;;18197:3;11178:24;11062:1;11016;11178:24;:::i;:::-;18172:22;;:6;:22;:::i;:::-;:28;;;;:::i;:::-;18165:35;-1:-1:-1;18239:38:0;11178:24;11062:1;11016;11178:24;:::i;18239:38::-;18223:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;18322:39:0;;-1:-1:-1;11178:24:0;11062:1;11016;11178:24;:::i;18322:39::-;18300:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;18086:295:0;18414:8;;18410:91;;18443:42;18459:4;18473;18480;18443:15;:42::i;:::-;18515:14;18525:4;18515:14;;:::i;:::-;;;17359:1182;18551:33;18567:4;18573:2;18577:6;18551:15;:33::i;:::-;13866:4726;;;;13753:4839;;;:::o;1329:191::-;1422:6;;;-1:-1:-1;;;;;1439:17:0;;;-1:-1:-1;;;;;;1439:17:0;;;;;;;1472:40;;1422:6;;;1439:17;1422:6;;1472:40;;1403:16;;1472:40;1392:128;1329:191;:::o;18637:525::-;18727:16;;;18741:1;18727:16;;;;;;;;18703:21;;18727:16;;;;;;;;;;-1:-1:-1;18727:16:0;18703:40;;18772:4;18754;18759:1;18754:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18754:23:0;;;-1:-1:-1;;;;;18754:23:0;;;;;18798:15;-1:-1:-1;;;;;18798:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18788:4;18793:1;18788:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;18788:32:0;;;-1:-1:-1;;;;;18788:32:0;;;;;18833:112;18864:4;18892:15;18923:11;18833:8;:112::i;:::-;18958:196;;-1:-1:-1;;;18958:196:0;;-1:-1:-1;;;;;18958:15:0;:66;;;;:196;;19039:11;;19065:1;;19081:4;;19108;;19128:15;;18958:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5430:651;-1:-1:-1;;;;;5570:20:0;;5562:70;;;;-1:-1:-1;;;5562:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5729:17:0;;5705:21;5729:17;;;;;;;;;;;5765:23;;;;5757:74;;;;-1:-1:-1;;;5757:74:0;;11465:2:1;5757:74:0;;;11447:21:1;11504:2;11484:18;;;11477:30;11543:34;11523:18;;;11516:62;-1:-1:-1;;;11594:18:1;;;11587:36;11640:19;;5757:74:0;11263:402:1;5757:74:0;-1:-1:-1;;;;;5867:17:0;;;:9;:17;;;;;;;;;;;5887:22;;;5867:42;;5931:20;;;;;;;;:30;;5903:6;;5867:9;5931:30;;5903:6;;5931:30;:::i;:::-;;;;;;;;5996:9;-1:-1:-1;;;;;5979:35:0;5988:6;-1:-1:-1;;;;;5979:35:0;;6007:6;5979:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;5979:35:0;;;;;;;;5551:530;5430:651;;;:::o;6089:483::-;-1:-1:-1;;;;;6305:17:0;;;6281:21;6305:17;;;;;;;;;;;;;6378:22;;;6358:42;;;6422:20;;;;;;;:30;;6394:6;;6281:21;6422:30;;6394:6;;6422:30;:::i;19170:930::-;11629:8;:15;;-1:-1:-1;;11629:15:0;11640:4;11629:15;;;:8;;19267:24:::1;19285:4;19267:9;:24::i;:::-;19241:50;;19304:25;19353:12;;19332:18;;:33;;;;:::i;:::-;19304:61:::0;-1:-1:-1;19382:20:0;;;:46:::1;;-1:-1:-1::0;19406:22:0;;19382:46:::1;19378:85;;;19445:7;;;;;19378:85;10763:23;10696:14;10784:2;10763:23;:::i;:::-;19477:15;:36;19473:105;;;10763:23;10696:14;10784:2;10763:23;:::i;:::-;19530:36;;19473:105;19619:15:::0;19673:21:::1;19705:36;19619:15:::0;19705:16:::1;:36::i;:::-;19754:18;19775:41;19799:17:::0;19775:21:::1;:41;:::i;:::-;19754:62;;19827:17;19875;19862:10;19847:12;;:25;;;;:::i;:::-;:45;;;;:::i;:::-;19920:1;19905:12;:16:::0;;;19932:18:::1;:22:::0;;;19978:36:::1;::::0;19827:65;;-1:-1:-1;10309:42:0::1;::::0;19827:65;;19978:36;19920:1;19978:36;19827:65;10309:42;19978:36:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20038:54:0::1;::::0;19965:49;;-1:-1:-1;10400:42:0::1;::::0;20066:21:::1;::::0;20038:54:::1;::::0;;;20066:21;10400:42;20038:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;11655:1:0::1;11667:8:::0;:16;;-1:-1:-1;;11667:16:0;;;19170:930::o;1551:118::-;1609:7;1627:39;1631:1;1634;1627:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1620:46;1551:118;-1:-1:-1;;;1551:118:0:o;1677:189::-;1763:7;1798:12;1791:5;1783:28;;;;-1:-1:-1;;;1783:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1822:9:0;1834:5;1838:1;1834;:5;:::i;:::-;1822:17;1677:189;-1:-1:-1;;;;;1677:189:0:o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:180::-;2800:6;2853:2;2841:9;2832:7;2828:23;2824:32;2821:52;;;2869:1;2866;2859:12;2821:52;-1:-1:-1;2892:23:1;;2741:180;-1:-1:-1;2741:180:1:o;2926:388::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3236:2:1;3221:18;;3208:32;3249:33;3208:32;3249:33;:::i;:::-;3301:7;3291:17;;;2926:388;;;;;:::o;3319:380::-;3398:1;3394:12;;;;3441;;;3462:61;;3516:4;3508:6;3504:17;3494:27;;3462:61;3569:2;3561:6;3558:14;3538:18;3535:38;3532:161;;3615:10;3610:3;3606:20;3603:1;3596:31;3650:4;3647:1;3640:15;3678:4;3675:1;3668:15;3532:161;;3319:380;;;:::o;4113:127::-;4174:10;4169:3;4165:20;4162:1;4155:31;4205:4;4202:1;4195:15;4229:4;4226:1;4219:15;4245:125;4310:9;;;4331:10;;;4328:36;;;4344:18;;:::i;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;5492:168::-;5565:9;;;5596;;5613:15;;;5607:22;;5593:37;5583:71;;5634:18;;:::i;5665:217::-;5705:1;5731;5721:132;;5775:10;5770:3;5766:20;5763:1;5756:31;5810:4;5807:1;5800:15;5838:4;5835:1;5828:15;5721:132;-1:-1:-1;5867:9:1;;5665:217::o;7312:401::-;7514:2;7496:21;;;7553:2;7533:18;;;7526:30;7592:34;7587:2;7572:18;;7565:62;-1:-1:-1;;;7658:2:1;7643:18;;7636:35;7703:3;7688:19;;7312:401::o;9625:128::-;9692:9;;;9713:11;;;9710:37;;;9727:18;;:::i;9890:127::-;9951:10;9946:3;9942:20;9939:1;9932:31;9982:4;9979:1;9972:15;10006:4;10003:1;9996:15;10022:251;10092:6;10145:2;10133:9;10124:7;10120:23;10116:32;10113:52;;;10161:1;10158;10151:12;10113:52;10193:9;10187:16;10212:31;10237:5;10212:31;:::i;10278:980::-;10540:4;10588:3;10577:9;10573:19;10619:6;10608:9;10601:25;10645:2;10683:6;10678:2;10667:9;10663:18;10656:34;10726:3;10721:2;10710:9;10706:18;10699:31;10750:6;10785;10779:13;10816:6;10808;10801:22;10854:3;10843:9;10839:19;10832:26;;10893:2;10885:6;10881:15;10867:29;;10914:1;10924:195;10938:6;10935:1;10932:13;10924:195;;;11003:13;;-1:-1:-1;;;;;10999:39:1;10987:52;;11094:15;;;;11059:12;;;;11035:1;10953:9;10924:195;;;-1:-1:-1;;;;;;;11175:32:1;;;;11170:2;11155:18;;11148:60;-1:-1:-1;;;11239:3:1;11224:19;11217:35;11136:3;10278:980;-1:-1:-1;;;10278:980:1:o

Swarm Source

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