ETH Price: $3,323.68 (-3.50%)
Gas: 3 Gwei

Token

INSIDER (INSI)
 

Overview

Max Total Supply

1,000,000,000 INSI

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,377,819.652868193415324817 INSI

Value
$0.00
0xa01257a31a8b54d469e2646e0f94adab60292122
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:
INSIDER

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-09
*/

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

abstract contract IERC20Extented is IERC20 {
    function decimals() external view virtual returns (uint8);

    function name() external view virtual returns (string memory);

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

contract INSIDER is Context, IERC20, IERC20Extented, Ownable {
    using SafeMath for uint256;

    string private constant _name = "INSIDER";
    string private constant _symbol = "INSI";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;

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

    mapping(address => bool) private _isExcluded;
    address[] private _excluded;
    mapping(address => bool) private _isBlackListedBot;
    // address[] private _blackListedBots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**9 * 10**18; // 1 Billion tokens
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _botBlocks;
    uint256 private _firstBlock;

    // fees wrt to tax percentage
    uint256 public _rfiFee = 10; // divided by 100
    uint256 private _previousRfiFee = _rfiFee;
    uint256 public _lpFee = 10; // divided by 100
    uint256 private _previousLpFee = _lpFee;

    mapping(address => bool) private bots;
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private _maxTxAmount;
    uint256 private _maxWalletLimit;

    bool private tradingOpen = false;

    event FeesUpdated(uint256 _rfiFee, uint256 _lpFee);


    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );

        _rOwned[_msgSender()] = _rTotal;

        _maxTxAmount = _tTotal.div(100); // 1% of total supply
        _maxWalletLimit = _tTotal.div(50); // 2% of total supply

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function totalSupply() external pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function isBot(address account) public view returns (bool) {
        return bots[account];
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function setExcludeFromFee(address account, bool excluded)
        external
        onlyOwner
    {
        _isExcludedFromFee[account] = excluded;
    }

    function updateMaxTxnAmount(uint256 newMaxTxnAmount) external onlyOwner {
        require( newMaxTxnAmount > 0, "Cant set to zero");
        require( newMaxTxnAmount <= 1000 , "Invalid input");
        _maxTxAmount = _tTotal.mul(newMaxTxnAmount).div(1000);
    }

    function updateMaxWalletLimit(uint256 newMaxWalletLimit) external onlyOwner {
        require( newMaxWalletLimit > 0, "Cant set to zero");
        require( newMaxWalletLimit <= 1000 , "Invalid input");
        _maxWalletLimit = _tTotal.mul(newMaxWalletLimit).div(1000);
    }


    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(
            !_isExcluded[sender],
            "Excluded addresses cannot call this function"
        );
        (uint256 rAmount, , , , , ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount, , , , , ) = _getValues(tAmount);
            return rAmount;
        } else {
            (, uint256 rTransferAmount, , , , ) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount)
        public
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function excludeAccount(address account) external onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _rOwned[account] = _tOwned[account].mul(_getRate());
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function removeAllFee() private {
    if (_lpFee == 0 &&  _rfiFee == 0) return;
        _previousLpFee = _lpFee;
        _previousRfiFee = _rfiFee;

        _lpFee = 0;
        _rfiFee = 0;
    }

    function setBuyFees() private {
        _lpFee = 0;
        _rfiFee = 10;
    }

    function setSellFees() private {
        _lpFee = 10;
        _rfiFee = 0;
    }


    function restoreAllFee() private {
        _lpFee = _previousLpFee;
        _rfiFee = _previousRfiFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to], "Bots not allowed to transfer");  


        bool takeFee = true;

        if (
            from != owner() &&
            to != owner()
        ) {
            require(tradingOpen, "Trading is not open");
            require(amount <= _maxTxAmount, "Exceeds max transaction amount");
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {//buys

                if (block.number <= _firstBlock.add(_botBlocks)) {
                    bots[to] = true;
                }
                setBuyFees();
            }

            if (from != uniswapV2Pair) { //sells, transfers

                if(to != uniswapV2Pair) {
                    require(balanceOf(to) <= _maxWalletLimit, "Wallet limit exceeds");
                }
                setSellFees();
            }
            
        }

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

        _tokenTransfer(from, to, amount, takeFee);
    }

    function openTrading(uint256 botBlocks) external onlyOwner {
        _firstBlock = block.number;
        _botBlocks = botBlocks;
        tradingOpen = true;
    }


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {
            removeAllFee();
        }
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        if (!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTax
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLP(tTax);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
        if(tTax > 0) {
            emit Transfer(sender,uniswapV2Pair, tTax);
        }
    }

    function _transferToExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTax
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLP(tTax);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
        if(tTax > 0) {
            emit Transfer(sender,uniswapV2Pair, tTax);
        }
    }

    function _transferFromExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTax
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLP(tTax);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
        if(tTax > 0) {
            emit Transfer(sender,uniswapV2Pair, tTax);
        }
    }

    function _transferBothExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTax
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLP(tTax);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
        if(tTax > 0) {
            emit Transfer(sender,uniswapV2Pair, tTax);
        }
        
    }

    // sending tax to liquidity pool incentive for liquidity providers
    function _takeLP(uint256 tTax) private {
        if(tTax > 0) {
            uint256 currentRate = _getRate();
            uint256 rTax = tTax.mul(currentRate);
            _rOwned[uniswapV2Pair] = _rOwned[uniswapV2Pair].add(rTax);
            if (_isExcluded[uniswapV2Pair])
                _tOwned[uniswapV2Pair] = _tOwned[uniswapV2Pair].add(tTax);  
        }
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 taxFee = _lpFee;
        (uint256 tTransferAmount, uint256 tRfi, uint256 tTax) = _getTValues(
            tAmount,
            _rfiFee,
            taxFee
        );
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi) = _getRValues(
            tAmount,
            tRfi,
            tTax,
            currentRate
        );
        return (rAmount, rTransferAmount, rRfi, tTransferAmount, tRfi, tTax);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 rfiFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tRfi = tAmount.mul(rfiFee).div(100);
        uint256 tTax = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tRfi).sub(tTax);
        return (tTransferAmount, tRfi, tTax);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tRfi,
        uint256 tTax,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rRfi = tRfi.mul(currentRate);
        uint256 rTax = tTax.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rRfi).sub(rTax);
        return (rAmount, rTransferAmount, rRfi);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (
                _rOwned[_excluded[i]] > rSupply ||
                _tOwned[_excluded[i]] > tSupply
            ) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function removeBot(address account) external onlyOwner {
        bots[account] = false;
    }

    function addBot(address account) external onlyOwner {
        bots[account] = true;
    }

    function recoverErc20token(address token, uint256 amount) external onlyOwner {
        IERC20(token).transfer(owner(),amount);
    }

    function recoverETH() external onlyOwner {
        payable(owner()).transfer(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":false,"internalType":"uint256","name":"_rfiFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_lpFee","type":"uint256"}],"name":"FeesUpdated","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":[],"name":"_lpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rfiFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"botBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverErc20token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[{"internalType":"uint256","name":"newMaxTxnAmount","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletLimit","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001e6b033b2e3c9fd0803ce8000000600019620006ba565b6200002c9060001962000696565b600955600a600d819055600e819055600f8190556010556016805460ff191690553480156200005a57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620000de30826b033b2e3c9fd0803ce800000062000425565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200011857600080fd5b505afa1580156200012d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001539190620005de565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200019c57600080fd5b505afa158015620001b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d79190620005de565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200022057600080fd5b505af115801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b9190620005de565b601380546001600160a01b0319166001600160a01b0392831690811790915560125460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b390604401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000607565b506009543360009081526002602090815260409091209190915562000338906b033b2e3c9fd0803ce8000000906064906200129062000551821b17901c565b601455620003606b033b2e3c9fd0803ce8000000603262000551602090811b6200129017901c565b6015556001600560006200037c6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526005909252902080549091166001179055620003c43390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce80000006040516200041691815260200190565b60405180910390a350620006e7565b6001600160a01b0383166200048d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004f05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000484565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006200059b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005a260201b60201c565b9392505050565b60008183620005c65760405162461bcd60e51b815260040162000484919062000629565b506000620005d584866200067f565b95945050505050565b600060208284031215620005f0578081fd5b81516001600160a01b03811681146200059b578182fd5b60006020828403121562000619578081fd5b815180151581146200059b578182fd5b6000602080835283518082850152825b81811015620006575785810183015185820160400152820162000639565b81811115620006695783604083870101525b50601f01601f1916929092016040019392505050565b600082620006915762000691620006d1565b500490565b600082821015620006b557634e487b7160e01b81526011600452602481fd5b500390565b600082620006cc57620006cc620006d1565b500690565b634e487b7160e01b600052601260045260246000fd5b61251080620006f76000396000f3fe6080604052600436106101f25760003560e01c80635fecd9261161010d578063cba0e996116100a0578063eb171b671161006f578063eb171b6714610606578063f2cc0c181461061c578063f2fde38b1461063c578063f84354f11461065c578063ffecf5161461067c57600080fd5b8063cba0e99614610547578063d163364914610580578063dd62ed3e146105a0578063ea2f0b37146105e657600080fd5b80638da5cb5b116100dc5780638da5cb5b146104bc57806395d89b41146104da578063a9059cbb14610507578063af9549e01461052757600080fd5b80635fecd9261461044757806370a0823114610467578063715018a6146104875780638a5165131461049c57600080fd5b80632d838119116101855780634324deae116101545780634324deae146103af578063437823ec146103cf5780634549b039146103ef57806349bd5a5e1461040f57600080fd5b80632d8381191461031a578063313ce5671461033a5780633bbac579146103565780633bd5d1731461038f57600080fd5b806315c93a7d116101c157806315c93a7d146102a657806318160ddd146102bc578063203e727e146102da57806323b872dd146102fa57600080fd5b80630614117a146101fe57806306fdde0314610215578063095ea7b31461025757806313114a9d1461028757600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361069c565b005b34801561022157600080fd5b5060408051808201909152600781526624a729a4a222a960c91b60208201525b60405161024e919061237d565b60405180910390f35b34801561026357600080fd5b506102776102723660046122fc565b61070c565b604051901515815260200161024e565b34801561029357600080fd5b50600a545b60405190815260200161024e565b3480156102b257600080fd5b50610298600f5481565b3480156102c857600080fd5b50676765c793fa10079d601b1b610298565b3480156102e657600080fd5b506102136102f5366004612341565b610723565b34801561030657600080fd5b5061027761031536600461228b565b6107f9565b34801561032657600080fd5b50610298610335366004612341565b610862565b34801561034657600080fd5b506040516012815260200161024e565b34801561036257600080fd5b5061027761037136600461223f565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561039b57600080fd5b506102136103aa366004612341565b6108e6565b3480156103bb57600080fd5b506102136103ca366004612341565b6109d0565b3480156103db57600080fd5b506102136103ea36600461223f565b610aa0565b3480156103fb57600080fd5b5061029861040a366004612359565b610aee565b34801561041b57600080fd5b5060135461042f906001600160a01b031681565b6040516001600160a01b03909116815260200161024e565b34801561045357600080fd5b5061021361046236600461223f565b610b84565b34801561047357600080fd5b5061029861048236600461223f565b610bcf565b34801561049357600080fd5b50610213610c2e565b3480156104a857600080fd5b506102136104b73660046122fc565b610c64565b3480156104c857600080fd5b506000546001600160a01b031661042f565b3480156104e657600080fd5b50604080518082019091526004815263494e534960e01b6020820152610241565b34801561051357600080fd5b506102776105223660046122fc565b610d34565b34801561053357600080fd5b506102136105423660046122c6565b610d41565b34801561055357600080fd5b5061027761056236600461223f565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561058c57600080fd5b5061021361059b366004612341565b610d96565b3480156105ac57600080fd5b506102986105bb366004612259565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f257600080fd5b5061021361060136600461223f565b610dd6565b34801561061257600080fd5b50610298600d5481565b34801561062857600080fd5b5061021361063736600461223f565b610e21565b34801561064857600080fd5b5061021361065736600461223f565b610f74565b34801561066857600080fd5b5061021361067736600461223f565b61100c565b34801561068857600080fd5b5061021361069736600461223f565b611242565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016106c6906123d0565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610709573d6000803e3d6000fd5b50565b60006107193384846112d2565b5060015b92915050565b6000546001600160a01b0316331461074d5760405162461bcd60e51b81526004016106c6906123d0565b600081116107905760405162461bcd60e51b815260206004820152601060248201526f43616e742073657420746f207a65726f60801b60448201526064016106c6565b6103e88111156107d25760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b60448201526064016106c6565b6107f36103e86107ed676765c793fa10079d601b1b846113f6565b90611290565b60145550565b6000610806848484611475565b6108588433610853856040518060600160405280602881526020016124b3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611869565b6112d2565b5060019392505050565b60006009548211156108c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106c6565b60006108d36118a3565b90506108df8382611290565b9392505050565b3360008181526006602052604090205460ff161561095b5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106c6565b6000610966836118c6565b505050506001600160a01b03841660009081526002602052604090205491925061099291905082611929565b6001600160a01b0383166000908152600260205260409020556009546109b89082611929565b600955600a546109c8908461196b565b600a55505050565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016106c6906123d0565b60008111610a3d5760405162461bcd60e51b815260206004820152601060248201526f43616e742073657420746f207a65726f60801b60448201526064016106c6565b6103e8811115610a7f5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b60448201526064016106c6565b610a9a6103e86107ed676765c793fa10079d601b1b846113f6565b60155550565b6000546001600160a01b03163314610aca5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000676765c793fa10079d601b1b831115610b4b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106c6565b81610b6a576000610b5b846118c6565b5093955061071d945050505050565b6000610b75846118c6565b5092955061071d945050505050565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6001600160a01b03811660009081526006602052604081205460ff1615610c0c57506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821660009081526002602052604090205461071d90610862565b6000546001600160a01b03163314610c585760405162461bcd60e51b81526004016106c6906123d0565b610c6260006119ca565b565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b81526004016106c6906123d0565b816001600160a01b031663a9059cbb610caf6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610cf757600080fd5b505af1158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f9190612325565b505050565b6000610719338484611475565b6000546001600160a01b03163314610d6b5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dc05760405162461bcd60e51b81526004016106c6906123d0565b43600c55600b556016805460ff19166001179055565b6000546001600160a01b03163314610e005760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03811660009081526006602052604090205460ff1615610eb45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106c6565b6001600160a01b03811660009081526002602052604090205415610f0e576001600160a01b038116600090815260026020526040902054610ef490610862565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b0381166110035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c6565b610709816119ca565b6000546001600160a01b031633146110365760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03811660009081526006602052604090205460ff1661109e5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016106c6565b60005b60075481101561123e57816001600160a01b0316600782815481106110d657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561122c57600780546111019060019061245c565b8154811061111f57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b03909216918390811061115957634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506111b16111926118a3565b6001600160a01b038416600090815260036020526040902054906113f6565b6001600160a01b038316600090815260026020908152604080832093909355600381528282208290556006905220805460ff19169055600780548061120657634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061123681612473565b9150506110a1565b5050565b6000546001600160a01b0316331461126c5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b60006108df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a1a565b6001600160a01b0383166113345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106c6565b6001600160a01b0382166113955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106c6565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000826114055750600061071d565b6000611411838561243d565b90508261141e858361241d565b146108df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c6565b6001600160a01b0383166114d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c6565b6001600160a01b03821661153b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c6565b6000811161159d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c6565b6001600160a01b03831660009081526011602052604090205460ff161580156115df57506001600160a01b03821660009081526011602052604090205460ff16155b61162b5760405162461bcd60e51b815260206004820152601c60248201527f426f7473206e6f7420616c6c6f77656420746f207472616e736665720000000060448201526064016106c6565b600161163f6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561166e57506000546001600160a01b03848116911614155b1561180f5760165460ff166116bb5760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1037b832b760691b60448201526064016106c6565b60145482111561170d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178207472616e73616374696f6e20616d6f756e74000060448201526064016106c6565b6013546001600160a01b03858116911614801561173857506012546001600160a01b03848116911614155b1561178557600b54600c5461174c9161196b565b4311611776576001600160a01b0383166000908152601160205260409020805460ff191660011790555b6117856000600f55600a600d55565b6013546001600160a01b0385811691161461180f576013546001600160a01b03848116911614611800576015546117bb84610bcf565b11156118005760405162461bcd60e51b815260206004820152601460248201527357616c6c6574206c696d6974206578636565647360601b60448201526064016106c6565b61180f600a600f556000600d55565b6001600160a01b03841660009081526005602052604090205460ff168061184e57506001600160a01b03831660009081526005602052604090205460ff165b15611857575060005b61186384848484611a48565b50505050565b6000818484111561188d5760405162461bcd60e51b81526004016106c6919061237d565b50600061189a848661245c565b95945050505050565b60008060006118b0611bbf565b90925090506118bf8282611290565b9250505090565b6000806000806000806000600f54905060008060006118e88b600d5486611d9b565b92509250925060006118f86118a3565b9050600080600061190b8f878787611dea565b919f509d509b50959950939750919550505050505091939550919395565b60006108df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611869565b6000806119788385612405565b9050838110156108df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611a3b5760405162461bcd60e51b81526004016106c6919061237d565b50600061189a848661241d565b80611a5557611a55611e3a565b6001600160a01b03841660009081526006602052604090205460ff168015611a9657506001600160a01b03831660009081526006602052604090205460ff16155b15611aab57611aa6848484611e68565b611ba9565b6001600160a01b03841660009081526006602052604090205460ff16158015611aec57506001600160a01b03831660009081526006602052604090205460ff165b15611afc57611aa6848484611fda565b6001600160a01b03841660009081526006602052604090205460ff16158015611b3e57506001600160a01b03831660009081526006602052604090205460ff16155b15611b4e57611aa6848484612083565b6001600160a01b03841660009081526006602052604090205460ff168015611b8e57506001600160a01b03831660009081526006602052604090205460ff165b15611b9e57611aa68484846120c7565b611ba9848484612083565b8061186357611863601054600f55600e54600d55565b6009546000908190676765c793fa10079d601b1b825b600754811015611d5a57826002600060078481548110611c0557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611c7e5750816003600060078481548110611c5757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611c9c57505060095493676765c793fa10079d601b1b9350915050565b611cf06002600060078481548110611cc457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611929565b9250611d466003600060078481548110611d1a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611929565b915080611d5281612473565b915050611bd5565b50600954611d7390676765c793fa10079d601b1b611290565b821015611d9257505060095492676765c793fa10079d601b1b92509050565b90939092509050565b6000808080611daf60646107ed89896113f6565b90506000611dc260646107ed8a896113f6565b90506000611dda82611dd48b86611929565b90611929565b9992985090965090945050505050565b6000808080611df988866113f6565b90506000611e0788876113f6565b90506000611e1588886113f6565b90506000611e2782611dd48686611929565b939b939a50919850919650505050505050565b600f54158015611e4a5750600d54155b15611e5157565b600f8054601055600d8054600e5560009182905555565b600080600080600080611e7a876118c6565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611eac9088611929565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611edb9087611929565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611f0a908661196b565b6001600160a01b038916600090815260026020526040902055611f2c8161213a565b611f3684836121ff565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7b91815260200190565b60405180910390a38015611fcf576013546040518281526001600160a01b03918216918b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505050505050505050565b600080600080600080611fec876118c6565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061201e9087611929565b6001600160a01b03808b16600090815260026020908152604080832094909455918b16815260039091522054612054908461196b565b6001600160a01b038916600090815260036020908152604080832093909355600290522054611f0a908661196b565b600080600080600080612095876118c6565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611edb9087611929565b6000806000806000806120d9876118c6565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061210b9088611929565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461201e9087611929565b801561070957600061214a6118a3565b9050600061215883836113f6565b6013546001600160a01b0316600090815260026020526040902054909150612180908261196b565b601380546001600160a01b03908116600090815260026020908152604080832095909555925490911681526006909152205460ff1615610d2f576013546001600160a01b03166000908152600360205260409020546121df908461196b565b6013546001600160a01b0316600090815260036020526040902055505050565b60095461220c9083611929565b600955600a5461221c908261196b565b600a555050565b80356001600160a01b038116811461223a57600080fd5b919050565b600060208284031215612250578081fd5b6108df82612223565b6000806040838503121561226b578081fd5b61227483612223565b915061228260208401612223565b90509250929050565b60008060006060848603121561229f578081fd5b6122a884612223565b92506122b660208501612223565b9150604084013590509250925092565b600080604083850312156122d8578182fd5b6122e183612223565b915060208301356122f1816124a4565b809150509250929050565b6000806040838503121561230e578182fd5b61231783612223565b946020939093013593505050565b600060208284031215612336578081fd5b81516108df816124a4565b600060208284031215612352578081fd5b5035919050565b6000806040838503121561236b578182fd5b8235915060208301356122f1816124a4565b6000602080835283518082850152825b818110156123a95785810183015185820160400152820161238d565b818111156123ba5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156124185761241861248e565b500190565b60008261243857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156124575761245761248e565b500290565b60008282101561246e5761246e61248e565b500390565b60006000198214156124875761248761248e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461070957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcc3dbde27be906ddb60ec091e3e7d2a8288c18c1e95f57d64e02d7e04c8d85864736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80635fecd9261161010d578063cba0e996116100a0578063eb171b671161006f578063eb171b6714610606578063f2cc0c181461061c578063f2fde38b1461063c578063f84354f11461065c578063ffecf5161461067c57600080fd5b8063cba0e99614610547578063d163364914610580578063dd62ed3e146105a0578063ea2f0b37146105e657600080fd5b80638da5cb5b116100dc5780638da5cb5b146104bc57806395d89b41146104da578063a9059cbb14610507578063af9549e01461052757600080fd5b80635fecd9261461044757806370a0823114610467578063715018a6146104875780638a5165131461049c57600080fd5b80632d838119116101855780634324deae116101545780634324deae146103af578063437823ec146103cf5780634549b039146103ef57806349bd5a5e1461040f57600080fd5b80632d8381191461031a578063313ce5671461033a5780633bbac579146103565780633bd5d1731461038f57600080fd5b806315c93a7d116101c157806315c93a7d146102a657806318160ddd146102bc578063203e727e146102da57806323b872dd146102fa57600080fd5b80630614117a146101fe57806306fdde0314610215578063095ea7b31461025757806313114a9d1461028757600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361069c565b005b34801561022157600080fd5b5060408051808201909152600781526624a729a4a222a960c91b60208201525b60405161024e919061237d565b60405180910390f35b34801561026357600080fd5b506102776102723660046122fc565b61070c565b604051901515815260200161024e565b34801561029357600080fd5b50600a545b60405190815260200161024e565b3480156102b257600080fd5b50610298600f5481565b3480156102c857600080fd5b50676765c793fa10079d601b1b610298565b3480156102e657600080fd5b506102136102f5366004612341565b610723565b34801561030657600080fd5b5061027761031536600461228b565b6107f9565b34801561032657600080fd5b50610298610335366004612341565b610862565b34801561034657600080fd5b506040516012815260200161024e565b34801561036257600080fd5b5061027761037136600461223f565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561039b57600080fd5b506102136103aa366004612341565b6108e6565b3480156103bb57600080fd5b506102136103ca366004612341565b6109d0565b3480156103db57600080fd5b506102136103ea36600461223f565b610aa0565b3480156103fb57600080fd5b5061029861040a366004612359565b610aee565b34801561041b57600080fd5b5060135461042f906001600160a01b031681565b6040516001600160a01b03909116815260200161024e565b34801561045357600080fd5b5061021361046236600461223f565b610b84565b34801561047357600080fd5b5061029861048236600461223f565b610bcf565b34801561049357600080fd5b50610213610c2e565b3480156104a857600080fd5b506102136104b73660046122fc565b610c64565b3480156104c857600080fd5b506000546001600160a01b031661042f565b3480156104e657600080fd5b50604080518082019091526004815263494e534960e01b6020820152610241565b34801561051357600080fd5b506102776105223660046122fc565b610d34565b34801561053357600080fd5b506102136105423660046122c6565b610d41565b34801561055357600080fd5b5061027761056236600461223f565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561058c57600080fd5b5061021361059b366004612341565b610d96565b3480156105ac57600080fd5b506102986105bb366004612259565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f257600080fd5b5061021361060136600461223f565b610dd6565b34801561061257600080fd5b50610298600d5481565b34801561062857600080fd5b5061021361063736600461223f565b610e21565b34801561064857600080fd5b5061021361065736600461223f565b610f74565b34801561066857600080fd5b5061021361067736600461223f565b61100c565b34801561068857600080fd5b5061021361069736600461223f565b611242565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016106c6906123d0565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610709573d6000803e3d6000fd5b50565b60006107193384846112d2565b5060015b92915050565b6000546001600160a01b0316331461074d5760405162461bcd60e51b81526004016106c6906123d0565b600081116107905760405162461bcd60e51b815260206004820152601060248201526f43616e742073657420746f207a65726f60801b60448201526064016106c6565b6103e88111156107d25760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b60448201526064016106c6565b6107f36103e86107ed676765c793fa10079d601b1b846113f6565b90611290565b60145550565b6000610806848484611475565b6108588433610853856040518060600160405280602881526020016124b3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611869565b6112d2565b5060019392505050565b60006009548211156108c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106c6565b60006108d36118a3565b90506108df8382611290565b9392505050565b3360008181526006602052604090205460ff161561095b5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106c6565b6000610966836118c6565b505050506001600160a01b03841660009081526002602052604090205491925061099291905082611929565b6001600160a01b0383166000908152600260205260409020556009546109b89082611929565b600955600a546109c8908461196b565b600a55505050565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016106c6906123d0565b60008111610a3d5760405162461bcd60e51b815260206004820152601060248201526f43616e742073657420746f207a65726f60801b60448201526064016106c6565b6103e8811115610a7f5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b60448201526064016106c6565b610a9a6103e86107ed676765c793fa10079d601b1b846113f6565b60155550565b6000546001600160a01b03163314610aca5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000676765c793fa10079d601b1b831115610b4b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106c6565b81610b6a576000610b5b846118c6565b5093955061071d945050505050565b6000610b75846118c6565b5092955061071d945050505050565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6001600160a01b03811660009081526006602052604081205460ff1615610c0c57506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821660009081526002602052604090205461071d90610862565b6000546001600160a01b03163314610c585760405162461bcd60e51b81526004016106c6906123d0565b610c6260006119ca565b565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b81526004016106c6906123d0565b816001600160a01b031663a9059cbb610caf6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610cf757600080fd5b505af1158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f9190612325565b505050565b6000610719338484611475565b6000546001600160a01b03163314610d6b5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dc05760405162461bcd60e51b81526004016106c6906123d0565b43600c55600b556016805460ff19166001179055565b6000546001600160a01b03163314610e005760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03811660009081526006602052604090205460ff1615610eb45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106c6565b6001600160a01b03811660009081526002602052604090205415610f0e576001600160a01b038116600090815260026020526040902054610ef490610862565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b0381166110035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c6565b610709816119ca565b6000546001600160a01b031633146110365760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03811660009081526006602052604090205460ff1661109e5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016106c6565b60005b60075481101561123e57816001600160a01b0316600782815481106110d657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561122c57600780546111019060019061245c565b8154811061111f57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b03909216918390811061115957634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506111b16111926118a3565b6001600160a01b038416600090815260036020526040902054906113f6565b6001600160a01b038316600090815260026020908152604080832093909355600381528282208290556006905220805460ff19169055600780548061120657634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061123681612473565b9150506110a1565b5050565b6000546001600160a01b0316331461126c5760405162461bcd60e51b81526004016106c6906123d0565b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b60006108df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a1a565b6001600160a01b0383166113345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106c6565b6001600160a01b0382166113955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106c6565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000826114055750600061071d565b6000611411838561243d565b90508261141e858361241d565b146108df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c6565b6001600160a01b0383166114d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c6565b6001600160a01b03821661153b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c6565b6000811161159d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c6565b6001600160a01b03831660009081526011602052604090205460ff161580156115df57506001600160a01b03821660009081526011602052604090205460ff16155b61162b5760405162461bcd60e51b815260206004820152601c60248201527f426f7473206e6f7420616c6c6f77656420746f207472616e736665720000000060448201526064016106c6565b600161163f6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561166e57506000546001600160a01b03848116911614155b1561180f5760165460ff166116bb5760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1037b832b760691b60448201526064016106c6565b60145482111561170d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178207472616e73616374696f6e20616d6f756e74000060448201526064016106c6565b6013546001600160a01b03858116911614801561173857506012546001600160a01b03848116911614155b1561178557600b54600c5461174c9161196b565b4311611776576001600160a01b0383166000908152601160205260409020805460ff191660011790555b6117856000600f55600a600d55565b6013546001600160a01b0385811691161461180f576013546001600160a01b03848116911614611800576015546117bb84610bcf565b11156118005760405162461bcd60e51b815260206004820152601460248201527357616c6c6574206c696d6974206578636565647360601b60448201526064016106c6565b61180f600a600f556000600d55565b6001600160a01b03841660009081526005602052604090205460ff168061184e57506001600160a01b03831660009081526005602052604090205460ff165b15611857575060005b61186384848484611a48565b50505050565b6000818484111561188d5760405162461bcd60e51b81526004016106c6919061237d565b50600061189a848661245c565b95945050505050565b60008060006118b0611bbf565b90925090506118bf8282611290565b9250505090565b6000806000806000806000600f54905060008060006118e88b600d5486611d9b565b92509250925060006118f86118a3565b9050600080600061190b8f878787611dea565b919f509d509b50959950939750919550505050505091939550919395565b60006108df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611869565b6000806119788385612405565b9050838110156108df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611a3b5760405162461bcd60e51b81526004016106c6919061237d565b50600061189a848661241d565b80611a5557611a55611e3a565b6001600160a01b03841660009081526006602052604090205460ff168015611a9657506001600160a01b03831660009081526006602052604090205460ff16155b15611aab57611aa6848484611e68565b611ba9565b6001600160a01b03841660009081526006602052604090205460ff16158015611aec57506001600160a01b03831660009081526006602052604090205460ff165b15611afc57611aa6848484611fda565b6001600160a01b03841660009081526006602052604090205460ff16158015611b3e57506001600160a01b03831660009081526006602052604090205460ff16155b15611b4e57611aa6848484612083565b6001600160a01b03841660009081526006602052604090205460ff168015611b8e57506001600160a01b03831660009081526006602052604090205460ff165b15611b9e57611aa68484846120c7565b611ba9848484612083565b8061186357611863601054600f55600e54600d55565b6009546000908190676765c793fa10079d601b1b825b600754811015611d5a57826002600060078481548110611c0557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611c7e5750816003600060078481548110611c5757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611c9c57505060095493676765c793fa10079d601b1b9350915050565b611cf06002600060078481548110611cc457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611929565b9250611d466003600060078481548110611d1a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611929565b915080611d5281612473565b915050611bd5565b50600954611d7390676765c793fa10079d601b1b611290565b821015611d9257505060095492676765c793fa10079d601b1b92509050565b90939092509050565b6000808080611daf60646107ed89896113f6565b90506000611dc260646107ed8a896113f6565b90506000611dda82611dd48b86611929565b90611929565b9992985090965090945050505050565b6000808080611df988866113f6565b90506000611e0788876113f6565b90506000611e1588886113f6565b90506000611e2782611dd48686611929565b939b939a50919850919650505050505050565b600f54158015611e4a5750600d54155b15611e5157565b600f8054601055600d8054600e5560009182905555565b600080600080600080611e7a876118c6565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611eac9088611929565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611edb9087611929565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611f0a908661196b565b6001600160a01b038916600090815260026020526040902055611f2c8161213a565b611f3684836121ff565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7b91815260200190565b60405180910390a38015611fcf576013546040518281526001600160a01b03918216918b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505050505050505050565b600080600080600080611fec876118c6565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061201e9087611929565b6001600160a01b03808b16600090815260026020908152604080832094909455918b16815260039091522054612054908461196b565b6001600160a01b038916600090815260036020908152604080832093909355600290522054611f0a908661196b565b600080600080600080612095876118c6565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611edb9087611929565b6000806000806000806120d9876118c6565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061210b9088611929565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461201e9087611929565b801561070957600061214a6118a3565b9050600061215883836113f6565b6013546001600160a01b0316600090815260026020526040902054909150612180908261196b565b601380546001600160a01b03908116600090815260026020908152604080832095909555925490911681526006909152205460ff1615610d2f576013546001600160a01b03166000908152600360205260409020546121df908461196b565b6013546001600160a01b0316600090815260036020526040902055505050565b60095461220c9083611929565b600955600a5461221c908261196b565b600a555050565b80356001600160a01b038116811461223a57600080fd5b919050565b600060208284031215612250578081fd5b6108df82612223565b6000806040838503121561226b578081fd5b61227483612223565b915061228260208401612223565b90509250929050565b60008060006060848603121561229f578081fd5b6122a884612223565b92506122b660208501612223565b9150604084013590509250925092565b600080604083850312156122d8578182fd5b6122e183612223565b915060208301356122f1816124a4565b809150509250929050565b6000806040838503121561230e578182fd5b61231783612223565b946020939093013593505050565b600060208284031215612336578081fd5b81516108df816124a4565b600060208284031215612352578081fd5b5035919050565b6000806040838503121561236b578182fd5b8235915060208301356122f1816124a4565b6000602080835283518082850152825b818110156123a95785810183015185820160400152820161238d565b818111156123ba5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156124185761241861248e565b500190565b60008261243857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156124575761245761248e565b500290565b60008282101561246e5761246e61248e565b500390565b60006000198214156124875761248761248e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461070957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcc3dbde27be906ddb60ec091e3e7d2a8288c18c1e95f57d64e02d7e04c8d85864736f6c63430008040033

Deployed Bytecode Sourcemap

8730:17551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26170:108;;;;;;;;;;;;;:::i;:::-;;11097:94;;;;;;;;;;-1:-1:-1;11178:5:0;;;;;;;;;;;;-1:-1:-1;;;11178:5:0;;;;11097:94;;;;;;;:::i;:::-;;;;;;;;12227:195;;;;;;;;;;-1:-1:-1;12227:195:0;;;;;:::i;:::-;;:::i;:::-;;;3041:14:1;;3034:22;3016:41;;3004:2;2989:18;12227:195:0;2971:92:1;13733:87:0;;;;;;;;;;-1:-1:-1;13802:10:0;;13733:87;;;11368:25:1;;;11356:2;11341:18;13733:87:0;11323:76:1;9822:26:0;;;;;;;;;;;;;;;;11407:97;;;;;;;;;;-1:-1:-1;;;;11407:97:0;;13170:266;;;;;;;;;;-1:-1:-1;13170:266:0;;;;;:::i;:::-;;:::i;12430:448::-;;;;;;;;;;-1:-1:-1;12430:448:0;;;;;:::i;:::-;;:::i;14742:322::-;;;;;;;;;;-1:-1:-1;14742:322:0;;;;;:::i;:::-;;:::i;11305:94::-;;;;;;;;;;-1:-1:-1;11305:94:0;;8963:2;11546:36:1;;11534:2;11519:18;11305:94:0;11501:87:1;11718:98:0;;;;;;;;;;-1:-1:-1;11718:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;11795:13:0;11771:4;11795:13;;;:4;:13;;;;;;;;;11718:98;13828:419;;;;;;;;;;-1:-1:-1;13828:419:0;;;;;:::i;:::-;;:::i;13444:279::-;;;;;;;;;;-1:-1:-1;13444:279:0;;;;;:::i;:::-;;:::i;25587:111::-;;;;;;;;;;-1:-1:-1;25587:111:0;;;;;:::i;:::-;;:::i;14255:479::-;;;;;;;;;;-1:-1:-1;14255:479:0;;;;;:::i;:::-;;:::i;10014:28::-;;;;;;;;;;-1:-1:-1;10014:28:0;;;;-1:-1:-1;;;;;10014:28:0;;;;;;-1:-1:-1;;;;;2553:32:1;;;2535:51;;2523:2;2508:18;10014:28:0;2490:102:1;25826:95:0;;;;;;;;;;-1:-1:-1;25826:95:0;;;;;:::i;:::-;;:::i;11512:198::-;;;;;;;;;;-1:-1:-1;11512:198:0;;;;;:::i;:::-;;:::i;2804:103::-;;;;;;;;;;;;;:::i;26028:134::-;;;;;;;;;;-1:-1:-1;26028:134:0;;;;;:::i;:::-;;:::i;2590:79::-;;;;;;;;;;-1:-1:-1;2628:7:0;2655:6;-1:-1:-1;;;;;2655:6:0;2590:79;;11199:98;;;;;;;;;;-1:-1:-1;11282:7:0;;;;;;;;;;;;-1:-1:-1;;;11282:7:0;;;;11199:98;;11824:201;;;;;;;;;;-1:-1:-1;11824:201:0;;;;;:::i;:::-;;:::i;13004:158::-;;;;;;;;;;-1:-1:-1;13004:158:0;;;;;:::i;:::-;;:::i;12886:110::-;;;;;;;;;;-1:-1:-1;12886:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;12968:20:0;12944:4;12968:20;;;:11;:20;;;;;;;;;12886:110;18243:166;;;;;;;;;;-1:-1:-1;18243:166:0;;;;;:::i;:::-;;:::i;12033:186::-;;;;;;;;;;-1:-1:-1;12033:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;12184:18:0;;;12152:7;12184:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12033:186;25706:112;;;;;;;;;;-1:-1:-1;25706:112:0;;;;;:::i;:::-;;:::i;9722:27::-;;;;;;;;;;;;;;;;15072:331;;;;;;;;;;-1:-1:-1;15072:331:0;;;;;:::i;:::-;;:::i;3062:238::-;;;;;;;;;;-1:-1:-1;3062:238:0;;;;;:::i;:::-;;:::i;15411:542::-;;;;;;;;;;-1:-1:-1;15411:542:0;;;;;:::i;:::-;;:::i;25929:91::-;;;;;;;;;;-1:-1:-1;25929:91:0;;;;;:::i;:::-;;:::i;26170:108::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;;;;;;;;;2628:7;2655:6;;26222:48:::1;::::0;-1:-1:-1;;;;;2655:6:0;;;;26248:21:::1;26222:48:::0;::::1;;;::::0;26248:21;;26222:48;2628:7;26222:48;26248:21;2655:6;26222:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26170:108::o:0;12227:195::-;12331:4;12353:39;173:10;12376:7;12385:6;12353:8;:39::i;:::-;-1:-1:-1;12410:4:0;12227:195;;;;;:::o;13170:266::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;13280:1:::1;13262:15;:19;13253:49;;;::::0;-1:-1:-1;;;13253:49:0;;6926:2:1;13253:49:0::1;::::0;::::1;6908:21:1::0;6965:2;6945:18;;;6938:30;-1:-1:-1;;;6984:18:1;;;6977:46;7040:18;;13253:49:0::1;6898:166:1::0;13253:49:0::1;13341:4;13322:15;:23;;13313:51;;;::::0;-1:-1:-1;;;13313:51:0;;9510:2:1;13313:51:0::1;::::0;::::1;9492:21:1::0;9549:2;9529:18;;;9522:30;-1:-1:-1;;;9568:18:1;;;9561:43;9621:18;;13313:51:0::1;9482:163:1::0;13313:51:0::1;13390:38;13423:4;13390:28;-1:-1:-1::0;;;13402:15:0;13390:11:::1;:28::i;:::-;:32:::0;::::1;:38::i;:::-;13375:12;:53:::0;-1:-1:-1;13170:266:0:o;12430:448::-;12564:4;12581:36;12591:6;12599:9;12610:6;12581:9;:36::i;:::-;12628:220;12651:6;173:10;12699:138;12755:6;12699:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12699:19:0;;;;;;:11;:19;;;;;;;;173:10;12699:33;;;;;;;;;;:37;:138::i;:::-;12628:8;:220::i;:::-;-1:-1:-1;12866:4:0;12430:448;;;;;:::o;14742:322::-;14836:7;14894;;14883;:18;;14861:110;;;;-1:-1:-1;;;14861:110:0;;4641:2:1;14861:110:0;;;4623:21:1;4680:2;4660:18;;;4653:30;4719:34;4699:18;;;4692:62;-1:-1:-1;;;4770:18:1;;;4763:40;4820:19;;14861:110:0;4613:232:1;14861:110:0;14982:19;15004:10;:8;:10::i;:::-;14982:32;-1:-1:-1;15032:24:0;:7;14982:32;15032:11;:24::i;:::-;15025:31;14742:322;-1:-1:-1;;;14742:322:0:o;13828:419::-;173:10;13880:14;13943:19;;;:11;:19;;;;;;;;13942:20;13920:114;;;;-1:-1:-1;;;13920:114:0;;11011:2:1;13920:114:0;;;10993:21:1;11050:2;11030:18;;;11023:30;11089:34;11069:18;;;11062:62;-1:-1:-1;;;11140:18:1;;;11133:42;11192:19;;13920:114:0;10983:234:1;13920:114:0;14046:15;14075:19;14086:7;14075:10;:19::i;:::-;-1:-1:-1;;;;;;;;;14123:15:0;;;;;;:7;:15;;;;;;14045:49;;-1:-1:-1;14123:28:0;;:15;-1:-1:-1;14045:49:0;14123:19;:28::i;:::-;-1:-1:-1;;;;;14105:15:0;;;;;;:7;:15;;;;;:46;14172:7;;:20;;14184:7;14172:11;:20::i;:::-;14162:7;:30;14216:10;;:23;;14231:7;14216:14;:23::i;:::-;14203:10;:36;-1:-1:-1;;;13828:419:0:o;13444:279::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;13560:1:::1;13540:17;:21;13531:51;;;::::0;-1:-1:-1;;;13531:51:0;;6926:2:1;13531:51:0::1;::::0;::::1;6908:21:1::0;6965:2;6945:18;;;6938:30;-1:-1:-1;;;6984:18:1;;;6977:46;7040:18;;13531:51:0::1;6898:166:1::0;13531:51:0::1;13623:4;13602:17;:25;;13593:53;;;::::0;-1:-1:-1;;;13593:53:0;;9510:2:1;13593:53:0::1;::::0;::::1;9492:21:1::0;9549:2;9529:18;;;9522:30;-1:-1:-1;;;9568:18:1;;;9561:43;9621:18;;13593:53:0::1;9482:163:1::0;13593:53:0::1;13675:40;13710:4;13675:30;-1:-1:-1::0;;;13687:17:0;13675:11:::1;:30::i;:40::-;13657:15;:58:::0;-1:-1:-1;13444:279:0:o;25587:111::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25656:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;25656:34:0::1;25686:4;25656:34;::::0;;25587:111::o;14255:479::-;14373:7;-1:-1:-1;;;14406:7:0;:18;;14398:62;;;;-1:-1:-1;;;14398:62:0;;7620:2:1;14398:62:0;;;7602:21:1;7659:2;7639:18;;;7632:30;7698:33;7678:18;;;7671:61;7749:18;;14398:62:0;7592:181:1;14398:62:0;14476:17;14471:256;;14511:15;14540:19;14551:7;14540:10;:19::i;:::-;-1:-1:-1;14510:49:0;;-1:-1:-1;14574:14:0;;-1:-1:-1;;;;;14574:14:0;14471:256;14624:23;14659:19;14670:7;14659:10;:19::i;:::-;-1:-1:-1;14621:57:0;;-1:-1:-1;14693:22:0;;-1:-1:-1;;;;;14693:22:0;25826:95;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25892:13:0::1;25908:5;25892:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;25892:21:0::1;::::0;;25826:95::o;11512:198::-;-1:-1:-1;;;;;11602:20:0;;11578:7;11602:20;;;:11;:20;;;;;;;;11598:49;;;-1:-1:-1;;;;;;11631:16:0;;;;;:7;:16;;;;;;;11512:198::o;11598:49::-;-1:-1:-1;;;;;11685:16:0;;;;;;:7;:16;;;;;;11665:37;;:19;:37::i;2804:103::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;2869:30:::1;2896:1;2869:18;:30::i;:::-;2804:103::o:0;26028:134::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;26123:5:::1;-1:-1:-1::0;;;;;26116:22:0::1;;26139:7;2628::::0;2655:6;-1:-1:-1;;;;;2655:6:0;;2590:79;26139:7:::1;26116:38;::::0;-1:-1:-1;;;;;;26116:38:0::1;::::0;;;;;;-1:-1:-1;;;;;2789:32:1;;;26116:38:0::1;::::0;::::1;2771:51:1::0;2838:18;;;2831:34;;;2744:18;;26116:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26028:134:::0;;:::o;11824:201::-;11931:4;11953:42;173:10;11977:9;11988:6;11953:9;:42::i;13004:158::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13116:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;13116:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13004:158::o;18243:166::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;18327:12:::1;18313:11;:26:::0;18350:10:::1;:22:::0;18383:11:::1;:18:::0;;-1:-1:-1;;18383:18:0::1;-1:-1:-1::0;18383:18:0::1;::::0;;18243:166::o;25706:112::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25775:27:0::1;25805:5;25775:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;25775:35:0::1;::::0;;25706:112::o;15072:331::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15152:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15151:21;15143:61;;;::::0;-1:-1:-1;;;15143:61:0;;6218:2:1;15143:61:0::1;::::0;::::1;6200:21:1::0;6257:2;6237:18;;;6230:30;6296:29;6276:18;;;6269:57;6343:18;;15143:61:0::1;6190:177:1::0;15143:61:0::1;-1:-1:-1::0;;;;;15219:16:0;::::1;15238:1;15219:16:::0;;;:7:::1;:16;::::0;;;;;:20;15215:109:::1;;-1:-1:-1::0;;;;;15295:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;15275:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;15256:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;15215:109:::1;-1:-1:-1::0;;;;;15334:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;15334:27:0::1;15357:4;15334:27:::0;;::::1;::::0;;;15372:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;15372:23:0::1;::::0;;::::1;::::0;;15072:331::o;3062:238::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3165:22:0;::::1;3143:110;;;::::0;-1:-1:-1;;;3143:110:0;;5052:2:1;3143:110:0::1;::::0;::::1;5034:21:1::0;5091:2;5071:18;;;5064:30;5130:34;5110:18;;;5103:62;-1:-1:-1;;;5181:18:1;;;5174:36;5227:19;;3143:110:0::1;5024:228:1::0;3143:110:0::1;3264:28;3283:8;3264:18;:28::i;15411:542::-:0;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15490:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15482:56;;;::::0;-1:-1:-1;;;15482:56:0;;6574:2:1;15482:56:0::1;::::0;::::1;6556:21:1::0;6613:2;6593:18;;;6586:30;6652:25;6632:18;;;6625:53;6695:18;;15482:56:0::1;6546:173:1::0;15482:56:0::1;15554:9;15549:397;15573:9;:16:::0;15569:20;::::1;15549:397;;;15631:7;-1:-1:-1::0;;;;;15615:23:0::1;:9;15625:1;15615:12;;;;;;-1:-1:-1::0;;;15615:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;15615:12:0::1;:23;15611:324;;;15674:9;15684:16:::0;;:20:::1;::::0;15703:1:::1;::::0;15684:20:::1;:::i;:::-;15674:31;;;;;;-1:-1:-1::0;;;15674:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;15659:9:::1;:12:::0;;-1:-1:-1;;;;;15674:31:0;;::::1;::::0;15669:1;;15659:12;::::1;;;-1:-1:-1::0;;;15659:12:0::1;;;;;;;;;;;;;;;;;:46;;;;;-1:-1:-1::0;;;;;15659:46:0::1;;;;;-1:-1:-1::0;;;;;15659:46:0::1;;;;;;15743:32;15764:10;:8;:10::i;:::-;-1:-1:-1::0;;;;;15743:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;:20:::1;:32::i;:::-;-1:-1:-1::0;;;;;15724:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:51;;;;15794:7:::1;:16:::0;;;;;:20;;;15833:11:::1;:20:::0;;;:28;;-1:-1:-1;;15833:28:0::1;::::0;;15880:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;15880:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15880:15:0;;;;;-1:-1:-1;;;;;;15880:15:0::1;::::0;;;;;15549:397:::1;15411:542:::0;:::o;15611:324::-:1;15591:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15549:397;;;;15411:542:::0;:::o;25929:91::-;2717:6;;-1:-1:-1;;;;;2717:6:0;173:10;2717:22;2709:67;;;;-1:-1:-1;;;2709:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25992:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;25992:20:0::1;26008:4;25992:20;::::0;;25929:91::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;16473:369::-;-1:-1:-1;;;;;16600:19:0;;16592:68;;;;-1:-1:-1;;;16592:68:0;;10606:2:1;16592:68:0;;;10588:21:1;10645:2;10625:18;;;10618:30;10684:34;10664:18;;;10657:62;-1:-1:-1;;;10735:18:1;;;10728:34;10779:19;;16592:68:0;10578:226:1;16592:68:0;-1:-1:-1;;;;;16679:21:0;;16671:68;;;;-1:-1:-1;;;16671:68:0;;5459:2:1;16671:68:0;;;5441:21:1;5498:2;5478:18;;;5471:30;5537:34;5517:18;;;5510:62;-1:-1:-1;;;5588:18:1;;;5581:32;5630:19;;16671:68:0;5431:224:1;16671:68:0;-1:-1:-1;;;;;16750:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16802:32;;11368:25:1;;;16802:32:0;;11341:18:1;16802:32:0;;;;;;;16473:369;;;:::o;1587:246::-;1645:7;1669:6;1665:47;;-1:-1:-1;1699:1:0;1692:8;;1665:47;1722:9;1734:5;1738:1;1734;:5;:::i;:::-;1722:17;-1:-1:-1;1767:1:0;1758:5;1762:1;1722:17;1758:5;:::i;:::-;:10;1750:56;;;;-1:-1:-1;;;1750:56:0;;7980:2:1;1750:56:0;;;7962:21:1;8019:2;7999:18;;;7992:30;8058:34;8038:18;;;8031:62;-1:-1:-1;;;8109:18:1;;;8102:31;8150:19;;1750:56:0;7952:223:1;16850:1385:0;-1:-1:-1;;;;;16972:18:0;;16964:68;;;;-1:-1:-1;;;16964:68:0;;10200:2:1;16964:68:0;;;10182:21:1;10239:2;10219:18;;;10212:30;10278:34;10258:18;;;10251:62;-1:-1:-1;;;10329:18:1;;;10322:35;10374:19;;16964:68:0;10172:227:1;16964:68:0;-1:-1:-1;;;;;17051:16:0;;17043:64;;;;-1:-1:-1;;;17043:64:0;;3878:2:1;17043:64:0;;;3860:21:1;3917:2;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;-1:-1:-1;;;4007:18:1;;;4000:33;4050:19;;17043:64:0;3850:225:1;17043:64:0;17135:1;17126:6;:10;17118:64;;;;-1:-1:-1;;;17118:64:0;;9100:2:1;17118:64:0;;;9082:21:1;9139:2;9119:18;;;9112:30;9178:34;9158:18;;;9151:62;-1:-1:-1;;;9229:18:1;;;9222:39;9278:19;;17118:64:0;9072:231:1;17118:64:0;-1:-1:-1;;;;;17202:10:0;;;;;;:4;:10;;;;;;;;17201:11;:24;;;;-1:-1:-1;;;;;;17217:8:0;;;;;;:4;:8;;;;;;;;17216:9;17201:24;17193:65;;;;-1:-1:-1;;;17193:65:0;;8743:2:1;17193:65:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821;8801:18;;;8794:58;8869:18;;17193:65:0;8715:178:1;17193:65:0;17290:4;17333:7;2628;2655:6;-1:-1:-1;;;;;2655:6:0;;2590:79;17333:7;-1:-1:-1;;;;;17325:15:0;:4;-1:-1:-1;;;;;17325:15:0;;;:45;;;;-1:-1:-1;2628:7:0;2655:6;-1:-1:-1;;;;;17357:13:0;;;2655:6;;17357:13;;17325:45;17307:756;;;17405:11;;;;17397:43;;;;-1:-1:-1;;;17397:43:0;;9852:2:1;17397:43:0;;;9834:21:1;9891:2;9871:18;;;9864:30;-1:-1:-1;;;9910:18:1;;;9903:49;9969:18;;17397:43:0;9824:169:1;17397:43:0;17473:12;;17463:6;:22;;17455:65;;;;-1:-1:-1;;;17455:65:0;;4282:2:1;17455:65:0;;;4264:21:1;4321:2;4301:18;;;4294:30;4360:32;4340:18;;;4333:60;4410:18;;17455:65:0;4254:180:1;17455:65:0;17547:13;;-1:-1:-1;;;;;17539:21:0;;;17547:13;;17539:21;:55;;;;-1:-1:-1;17578:15:0;;-1:-1:-1;;;;;17564:30:0;;;17578:15;;17564:30;;17539:55;17535:241;;;17659:10;;17643:11;;:27;;:15;:27::i;:::-;17627:12;:43;17623:107;;-1:-1:-1;;;;;17695:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;17695:15:0;17706:4;17695:15;;;17623:107;17748:12;16221:1;16212:6;:10;16243:2;16233:7;:12;16171:82;17748:12;17804:13;;-1:-1:-1;;;;;17796:21:0;;;17804:13;;17796:21;17792:246;;17868:13;;-1:-1:-1;;;;;17862:19:0;;;17868:13;;17862:19;17859:132;;17931:15;;17914:13;17924:2;17914:9;:13::i;:::-;:32;;17906:65;;;;-1:-1:-1;;;17906:65:0;;7271:2:1;17906:65:0;;;7253:21:1;7310:2;7290:18;;;7283:30;-1:-1:-1;;;7329:18:1;;;7322:50;7389:18;;17906:65:0;7243:170:1;17906:65:0;18009:13;16312:2;16303:6;:11;16335:1;16325:7;:11;16261:83;18009:13;-1:-1:-1;;;;;18079:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;18107:22:0;;;;;;:18;:22;;;;;;;;18079:50;18075:98;;;-1:-1:-1;18156:5:0;18075:98;18186:41;18201:4;18207:2;18211:6;18219:7;18186:14;:41::i;:::-;16850:1385;;;;:::o;1355:224::-;1475:7;1511:12;1503:6;;;;1495:29;;;;-1:-1:-1;;;1495:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1535:9:0;1547:5;1551:1;1547;:5;:::i;:::-;1535:17;1355:224;-1:-1:-1;;;;;1355:224:0:o;24802:164::-;24844:7;24865:15;24882;24901:19;:17;:19::i;:::-;24864:56;;-1:-1:-1;24864:56:0;-1:-1:-1;24938:20:0;24864:56;;24938:11;:20::i;:::-;24931:27;;;;24802:164;:::o;23056:730::-;23156:7;23178;23200;23222;23244;23266;23301:14;23318:6;;23301:23;;23336;23361:12;23375;23391:87;23417:7;23439;;23461:6;23391:11;:87::i;:::-;23335:143;;;;;;23489:19;23511:10;:8;:10::i;:::-;23489:32;;23533:15;23550:23;23575:12;23591:108;23617:7;23639:4;23658;23677:11;23591;:108::i;:::-;23532:167;;-1:-1:-1;23532:167:0;-1:-1:-1;23532:167:0;-1:-1:-1;23750:15:0;;-1:-1:-1;23767:4:0;;-1:-1:-1;23773:4:0;;-1:-1:-1;;;;;;23056:730:0;;;;;;;:::o;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;1024:179::-;1082:7;;1114:5;1118:1;1114;:5;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;-1:-1:-1;;;1130:46:0;;5862:2:1;1130:46:0;;;5844:21:1;5901:2;5881:18;;;5874:30;5940:29;5920:18;;;5913:57;5987:18;;1130:46:0;5834:177:1;3460:191:0;3534:16;3553:6;;-1:-1:-1;;;;;3570:17:0;;;-1:-1:-1;;;;;;3570:17:0;;;;;;3603:40;;3553:6;;;;;;;3603:40;;3534:16;3603:40;3460:191;;:::o;1981:223::-;2101:7;2136:12;2129:5;2121:28;;;;-1:-1:-1;;;2121:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2160:9:0;2172:5;2176:1;2172;:5;:::i;18419:886::-;18575:7;18570:55;;18599:14;:12;:14::i;:::-;-1:-1:-1;;;;;18639:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;18663:22:0;;;;;;:11;:22;;;;;;;;18662:23;18639:46;18635:597;;;18702:48;18724:6;18732:9;18743:6;18702:21;:48::i;:::-;18635:597;;;-1:-1:-1;;;;;18773:19:0;;;;;;:11;:19;;;;;;;;18772:20;:46;;;;-1:-1:-1;;;;;;18796:22:0;;;;;;:11;:22;;;;;;;;18772:46;18768:464;;;18835:46;18855:6;18863:9;18874:6;18835:19;:46::i;18768:464::-;-1:-1:-1;;;;;18904:19:0;;;;;;:11;:19;;;;;;;;18903:20;:47;;;;-1:-1:-1;;;;;;18928:22:0;;;;;;:11;:22;;;;;;;;18927:23;18903:47;18899:333;;;18967:44;18985:6;18993:9;19004:6;18967:17;:44::i;18899:333::-;-1:-1:-1;;;;;19033:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;19056:22:0;;;;;;:11;:22;;;;;;;;19033:45;19029:203;;;19095:48;19117:6;19125:9;19136:6;19095:21;:48::i;19029:203::-;19176:44;19194:6;19202:9;19213:6;19176:17;:44::i;:::-;19247:7;19242:56;;19271:15;16407:14;;16398:6;:23;16442:15;;16432:7;:25;16354:111;24974:605;25072:7;;25025;;;;-1:-1:-1;;;25025:7:0;25126:338;25150:9;:16;25146:20;;25126:338;;;25234:7;25210;:21;25218:9;25228:1;25218:12;;;;;;-1:-1:-1;;;25218:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25218:12:0;25210:21;;;;;;;;;;;;;:31;;:83;;;25286:7;25262;:21;25270:9;25280:1;25270:12;;;;;;-1:-1:-1;;;25270:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25270:12:0;25262:21;;;;;;;;;;;;;:31;25210:83;25188:146;;;-1:-1:-1;;25317:7:0;;;-1:-1:-1;;;9482:18:0;-1:-1:-1;24974:605:0;-1:-1:-1;;24974:605:0:o;25188:146::-;25359:34;25371:7;:21;25379:9;25389:1;25379:12;;;;;;-1:-1:-1;;;25379:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25379:12:0;25371:21;;;;;;;;;;;;;25359:7;;:11;:34::i;:::-;25349:44;;25418:34;25430:7;:21;25438:9;25448:1;25438:12;;;;;;-1:-1:-1;;;25438:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25438:12:0;25430:21;;;;;;;;;;;;;25418:7;;:11;:34::i;:::-;25408:44;-1:-1:-1;25168:3:0;;;;:::i;:::-;;;;25126:338;;;-1:-1:-1;25488:7:0;;:20;;-1:-1:-1;;;25488:11:0;:20::i;:::-;25478:7;:30;25474:61;;;-1:-1:-1;;25518:7:0;;;-1:-1:-1;;;9482:18:0;-1:-1:-1;24974:605:0;-1:-1:-1;24974:605:0:o;25474:61::-;25554:7;;25563;;-1:-1:-1;24974:605:0;-1:-1:-1;24974:605:0:o;23794:462::-;23961:7;;;;24055:28;24079:3;24055:19;:7;24067:6;24055:11;:19::i;:28::-;24040:43;-1:-1:-1;24094:12:0;24109:28;24133:3;24109:19;:7;24121:6;24109:11;:19::i;:28::-;24094:43;-1:-1:-1;24148:23:0;24174:27;24094:43;24174:17;:7;24186:4;24174:11;:17::i;:::-;:21;;:27::i;:::-;24148:53;24237:4;;-1:-1:-1;24243:4:0;;-1:-1:-1;23794:462:0;;-1:-1:-1;;;;;23794:462:0:o;24264:530::-;24457:7;;;;24554:24;:7;24566:11;24554;:24::i;:::-;24536:42;-1:-1:-1;24589:12:0;24604:21;:4;24613:11;24604:8;:21::i;:::-;24589:36;-1:-1:-1;24636:12:0;24651:21;:4;24660:11;24651:8;:21::i;:::-;24636:36;-1:-1:-1;24683:23:0;24709:27;24636:36;24709:17;:7;24721:4;24709:11;:17::i;:27::-;24755:7;;;;-1:-1:-1;24781:4:0;;-1:-1:-1;24264:530:0;;-1:-1:-1;;;;;;;24264:530:0:o;15961:202::-;16004:6;;:11;:28;;;;-1:-1:-1;16020:7:0;;:12;16004:28;16000:41;;;15961:202::o;16000:41::-;16068:6;;;16051:14;:23;16103:7;;;16085:15;:25;-1:-1:-1;16123:10:0;;;;16144:11;15961:202::o;20796:758::-;20947:15;20977:23;21015:12;21042:23;21080:12;21107;21133:19;21144:7;21133:10;:19::i;:::-;-1:-1:-1;;;;;21181:15:0;;;;;;:7;:15;;;;;;20932:220;;-1:-1:-1;20932:220:0;;-1:-1:-1;20932:220:0;;-1:-1:-1;20932:220:0;-1:-1:-1;20932:220:0;-1:-1:-1;20932:220:0;-1:-1:-1;21181:28:0;;21201:7;21181:19;:28::i;:::-;-1:-1:-1;;;;;21163:15:0;;;;;;:7;:15;;;;;;;;:46;;;;21238:7;:15;;;;:28;;21258:7;21238:19;:28::i;:::-;-1:-1:-1;;;;;21220:15:0;;;;;;;:7;:15;;;;;;:46;;;;21298:18;;;;;;;:39;;21321:15;21298:22;:39::i;:::-;-1:-1:-1;;;;;21277:18:0;;;;;;:7;:18;;;;;:60;21348:13;21356:4;21348:7;:13::i;:::-;21372:23;21384:4;21390;21372:11;:23::i;:::-;21428:9;-1:-1:-1;;;;;21411:44:0;21420:6;-1:-1:-1;;;;;21411:44:0;;21439:15;21411:44;;;;11368:25:1;;11356:2;11341:18;;11323:76;21411:44:0;;;;;;;;21469:8;;21466:81;;21515:13;;21499:36;;11368:25:1;;;-1:-1:-1;;;;;21515:13:0;;;;21499:36;;;;;11356:2:1;11341:18;21499:36:0;;;;;;;21466:81;20796:758;;;;;;;;;:::o;20018:770::-;20167:15;20197:23;20235:12;20262:23;20300:12;20327;20353:19;20364:7;20353:10;:19::i;:::-;-1:-1:-1;;;;;20401:15:0;;;;;;:7;:15;;;;;;20152:220;;-1:-1:-1;20152:220:0;;-1:-1:-1;20152:220:0;;-1:-1:-1;20152:220:0;-1:-1:-1;20152:220:0;-1:-1:-1;20152:220:0;-1:-1:-1;20401:28:0;;20152:220;20401:19;:28::i;:::-;-1:-1:-1;;;;;20383:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;20461:18;;;;;:7;:18;;;;;:39;;20484:15;20461:22;:39::i;:::-;-1:-1:-1;;;;;20440:18:0;;;;;;:7;:18;;;;;;;;:60;;;;20532:7;:18;;;;:39;;20555:15;20532:22;:39::i;19313:697::-;19460:15;19490:23;19528:12;19555:23;19593:12;19620;19646:19;19657:7;19646:10;:19::i;:::-;-1:-1:-1;;;;;19694:15:0;;;;;;:7;:15;;;;;;19445:220;;-1:-1:-1;19445:220:0;;-1:-1:-1;19445:220:0;;-1:-1:-1;19445:220:0;-1:-1:-1;19445:220:0;-1:-1:-1;19445:220:0;-1:-1:-1;19694:28:0;;19445:220;19694:19;:28::i;21562:839::-;21713:15;21743:23;21781:12;21808:23;21846:12;21873;21899:19;21910:7;21899:10;:19::i;:::-;-1:-1:-1;;;;;21947:15:0;;;;;;:7;:15;;;;;;21698:220;;-1:-1:-1;21698:220:0;;-1:-1:-1;21698:220:0;;-1:-1:-1;21698:220:0;-1:-1:-1;21698:220:0;-1:-1:-1;21698:220:0;-1:-1:-1;21947:28:0;;21967:7;21947:19;:28::i;:::-;-1:-1:-1;;;;;21929:15:0;;;;;;:7;:15;;;;;;;;:46;;;;22004:7;:15;;;;:28;;22024:7;22004:19;:28::i;22481:375::-;22534:8;;22531:318;;22559:19;22581:10;:8;:10::i;:::-;22559:32;-1:-1:-1;22606:12:0;22621:21;:4;22559:32;22621:8;:21::i;:::-;22690:13;;-1:-1:-1;;;;;22690:13:0;22682:22;;;;:7;:22;;;;;;22606:36;;-1:-1:-1;22682:32:0;;22606:36;22682:26;:32::i;:::-;22665:13;;;-1:-1:-1;;;;;22665:13:0;;;22657:22;;;;:7;:22;;;;;;;;:57;;;;22745:13;;;;;22733:26;;:11;:26;;;;;;;22729:106;;;22811:13;;-1:-1:-1;;;;;22811:13:0;22803:22;;;;:7;:22;;;;;;:32;;22830:4;22803:26;:32::i;:::-;22786:13;;-1:-1:-1;;;;;22786:13:0;22778:22;;;;:7;:22;;;;;:57;22531:318;;22481:375;:::o;22864:147::-;22942:7;;:17;;22954:4;22942:11;:17::i;:::-;22932:7;:27;22983:10;;:20;;22998:4;22983:14;:20::i;:::-;22970:10;:33;-1:-1:-1;;22864:147:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:325::-;1076:6;1084;1137:2;1125:9;1116:7;1112:23;1108:32;1105:2;;;1158:6;1150;1143:22;1105:2;1186:29;1205:9;1186:29;:::i;:::-;1176:39;;1265:2;1254:9;1250:18;1237:32;1278:28;1300:5;1278:28;:::i;:::-;1325:5;1315:15;;;1095:241;;;;;:::o;1341:264::-;1409:6;1417;1470:2;1458:9;1449:7;1445:23;1441:32;1438:2;;;1491:6;1483;1476:22;1438:2;1519:29;1538:9;1519:29;:::i;:::-;1509:39;1595:2;1580:18;;;;1567:32;;-1:-1:-1;;;1428:177:1:o;1610:255::-;1677:6;1730:2;1718:9;1709:7;1705:23;1701:32;1698:2;;;1751:6;1743;1736:22;1698:2;1788:9;1782:16;1807:28;1829:5;1807:28;:::i;1870:190::-;1929:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:2;;;2003:6;1995;1988:22;1950:2;-1:-1:-1;2031:23:1;;1940:120;-1:-1:-1;1940:120:1:o;2065:319::-;2130:6;2138;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2212:6;2204;2197:22;2159:2;2253:9;2240:23;2230:33;;2313:2;2302:9;2298:18;2285:32;2326:28;2348:5;2326:28;:::i;3068:603::-;3180:4;3209:2;3238;3227:9;3220:21;3270:6;3264:13;3313:6;3308:2;3297:9;3293:18;3286:34;3338:4;3351:140;3365:6;3362:1;3359:13;3351:140;;;3460:14;;;3456:23;;3450:30;3426:17;;;3445:2;3422:26;3415:66;3380:10;;3351:140;;;3509:6;3506:1;3503:13;3500:2;;;3579:4;3574:2;3565:6;3554:9;3550:22;3546:31;3539:45;3500:2;-1:-1:-1;3655:2:1;3634:15;-1:-1:-1;;3630:29:1;3615:45;;;;3662:2;3611:54;;3189:482;-1:-1:-1;;;3189:482:1:o;8180:356::-;8382:2;8364:21;;;8401:18;;;8394:30;8460:34;8455:2;8440:18;;8433:62;8527:2;8512:18;;8354:182::o;11593:128::-;11633:3;11664:1;11660:6;11657:1;11654:13;11651:2;;;11670:18;;:::i;:::-;-1:-1:-1;11706:9:1;;11641:80::o;11726:217::-;11766:1;11792;11782:2;;-1:-1:-1;;;11817:31:1;;11871:4;11868:1;11861:15;11899:4;11824:1;11889:15;11782:2;-1:-1:-1;11928:9:1;;11772:171::o;11948:168::-;11988:7;12054:1;12050;12046:6;12042:14;12039:1;12036:21;12031:1;12024:9;12017:17;12013:45;12010:2;;;12061:18;;:::i;:::-;-1:-1:-1;12101:9:1;;12000:116::o;12121:125::-;12161:4;12189:1;12186;12183:8;12180:2;;;12194:18;;:::i;:::-;-1:-1:-1;12231:9:1;;12170:76::o;12251:135::-;12290:3;-1:-1:-1;;12311:17:1;;12308:2;;;12331:18;;:::i;:::-;-1:-1:-1;12378:1:1;12367:13;;12298:88::o;12391:127::-;12452:10;12447:3;12443:20;12440:1;12433:31;12483:4;12480:1;12473:15;12507:4;12504:1;12497:15;12523:118;12609:5;12602:13;12595:21;12588:5;12585:32;12575:2;;12631:1;12628;12621:12

Swarm Source

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