ETH Price: $3,110.50 (-0.89%)

Token

JUICE (JUICE)
 

Overview

Max Total Supply

10,000,000 JUICE

Holders

1,052 ( -0.095%)

Market

Price

$0.24 @ 0.000078 ETH (-0.69%)

Onchain Market Cap

$2,436,419.35

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
309.617340219314541908 JUICE

Value
$75.44 ( ~0.0242533300324774 Eth) [0.0031%]
0x62c74dcb2abc189da8c3b3a46799e92cd59b2b0b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Market

Volume (24H):$45,302.86
Market Capitalization:$0.00
Circulating Supply:0.00 JUICE
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
JUICE

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : JUICE.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

//website: juicebot.app

//twitter: https://twitter.com/juicebotapp

//tg: https://t.me/JuiceBotApp

import "./ERC20.sol";
import "./Ownable.sol";


contract JUICE is ERC20, Ownable {
    
    uint256 constant private startingSupply = 10_000_000;
    uint256 constant private _tTotal = startingSupply * 10 **18;
    constructor(address _router) ERC20("JUICE", "JUICE") {
        _mint(msg.sender, _tTotal);

        uniswapRouter = IUniswapV2Router02(_router); 

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
    }

    function enableTrading() public onlyOwner {
        require(!isTradingEnabled, "JUICE: Trading is alredy enabled");
        require(pairsList.length > 0, "JUICE: Please add all the pairs first");
        isTradingEnabled = true;
        contractSwapEnabled = true;
        emit ContractSwapEnabledUpdated(true);
    }

    function excludeOrInclude(address user, bool value) public onlyOwner {
        require(isExcludedFromFee[user] != value, "JUICE: Already set as same value");
        isExcludedFromFee[user] = value;
    }

    function addOrRemovePairs(address pair, bool value) public onlyOwner {
        require(isPair[pair] != value, "JUICE: Already set as same value");
        isPair[pair] = value;
        pairsList.push(pair);
        if (lpPair == address(0)) {
            lpPair = pair;
        }
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 20) / 1000, "Cannot be above 2% of current PI.");
        require(swapAmount >= _tTotal / 10_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 10_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 100, "Cannot set above 1%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function updateDevelopmentAddress(address payable development) public onlyOwner {
        require(_taxWallets.development != development, "JUICE: Already set as same address");
        _taxWallets.development = payable(development);
    }

    function updateFees(uint256 transfer, uint256 buy, uint256 sell) public onlyOwner {
        transferFee = transfer;
        buyFee = buy;
        sellFee = sell;
    }

    function transferEther() public onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }
    
    // function to allow admin to transfer *any* ERC20 tokens from this contract..
    function transferAnyERC20Tokens(address tokenAddress, address recipient, uint256 amount) public onlyOwner {
        require(amount > 0, "JUICE: amount must be greater than 0");
        require(recipient != address(0), "JUICE: recipient is the zero address");
        IERC20(tokenAddress).transfer(recipient, amount);
    }

    receive() external payable { }
}

File 2 of 8 : Ownable.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

import "./Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract 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 () {
        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;
    }
}

File 3 of 8 : ERC20.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

