ETH Price: $2,675.35 (+10.37%)
Gas: 1 Gwei

Token

BLAZE (BLAZE)
 

Overview

Max Total Supply

3,884.160519 BLAZE

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Filtered by Token Holder
Null: 0x000...000
Balance
0 BLAZE

Value
$0.00
0x0000000000000000000000000000000000000000
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:
Blaze

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-12
*/

/// Fixed some kinks in Fume.



/// 5000 tokens
/// Max 50 tokens / tx
/// 5% burn / tx
/// 5% liquidity fee, contributing to a perpetually growing liquidity pool.


/// DEFI IS DANGEROUS. DYOR.

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}



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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }


    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }


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


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 Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [// importANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * // importANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint private _decimals;


    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 6;
    }

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


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


    function decimals() public view returns (uint) {
        return _decimals;
    }


    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }


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


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


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


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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }


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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }


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

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }


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

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

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




// pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}


// pragma solidity >=0.5.0;

interface IUniswapV2ERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

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




// pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}



// pragma solidity >=0.6.2;



interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}



pragma solidity 0.6.12;

contract Blaze is ERC20, Ownable {

    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public _burnPool = 0x0000000000000000000000000000000000000000;
    mapping(address => bool) private _exempt;
    uint private _txCap;
    uint private _burnPct;

    uint8 public feeDecimals;
    uint32 public feePercentage;
    uint128 private minTokensBeforeSwap;

    uint256 internal _totalSupply;
    uint256 internal _minimumSupply;
    uint256 public _totalBurnedTokens;
    uint256 public _totalBurnedLpTokens;
    uint256 public _balanceOfLpTokens;

    bool inSwapAndLiquify;
    bool swapAndLiquifyEnabled;

    event FeeUpdated(uint8 feeDecimals, uint32 feePercentage);
    event MinTokensBeforeSwapUpdated(uint128 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(
        IUniswapV2Router02 _uniswapV2Router,
        uint8 _feeDecimals,
        uint32 _feePercentage,
        uint128 _minTokensBeforeSwap,
        bool _swapAndLiquifyEnabled,
        uint256 _txcap,
        uint256 _txburn
    ) public ERC20("BLAZE", "BLAZE") {

        _mint(msg.sender, 5000 * (10**decimals()));


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

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        updateFee(_feeDecimals, _feePercentage);
        updateMinTokensBeforeSwap(_minTokensBeforeSwap);
        updateSwapAndLiquifyEnabled(_swapAndLiquifyEnabled);
        
        // adding exemptions: owner for init
        modifyExemption(owner(), true);
        modifyExemption(address(_uniswapV2Router), true);
        modifyExemption(address(this), true);
        
        // setting _txCap
        setTxCap(_txcap);
        
        // setting burn
        setBurnPct(_txburn);
    }



    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {

        
        if (isExempt(from) || isExempt(to)) {
            super._transfer(from, to, amount);
        } else {
        require (amount <= txCap());
        
        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= (minTokensBeforeSwap * (10 ** decimals()));
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            msg.sender != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            swapAndLiquify(contractTokenBalance);
        }
        

        uint256 tokensToLock = calculateTokenFee(amount, feeDecimals, feePercentage);
        uint256 tokensToBurn = calculateTokenBurn(amount, burnPct());
        uint256 tokensToTransfer = amount.sub(tokensToBurn).sub(tokensToLock);
        

        super._transfer(from, address(this), tokensToLock);
        super._transfer(from, to, tokensToTransfer);
        super._burn(from, tokensToBurn);
        }
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

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

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this),
            block.timestamp
        );
    }

    function calculateTokenFee(
        uint256 _amount,
        uint8 _feeDecimals,
        uint32 _feePercentage
    ) public pure returns (uint256 locked) {
        locked = _amount.mul(_feePercentage).div(
            10**(uint256(_feeDecimals) + 2)
        );
    }
    
    function calculateTokenBurn(uint256 _amount, uint256 _burn) public pure returns (uint256) {
        return _amount.mul(_burn).div(100);
    }

    receive() external payable {}



    function updateFee(uint8 _feeDecimals, uint32 _feePercentage)
        public
        onlyOwner
    {
        feeDecimals = _feeDecimals;
        feePercentage = _feePercentage;
        emit FeeUpdated(_feeDecimals, _feePercentage);
    }

    function updateMinTokensBeforeSwap(uint128 _minTokensBeforeSwap)
        public
        onlyOwner
    {
        minTokensBeforeSwap = _minTokensBeforeSwap;
        emit MinTokensBeforeSwapUpdated(_minTokensBeforeSwap);
    }

    function updateSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function toHell(address _token, address _to) public onlyOwner {
        require(_to != address(0),"ERC20 transfer to zero address");
        IUniswapV2ERC20 token = IUniswapV2ERC20(_token);
        token.transfer(address(0), token.balanceOf(address(this)));
    }
    
    function isExempt(address adr) internal view returns (bool) {
        return _exempt[adr];
    }
    
    function modifyExemption(address adr, bool state) public onlyOwner {
        _exempt[adr] = state;
    }
    
    function setTxCap(uint256 capInTokens) public onlyOwner {
        _txCap = capInTokens * (10 ** decimals());
    }
    
    function txCap() public view returns(uint) {
        return _txCap;
    }
    
    function setBurnPct(uint256 _amount) public onlyOwner {
        _burnPct = _amount;
    }
    
    function burnPct() public view returns (uint256) {
        return _burnPct;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IUniswapV2Router02","name":"_uniswapV2Router","type":"address"},{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"},{"internalType":"uint128","name":"_minTokensBeforeSwap","type":"uint128"},{"internalType":"bool","name":"_swapAndLiquifyEnabled","type":"bool"},{"internalType":"uint256","name":"_txcap","type":"uint256"},{"internalType":"uint256","name":"_txburn","type":"uint256"}],"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":"uint8","name":"feeDecimals","type":"uint8"},{"indexed":false,"internalType":"uint32","name":"feePercentage","type":"uint32"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"minTokensBeforeSwap","type":"uint128"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_balanceOfLpTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurnedLpTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"calculateTokenBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"}],"name":"calculateTokenFee","outputs":[{"internalType":"uint256","name":"locked","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"modifyExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setBurnPct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capInTokens","type":"uint256"}],"name":"setTxCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"toHell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_minTokensBeforeSwap","type":"uint128"}],"name":"updateMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b506040516200414238038062004142833981810160405260e08110156200007957600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506040518060400160405280600581526020017f424c415a450000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f424c415a4500000000000000000000000000000000000000000000000000000081525081600390805190602001906200014a92919062000eaa565b5080600490805190602001906200016392919062000eaa565b50600660058190555050506000620001806200052a60201b60201c565b905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200024733620002346200053260201b60201c565b600a0a611388026200053c60201b60201c565b8673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028e57600080fd5b505afa158015620002a3573d6000803e3d6000fd5b505050506040513d6020811015620002ba57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308973ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032e57600080fd5b505afa15801562000343573d6000803e3d6000fd5b505050506040513d60208110156200035a57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620003d557600080fd5b505af1158015620003ea573d6000803e3d6000fd5b505050506040513d60208110156200040157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506200049186866200071a60201b60201c565b620004a2846200087560201b60201c565b620004b383620009cd60201b60201c565b620004d5620004c762000af660201b60201c565b600162000b2060201b60201c565b620004e887600162000b2060201b60201c565b620004fb30600162000b2060201b60201c565b6200050c8262000c4e60201b60201c565b6200051d8162000d3f60201b60201c565b5050505050505062000f50565b600033905090565b6000600554905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620005f46000838362000e1c60201b60201c565b620006108160025462000e2160201b62001f431790919060201c565b6002819055506200066e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000e2160201b62001f431790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6200072a6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600b60006101000a81548160ff021916908360ff16021790555080600b60016101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b620008856200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b620009dd6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000aa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000b306200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b62000c5e6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000d21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b62000d316200053260201b60201c565b600a0a810260098190555050565b62000d4f6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000e12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b505050565b60008082840190508381101562000ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000eed57805160ff191683800117855562000f1e565b8280016001018555821562000f1e579182015b8281111562000f1d57825182559160200191906001019062000f00565b5b50905062000f2d919062000f31565b5090565b5b8082111562000f4c57600081600090555060010162000f32565b5090565b60805160601c60a05160601c6131aa62000f98600039806111415280612350525080610e085280612c875280612d735280612d9a5280612ea55280612ecc52506131aa6000f3fe6080604052600436106101f25760003560e01c806394687d491161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e14610abc578063eaa93e7814610b41578063f2fde38b14610b8f578063f51d4df514610be0578063ff7c479014610c0b576101f9565b8063a9059cbb14610971578063c51a2bba146109e2578063cc0f178614610a1d578063da7277a914610a4b576101f9565b80639f9a4e7f116100dc5780639f9a4e7f14610826578063a001ecdd14610863578063a3a4936114610894578063a457c2d714610900576101f9565b806394687d49146106e3578063954757521461070e57806395d89b411461076b5780639618b31c146107fb576101f9565b8063313ce5671161018557806370a082311161015457806370a08231146105fb578063715018a6146106605780638da5cb5b1461067757806391fe5a64146106b8576101f9565b8063313ce567146104d157806339509351146104fc5780633a27b7641461056d57806349bd5a5e146105ba576101f9565b80631694505e116101c15780631694505e1461039357806318160ddd146103d457806323b872dd146103ff57806328d2bc9114610490576101f9565b806306fdde03146101fe578063095ea7b31461028e5780630a5fadc4146102ff578063132704b81461033a576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610c36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610253578082015181840152602081019050610238565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029a57600080fd5b506102e7600480360360408110156102b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cd8565b60405180821515815260200191505060405180910390f35b34801561030b57600080fd5b506103386004803603602081101561032257600080fd5b8101908080359060200190929190505050610cf6565b005b34801561034657600080fd5b5061037d6004803603604081101561035d57600080fd5b810190808035906020019092919080359060200190929190505050610dd6565b6040518082815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610e06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e057600080fd5b506103e9610e2a565b6040518082815260200191505060405180910390f35b34801561040b57600080fd5b506104786004803603606081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e34565b60405180821515815260200191505060405180910390f35b34801561049c57600080fd5b506104a5610f0d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104dd57600080fd5b506104e6610f33565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b506105556004803603604081101561051f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f3d565b60405180821515815260200191505060405180910390f35b34801561057957600080fd5b506105b86004803603602081101561059057600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050610ff0565b005b3480156105c657600080fd5b506105cf61113f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b5061064a6004803603602081101561061e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611163565b6040518082815260200191505060405180910390f35b34801561066c57600080fd5b506106756111ab565b005b34801561068357600080fd5b5061068c611336565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c457600080fd5b506106cd611360565b6040518082815260200191505060405180910390f35b3480156106ef57600080fd5b506106f8611366565b6040518082815260200191505060405180910390f35b34801561071a57600080fd5b506107696004803603604081101561073157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611370565b005b34801561077757600080fd5b50610780611495565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c05780820151818401526020810190506107a5565b50505050905090810190601f1680156107ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080757600080fd5b50610810611537565b6040518082815260200191505060405180910390f35b34801561083257600080fd5b506108616004803603602081101561084957600080fd5b81019080803515159060200190929190505050611541565b005b34801561086f57600080fd5b50610878611661565b604051808263ffffffff16815260200191505060405180910390f35b3480156108a057600080fd5b506108ea600480360360608110156108b757600080fd5b8101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050611677565b6040518082815260200191505060405180910390f35b34801561090c57600080fd5b506109596004803603604081101561092357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b6565b60405180821515815260200191505060405180910390f35b34801561097d57600080fd5b506109ca6004803603604081101561099457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611783565b60405180821515815260200191505060405180910390f35b3480156109ee57600080fd5b50610a1b60048036036020811015610a0557600080fd5b81019080803590602001909291905050506117a1565b005b348015610a2957600080fd5b50610a32611875565b604051808260ff16815260200191505060405180910390f35b348015610a5757600080fd5b50610aba60048036036040811015610a6e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b005b348015610ac857600080fd5b50610b2b60048036036040811015610adf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b4e565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610b8d60048036036040811015610b6457600080fd5b81019080803560ff169060200190929190803563ffffffff169060200190929190505050611bd5565b005b348015610b9b57600080fd5b50610bde60048036036020811015610bb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d27565b005b348015610bec57600080fd5b50610bf5611f37565b6040518082815260200191505060405180910390f35b348015610c1757600080fd5b50610c20611f3d565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b5050505050905090565b6000610cec610ce5611fcb565b8484611fd3565b6001905092915050565b610cfe611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dc8610f33565b600a0a810260098190555050565b6000610dfe6064610df084866121ca90919063ffffffff16565b61225090919063ffffffff16565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610e4184848461229a565b610f0284610e4d611fcb565b610efd856040518060600160405280602881526020016130be60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610eb3611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b611fd3565b600190509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610fe6610f4a611fcb565b84610fe18560016000610f5b611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b611fd3565b6001905092915050565b610ff8611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b3611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b6000600954905090565b611378611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561152d5780601f106115025761010080835404028352916020019161152d565b820191906000526020600020905b81548152906001019060200180831161151057829003601f168201915b5050505050905090565b6000600a54905090565b611549611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b600b60019054906101000a900463ffffffff1681565b60006116ad60028460ff1601600a0a61169f8463ffffffff16876121ca90919063ffffffff16565b61225090919063ffffffff16565b90509392505050565b60006117796116c3611fcb565b846117748560405180606001604052806025815260200161315060259139600160006116ed611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b611fd3565b6001905092915050565b6000611797611790611fcb565b848461229a565b6001905092915050565b6117a9611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600b60009054906101000a900460ff1681565b611890611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433230207472616e7366657220746f207a65726f2061646472657373000081525060200191505060405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a7f57600080fd5b505afa158015611a93573d6000803e3d6000fd5b505050506040513d6020811015611aa957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b0d57600080fd5b505af1158015611b21573d6000803e3d6000fd5b505050506040513d6020811015611b3757600080fd5b810190808051906020019092919050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bdd611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600b60006101000a81548160ff021916908360ff16021790555080600b60016101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b611d2f611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611df1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061302f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600080828401905083811015611fc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130556022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000808314156121dd576000905061224a565b60008284029050828482816121ee57fe5b0414612245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061309d6021913960400191505060405180910390fd5b809150505b92915050565b600061229283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251f565b905092915050565b6122a3836125e5565b806122b357506122b2826125e5565b5b156122c8576122c383838361263b565b61245a565b6122d0611366565b8111156122dc57600080fd5b60006122e730611163565b905060006122f3610f33565b600a0a600b60059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff160282101590508080156123475750601160009054906101000a900460ff16155b801561239f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156123b75750601160019054906101000a900460ff165b156123c6576123c5826128fc565b5b60006123f484600b60009054906101000a900460ff16600b60019054906101000a900463ffffffff16611677565b9050600061240985612404611537565b610dd6565b905060006124328361242484896129de90919063ffffffff16565b6129de90919063ffffffff16565b905061243f88308561263b565b61244a88888361263b565b6124548883612a28565b50505050505b505050565b600083831115829061250c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124d15780820151818401526020810190506124b6565b50505050905090810190601f1680156124fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906125cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612590578082015181840152602081019050612575565b50505050905090810190601f1680156125bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816125d757fe5b049050809150509392505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131076025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612747576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fea6023913960400191505060405180910390fd5b612752838383612bec565b6127bd81604051806060016040528060268152602001613077602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612850816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6001601160006101000a81548160ff021916908315150217905550600061292d60028361225090919063ffffffff16565b9050600061294482846129de90919063ffffffff16565b9050600047905061295483612bf1565b600061296982476129de90919063ffffffff16565b90506129758382612e9f565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000601160006101000a81548160ff02191690831515021790555050565b6000612a2083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130e66021913960400191505060405180910390fd5b612aba82600083612bec565b612b258160405180606001604052806022815260200161300d602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b7c816002546129de90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6060600267ffffffffffffffff81118015612c0b57600080fd5b50604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c4b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ceb57600080fd5b505afa158015612cff573d6000803e3d6000fd5b505050506040513d6020811015612d1557600080fd5b810190808051906020019092919050505081600181518110612d3357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d98307f000000000000000000000000000000000000000000000000000000000000000084611fd3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612e5a578082015181840152602081019050612e3f565b505050509050019650505050505050600060405180830381600087803b158015612e8357600080fd5b505af1158015612e97573d6000803e3d6000fd5b505050505050565b612eca307f000000000000000000000000000000000000000000000000000000000000000084611fd3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b50505050506040513d6060811015612fbd57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122022dfc1bdaedc1eca1bfee162b4392b9db890f9f6e5daa0ab7f2a8773f7380c9964736f6c634300060c00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000005

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806394687d491161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e14610abc578063eaa93e7814610b41578063f2fde38b14610b8f578063f51d4df514610be0578063ff7c479014610c0b576101f9565b8063a9059cbb14610971578063c51a2bba146109e2578063cc0f178614610a1d578063da7277a914610a4b576101f9565b80639f9a4e7f116100dc5780639f9a4e7f14610826578063a001ecdd14610863578063a3a4936114610894578063a457c2d714610900576101f9565b806394687d49146106e3578063954757521461070e57806395d89b411461076b5780639618b31c146107fb576101f9565b8063313ce5671161018557806370a082311161015457806370a08231146105fb578063715018a6146106605780638da5cb5b1461067757806391fe5a64146106b8576101f9565b8063313ce567146104d157806339509351146104fc5780633a27b7641461056d57806349bd5a5e146105ba576101f9565b80631694505e116101c15780631694505e1461039357806318160ddd146103d457806323b872dd146103ff57806328d2bc9114610490576101f9565b806306fdde03146101fe578063095ea7b31461028e5780630a5fadc4146102ff578063132704b81461033a576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610c36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610253578082015181840152602081019050610238565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029a57600080fd5b506102e7600480360360408110156102b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cd8565b60405180821515815260200191505060405180910390f35b34801561030b57600080fd5b506103386004803603602081101561032257600080fd5b8101908080359060200190929190505050610cf6565b005b34801561034657600080fd5b5061037d6004803603604081101561035d57600080fd5b810190808035906020019092919080359060200190929190505050610dd6565b6040518082815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610e06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e057600080fd5b506103e9610e2a565b6040518082815260200191505060405180910390f35b34801561040b57600080fd5b506104786004803603606081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e34565b60405180821515815260200191505060405180910390f35b34801561049c57600080fd5b506104a5610f0d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104dd57600080fd5b506104e6610f33565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b506105556004803603604081101561051f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f3d565b60405180821515815260200191505060405180910390f35b34801561057957600080fd5b506105b86004803603602081101561059057600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050610ff0565b005b3480156105c657600080fd5b506105cf61113f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b5061064a6004803603602081101561061e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611163565b6040518082815260200191505060405180910390f35b34801561066c57600080fd5b506106756111ab565b005b34801561068357600080fd5b5061068c611336565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c457600080fd5b506106cd611360565b6040518082815260200191505060405180910390f35b3480156106ef57600080fd5b506106f8611366565b6040518082815260200191505060405180910390f35b34801561071a57600080fd5b506107696004803603604081101561073157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611370565b005b34801561077757600080fd5b50610780611495565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c05780820151818401526020810190506107a5565b50505050905090810190601f1680156107ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080757600080fd5b50610810611537565b6040518082815260200191505060405180910390f35b34801561083257600080fd5b506108616004803603602081101561084957600080fd5b81019080803515159060200190929190505050611541565b005b34801561086f57600080fd5b50610878611661565b604051808263ffffffff16815260200191505060405180910390f35b3480156108a057600080fd5b506108ea600480360360608110156108b757600080fd5b8101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050611677565b6040518082815260200191505060405180910390f35b34801561090c57600080fd5b506109596004803603604081101561092357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b6565b60405180821515815260200191505060405180910390f35b34801561097d57600080fd5b506109ca6004803603604081101561099457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611783565b60405180821515815260200191505060405180910390f35b3480156109ee57600080fd5b50610a1b60048036036020811015610a0557600080fd5b81019080803590602001909291905050506117a1565b005b348015610a2957600080fd5b50610a32611875565b604051808260ff16815260200191505060405180910390f35b348015610a5757600080fd5b50610aba60048036036040811015610a6e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b005b348015610ac857600080fd5b50610b2b60048036036040811015610adf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b4e565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610b8d60048036036040811015610b6457600080fd5b81019080803560ff169060200190929190803563ffffffff169060200190929190505050611bd5565b005b348015610b9b57600080fd5b50610bde60048036036020811015610bb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d27565b005b348015610bec57600080fd5b50610bf5611f37565b6040518082815260200191505060405180910390f35b348015610c1757600080fd5b50610c20611f3d565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b5050505050905090565b6000610cec610ce5611fcb565b8484611fd3565b6001905092915050565b610cfe611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dc8610f33565b600a0a810260098190555050565b6000610dfe6064610df084866121ca90919063ffffffff16565b61225090919063ffffffff16565b905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610e4184848461229a565b610f0284610e4d611fcb565b610efd856040518060600160405280602881526020016130be60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610eb3611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b611fd3565b600190509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610fe6610f4a611fcb565b84610fe18560016000610f5b611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b611fd3565b6001905092915050565b610ff8611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b7f000000000000000000000000162989eaf4f18517cc7d66e8311536949a9710e781565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b3611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b6000600954905090565b611378611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561152d5780601f106115025761010080835404028352916020019161152d565b820191906000526020600020905b81548152906001019060200180831161151057829003601f168201915b5050505050905090565b6000600a54905090565b611549611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b600b60019054906101000a900463ffffffff1681565b60006116ad60028460ff1601600a0a61169f8463ffffffff16876121ca90919063ffffffff16565b61225090919063ffffffff16565b90509392505050565b60006117796116c3611fcb565b846117748560405180606001604052806025815260200161315060259139600160006116ed611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b611fd3565b6001905092915050565b6000611797611790611fcb565b848461229a565b6001905092915050565b6117a9611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600b60009054906101000a900460ff1681565b611890611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433230207472616e7366657220746f207a65726f2061646472657373000081525060200191505060405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a7f57600080fd5b505afa158015611a93573d6000803e3d6000fd5b505050506040513d6020811015611aa957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b0d57600080fd5b505af1158015611b21573d6000803e3d6000fd5b505050506040513d6020811015611b3757600080fd5b810190808051906020019092919050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bdd611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600b60006101000a81548160ff021916908360ff16021790555080600b60016101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b611d2f611fcb565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611df1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061302f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600080828401905083811015611fc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130556022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000808314156121dd576000905061224a565b60008284029050828482816121ee57fe5b0414612245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061309d6021913960400191505060405180910390fd5b809150505b92915050565b600061229283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251f565b905092915050565b6122a3836125e5565b806122b357506122b2826125e5565b5b156122c8576122c383838361263b565b61245a565b6122d0611366565b8111156122dc57600080fd5b60006122e730611163565b905060006122f3610f33565b600a0a600b60059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff160282101590508080156123475750601160009054906101000a900460ff16155b801561239f57507f000000000000000000000000162989eaf4f18517cc7d66e8311536949a9710e773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156123b75750601160019054906101000a900460ff165b156123c6576123c5826128fc565b5b60006123f484600b60009054906101000a900460ff16600b60019054906101000a900463ffffffff16611677565b9050600061240985612404611537565b610dd6565b905060006124328361242484896129de90919063ffffffff16565b6129de90919063ffffffff16565b905061243f88308561263b565b61244a88888361263b565b6124548883612a28565b50505050505b505050565b600083831115829061250c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124d15780820151818401526020810190506124b6565b50505050905090810190601f1680156124fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906125cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612590578082015181840152602081019050612575565b50505050905090810190601f1680156125bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816125d757fe5b049050809150509392505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131076025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612747576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fea6023913960400191505060405180910390fd5b612752838383612bec565b6127bd81604051806060016040528060268152602001613077602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612850816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6001601160006101000a81548160ff021916908315150217905550600061292d60028361225090919063ffffffff16565b9050600061294482846129de90919063ffffffff16565b9050600047905061295483612bf1565b600061296982476129de90919063ffffffff16565b90506129758382612e9f565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000601160006101000a81548160ff02191690831515021790555050565b6000612a2083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130e66021913960400191505060405180910390fd5b612aba82600083612bec565b612b258160405180606001604052806022815260200161300d602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245f9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b7c816002546129de90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6060600267ffffffffffffffff81118015612c0b57600080fd5b50604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c4b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ceb57600080fd5b505afa158015612cff573d6000803e3d6000fd5b505050506040513d6020811015612d1557600080fd5b810190808051906020019092919050505081600181518110612d3357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d98307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611fd3565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612e5a578082015181840152602081019050612e3f565b505050509050019650505050505050600060405180830381600087803b158015612e8357600080fd5b505af1158015612e97573d6000803e3d6000fd5b505050505050565b612eca307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611fd3565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b50505050506040513d6060811015612fbd57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122022dfc1bdaedc1eca1bfee162b4392b9db890f9f6e5daa0ab7f2a8773f7380c9964736f6c634300060c0033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000005