import "./Context.sol";
import "./IERC20.sol";
import "./SafeMath.sol";
import "./IUniswapV2Router02.sol";

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

    IUniswapV2Router02 public uniswapRouter;
    address public wethAddress;
    address[] public pairsList;
    address public lpPair;

    bool public isTradingEnabled = false;

    mapping (address => uint256) private _balances;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isPair;

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

    
    uint256 private _totalSupply;

    uint256 public transferFee = 0;
    uint256 public buyFee = 20;
    uint256 public sellFee = 20;

    string private _name;
    string private _symbol;   
    uint8 private _decimals; 

    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent;

    struct TaxWallets {
        address payable development;
    }

    TaxWallets public _taxWallets = TaxWallets({
        development: payable(0x3a5198c44E14C61C5Af67C8b44DbA19533FeD23d)
        });

    event SwapTokensForETH(uint256 tokenAmount, address[] path);
    event LiquidityAdded(uint256 amountTokenA, uint256 amountETH);
    event ContractSwapEnabledUpdated(bool enabled);

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

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

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

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

    function decimals() public view returns (uint8) {
        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(msg.sender, 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");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (isPair[sender]) {
            buy = true;
        } else if (isPair[recipient]) {
            sell = true;
        } else {
            other = true;
        }

        _beforeTokenTransfer(sender, recipient, amount);
        if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) {
            require(isTradingEnabled, "ERC20: Trading is not enabled yet..");
                if (sell) {
                    if (!inSwap) {
                        if (contractSwapEnabled) {
                            uint256 contractTokenBalance = balanceOf(address(this));
                            if (contractTokenBalance >= swapThreshold) {
                                uint256 swapAmt = swapAmount;
                                if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent); }
                                if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                                contractSwap(contractTokenBalance);
                            }
                        }
                    }
                }
                if (!isPair[sender] && !isPair[recipient]) {
                    uint256 fee = amount.mul(transferFee).div(100);                   
                    amount = amount.sub(fee);
                    _balances[sender] = _balances[sender].sub(fee, "ERC20: transfer amount exceeds balance");
                    _balances[address(this)] = _balances[address(this)].add(fee);
                    emit Transfer(sender, address(this), fee);
                }
                if (isPair[sender]) {
                    uint256 fee = amount.mul(buyFee).div(100);
                    amount = amount.sub(fee);
                    _balances[sender] = _balances[sender].sub(fee, "ERC20: transfer amount exceeds balance");
                    _balances[address(this)] = _balances[address(this)].add(fee);
                    emit Transfer(sender, address(this), fee);
                }
                if (isPair[recipient]) {
                    uint256 fee = amount.mul(sellFee).div(100);                  
                    amount = amount.sub(fee);
                    _balances[sender] = _balances[sender].sub(fee, "ERC20: transfer amount exceeds balance");
                    _balances[address(this)] = _balances[address(this)].add(fee);
                    emit Transfer(sender, address(this), fee);
                }
        }
        
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function contractSwap(uint256 contractTokenBalance) internal lockTheSwap {

        if(_allowances[address(this)][address(uniswapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        try uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 amtBalance = address(this).balance;
        bool success;
        uint256 developmentBalance = amtBalance;
        (success,) = _taxWallets.development.call{value: developmentBalance, gas: 35000}("");
    }    


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

File 4 of 8 : Context.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(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;
    }
}

File 5 of 8 : IUniswapV2Router02.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

import "./IUniswapV2Router01.sol";

interface IUniswapV2Router02 is IUniswapV2Router01 {
    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;
}

File 6 of 8 : SafeMath.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

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

File 7 of 8 : IERC20.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

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

File 8 of 8 : IUniswapV2Router01.sol
pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

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

    function WETH() external pure returns (address);

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

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountTokenA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"LiquidityAdded","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":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_taxWallets","outputs":[{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemovePairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeOrInclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairsList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"tokenAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"development","type":"address"}],"name":"updateDevelopmentAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transfer","type":"uint256"},{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wethAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600360146101000a81548160ff0219169083151502179055505f6009556014600a556014600b555f600e60026101000a81548160ff0219169083151502179055506040518060200160405280733a5198c44e14c61c5af67c8b44dba19533fed23d73ffffffffffffffffffffffffffffffffffffffff1681525060135f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050348015620000d3575f80fd5b5060405162005498380380620054988339818101604052810190620000f99190620005e0565b6040518060400160405280600581526020017f4a554943450000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4a5549434500000000000000000000000000000000000000000000000000000081525081600c908162000176919062000874565b5080600d908162000188919062000874565b506012600e5f6101000a81548160ff021916908360ff16021790555050505f620001b76200036e60201b60201c565b90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200027e33670de0b6b3a76400006298968062000272919062000985565b6200037560201b60201c565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505062000b21565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003dd9062000a2d565b60405180910390fd5b620003f95f83836200051460201b60201c565b62000410816008546200051960201b90919060201c565b600881905550620004688160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200051960201b90919060201c565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000508919062000a5e565b60405180910390a35050565b505050565b5f80828462000529919062000a79565b90508381101562000571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005689062000b01565b60405180910390fd5b8091505092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005aa826200057f565b9050919050565b620005bc816200059e565b8114620005c7575f80fd5b50565b5f81519050620005da81620005b1565b92915050565b5f60208284031215620005f857620005f76200057b565b5b5f6200060784828501620005ca565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200068c57607f821691505b602082108103620006a257620006a162000647565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006c9565b620007128683620006c9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200075c6200075662000750846200072a565b62000733565b6200072a565b9050919050565b5f819050919050565b62000777836200073c565b6200078f620007868262000763565b848454620006d5565b825550505050565b5f90565b620007a562000797565b620007b28184846200076c565b505050565b5b81811015620007d957620007cd5f826200079b565b600181019050620007b8565b5050565b601f8211156200082857620007f281620006a8565b620007fd84620006ba565b810160208510156200080d578190505b620008256200081c85620006ba565b830182620007b7565b50505b505050565b5f82821c905092915050565b5f6200084a5f19846008026200082d565b1980831691505092915050565b5f62000864838362000839565b9150826002028217905092915050565b6200087f8262000610565b67ffffffffffffffff8111156200089b576200089a6200061a565b5b620008a7825462000674565b620008b4828285620007dd565b5f60209050601f831160018114620008ea575f8415620008d5578287015190505b620008e1858262000857565b86555062000950565b601f198416620008fa86620006a8565b5f5b828110156200092357848901518255600182019150602085019450602081019050620008fc565b868310156200094357848901516200093f601f89168262000839565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000991826200072a565b91506200099e836200072a565b9250828202620009ae816200072a565b91508282048414831517620009c857620009c762000958565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000a15601f83620009cf565b915062000a2282620009df565b602082019050919050565b5f6020820190508181035f83015262000a468162000a07565b9050919050565b62000a58816200072a565b82525050565b5f60208201905062000a735f83018462000a4d565b92915050565b5f62000a85826200072a565b915062000a92836200072a565b925082820190508082111562000aad5762000aac62000958565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000ae9601b83620009cf565b915062000af68262000ab3565b602082019050919050565b5f6020820190508181035f83015262000b1a8162000adb565b9050919050565b6149698062000b2f5f395ff3fe60806040526004361061023e575f3560e01c80636a58f23f1161012d578063b7df8b36116100aa578063e5e31b131161006e578063e5e31b131461085f578063f2fde38b1461089b578063f94aa1b4146108c3578063fb78680d146108ed578063fdb78c0e1461091557610245565b8063b7df8b3614610793578063bfc2fc35146107bd578063c9b25f0f146107e5578063dd62ed3e146107fb578063e1b724a81461083757610245565b80638da5cb5b116100f15780638da5cb5b1461069d57806395d89b41146106c7578063a457c2d7146106f1578063a9059cbb1461072d578063acb2ad6f1461076957610245565b80636a58f23f146105cf57806370a082311461060b578063715018a614610647578063735de9f71461065d5780638a8c523c1461068757610245565b8063313ce567116101bb5780634e718e481161017f5780634e718e48146104f15780634f0e0ef3146105195780635342acb414610543578063694d9d171461057f5780636a395ccb146105a757610245565b8063313ce5671461040f57806332e19252146104395780633950935114610461578063452ed4f11461049d57806347062402146104c757610245565b80632242908511610202578063224290851461032d57806323b872dd1461035557806328577751146103915780632b14ca56146103bb5780632e8fa821146103e557610245565b80630445b66714610249578063064a59d01461027357806306fdde031461029d578063095ea7b3146102c757806318160ddd1461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d61093f565b60405161026a9190613586565b60405180910390f35b34801561027e575f80fd5b50610287610945565b60405161029491906135b9565b60405180910390f35b3480156102a8575f80fd5b506102b1610958565b6040516102be919061365c565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e89190613704565b6109e8565b6040516102fa91906135b9565b60405180910390f35b34801561030e575f80fd5b506103176109fe565b6040516103249190613586565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190613742565b610a07565b005b348015610360575f80fd5b5061037b60048036038101906103769190613792565b610ab7565b60405161038891906135b9565b60405180910390f35b34801561039c575f80fd5b506103a5610b8b565b6040516103b29190613586565b60405180910390f35b3480156103c6575f80fd5b506103cf610b91565b6040516103dc9190613586565b60405180910390f35b3480156103f0575f80fd5b506103f9610b97565b6040516104069190613586565b60405180910390f35b34801561041a575f80fd5b50610423610b9d565b60405161043091906137fd565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613840565b610bb2565b005b34801561046c575f80fd5b5061048760048036038101906104829190613704565b610e24565b60405161049491906135b9565b60405180910390f35b3480156104a8575f80fd5b506104b1610ed2565b6040516104be919061388d565b60405180910390f35b3480156104d2575f80fd5b506104db610ef7565b6040516104e89190613586565b60405180910390f35b3480156104fc575f80fd5b50610517600480360381019061051291906138a6565b610efd565b005b348015610524575f80fd5b5061052d610fe1565b60405161053a919061388d565b60405180910390f35b34801561054e575f80fd5b50610569600480360381019061056491906138d1565b611006565b60405161057691906135b9565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190613937565b611023565b005b3480156105b2575f80fd5b506105cd60048036038101906105c89190613792565b61118f565b005b3480156105da575f80fd5b506105f560048036038101906105f091906138a6565b611356565b604051610602919061388d565b60405180910390f35b348015610616575f80fd5b50610631600480360381019061062c91906138d1565b611391565b60405161063e9190613586565b60405180910390f35b348015610652575f80fd5b5061065b6113d7565b005b348015610668575f80fd5b5061067161152a565b60405161067e91906139bd565b60405180910390f35b348015610692575f80fd5b5061069b61154d565b005b3480156106a8575f80fd5b506106b16116ea565b6040516106be919061388d565b60405180910390f35b3480156106d2575f80fd5b506106db611712565b6040516106e8919061365c565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190613704565b6117a2565b60405161072491906135b9565b60405180910390f35b348015610738575f80fd5b50610753600480360381019061074e9190613704565b61186a565b60405161076091906135b9565b60405180910390f35b348015610774575f80fd5b5061077d611887565b60405161078a9190613586565b60405180910390f35b34801561079e575f80fd5b506107a761188d565b6040516107b491906135b9565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de91906139d6565b61189f565b005b3480156107f0575f80fd5b506107f96119a3565b005b348015610806575f80fd5b50610821600480360381019061081c9190613a14565b611a86565b60405161082e9190613586565b60405180910390f35b348015610842575f80fd5b5061085d60048036038101906108589190613840565b611b08565b005b34801561086a575f80fd5b50610885600480360381019061088091906138d1565b611c85565b60405161089291906135b9565b60405180910390f35b3480156108a6575f80fd5b506108c160048036038101906108bc91906138d1565b611ca2565b005b3480156108ce575f80fd5b506108d7611e64565b6040516108e49190613a61565b60405180910390f35b3480156108f8575f80fd5b50610913600480360381019061090e9190613a7a565b611e8e565b005b348015610920575f80fd5b50610929612130565b60405161093691906135b9565b60405180910390f35b600f5481565b600360149054906101000a900460ff1681565b6060600c805461096790613b0b565b80601f016020809104026020016040519081016040528092919081815260200182805461099390613b0b565b80156109de5780601f106109b5576101008083540402835291602001916109de565b820191905f5260205f20905b8154815290600101906020018083116109c157829003601f168201915b5050505050905090565b5f6109f4338484612143565b6001905092915050565b5f600854905090565b610a0f612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9490613b85565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b5f610ac384848461230d565b610b8084610acf612306565b610b7b856040518060600160405280602881526020016148e76028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b32612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b612143565b600190509392505050565b60125481565b600b5481565b60105481565b5f600e5f9054906101000a900460ff16905090565b610bba612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90613b85565b60405180910390fd5b80151560065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce90613bed565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600282908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e20578160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b5f610ec8610e30612306565b84610ec38560075f610e40612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b612143565b6001905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b610f05612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90613b85565b60405180910390fd5b6064811115610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90613c55565b60405180910390fd5b8060128190555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052805f5260405f205f915054906101000a900460ff1681565b61102b612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090613b85565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660135f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361114a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114190613ce3565b60405180910390fd5b8060135f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611197612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613b85565b60405180910390fd5b5f8111611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90613d71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90613dff565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611310929190613e1d565b6020604051808303815f875af115801561132c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113509190613e58565b50505050565b60028181548110611365575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6113df612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611555612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613b85565b60405180910390fd5b600360149054906101000a900460ff1615611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90613ecd565b60405180910390fd5b5f6002805490501161167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613f5b565b60405180910390fd5b6001600360146101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325760016040516116e091906135b9565b60405180910390a1565b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d805461172190613b0b565b80601f016020809104026020016040519081016040528092919081815260200182805461174d90613b0b565b80156117985780601f1061176f57610100808354040283529160200191611798565b820191905f5260205f20905b81548152906001019060200180831161177b57829003601f168201915b5050505050905090565b5f6118606117ae612306565b8461185b8560405180606001604052806025815260200161490f6025913960075f6117d7612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b612143565b6001905092915050565b5f61187d611876612306565b848461230d565b6001905092915050565b60095481565b60115f9054906101000a900460ff1681565b6118a7612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613b85565b60405180910390fd5b81600e60026101000a81548160ff0219169083151502179055508060115f6101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532578260405161199791906135b9565b60405180910390a15050565b6119ab612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613b85565b60405180910390fd5b611a416116ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611a83573d5f803e3d5ffd5b50565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b10612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590613b85565b60405180910390fd5b80151560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613bed565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b611caa612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613fe9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b611e96612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613b85565b60405180910390fd5b8284670de0b6b3a764000062989680611f3d9190614034565b611f479190614034565b611f5191906140a2565b600f819055508082670de0b6b3a764000062989680611f709190614034565b611f7a9190614034565b611f8491906140a2565b601081905550601054600f541115611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614142565b60405180910390fd5b6103e8601461200060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611391565b61200a9190614034565b61201491906140a2565b6010541115612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f906141d0565b60405180910390fd5b62989680670de0b6b3a7640000629896806120739190614034565b61207d91906140a2565b60105410156120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061425e565b60405180910390fd5b62989680670de0b6b3a7640000629896806120dc9190614034565b6120e691906140a2565b600f54101561212a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121219061425e565b60405180910390fd5b50505050565b600e60029054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a8906142ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361221f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122169061437a565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122f99190613586565b60405180910390a3505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361237b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237290614408565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e090614496565b60405180910390fd5b5f805f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561244457600192506124a2565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561249c57600191506124a1565b600190505b5b6124ad868686612fa4565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561254b575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d3c57600360149054906101000a900460ff1661259f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259690614524565b60405180910390fd5b811561265157600e60019054906101000a900460ff1661265057600e60029054906101000a900460ff161561264f575f6125d830611391565b9050600f54811061264d575f601054905060115f9054906101000a900460ff16156126375760125461262a60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611391565b6126349190614034565b90505b808210612642578091505b61264b82612fa9565b505b505b5b5b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ef575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128d7575f61271d606461270f6009548861340490919063ffffffff16565b61347b90919063ffffffff16565b905061273281866134c490919063ffffffff16565b945061279e816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061282f8160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128cd9190613586565b60405180910390a3505b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612b09575f61294f6064612941600a548861340490919063ffffffff16565b61347b90919063ffffffff16565b905061296481866134c490919063ffffffff16565b94506129d0816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612a618160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612aff9190613586565b60405180910390a3505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d3b575f612b816064612b73600b548861340490919063ffffffff16565b61347b90919063ffffffff16565b9050612b9681866134c490919063ffffffff16565b9450612c02816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612c938160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d319190613586565b60405180910390a3505b5b612da6846040518060600160405280602681526020016148c16026913960045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612e378460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612ed59190613586565b60405180910390a3505050505050565b5f838311158290612f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f23919061365c565b60405180910390fd5b505f8385612f3a9190614542565b9050809150509392505050565b5f808284612f559190614575565b905083811015612f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f91906145f2565b60405180910390fd5b8091505092915050565b505050565b6001600e60016101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414613141577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff81111561315d5761315c614610565b5b60405190808252806020026020018201604052801561318b5781602001602082028036833780820191505090505b50905030815f815181106131a2576131a161463d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613244573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613268919061467e565b8160018151811061327c5761327b61463d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613316959493929190614799565b5f604051808303815f87803b15801561332d575f80fd5b505af192505050801561333e575060015b61334857506133e7565b5f4790505f8082905060135f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b89060405161339c9061481e565b5f60405180830381858888f193505050503d805f81146133d7576040519150601f19603f3d011682016040523d82523d5f602084013e6133dc565b606091505b505080925050505050505b5f600e60016101000a81548160ff02191690831515021790555050565b5f808303613414575f9050613475565b5f82846134219190614034565b905082848261343091906140a2565b14613470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613467906148a2565b60405180910390fd5b809150505b92915050565b5f6134bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061350d565b905092915050565b5f61350583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee5565b905092915050565b5f8083118290613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a919061365c565b60405180910390fd5b505f838561356191906140a2565b9050809150509392505050565b5f819050919050565b6135808161356e565b82525050565b5f6020820190506135995f830184613577565b92915050565b5f8115159050919050565b6135b38161359f565b82525050565b5f6020820190506135cc5f8301846135aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156136095780820151818401526020810190506135ee565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61362e826135d2565b61363881856135dc565b93506136488185602086016135ec565b61365181613614565b840191505092915050565b5f6020820190508181035f8301526136748184613624565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6136a982613680565b9050919050565b6136b98161369f565b81146136c3575f80fd5b50565b5f813590506136d4816136b0565b92915050565b6136e38161356e565b81146136ed575f80fd5b50565b5f813590506136fe816136da565b92915050565b5f806040838503121561371a5761371961367c565b5b5f613727858286016136c6565b9250506020613738858286016136f0565b9150509250929050565b5f805f606084860312156137595761375861367c565b5b5f613766868287016136f0565b9350506020613777868287016136f0565b9250506040613788868287016136f0565b9150509250925092565b5f805f606084860312156137a9576137a861367c565b5b5f6137b6868287016136c6565b93505060206137c7868287016136c6565b92505060406137d8868287016136f0565b9150509250925092565b5f60ff82169050919050565b6137f7816137e2565b82525050565b5f6020820190506138105f8301846137ee565b92915050565b61381f8161359f565b8114613829575f80fd5b50565b5f8135905061383a81613816565b92915050565b5f80604083850312156138565761385561367c565b5b5f613863858286016136c6565b92505060206138748582860161382c565b9150509250929050565b6138878161369f565b82525050565b5f6020820190506138a05f83018461387e565b92915050565b5f602082840312156138bb576138ba61367c565b5b5f6138c8848285016136f0565b91505092915050565b5f602082840312156138e6576138e561367c565b5b5f6138f3848285016136c6565b91505092915050565b5f61390682613680565b9050919050565b613916816138fc565b8114613920575f80fd5b50565b5f813590506139318161390d565b92915050565b5f6020828403121561394c5761394b61367c565b5b5f61395984828501613923565b91505092915050565b5f819050919050565b5f61398561398061397b84613680565b613962565b613680565b9050919050565b5f6139968261396b565b9050919050565b5f6139a78261398c565b9050919050565b6139b78161399d565b82525050565b5f6020820190506139d05f8301846139ae565b92915050565b5f80604083850312156139ec576139eb61367c565b5b5f6139f98582860161382c565b9250506020613a0a8582860161382c565b9150509250929050565b5f8060408385031215613a2a57613a2961367c565b5b5f613a37858286016136c6565b9250506020613a48858286016136c6565b9150509250929050565b613a5b816138fc565b82525050565b5f602082019050613a745f830184613a52565b92915050565b5f805f8060808587031215613a9257613a9161367c565b5b5f613a9f878288016136f0565b9450506020613ab0878288016136f0565b9350506040613ac1878288016136f0565b9250506060613ad2878288016136f0565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613b2257607f821691505b602082108103613b3557613b34613ade565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613b6f6020836135dc565b9150613b7a82613b3b565b602082019050919050565b5f6020820190508181035f830152613b9c81613b63565b9050919050565b7f4a554943453a20416c7265616479207365742061732073616d652076616c75655f82015250565b5f613bd76020836135dc565b9150613be282613ba3565b602082019050919050565b5f6020820190508181035f830152613c0481613bcb565b9050919050565b7f43616e6e6f74207365742061626f76652031252e0000000000000000000000005f82015250565b5f613c3f6014836135dc565b9150613c4a82613c0b565b602082019050919050565b5f6020820190508181035f830152613c6c81613c33565b9050919050565b7f4a554943453a20416c7265616479207365742061732073616d652061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ccd6022836135dc565b9150613cd882613c73565b604082019050919050565b5f6020820190508181035f830152613cfa81613cc1565b9050919050565b7f4a554943453a20616d6f756e74206d75737420626520677265617465722074685f8201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b5f613d5b6024836135dc565b9150613d6682613d01565b604082019050919050565b5f6020820190508181035f830152613d8881613d4f565b9050919050565b7f4a554943453a20726563697069656e7420697320746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613de96024836135dc565b9150613df482613d8f565b604082019050919050565b5f6020820190508181035f830152613e1681613ddd565b9050919050565b5f604082019050613e305f83018561387e565b613e3d6020830184613577565b9392505050565b5f81519050613e5281613816565b92915050565b5f60208284031215613e6d57613e6c61367c565b5b5f613e7a84828501613e44565b91505092915050565b7f4a554943453a2054726164696e6720697320616c7265647920656e61626c65645f82015250565b5f613eb76020836135dc565b9150613ec282613e83565b602082019050919050565b5f6020820190508181035f830152613ee481613eab565b9050919050565b7f4a554943453a20506c656173652061646420616c6c20746865207061697273205f8201527f6669727374000000000000000000000000000000000000000000000000000000602082015250565b5f613f456025836135dc565b9150613f5082613eeb565b604082019050919050565b5f6020820190508181035f830152613f7281613f39565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613fd36026836135dc565b9150613fde82613f79565b604082019050919050565b5f6020820190508181035f83015261400081613fc7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61403e8261356e565b91506140498361356e565b92508282026140578161356e565b9150828204841483151761406e5761406d614007565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140ac8261356e565b91506140b78361356e565b9250826140c7576140c6614075565b5b828204905092915050565b7f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e745f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61412c6021836135dc565b9150614137826140d2565b604082019050919050565b5f6020820190508181035f83015261415981614120565b9050919050565b7f43616e6e6f742062652061626f7665203225206f662063757272656e742050495f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141ba6021836135dc565b91506141c582614160565b604082019050919050565b5f6020820190508181035f8301526141e7816141ae565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f665f8201527f20746f74616c20737570706c792e000000000000000000000000000000000000602082015250565b5f614248602e836135dc565b9150614253826141ee565b604082019050919050565b5f6020820190508181035f8301526142758161423c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6142d66024836135dc565b91506142e18261427c565b604082019050919050565b5f6020820190508181035f830152614303816142ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143646022836135dc565b915061436f8261430a565b604082019050919050565b5f6020820190508181035f83015261439181614358565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6143f26025836135dc565b91506143fd82614398565b604082019050919050565b5f6020820190508181035f83015261441f816143e6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6144806023836135dc565b915061448b82614426565b604082019050919050565b5f6020820190508181035f8301526144ad81614474565b9050919050565b7f45524332303a2054726164696e67206973206e6f7420656e61626c65642079655f8201527f742e2e0000000000000000000000000000000000000000000000000000000000602082015250565b5f61450e6023836135dc565b9150614519826144b4565b604082019050919050565b5f6020820190508181035f83015261453b81614502565b9050919050565b5f61454c8261356e565b91506145578361356e565b925082820390508181111561456f5761456e614007565b5b92915050565b5f61457f8261356e565b915061458a8361356e565b92508282019050808211156145a2576145a1614007565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6145dc601b836135dc565b91506145e7826145a8565b602082019050919050565b5f6020820190508181035f830152614609816145d0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614678816136b0565b92915050565b5f602082840312156146935761469261367c565b5b5f6146a08482850161466a565b91505092915050565b5f819050919050565b5f6146cc6146c76146c2846146a9565b613962565b61356e565b9050919050565b6146dc816146b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147148161369f565b82525050565b5f614725838361470b565b60208301905092915050565b5f602082019050919050565b5f614747826146e2565b61475181856146ec565b935061475c836146fc565b805f5b8381101561478c578151614773888261471a565b975061477e83614731565b92505060018101905061475f565b5085935050505092915050565b5f60a0820190506147ac5f830188613577565b6147b960208301876146d3565b81810360408301526147cb818661473d565b90506147da606083018561387e565b6147e76080830184613577565b9695505050505050565b5f81905092915050565b50565b5f6148095f836147f1565b9150614814826147fb565b5f82019050919050565b5f614828826147fe565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61488c6021836135dc565b915061489782614832565b604082019050919050565b5f6020820190508181035f8301526148b981614880565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220daa208304362ace2c1f66ff4b7582821b3ae1dbe430d84dbca1037715c3f15ca64736f6c634300081800330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061023e575f3560e01c80636a58f23f1161012d578063b7df8b36116100aa578063e5e31b131161006e578063e5e31b131461085f578063f2fde38b1461089b578063f94aa1b4146108c3578063fb78680d146108ed578063fdb78c0e1461091557610245565b8063b7df8b3614610793578063bfc2fc35146107bd578063c9b25f0f146107e5578063dd62ed3e146107fb578063e1b724a81461083757610245565b80638da5cb5b116100f15780638da5cb5b1461069d57806395d89b41146106c7578063a457c2d7146106f1578063a9059cbb1461072d578063acb2ad6f1461076957610245565b80636a58f23f146105cf57806370a082311461060b578063715018a614610647578063735de9f71461065d5780638a8c523c1461068757610245565b8063313ce567116101bb5780634e718e481161017f5780634e718e48146104f15780634f0e0ef3146105195780635342acb414610543578063694d9d171461057f5780636a395ccb146105a757610245565b8063313ce5671461040f57806332e19252146104395780633950935114610461578063452ed4f11461049d57806347062402146104c757610245565b80632242908511610202578063224290851461032d57806323b872dd1461035557806328577751146103915780632b14ca56146103bb5780632e8fa821146103e557610245565b80630445b66714610249578063064a59d01461027357806306fdde031461029d578063095ea7b3146102c757806318160ddd1461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d61093f565b60405161026a9190613586565b60405180910390f35b34801561027e575f80fd5b50610287610945565b60405161029491906135b9565b60405180910390f35b3480156102a8575f80fd5b506102b1610958565b6040516102be919061365c565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e89190613704565b6109e8565b6040516102fa91906135b9565b60405180910390f35b34801561030e575f80fd5b506103176109fe565b6040516103249190613586565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190613742565b610a07565b005b348015610360575f80fd5b5061037b60048036038101906103769190613792565b610ab7565b60405161038891906135b9565b60405180910390f35b34801561039c575f80fd5b506103a5610b8b565b6040516103b29190613586565b60405180910390f35b3480156103c6575f80fd5b506103cf610b91565b6040516103dc9190613586565b60405180910390f35b3480156103f0575f80fd5b506103f9610b97565b6040516104069190613586565b60405180910390f35b34801561041a575f80fd5b50610423610b9d565b60405161043091906137fd565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613840565b610bb2565b005b34801561046c575f80fd5b5061048760048036038101906104829190613704565b610e24565b60405161049491906135b9565b60405180910390f35b3480156104a8575f80fd5b506104b1610ed2565b6040516104be919061388d565b60405180910390f35b3480156104d2575f80fd5b506104db610ef7565b6040516104e89190613586565b60405180910390f35b3480156104fc575f80fd5b50610517600480360381019061051291906138a6565b610efd565b005b348015610524575f80fd5b5061052d610fe1565b60405161053a919061388d565b60405180910390f35b34801561054e575f80fd5b50610569600480360381019061056491906138d1565b611006565b60405161057691906135b9565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190613937565b611023565b005b3480156105b2575f80fd5b506105cd60048036038101906105c89190613792565b61118f565b005b3480156105da575f80fd5b506105f560048036038101906105f091906138a6565b611356565b604051610602919061388d565b60405180910390f35b348015610616575f80fd5b50610631600480360381019061062c91906138d1565b611391565b60405161063e9190613586565b60405180910390f35b348015610652575f80fd5b5061065b6113d7565b005b348015610668575f80fd5b5061067161152a565b60405161067e91906139bd565b60405180910390f35b348015610692575f80fd5b5061069b61154d565b005b3480156106a8575f80fd5b506106b16116ea565b6040516106be919061388d565b60405180910390f35b3480156106d2575f80fd5b506106db611712565b6040516106e8919061365c565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190613704565b6117a2565b60405161072491906135b9565b60405180910390f35b348015610738575f80fd5b50610753600480360381019061074e9190613704565b61186a565b60405161076091906135b9565b60405180910390f35b348015610774575f80fd5b5061077d611887565b60405161078a9190613586565b60405180910390f35b34801561079e575f80fd5b506107a761188d565b6040516107b491906135b9565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de91906139d6565b61189f565b005b3480156107f0575f80fd5b506107f96119a3565b005b348015610806575f80fd5b50610821600480360381019061081c9190613a14565b611a86565b60405161082e9190613586565b60405180910390f35b348015610842575f80fd5b5061085d60048036038101906108589190613840565b611b08565b005b34801561086a575f80fd5b50610885600480360381019061088091906138d1565b611c85565b60405161089291906135b9565b60405180910390f35b3480156108a6575f80fd5b506108c160048036038101906108bc91906138d1565b611ca2565b005b3480156108ce575f80fd5b506108d7611e64565b6040516108e49190613a61565b60405180910390f35b3480156108f8575f80fd5b50610913600480360381019061090e9190613a7a565b611e8e565b005b348015610920575f80fd5b50610929612130565b60405161093691906135b9565b60405180910390f35b600f5481565b600360149054906101000a900460ff1681565b6060600c805461096790613b0b565b80601f016020809104026020016040519081016040528092919081815260200182805461099390613b0b565b80156109de5780601f106109b5576101008083540402835291602001916109de565b820191905f5260205f20905b8154815290600101906020018083116109c157829003601f168201915b5050505050905090565b5f6109f4338484612143565b6001905092915050565b5f600854905090565b610a0f612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9490613b85565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b5f610ac384848461230d565b610b8084610acf612306565b610b7b856040518060600160405280602881526020016148e76028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b32612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b612143565b600190509392505050565b60125481565b600b5481565b60105481565b5f600e5f9054906101000a900460ff16905090565b610bba612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90613b85565b60405180910390fd5b80151560065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce90613bed565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600282908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e20578160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b5f610ec8610e30612306565b84610ec38560075f610e40612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b612143565b6001905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b610f05612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90613b85565b60405180910390fd5b6064811115610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90613c55565b60405180910390fd5b8060128190555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052805f5260405f205f915054906101000a900460ff1681565b61102b612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090613b85565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660135f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361114a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114190613ce3565b60405180910390fd5b8060135f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611197612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613b85565b60405180910390fd5b5f8111611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90613d71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90613dff565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611310929190613e1d565b6020604051808303815f875af115801561132c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113509190613e58565b50505050565b60028181548110611365575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6113df612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611555612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613b85565b60405180910390fd5b600360149054906101000a900460ff1615611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90613ecd565b60405180910390fd5b5f6002805490501161167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613f5b565b60405180910390fd5b6001600360146101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325760016040516116e091906135b9565b60405180910390a1565b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d805461172190613b0b565b80601f016020809104026020016040519081016040528092919081815260200182805461174d90613b0b565b80156117985780601f1061176f57610100808354040283529160200191611798565b820191905f5260205f20905b81548152906001019060200180831161177b57829003601f168201915b5050505050905090565b5f6118606117ae612306565b8461185b8560405180606001604052806025815260200161490f6025913960075f6117d7612306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b612143565b6001905092915050565b5f61187d611876612306565b848461230d565b6001905092915050565b60095481565b60115f9054906101000a900460ff1681565b6118a7612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613b85565b60405180910390fd5b81600e60026101000a81548160ff0219169083151502179055508060115f6101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532578260405161199791906135b9565b60405180910390a15050565b6119ab612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613b85565b60405180910390fd5b611a416116ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611a83573d5f803e3d5ffd5b50565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b10612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590613b85565b60405180910390fd5b80151560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613bed565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b611caa612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613fe9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b611e96612306565b73ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613b85565b60405180910390fd5b8284670de0b6b3a764000062989680611f3d9190614034565b611f479190614034565b611f5191906140a2565b600f819055508082670de0b6b3a764000062989680611f709190614034565b611f7a9190614034565b611f8491906140a2565b601081905550601054600f541115611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614142565b60405180910390fd5b6103e8601461200060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611391565b61200a9190614034565b61201491906140a2565b6010541115612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f906141d0565b60405180910390fd5b62989680670de0b6b3a7640000629896806120739190614034565b61207d91906140a2565b60105410156120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061425e565b60405180910390fd5b62989680670de0b6b3a7640000629896806120dc9190614034565b6120e691906140a2565b600f54101561212a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121219061425e565b60405180910390fd5b50505050565b600e60029054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a8906142ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361221f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122169061437a565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122f99190613586565b60405180910390a3505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361237b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237290614408565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e090614496565b60405180910390fd5b5f805f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561244457600192506124a2565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561249c57600191506124a1565b600190505b5b6124ad868686612fa4565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561254b575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d3c57600360149054906101000a900460ff1661259f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259690614524565b60405180910390fd5b811561265157600e60019054906101000a900460ff1661265057600e60029054906101000a900460ff161561264f575f6125d830611391565b9050600f54811061264d575f601054905060115f9054906101000a900460ff16156126375760125461262a60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611391565b6126349190614034565b90505b808210612642578091505b61264b82612fa9565b505b505b5b5b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ef575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128d7575f61271d606461270f6009548861340490919063ffffffff16565b61347b90919063ffffffff16565b905061273281866134c490919063ffffffff16565b945061279e816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061282f8160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128cd9190613586565b60405180910390a3505b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612b09575f61294f6064612941600a548861340490919063ffffffff16565b61347b90919063ffffffff16565b905061296481866134c490919063ffffffff16565b94506129d0816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612a618160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612aff9190613586565b60405180910390a3505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d3b575f612b816064612b73600b548861340490919063ffffffff16565b61347b90919063ffffffff16565b9050612b9681866134c490919063ffffffff16565b9450612c02816040518060600160405280602681526020016148c16026913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612c938160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d319190613586565b60405180910390a3505b5b612da6846040518060600160405280602681526020016148c16026913960045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ee59092919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612e378460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4790919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612ed59190613586565b60405180910390a3505050505050565b5f838311158290612f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f23919061365c565b60405180910390fd5b505f8385612f3a9190614542565b9050809150509392505050565b5f808284612f559190614575565b905083811015612f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f91906145f2565b60405180910390fd5b8091505092915050565b505050565b6001600e60016101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414613141577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff81111561315d5761315c614610565b5b60405190808252806020026020018201604052801561318b5781602001602082028036833780820191505090505b50905030815f815181106131a2576131a161463d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613244573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613268919061467e565b8160018151811061327c5761327b61463d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613316959493929190614799565b5f604051808303815f87803b15801561332d575f80fd5b505af192505050801561333e575060015b61334857506133e7565b5f4790505f8082905060135f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b89060405161339c9061481e565b5f60405180830381858888f193505050503d805f81146133d7576040519150601f19603f3d011682016040523d82523d5f602084013e6133dc565b606091505b505080925050505050505b5f600e60016101000a81548160ff02191690831515021790555050565b5f808303613414575f9050613475565b5f82846134219190614034565b905082848261343091906140a2565b14613470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613467906148a2565b60405180910390fd5b809150505b92915050565b5f6134bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061350d565b905092915050565b5f61350583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee5565b905092915050565b5f8083118290613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a919061365c565b60405180910390fd5b505f838561356191906140a2565b9050809150509392505050565b5f819050919050565b6135808161356e565b82525050565b5f6020820190506135995f830184613577565b92915050565b5f8115159050919050565b6135b38161359f565b82525050565b5f6020820190506135cc5f8301846135aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156136095780820151818401526020810190506135ee565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61362e826135d2565b61363881856135dc565b93506136488185602086016135ec565b61365181613614565b840191505092915050565b5f6020820190508181035f8301526136748184613624565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6136a982613680565b9050919050565b6136b98161369f565b81146136c3575f80fd5b50565b5f813590506136d4816136b0565b92915050565b6136e38161356e565b81146136ed575f80fd5b50565b5f813590506136fe816136da565b92915050565b5f806040838503121561371a5761371961367c565b5b5f613727858286016136c6565b9250506020613738858286016136f0565b9150509250929050565b5f805f606084860312156137595761375861367c565b5b5f613766868287016136f0565b9350506020613777868287016136f0565b9250506040613788868287016136f0565b9150509250925092565b5f805f606084860312156137a9576137a861367c565b5b5f6137b6868287016136c6565b93505060206137c7868287016136c6565b92505060406137d8868287016136f0565b9150509250925092565b5f60ff82169050919050565b6137f7816137e2565b82525050565b5f6020820190506138105f8301846137ee565b92915050565b61381f8161359f565b8114613829575f80fd5b50565b5f8135905061383a81613816565b92915050565b5f80604083850312156138565761385561367c565b5b5f613863858286016136c6565b92505060206138748582860161382c565b9150509250929050565b6138878161369f565b82525050565b5f6020820190506138a05f83018461387e565b92915050565b5f602082840312156138bb576138ba61367c565b5b5f6138c8848285016136f0565b91505092915050565b5f602082840312156138e6576138e561367c565b5b5f6138f3848285016136c6565b91505092915050565b5f61390682613680565b9050919050565b613916816138fc565b8114613920575f80fd5b50565b5f813590506139318161390d565b92915050565b5f6020828403121561394c5761394b61367c565b5b5f61395984828501613923565b91505092915050565b5f819050919050565b5f61398561398061397b84613680565b613962565b613680565b9050919050565b5f6139968261396b565b9050919050565b5f6139a78261398c565b9050919050565b6139b78161399d565b82525050565b5f6020820190506139d05f8301846139ae565b92915050565b5f80604083850312156139ec576139eb61367c565b5b5f6139f98582860161382c565b9250506020613a0a8582860161382c565b9150509250929050565b5f8060408385031215613a2a57613a2961367c565b5b5f613a37858286016136c6565b9250506020613a48858286016136c6565b9150509250929050565b613a5b816138fc565b82525050565b5f602082019050613a745f830184613a52565b92915050565b5f805f8060808587031215613a9257613a9161367c565b5b5f613a9f878288016136f0565b9450506020613ab0878288016136f0565b9350506040613ac1878288016136f0565b9250506060613ad2878288016136f0565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613b2257607f821691505b602082108103613b3557613b34613ade565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613b6f6020836135dc565b9150613b7a82613b3b565b602082019050919050565b5f6020820190508181035f830152613b9c81613b63565b9050919050565b7f4a554943453a20416c7265616479207365742061732073616d652076616c75655f82015250565b5f613bd76020836135dc565b9150613be282613ba3565b602082019050919050565b5f6020820190508181035f830152613c0481613bcb565b9050919050565b7f43616e6e6f74207365742061626f76652031252e0000000000000000000000005f82015250565b5f613c3f6014836135dc565b9150613c4a82613c0b565b602082019050919050565b5f6020820190508181035f830152613c6c81613c33565b9050919050565b7f4a554943453a20416c7265616479207365742061732073616d652061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ccd6022836135dc565b9150613cd882613c73565b604082019050919050565b5f6020820190508181035f830152613cfa81613cc1565b9050919050565b7f4a554943453a20616d6f756e74206d75737420626520677265617465722074685f8201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b5f613d5b6024836135dc565b9150613d6682613d01565b604082019050919050565b5f6020820190508181035f830152613d8881613d4f565b9050919050565b7f4a554943453a20726563697069656e7420697320746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613de96024836135dc565b9150613df482613d8f565b604082019050919050565b5f6020820190508181035f830152613e1681613ddd565b9050919050565b5f604082019050613e305f83018561387e565b613e3d6020830184613577565b9392505050565b5f81519050613e5281613816565b92915050565b5f60208284031215613e6d57613e6c61367c565b5b5f613e7a84828501613e44565b91505092915050565b7f4a554943453a2054726164696e6720697320616c7265647920656e61626c65645f82015250565b5f613eb76020836135dc565b9150613ec282613e83565b602082019050919050565b5f6020820190508181035f830152613ee481613eab565b9050919050565b7f4a554943453a20506c656173652061646420616c6c20746865207061697273205f8201527f6669727374000000000000000000000000000000000000000000000000000000602082015250565b5f613f456025836135dc565b9150613f5082613eeb565b604082019050919050565b5f6020820190508181035f830152613f7281613f39565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613fd36026836135dc565b9150613fde82613f79565b604082019050919050565b5f6020820190508181035f83015261400081613fc7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61403e8261356e565b91506140498361356e565b92508282026140578161356e565b9150828204841483151761406e5761406d614007565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140ac8261356e565b91506140b78361356e565b9250826140c7576140c6614075565b5b828204905092915050565b7f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e745f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61412c6021836135dc565b9150614137826140d2565b604082019050919050565b5f6020820190508181035f83015261415981614120565b9050919050565b7f43616e6e6f742062652061626f7665203225206f662063757272656e742050495f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141ba6021836135dc565b91506141c582614160565b604082019050919050565b5f6020820190508181035f8301526141e7816141ae565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f665f8201527f20746f74616c20737570706c792e000000000000000000000000000000000000602082015250565b5f614248602e836135dc565b9150614253826141ee565b604082019050919050565b5f6020820190508181035f8301526142758161423c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6142d66024836135dc565b91506142e18261427c565b604082019050919050565b5f6020820190508181035f830152614303816142ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143646022836135dc565b915061436f8261430a565b604082019050919050565b5f6020820190508181035f83015261439181614358565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6143f26025836135dc565b91506143fd82614398565b604082019050919050565b5f6020820190508181035f83015261441f816143e6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6144806023836135dc565b915061448b82614426565b604082019050919050565b5f6020820190508181035f8301526144ad81614474565b9050919050565b7f45524332303a2054726164696e67206973206e6f7420656e61626c65642079655f8201527f742e2e0000000000000000000000000000000000000000000000000000000000602082015250565b5f61450e6023836135dc565b9150614519826144b4565b604082019050919050565b5f6020820190508181035f83015261453b81614502565b9050919050565b5f61454c8261356e565b91506145578361356e565b925082820390508181111561456f5761456e614007565b5b92915050565b5f61457f8261356e565b915061458a8361356e565b92508282019050808211156145a2576145a1614007565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6145dc601b836135dc565b91506145e7826145a8565b602082019050919050565b5f6020820190508181035f830152614609816145d0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614678816136b0565b92915050565b5f602082840312156146935761469261367c565b5b5f6146a08482850161466a565b91505092915050565b5f819050919050565b5f6146cc6146c76146c2846146a9565b613962565b61356e565b9050919050565b6146dc816146b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147148161369f565b82525050565b5f614725838361470b565b60208301905092915050565b5f602082019050919050565b5f614747826146e2565b61475181856146ec565b935061475c836146fc565b805f5b8381101561478c578151614773888261471a565b975061477e83614731565b92505060018101905061475f565b5085935050505092915050565b5f60a0820190506147ac5f830188613577565b6147b960208301876146d3565b81810360408301526147cb818661473d565b90506147da606083018561387e565b6147e76080830184613577565b9695505050505050565b5f81905092915050565b50565b5f6148095f836147f1565b9150614814826147fb565b5f82019050919050565b5f614828826147fe565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61488c6021836135dc565b915061489782614832565b604082019050919050565b5f6020820190508181035f8301526148b981614880565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220daa208304362ace2c1f66ff4b7582821b3ae1dbe430d84dbca1037715c3f15ca64736f6c63430008180033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


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.