-----Decoded View---------------
Arg [0] : _uniswapV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _feeDecimals (uint8): 0
Arg [2] : _feePercentage (uint32): 5
Arg [3] : _minTokensBeforeSwap (uint128): 50
Arg [4] : _swapAndLiquifyEnabled (bool): True
Arg [5] : _txcap (uint256): 50
Arg [6] : _txburn (uint256): 5

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005


Deployed Bytecode Sourcemap

21818:7570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12054:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28982:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27611:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21895:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11471:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12233:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21998:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11379:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12562:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28055:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21953:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11579:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1739:148;;;;;;;;;;;;;:::i;:::-;;1097:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22360:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29110:75;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28864:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11282:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29300:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28293:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22208:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27325:274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12788:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11708:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29197:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22177:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28475:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11893:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27803:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2042;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22400:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22442:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11189:83;11226:13;11259:5;11252:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:83;:::o;12054:169::-;12137:4;12154:39;12163:12;:10;:12::i;:::-;12177:7;12186:6;12154:8;:39::i;:::-;12211:4;12204:11;;12054:169;;;;:::o;28982:116::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29079:10:::1;:8;:10::i;:::-;29073:2;:16;29058:11;:32;29049:6;:41;;;;28982:116:::0;:::o;27611:143::-;27692:7;27719:27;27742:3;27719:18;27731:5;27719:7;:11;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;27712:34;;27611:143;;;;:::o;21895:51::-;;;:::o;11471:100::-;11524:7;11551:12;;11544:19;;11471:100;:::o;12233:321::-;12339:4;12356:36;12366:6;12374:9;12385:6;12356:9;:36::i;:::-;12403:121;12412:6;12420:12;:10;:12::i;:::-;12434:89;12472:6;12434:89;;;;;;;;;;;;;;;;;:11;:19;12446:6;12434:19;;;;;;;;;;;;;;;:33;12454:12;:10;:12::i;:::-;12434:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12403:8;:121::i;:::-;12542:4;12535:11;;12233:321;;;;;:::o;21998:69::-;;;;;;;;;;;;;:::o;11379:82::-;11420:4;11444:9;;11437:16;;11379:82;:::o;12562:218::-;12650:4;12667:83;12676:12;:10;:12::i;:::-;12690:7;12699:50;12738:10;12699:11;:25;12711:12;:10;:12::i;:::-;12699:25;;;;;;;;;;;;;;;:34;12725:7;12699:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12667:8;:83::i;:::-;12768:4;12761:11;;12562:218;;;;:::o;28055:230::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28193:20:::1;28171:19;;:42;;;;;;;;;;;;;;;;;;28229:48;28256:20;28229:48;;;;;;;;;;;;;;;;;;;;28055:230:::0;:::o;21953:38::-;;;:::o;11579:119::-;11645:7;11672:9;:18;11682:7;11672:18;;;;;;;;;;;;;;;;11665:25;;11579:119;;;:::o;1739:148::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1846:1:::1;1809:40;;1830:6;;;;;;;;;;;1809:40;;;;;;;;;;;;1877:1;1860:6;;:19;;;;;;;;;;;;;;;;;;1739:148::o:0;1097:79::-;1135:7;1162:6;;;;;;;;;;;1155:13;;1097:79;:::o;22360:33::-;;;;:::o;29110:75::-;29147:4;29171:6;;29164:13;;29110:75;:::o;28864:106::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28957:5:::1;28942:7;:12;28950:3;28942:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;28864:106:::0;;:::o;11282:87::-;11321:13;11354:7;11347:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11282:87;:::o;29300:83::-;29340:7;29367:8;;29360:15;;29300:83;:::o;28293:174::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28397:8:::1;28373:21;;:32;;;;;;;;;;;;;;;;;;28421:38;28450:8;28421:38;;;;;;;;;;;;;;;;;;;;28293:174:::0;:::o;22208:27::-;;;;;;;;;;;;;:::o;27325:274::-;27467:14;27503:88;27578:1;27562:12;27554:21;;:25;27549:2;:31;27503:27;27515:14;27503:27;;:7;:11;;:27;;;;:::i;:::-;:31;;:88;;;;:::i;:::-;27494:97;;27325:274;;;;;:::o;12788:269::-;12881:4;12898:129;12907:12;:10;:12::i;:::-;12921:7;12930:96;12969:15;12930:96;;;;;;;;;;;;;;;;;:11;:25;12942:12;:10;:12::i;:::-;12930:25;;;;;;;;;;;;;;;:34;12956:7;12930:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12898:8;:129::i;:::-;13045:4;13038:11;;12788:269;;;;:::o;11708:175::-;11794:4;11811:42;11821:12;:10;:12::i;:::-;11835:9;11846:6;11811:9;:42::i;:::-;11871:4;11864:11;;11708:175;;;;:::o;29197:91::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29273:7:::1;29262:8;:18;;;;29197:91:::0;:::o;22177:24::-;;;;;;;;;;;;;:::o;28475:267::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28571:1:::1;28556:17;;:3;:17;;;;28548:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;28618:21;28658:6;28618:47;;28676:5;:14;;;28699:1;28703:5;:15;;;28727:4;28703:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;28676:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;1379:1;28475:267:::0;;:::o;11893:151::-;11982:7;12009:11;:18;12021:5;12009:18;;;;;;;;;;;;;;;:27;12028:7;12009:27;;;;;;;;;;;;;;;;12002:34;;11893:151;;;;:::o;27803:244::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27930:12:::1;27916:11;;:26;;;;;;;;;;;;;;;;;;27969:14;27953:13;;:30;;;;;;;;;;;;;;;;;;27999:40;28010:12;28024:14;27999:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;27803:244:::0;;:::o;2042:::-;1319:12;:10;:12::i;:::-;1309:22;;:6;;;;;;;;;;;:22;;;1301:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2151:1:::1;2131:22;;:8;:22;;;;2123:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:8;2212:38;;2233:6;;;;;;;;;;;2212:38;;;;;;;;;;;;2270:8;2261:6;;:17;;;;;;;;;;;;;;;;;;2042:244:::0;:::o;22400:35::-;;;;:::o;22442:33::-;;;;:::o;2323:181::-;2381:7;2401:9;2417:1;2413;:5;2401:17;;2442:1;2437;:6;;2429:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:1;2488:8;;;2323:181;;;;:::o;242:106::-;295:15;330:10;323:17;;242:106;:::o;14432:346::-;14551:1;14534:19;;:5;:19;;;;14526:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14632:1;14613:21;;:7;:21;;;;14605:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14716:6;14686:11;:18;14698:5;14686:18;;;;;;;;;;;;;;;:27;14705:7;14686:27;;;;;;;;;;;;;;;:36;;;;14754:7;14738:32;;14747:5;14738:32;;;14763:6;14738:32;;;;;;;;;;;;;;;;;;14432:346;;;:::o;2862:471::-;2920:7;3170:1;3165;:6;3161:47;;;3195:1;3188:8;;;;3161:47;3220:9;3236:1;3232;:5;3220:17;;3265:1;3260;3256;:5;;;;;;:10;3248:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:1;3317:8;;;2862:471;;;;;:::o;3343:132::-;3401:7;3428:39;3432:1;3435;3428:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3421:46;;3343:132;;;;:::o;24076:1132::-;24216:14;24225:4;24216:8;:14::i;:::-;:30;;;;24234:12;24243:2;24234:8;:12::i;:::-;24216:30;24212:989;;;24263:33;24279:4;24285:2;24289:6;24263:15;:33::i;:::-;24212:989;;;24344:7;:5;:7::i;:::-;24334:6;:17;;24325:27;;;;;;24373:28;24404:24;24422:4;24404:9;:24::i;:::-;24373:55;;24439:24;24520:10;:8;:10::i;:::-;24514:2;:16;24491:19;;;;;;;;;;;:40;;;24466:20;:66;;24439:93;;24561:19;:53;;;;;24598:16;;;;;;;;;;;24597:17;24561:53;:97;;;;;24645:13;24631:27;;:10;:27;;;;24561:97;:135;;;;;24675:21;;;;;;;;;;;24561:135;24543:228;;;24723:36;24738:20;24723:14;:36::i;:::-;24543:228;24793:20;24816:53;24834:6;24842:11;;;;;;;;;;;24855:13;;;;;;;;;;;24816:17;:53::i;:::-;24793:76;;24880:20;24903:37;24922:6;24930:9;:7;:9::i;:::-;24903:18;:37::i;:::-;24880:60;;24951:24;24978:42;25007:12;24978:24;24989:12;24978:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;24951:69;;25043:50;25059:4;25073;25080:12;25043:15;:50::i;:::-;25104:43;25120:4;25126:2;25130:16;25104:15;:43::i;:::-;25158:31;25170:4;25176:12;25158:11;:31::i;:::-;24212:989;;;;;;24076:1132;;;:::o;2660:192::-;2746:7;2779:1;2774;:6;;2782:12;2766:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2806:9;2822:1;2818;:5;2806:17;;2843:1;2836:8;;;2660:192;;;;;:::o;3485:278::-;3571:7;3603:1;3599;:5;3606:12;3591:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3630:9;3646:1;3642;:5;;;;;;3630:17;;3754:1;3747:8;;;3485:278;;;;;:::o;28754:98::-;28808:4;28832:7;:12;28840:3;28832:12;;;;;;;;;;;;;;;;;;;;;;;;;28825:19;;28754:98;;;:::o;13067:539::-;13191:1;13173:20;;:6;:20;;;;13165:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13275:1;13254:23;;:9;:23;;;;13246:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13330:47;13351:6;13359:9;13370:6;13330:20;:47::i;:::-;13410:71;13432:6;13410:71;;;;;;;;;;;;;;;;;:9;:17;13420:6;13410:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;13390:9;:17;13400:6;13390:17;;;;;;;;;;;;;;;:91;;;;13515:32;13540:6;13515:9;:20;13525:9;13515:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13492:9;:20;13502:9;13492:20;;;;;;;;;;;;;;;:55;;;;13580:9;13563:35;;13572:6;13563:35;;;13591:6;13563:35;;;;;;;;;;;;;;;;;;13067:539;;;:::o;25216:977::-;22920:4;22901:16;;:23;;;;;;;;;;;;;;;;;;25352:12:::1;25367:27;25392:1;25367:20;:24;;:27;;;;:::i;:::-;25352:42;;25405:17;25425:30;25450:4;25425:20;:24;;:30;;;;:::i;:::-;25405:50;;25733:22;25758:21;25733:46;;25824:22;25841:4;25824:16;:22::i;:::-;25977:18;25998:41;26024:14;25998:21;:25;;:41;;;;:::i;:::-;25977:62;;26089:35;26102:9;26113:10;26089:12;:35::i;:::-;26142:43;26157:4;26163:10;26175:9;26142:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22935:1;;;;22966:5:::0;22947:16;;:24;;;;;;;;;;;;;;;;;;25216:977;:::o;2514:136::-;2572:7;2599:43;2603:1;2606;2599:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2592:50;;2514:136;;;;:::o;14004:418::-;14107:1;14088:21;;:7;:21;;;;14080:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14160:49;14181:7;14198:1;14202:6;14160:20;:49::i;:::-;14243:68;14266:6;14243:68;;;;;;;;;;;;;;;;;:9;:18;14253:7;14243:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;14222:9;:18;14232:7;14222:18;;;;;;;;;;;;;;;:89;;;;14337:24;14354:6;14337:12;;:16;;:24;;;;:::i;:::-;14322:12;:39;;;;14403:1;14377:37;;14386:7;14377:37;;;14407:6;14377:37;;;;;;;;;;;;;;;;;;14004:418;;:::o;14884:92::-;;;;:::o;26201:589::-;26327:21;26365:1;26351:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26327:40;;26396:4;26378;26383:1;26378:7;;;;;;;;;;;;;:23;;;;;;;;;;;26422:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26412:4;26417:1;26412:7;;;;;;;;;;;;;:32;;;;;;;;;;;26457:62;26474:4;26489:15;26507:11;26457:8;:62::i;:::-;26558:15;:66;;;26639:11;26665:1;26709:4;26736;26756:15;26558:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26201:589;;:::o;26798:519::-;26946:62;26963:4;26978:15;26996:11;26946:8;:62::i;:::-;27051:15;:31;;;27090:9;27123:4;27143:11;27169:1;27212;27263:4;27283:15;27051:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26798:519;;:::o

Swarm Source

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