ETH Price: $3,428.02 (+3.24%)

Token

MICHI on ETH (michi)
 

Overview

Max Total Supply

1,000,000,000 michi

Holders

808

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,844,560.609057611736586334 michi

Value
$0.00
0x16c9a382850a24d0693fabab76474096ae5662db
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MichiOnETH

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-19
*/

/**
// SPDX-License-Identifier: MIT


███╗░░░███╗██╗░█████╗░██╗░░██╗██╗  ░█████╗░███╗░░██╗  ███████╗████████╗██╗░░██╗
████╗░████║██║██╔══██╗██║░░██║██║  ██╔══██╗████╗░██║  ██╔════╝╚══██╔══╝██║░░██║
██╔████╔██║██║██║░░╚═╝███████║██║  ██║░░██║██╔██╗██║  █████╗░░░░░██║░░░███████║
██║╚██╔╝██║██║██║░░██╗██╔══██║██║  ██║░░██║██║╚████║  ██╔══╝░░░░░██║░░░██╔══██║
██║░╚═╝░██║██║╚█████╔╝██║░░██║██║  ╚█████╔╝██║░╚███║  ███████╗░░░██║░░░██║░░██║
╚═╝░░░░░╚═╝╚═╝░╚════╝░╚═╝░░╚═╝╚═╝  ░╚════╝░╚═╝░░╚══╝  ╚══════╝░░░╚═╝░░░╚═╝░░╚═╝



Website:https://michieth.xyz
Twitter:https://x.com/michiethtoken
Tg:https://t.me/michitokeneth

*/

pragma solidity = 0.8.25;
pragma experimental ABIEncoderV2;

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

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract MichiOnETH is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "MICHI on ETH";
    string private constant _symbol = "michi";

    uint256 public initialTotalSupply = 1000000000 * 1e18;
    uint256 public maxTransactionAmount = 20000000 * 1e18;
    uint256 public maxWallet = 20000000 * 1e18;
    uint256 public swapTokensAtAmount = 10000000 * 1e18;

    bool public tradingOpen = false;

    uint256 public BuyFee = 15;
    uint256 public SellFee = 35;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) private {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

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

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

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

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

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

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } 
                
                else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0 && !isTransfer;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping && !isTransfer;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

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

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

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

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

   function removesLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearstuckEth() external {
        require(_msgSender() == deployerWallet);
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(address tokenAddress) external {
        require(_msgSender() == deployerWallet);
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(deployerWallet, balance);
    }

    function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20 && _sellFee <= 60, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualSwaps(uint256 percent) external {
        require(_msgSender() == deployerWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (percent == 100) {
            tokensToSwap = contractBalance;
        } else {
            tokensToSwap = totalSupplyAmount * percent / 100;
            if (tokensToSwap > contractBalance) {
                tokensToSwap = contractBalance;
            }
        }

        require(tokensToSwap <= contractBalance, "Swap amount exceeds contract balance");
        swapTokensForEth(tokensToSwap);
    }

        function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(tokensToSwap);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearstuckEth","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526b033b2e3c9fd0803ce80000006009556a108b2a2c28029094000000600a556a108b2a2c28029094000000600b556a084595161401484a000000600c555f600d5f6101000a81548160ff021916908315150217905550600f600e556023600f5534801561006f575f80fd5b5060405161446c38038061446c8339818101604052810190610091919061094c565b6040518060400160405280600c81526020017f4d49434849206f6e2045544800000000000000000000000000000000000000008152506040518060400160405280600581526020017f6d69636869000000000000000000000000000000000000000000000000000000815250816003908161010c9190610bb1565b50806004908161011c9190610bb1565b50505061013b6101306104fc60201b60201c565b61050360201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f2919061094c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027d919061094c565b6040518363ffffffff1660e01b815260040161029a929190610c8f565b6020604051808303815f875af11580156102b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102da919061094c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016105c660201b60201c565b61037d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161066460201b60201c565b610390608051600161066460201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103de6104fc60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043b61042e6106bc60201b60201c565b60016106e460201b60201c565b61044c3060016106e460201b60201c565b61045d8160016106e460201b60201c565b61047061dead60016106e460201b60201c565b61048e6104816106bc60201b60201c565b600161066460201b60201c565b61049f30600161066460201b60201c565b6104b081600161066460201b60201c565b6104c361dead600161066460201b60201c565b6104f660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095461078a60201b60201c565b50610de9565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161077e9190610cd0565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90610d43565b60405180910390fd5b6108095f83836108e460201b60201c565b8060025f82825461081a9190610d8e565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108c79190610dd0565b60405180910390a36108e05f83836108e960201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61091b826108f2565b9050919050565b61092b81610911565b8114610935575f80fd5b50565b5f8151905061094681610922565b92915050565b5f60208284031215610961576109606108ee565b5b5f61096e84828501610938565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806109f257607f821691505b602082108103610a0557610a046109ae565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610a677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a2c565b610a718683610a2c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610ab5610ab0610aab84610a89565b610a92565b610a89565b9050919050565b5f819050919050565b610ace83610a9b565b610ae2610ada82610abc565b848454610a38565b825550505050565b5f90565b610af6610aea565b610b01818484610ac5565b505050565b5b81811015610b2457610b195f82610aee565b600181019050610b07565b5050565b601f821115610b6957610b3a81610a0b565b610b4384610a1d565b81016020851015610b52578190505b610b66610b5e85610a1d565b830182610b06565b50505b505050565b5f82821c905092915050565b5f610b895f1984600802610b6e565b1980831691505092915050565b5f610ba18383610b7a565b9150826002028217905092915050565b610bba82610977565b67ffffffffffffffff811115610bd357610bd2610981565b5b610bdd82546109db565b610be8828285610b28565b5f60209050601f831160018114610c19575f8415610c07578287015190505b610c118582610b96565b865550610c78565b601f198416610c2786610a0b565b5f5b82811015610c4e57848901518255600182019150602085019450602081019050610c29565b86831015610c6b5784890151610c67601f891682610b7a565b8355505b6001600288020188555050505b505050505050565b610c8981610911565b82525050565b5f604082019050610ca25f830185610c80565b610caf6020830184610c80565b9392505050565b5f8115159050919050565b610cca81610cb6565b82525050565b5f602082019050610ce35f830184610cc1565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610d2d601f83610ce9565b9150610d3882610cf9565b602082019050919050565b5f6020820190508181035f830152610d5a81610d21565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d9882610a89565b9150610da383610a89565b9250828201905080821115610dbb57610dba610d61565b5b92915050565b610dca81610a89565b82525050565b5f602082019050610de35f830184610dc1565b92915050565b608051613656610e165f395f8181610b0201528181611e8701528181611f660152611f8d01526136565ff3fe6080604052600436106101db575f3560e01c80638da5cb5b11610101578063cf9522fd11610094578063e2f4560511610063578063e2f456051461068a578063f2fde38b146106b4578063f8b45b05146106dc578063ffb54a9914610706576101e2565b8063cf9522fd146105e4578063dbb859c81461060e578063dd62ed3e14610624578063dd85465214610660576101e2565b8063a9059cbb116100d0578063a9059cbb14610540578063afa4f3b21461057c578063c8c8ebe4146105a4578063c9567bf9146105ce576101e2565b80638da5cb5b1461048857806395d89b41146104b25780639a7a23d6146104dc578063a457c2d714610504576101e2565b80633950935111610179578063583e056811610148578063583e0568146103e457806370a082311461040e578063715018a61461044a5780638d2e14ca14610460576101e2565b8063395093511461032e5780633be6e6371461036a57806346073115146103925780634fbee193146103a8576101e2565b806323b872dd116101b557806323b872dd14610276578063311028af146102b2578063313ce567146102dc578063346cc7be14610306576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610730565b6040516102079190612576565b60405180910390f35b34801561021b575f80fd5b5061023660048036038101906102319190612627565b6107c0565b604051610243919061267f565b60405180910390f35b348015610257575f80fd5b506102606107e2565b60405161026d91906126a7565b60405180910390f35b348015610281575f80fd5b5061029c600480360381019061029791906126c0565b6107eb565b6040516102a9919061267f565b60405180910390f35b3480156102bd575f80fd5b506102c6610819565b6040516102d391906126a7565b60405180910390f35b3480156102e7575f80fd5b506102f061081f565b6040516102fd919061272b565b60405180910390f35b348015610311575f80fd5b5061032c60048036038101906103279190612744565b610827565b005b348015610339575f80fd5b50610354600480360381019061034f9190612627565b6109e9565b604051610361919061267f565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061276f565b610a1f565b005b34801561039d575f80fd5b506103a6610a8a565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190612744565b610aae565b6040516103db919061267f565b60405180910390f35b3480156103ef575f80fd5b506103f8610b00565b6040516104059190612808565b60405180910390f35b348015610419575f80fd5b50610434600480360381019061042f9190612744565b610b24565b60405161044191906126a7565b60405180910390f35b348015610455575f80fd5b5061045e610b69565b005b34801561046b575f80fd5b5061048660048036038101906104819190612821565b610b7c565b005b348015610493575f80fd5b5061049c610c7c565b6040516104a9919061285b565b60405180910390f35b3480156104bd575f80fd5b506104c6610ca4565b6040516104d39190612576565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd919061289e565b610d34565b005b34801561050f575f80fd5b5061052a60048036038101906105259190612627565b610dd9565b604051610537919061267f565b60405180910390f35b34801561054b575f80fd5b5061056660048036038101906105619190612627565b610e4e565b604051610573919061267f565b60405180910390f35b348015610587575f80fd5b506105a2600480360381019061059d9190612821565b610e70565b005b3480156105af575f80fd5b506105b8610e95565b6040516105c591906126a7565b60405180910390f35b3480156105d9575f80fd5b506105e2610e9b565b005b3480156105ef575f80fd5b506105f8610ebf565b60405161060591906126a7565b60405180910390f35b348015610619575f80fd5b50610622610ec5565b005b34801561062f575f80fd5b5061064a600480360381019061064591906128dc565b610fac565b60405161065791906126a7565b60405180910390f35b34801561066b575f80fd5b5061067461102e565b60405161068191906126a7565b60405180910390f35b348015610695575f80fd5b5061069e611034565b6040516106ab91906126a7565b60405180910390f35b3480156106bf575f80fd5b506106da60048036038101906106d59190612744565b61103a565b005b3480156106e7575f80fd5b506106f06110bc565b6040516106fd91906126a7565b60405180910390f35b348015610711575f80fd5b5061071a6110c2565b604051610727919061267f565b60405180910390f35b60606003805461073f90612947565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612947565b80156107b65780601f1061078d576101008083540402835291602001916107b6565b820191905f5260205f20905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b5f806107ca6110d4565b90506107d78185856110db565b600191505092915050565b5f600254905090565b5f806107f56110d4565b905061080285828561129e565b61080d858585611329565b60019150509392505050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108676110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610886575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c4919061285b565b602060405180830381865afa1580156108df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610903919061298b565b90505f8111610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e90612a00565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109a3929190612a1e565b6020604051808303815f875af11580156109bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e39190612a59565b50505050565b5f806109f36110d4565b9050610a14818585610a058589610fac565b610a0f9190612ab1565b6110db565b600191505092915050565b610a27611ca9565b60148211158015610a395750603c8111155b610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90612b2e565b60405180910390fd5b81600e8190555080600f819055505050565b610a92611ca9565b5f610a9b6107e2565b905080600a8190555080600b8190555050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b71611ca9565b610b7a5f611d27565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bbc6110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610bdb575f80fd5b5f610be46107e2565b90505f610bf030610b24565b90505f60648403610c0357819050610c2a565b60648484610c119190612b4c565b610c1b9190612bba565b905081811115610c29578190505b5b81811115610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612c5a565b60405180910390fd5b610c7681611dea565b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cb390612947565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdf90612947565b8015610d2a5780601f10610d0157610100808354040283529160200191610d2a565b820191905f5260205f20905b815481529060010190602001808311610d0d57829003601f168201915b5050505050905090565b610d3c611ca9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290612ce8565b60405180910390fd5b610dd5828261203e565b5050565b5f80610de36110d4565b90505f610df08286610fac565b905083811015610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90612d76565b60405180910390fd5b610e4282868684036110db565b60019250505092915050565b5f80610e586110d4565b9050610e65818585611329565b600191505092915050565b610e78611ca9565b670de0b6b3a764000081610e8c9190612b4c565b600c8190555050565b600a5481565b610ea3611ca9565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f056110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610f24575f80fd5b5f4711610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d90612dde565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fa9573d5f803e3d5ffd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b611042611ca9565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790612e6c565b60405180910390fd5b6110b981611d27565b50565b600b5481565b600d5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114090612efa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90612f88565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129191906126a7565b60405180910390a3505050565b5f6112a98484610fac565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113235781811015611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612ff0565b60405180910390fd5b61132284848484036110db565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e9061307e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc9061310c565b60405180910390fd5b5f810361141c5761141783835f6120dc565b611ca4565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114bb575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506114c5610c7c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115335750611503610c7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561156b57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115be5750600860149054906101000a900460ff16155b1561198b57600d5f9054906101000a900460ff166116b15760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611671575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613174565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561174e575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f557600a54821115611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90613202565b60405180910390fd5b600b546117a484610b24565b836117af9190612ab1565b11156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e79061326a565b60405180910390fd5b61198a565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611892575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e157600a548211156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d3906132f8565b60405180910390fd5b611989565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198857600b5461193b84610b24565b836119469190612ab1565b1115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e9061326a565b60405180910390fd5b5b5b5b5b5f61199530610b24565b90505f80821180156119a5575082155b90508080156119c15750600860149054906101000a900460ff16155b8015611a14575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a67575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aba575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611afe576001600860146101000a81548160ff021916908315150217905550611ae384612348565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611b1a575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bb7575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611bc0575f90505b5f8115611c935760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c4557611c3e6064611c30600f54896124d290919063ffffffff16565b6124e790919063ffffffff16565b9050611c70565b611c6d6064611c5f600e54896124d290919063ffffffff16565b6124e790919063ffffffff16565b90505b5f811115611c8457611c838830836120dc565b5b8086611c909190613316565b95505b611c9e8888886120dc565b50505050505b505050565b611cb16110d4565b73ffffffffffffffffffffffffffffffffffffffff16611ccf610c7c565b73ffffffffffffffffffffffffffffffffffffffff1614611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90613393565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115611e0657611e056133b1565b5b604051908082528060200260200182016040528015611e345781602001602082028036833780820191505090505b50905030815f81518110611e4b57611e4a6133de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f12919061341f565b81600181518110611f2657611f256133de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8b307f0000000000000000000000000000000000000000000000000000000000000000846110db565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161200d95949392919061353a565b5f604051808303815f87803b158015612024575f80fd5b505af1158015612036573d5f803e3d5ffd5b505050505050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419061307e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af9061310c565b60405180910390fd5b6121c38383836124fc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d90613602565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161232f91906126a7565b60405180910390a3612342848484612501565b50505050565b5f61235230610b24565b90505f8082036123635750506124cf565b5f600f54600e546123749190612ab1565b036123ee575f821180156123895750600c5482105b15612396578190506123e9565b5f6123bf60646123b1600f54876124d290919063ffffffff16565b6124e790919063ffffffff16565b905080846123cd9190613316565b9350600c548411156123e357600c5491506123e7565b8391505b505b6124c3565b5f82118015612411575061240e6005600c546124e790919063ffffffff16565b82105b1561241d5750506124cf565b5f82118015612440575061243d6005600c546124e790919063ffffffff16565b82115b801561244d5750600c5482105b1561246f576124686005600c546124e790919063ffffffff16565b90506124c2565b5f612498606461248a600f54876124d290919063ffffffff16565b6124e790919063ffffffff16565b905080846124a69190613316565b9350600c548411156124bc57600c5491506124c0565b8391505b505b5b6124cc81611dea565b50505b50565b5f81836124df9190612b4c565b905092915050565b5f81836124f49190612bba565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61254882612506565b6125528185612510565b9350612562818560208601612520565b61256b8161252e565b840191505092915050565b5f6020820190508181035f83015261258e818461253e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125c38261259a565b9050919050565b6125d3816125b9565b81146125dd575f80fd5b50565b5f813590506125ee816125ca565b92915050565b5f819050919050565b612606816125f4565b8114612610575f80fd5b50565b5f81359050612621816125fd565b92915050565b5f806040838503121561263d5761263c612596565b5b5f61264a858286016125e0565b925050602061265b85828601612613565b9150509250929050565b5f8115159050919050565b61267981612665565b82525050565b5f6020820190506126925f830184612670565b92915050565b6126a1816125f4565b82525050565b5f6020820190506126ba5f830184612698565b92915050565b5f805f606084860312156126d7576126d6612596565b5b5f6126e4868287016125e0565b93505060206126f5868287016125e0565b925050604061270686828701612613565b9150509250925092565b5f60ff82169050919050565b61272581612710565b82525050565b5f60208201905061273e5f83018461271c565b92915050565b5f6020828403121561275957612758612596565b5b5f612766848285016125e0565b91505092915050565b5f806040838503121561278557612784612596565b5b5f61279285828601612613565b92505060206127a385828601612613565b9150509250929050565b5f819050919050565b5f6127d06127cb6127c68461259a565b6127ad565b61259a565b9050919050565b5f6127e1826127b6565b9050919050565b5f6127f2826127d7565b9050919050565b612802816127e8565b82525050565b5f60208201905061281b5f8301846127f9565b92915050565b5f6020828403121561283657612835612596565b5b5f61284384828501612613565b91505092915050565b612855816125b9565b82525050565b5f60208201905061286e5f83018461284c565b92915050565b61287d81612665565b8114612887575f80fd5b50565b5f8135905061289881612874565b92915050565b5f80604083850312156128b4576128b3612596565b5b5f6128c1858286016125e0565b92505060206128d28582860161288a565b9150509250929050565b5f80604083850312156128f2576128f1612596565b5b5f6128ff858286016125e0565b9250506020612910858286016125e0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061295e57607f821691505b6020821081036129715761297061291a565b5b50919050565b5f81519050612985816125fd565b92915050565b5f602082840312156129a05761299f612596565b5b5f6129ad84828501612977565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f6129ea601283612510565b91506129f5826129b6565b602082019050919050565b5f6020820190508181035f830152612a17816129de565b9050919050565b5f604082019050612a315f83018561284c565b612a3e6020830184612698565b9392505050565b5f81519050612a5381612874565b92915050565b5f60208284031215612a6e57612a6d612596565b5b5f612a7b84828501612a45565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612abb826125f4565b9150612ac6836125f4565b9250828201905080821115612ade57612add612a84565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612b18601683612510565b9150612b2382612ae4565b602082019050919050565b5f6020820190508181035f830152612b4581612b0c565b9050919050565b5f612b56826125f4565b9150612b61836125f4565b9250828202612b6f816125f4565b91508282048414831517612b8657612b85612a84565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc4826125f4565b9150612bcf836125f4565b925082612bdf57612bde612b8d565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f612c44602483612510565b9150612c4f82612bea565b604082019050919050565b5f6020820190508181035f830152612c7181612c38565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612cd2603983612510565b9150612cdd82612c78565b604082019050919050565b5f6020820190508181035f830152612cff81612cc6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612d60602583612510565b9150612d6b82612d06565b604082019050919050565b5f6020820190508181035f830152612d8d81612d54565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612dc8601683612510565b9150612dd382612d94565b602082019050919050565b5f6020820190508181035f830152612df581612dbc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e56602683612510565b9150612e6182612dfc565b604082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ee4602483612510565b9150612eef82612e8a565b604082019050919050565b5f6020820190508181035f830152612f1181612ed8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f72602283612510565b9150612f7d82612f18565b604082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612fda601d83612510565b9150612fe582612fa6565b602082019050919050565b5f6020820190508181035f83015261300781612fce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613068602583612510565b91506130738261300e565b604082019050919050565b5f6020820190508181035f8301526130958161305c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130f6602383612510565b91506131018261309c565b604082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61315e601683612510565b91506131698261312a565b602082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6131ec603583612510565b91506131f782613192565b604082019050919050565b5f6020820190508181035f830152613219816131e0565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613254601383612510565b915061325f82613220565b602082019050919050565b5f6020820190508181035f83015261328181613248565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6132e2603683612510565b91506132ed82613288565b604082019050919050565b5f6020820190508181035f83015261330f816132d6565b9050919050565b5f613320826125f4565b915061332b836125f4565b925082820390508181111561334357613342612a84565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61337d602083612510565b915061338882613349565b602082019050919050565b5f6020820190508181035f8301526133aa81613371565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613419816125ca565b92915050565b5f6020828403121561343457613433612596565b5b5f6134418482850161340b565b91505092915050565b5f819050919050565b5f61346d6134686134638461344a565b6127ad565b6125f4565b9050919050565b61347d81613453565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134b5816125b9565b82525050565b5f6134c683836134ac565b60208301905092915050565b5f602082019050919050565b5f6134e882613483565b6134f2818561348d565b93506134fd8361349d565b805f5b8381101561352d57815161351488826134bb565b975061351f836134d2565b925050600181019050613500565b5085935050505092915050565b5f60a08201905061354d5f830188612698565b61355a6020830187613474565b818103604083015261356c81866134de565b905061357b606083018561284c565b6135886080830184612698565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6135ec602683612510565b91506135f782613592565b604082019050919050565b5f6020820190508181035f830152613619816135e0565b905091905056fea26469706673582212200efc32917b749edbeb0fd0b39e958c20be71f0562ad85e80b6e85732d560ffcf64736f6c6343000819003300000000000000000000000068804d9f693b985c010236fd27821409382eedea

Deployed Bytecode

0x6080604052600436106101db575f3560e01c80638da5cb5b11610101578063cf9522fd11610094578063e2f4560511610063578063e2f456051461068a578063f2fde38b146106b4578063f8b45b05146106dc578063ffb54a9914610706576101e2565b8063cf9522fd146105e4578063dbb859c81461060e578063dd62ed3e14610624578063dd85465214610660576101e2565b8063a9059cbb116100d0578063a9059cbb14610540578063afa4f3b21461057c578063c8c8ebe4146105a4578063c9567bf9146105ce576101e2565b80638da5cb5b1461048857806395d89b41146104b25780639a7a23d6146104dc578063a457c2d714610504576101e2565b80633950935111610179578063583e056811610148578063583e0568146103e457806370a082311461040e578063715018a61461044a5780638d2e14ca14610460576101e2565b8063395093511461032e5780633be6e6371461036a57806346073115146103925780634fbee193146103a8576101e2565b806323b872dd116101b557806323b872dd14610276578063311028af146102b2578063313ce567146102dc578063346cc7be14610306576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610730565b6040516102079190612576565b60405180910390f35b34801561021b575f80fd5b5061023660048036038101906102319190612627565b6107c0565b604051610243919061267f565b60405180910390f35b348015610257575f80fd5b506102606107e2565b60405161026d91906126a7565b60405180910390f35b348015610281575f80fd5b5061029c600480360381019061029791906126c0565b6107eb565b6040516102a9919061267f565b60405180910390f35b3480156102bd575f80fd5b506102c6610819565b6040516102d391906126a7565b60405180910390f35b3480156102e7575f80fd5b506102f061081f565b6040516102fd919061272b565b60405180910390f35b348015610311575f80fd5b5061032c60048036038101906103279190612744565b610827565b005b348015610339575f80fd5b50610354600480360381019061034f9190612627565b6109e9565b604051610361919061267f565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061276f565b610a1f565b005b34801561039d575f80fd5b506103a6610a8a565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190612744565b610aae565b6040516103db919061267f565b60405180910390f35b3480156103ef575f80fd5b506103f8610b00565b6040516104059190612808565b60405180910390f35b348015610419575f80fd5b50610434600480360381019061042f9190612744565b610b24565b60405161044191906126a7565b60405180910390f35b348015610455575f80fd5b5061045e610b69565b005b34801561046b575f80fd5b5061048660048036038101906104819190612821565b610b7c565b005b348015610493575f80fd5b5061049c610c7c565b6040516104a9919061285b565b60405180910390f35b3480156104bd575f80fd5b506104c6610ca4565b6040516104d39190612576565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd919061289e565b610d34565b005b34801561050f575f80fd5b5061052a60048036038101906105259190612627565b610dd9565b604051610537919061267f565b60405180910390f35b34801561054b575f80fd5b5061056660048036038101906105619190612627565b610e4e565b604051610573919061267f565b60405180910390f35b348015610587575f80fd5b506105a2600480360381019061059d9190612821565b610e70565b005b3480156105af575f80fd5b506105b8610e95565b6040516105c591906126a7565b60405180910390f35b3480156105d9575f80fd5b506105e2610e9b565b005b3480156105ef575f80fd5b506105f8610ebf565b60405161060591906126a7565b60405180910390f35b348015610619575f80fd5b50610622610ec5565b005b34801561062f575f80fd5b5061064a600480360381019061064591906128dc565b610fac565b60405161065791906126a7565b60405180910390f35b34801561066b575f80fd5b5061067461102e565b60405161068191906126a7565b60405180910390f35b348015610695575f80fd5b5061069e611034565b6040516106ab91906126a7565b60405180910390f35b3480156106bf575f80fd5b506106da60048036038101906106d59190612744565b61103a565b005b3480156106e7575f80fd5b506106f06110bc565b6040516106fd91906126a7565b60405180910390f35b348015610711575f80fd5b5061071a6110c2565b604051610727919061267f565b60405180910390f35b60606003805461073f90612947565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612947565b80156107b65780601f1061078d576101008083540402835291602001916107b6565b820191905f5260205f20905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b5f806107ca6110d4565b90506107d78185856110db565b600191505092915050565b5f600254905090565b5f806107f56110d4565b905061080285828561129e565b61080d858585611329565b60019150509392505050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108676110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610886575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c4919061285b565b602060405180830381865afa1580156108df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610903919061298b565b90505f8111610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e90612a00565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109a3929190612a1e565b6020604051808303815f875af11580156109bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e39190612a59565b50505050565b5f806109f36110d4565b9050610a14818585610a058589610fac565b610a0f9190612ab1565b6110db565b600191505092915050565b610a27611ca9565b60148211158015610a395750603c8111155b610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90612b2e565b60405180910390fd5b81600e8190555080600f819055505050565b610a92611ca9565b5f610a9b6107e2565b905080600a8190555080600b8190555050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b71611ca9565b610b7a5f611d27565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bbc6110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610bdb575f80fd5b5f610be46107e2565b90505f610bf030610b24565b90505f60648403610c0357819050610c2a565b60648484610c119190612b4c565b610c1b9190612bba565b905081811115610c29578190505b5b81811115610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612c5a565b60405180910390fd5b610c7681611dea565b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cb390612947565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdf90612947565b8015610d2a5780601f10610d0157610100808354040283529160200191610d2a565b820191905f5260205f20905b815481529060010190602001808311610d0d57829003601f168201915b5050505050905090565b610d3c611ca9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290612ce8565b60405180910390fd5b610dd5828261203e565b5050565b5f80610de36110d4565b90505f610df08286610fac565b905083811015610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90612d76565b60405180910390fd5b610e4282868684036110db565b60019250505092915050565b5f80610e586110d4565b9050610e65818585611329565b600191505092915050565b610e78611ca9565b670de0b6b3a764000081610e8c9190612b4c565b600c8190555050565b600a5481565b610ea3611ca9565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f056110d4565b73ffffffffffffffffffffffffffffffffffffffff1614610f24575f80fd5b5f4711610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d90612dde565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fa9573d5f803e3d5ffd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b611042611ca9565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790612e6c565b60405180910390fd5b6110b981611d27565b50565b600b5481565b600d5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114090612efa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90612f88565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129191906126a7565b60405180910390a3505050565b5f6112a98484610fac565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113235781811015611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612ff0565b60405180910390fd5b61132284848484036110db565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e9061307e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc9061310c565b60405180910390fd5b5f810361141c5761141783835f6120dc565b611ca4565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114bb575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506114c5610c7c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115335750611503610c7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561156b57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115be5750600860149054906101000a900460ff16155b1561198b57600d5f9054906101000a900460ff166116b15760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611671575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613174565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561174e575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f557600a54821115611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90613202565b60405180910390fd5b600b546117a484610b24565b836117af9190612ab1565b11156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e79061326a565b60405180910390fd5b61198a565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611892575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e157600a548211156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d3906132f8565b60405180910390fd5b611989565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198857600b5461193b84610b24565b836119469190612ab1565b1115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e9061326a565b60405180910390fd5b5b5b5b5b5f61199530610b24565b90505f80821180156119a5575082155b90508080156119c15750600860149054906101000a900460ff16155b8015611a14575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a67575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aba575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611afe576001600860146101000a81548160ff021916908315150217905550611ae384612348565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611b1a575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bb7575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611bc0575f90505b5f8115611c935760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c4557611c3e6064611c30600f54896124d290919063ffffffff16565b6124e790919063ffffffff16565b9050611c70565b611c6d6064611c5f600e54896124d290919063ffffffff16565b6124e790919063ffffffff16565b90505b5f811115611c8457611c838830836120dc565b5b8086611c909190613316565b95505b611c9e8888886120dc565b50505050505b505050565b611cb16110d4565b73ffffffffffffffffffffffffffffffffffffffff16611ccf610c7c565b73ffffffffffffffffffffffffffffffffffffffff1614611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90613393565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115611e0657611e056133b1565b5b604051908082528060200260200182016040528015611e345781602001602082028036833780820191505090505b50905030815f81518110611e4b57611e4a6133de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f12919061341f565b81600181518110611f2657611f256133de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846110db565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161200d95949392919061353a565b5f604051808303815f87803b158015612024575f80fd5b505af1158015612036573d5f803e3d5ffd5b505050505050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419061307e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af9061310c565b60405180910390fd5b6121c38383836124fc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d90613602565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161232f91906126a7565b60405180910390a3612342848484612501565b50505050565b5f61235230610b24565b90505f8082036123635750506124cf565b5f600f54600e546123749190612ab1565b036123ee575f821180156123895750600c5482105b15612396578190506123e9565b5f6123bf60646123b1600f54876124d290919063ffffffff16565b6124e790919063ffffffff16565b905080846123cd9190613316565b9350600c548411156123e357600c5491506123e7565b8391505b505b6124c3565b5f82118015612411575061240e6005600c546124e790919063ffffffff16565b82105b1561241d5750506124cf565b5f82118015612440575061243d6005600c546124e790919063ffffffff16565b82115b801561244d5750600c5482105b1561246f576124686005600c546124e790919063ffffffff16565b90506124c2565b5f612498606461248a600f54876124d290919063ffffffff16565b6124e790919063ffffffff16565b905080846124a69190613316565b9350600c548411156124bc57600c5491506124c0565b8391505b505b5b6124cc81611dea565b50505b50565b5f81836124df9190612b4c565b905092915050565b5f81836124f49190612bba565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61254882612506565b6125528185612510565b9350612562818560208601612520565b61256b8161252e565b840191505092915050565b5f6020820190508181035f83015261258e818461253e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125c38261259a565b9050919050565b6125d3816125b9565b81146125dd575f80fd5b50565b5f813590506125ee816125ca565b92915050565b5f819050919050565b612606816125f4565b8114612610575f80fd5b50565b5f81359050612621816125fd565b92915050565b5f806040838503121561263d5761263c612596565b5b5f61264a858286016125e0565b925050602061265b85828601612613565b9150509250929050565b5f8115159050919050565b61267981612665565b82525050565b5f6020820190506126925f830184612670565b92915050565b6126a1816125f4565b82525050565b5f6020820190506126ba5f830184612698565b92915050565b5f805f606084860312156126d7576126d6612596565b5b5f6126e4868287016125e0565b93505060206126f5868287016125e0565b925050604061270686828701612613565b9150509250925092565b5f60ff82169050919050565b61272581612710565b82525050565b5f60208201905061273e5f83018461271c565b92915050565b5f6020828403121561275957612758612596565b5b5f612766848285016125e0565b91505092915050565b5f806040838503121561278557612784612596565b5b5f61279285828601612613565b92505060206127a385828601612613565b9150509250929050565b5f819050919050565b5f6127d06127cb6127c68461259a565b6127ad565b61259a565b9050919050565b5f6127e1826127b6565b9050919050565b5f6127f2826127d7565b9050919050565b612802816127e8565b82525050565b5f60208201905061281b5f8301846127f9565b92915050565b5f6020828403121561283657612835612596565b5b5f61284384828501612613565b91505092915050565b612855816125b9565b82525050565b5f60208201905061286e5f83018461284c565b92915050565b61287d81612665565b8114612887575f80fd5b50565b5f8135905061289881612874565b92915050565b5f80604083850312156128b4576128b3612596565b5b5f6128c1858286016125e0565b92505060206128d28582860161288a565b9150509250929050565b5f80604083850312156128f2576128f1612596565b5b5f6128ff858286016125e0565b9250506020612910858286016125e0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061295e57607f821691505b6020821081036129715761297061291a565b5b50919050565b5f81519050612985816125fd565b92915050565b5f602082840312156129a05761299f612596565b5b5f6129ad84828501612977565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f6129ea601283612510565b91506129f5826129b6565b602082019050919050565b5f6020820190508181035f830152612a17816129de565b9050919050565b5f604082019050612a315f83018561284c565b612a3e6020830184612698565b9392505050565b5f81519050612a5381612874565b92915050565b5f60208284031215612a6e57612a6d612596565b5b5f612a7b84828501612a45565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612abb826125f4565b9150612ac6836125f4565b9250828201905080821115612ade57612add612a84565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612b18601683612510565b9150612b2382612ae4565b602082019050919050565b5f6020820190508181035f830152612b4581612b0c565b9050919050565b5f612b56826125f4565b9150612b61836125f4565b9250828202612b6f816125f4565b91508282048414831517612b8657612b85612a84565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc4826125f4565b9150612bcf836125f4565b925082612bdf57612bde612b8d565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f612c44602483612510565b9150612c4f82612bea565b604082019050919050565b5f6020820190508181035f830152612c7181612c38565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612cd2603983612510565b9150612cdd82612c78565b604082019050919050565b5f6020820190508181035f830152612cff81612cc6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612d60602583612510565b9150612d6b82612d06565b604082019050919050565b5f6020820190508181035f830152612d8d81612d54565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612dc8601683612510565b9150612dd382612d94565b602082019050919050565b5f6020820190508181035f830152612df581612dbc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e56602683612510565b9150612e6182612dfc565b604082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ee4602483612510565b9150612eef82612e8a565b604082019050919050565b5f6020820190508181035f830152612f1181612ed8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f72602283612510565b9150612f7d82612f18565b604082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612fda601d83612510565b9150612fe582612fa6565b602082019050919050565b5f6020820190508181035f83015261300781612fce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613068602583612510565b91506130738261300e565b604082019050919050565b5f6020820190508181035f8301526130958161305c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130f6602383612510565b91506131018261309c565b604082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61315e601683612510565b91506131698261312a565b602082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6131ec603583612510565b91506131f782613192565b604082019050919050565b5f6020820190508181035f830152613219816131e0565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613254601383612510565b915061325f82613220565b602082019050919050565b5f6020820190508181035f83015261328181613248565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6132e2603683612510565b91506132ed82613288565b604082019050919050565b5f6020820190508181035f83015261330f816132d6565b9050919050565b5f613320826125f4565b915061332b836125f4565b925082820390508181111561334357613342612a84565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61337d602083612510565b915061338882613349565b602082019050919050565b5f6020820190508181035f8301526133aa81613371565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613419816125ca565b92915050565b5f6020828403121561343457613433612596565b5b5f6134418482850161340b565b91505092915050565b5f819050919050565b5f61346d6134686134638461344a565b6127ad565b6125f4565b9050919050565b61347d81613453565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134b5816125b9565b82525050565b5f6134c683836134ac565b60208301905092915050565b5f602082019050919050565b5f6134e882613483565b6134f2818561348d565b93506134fd8361349d565b805f5b8381101561352d57815161351488826134bb565b975061351f836134d2565b925050600181019050613500565b5085935050505092915050565b5f60a08201905061354d5f830188612698565b61355a6020830187613474565b818103604083015261356c81866134de565b905061357b606083018561284c565b6135886080830184612698565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6135ec602683612510565b91506135f782613592565b604082019050919050565b5f6020820190508181035f830152613619816135e0565b905091905056fea26469706673582212200efc32917b749edbeb0fd0b39e958c20be71f0562ad85e80b6e85732d560ffcf64736f6c63430008190033

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

00000000000000000000000068804d9f693b985c010236fd27821409382eedea

-----Decoded View---------------
Arg [0] : wallet (address): 0x68804D9f693b985C010236fD27821409382EeDea

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000068804d9f693b985c010236fd27821409382eedea


Deployed Bytecode Sourcemap

16176:9448:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11200:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12132:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11521:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12341:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16626:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11420:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22838:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12644:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23193:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22402:195;;;;;;;;;;;;;:::i;:::-;;19272:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16260:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11637:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10276:103;;;;;;;;;;;;;:::i;:::-;;23548:668;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10041:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11308:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18828:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12890:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11772:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23413:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16686:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18415:81;;;;;;;;;;;;;:::i;:::-;;16928:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22605:225;;;;;;;;;;;;;:::i;:::-;;11973:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16895:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16795:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10387:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16746:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16855:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11200:100;11254:13;11287:5;11280:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11200:100;:::o;12132:201::-;12215:4;12232:13;12248:12;:10;:12::i;:::-;12232:28;;12271:32;12280:5;12287:7;12296:6;12271:8;:32::i;:::-;12321:4;12314:11;;;12132:201;;;;:::o;11521:108::-;11582:7;11609:12;;11602:19;;11521:108;:::o;12341:295::-;12472:4;12489:15;12507:12;:10;:12::i;:::-;12489:30;;12530:38;12546:4;12552:7;12561:6;12530:15;:38::i;:::-;12579:27;12589:4;12595:2;12599:6;12579:9;:27::i;:::-;12624:4;12617:11;;;12341:295;;;;;:::o;16626:53::-;;;;:::o;11420:93::-;11478:5;11503:2;11496:9;;11420:93;:::o;22838:347::-;22930:14;;;;;;;;;;;22914:30;;:12;:10;:12::i;:::-;:30;;;22906:39;;;;;;22956:20;22986:12;22956:43;;23010:15;23028:13;:23;;;23060:4;23028:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23010:56;;23095:1;23085:7;:11;23077:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;23130:13;:22;;;23153:14;;;;;;;;;;;23169:7;23130:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22895:290;;22838:347;:::o;12644:238::-;12732:4;12749:13;12765:12;:10;:12::i;:::-;12749:28;;12788:64;12797:5;12804:7;12841:10;12813:25;12823:5;12830:7;12813:9;:25::i;:::-;:38;;;;:::i;:::-;12788:8;:64::i;:::-;12870:4;12863:11;;;12644:238;;;;:::o;23193:212::-;10000:13;:11;:13::i;:::-;23294:2:::1;23283:7;:13;;:31;;;;;23312:2;23300:8;:14;;23283:31;23275:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23361:7;23352:6;:16;;;;23389:8;23379:7;:18;;;;23193:212:::0;;:::o;22402:195::-;10000:13;:11;:13::i;:::-;22457:25:::1;22485:13;:11;:13::i;:::-;22457:41;;22532:17;22509:20;:40;;;;22572:17;22560:9;:29;;;;22446:151;22402:195::o:0;19272:126::-;19338:4;19362:19;:28;19382:7;19362:28;;;;;;;;;;;;;;;;;;;;;;;;;19355:35;;19272:126;;;:::o;16260:52::-;;;:::o;11637:127::-;11711:7;11738:9;:18;11748:7;11738:18;;;;;;;;;;;;;;;;11731:25;;11637:127;;;:::o;10276:103::-;10000:13;:11;:13::i;:::-;10341:30:::1;10368:1;10341:18;:30::i;:::-;10276:103::o:0;23548:668::-;23630:14;;;;;;;;;;;23614:30;;:12;:10;:12::i;:::-;:30;;;23606:39;;;;;;23656:25;23684:13;:11;:13::i;:::-;23656:41;;23708:23;23734:24;23752:4;23734:9;:24::i;:::-;23708:50;;23769:20;23817:3;23806:7;:14;23802:273;;23852:15;23837:30;;23802:273;;;23945:3;23935:7;23915:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23900:48;;23982:15;23967:12;:30;23963:101;;;24033:15;24018:30;;23963:101;23802:273;24111:15;24095:12;:31;;24087:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;24178:30;24195:12;24178:16;:30::i;:::-;23595:621;;;23548:668;:::o;10041:87::-;10087:7;10114:6;;;;;;;;;;;10107:13;;10041:87;:::o;11308:104::-;11364:13;11397:7;11390:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11308:104;:::o;18828:242::-;10000:13;:11;:13::i;:::-;18935::::1;;;;;;;;;;;18927:21;;:4;:21;;::::0;18919:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19021:41;19050:4;19056:5;19021:28;:41::i;:::-;18828:242:::0;;:::o;12890:436::-;12983:4;13000:13;13016:12;:10;:12::i;:::-;13000:28;;13039:24;13066:25;13076:5;13083:7;13066:9;:25::i;:::-;13039:52;;13130:15;13110:16;:35;;13102:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13223:60;13232:5;13239:7;13267:15;13248:16;:34;13223:8;:60::i;:::-;13314:4;13307:11;;;;12890:436;;;;:::o;11772:193::-;11851:4;11868:13;11884:12;:10;:12::i;:::-;11868:28;;11907;11917:5;11924:2;11928:6;11907:9;:28::i;:::-;11953:4;11946:11;;;11772:193;;;;:::o;23413:127::-;10000:13;:11;:13::i;:::-;23523:8:::1;23512:7;:20;;;;:::i;:::-;23491:18;:41;;;;23413:127:::0;:::o;16686:53::-;;;;:::o;18415:81::-;10000:13;:11;:13::i;:::-;18484:4:::1;18470:11;;:18;;;;;;;;;;;;;;;;;;18415:81::o:0;16928:27::-;;;;:::o;22605:225::-;22674:14;;;;;;;;;;;22658:30;;:12;:10;:12::i;:::-;:30;;;22650:39;;;;;;22732:1;22708:21;:25;22700:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22779:10;22771:28;;:51;22800:21;22771:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22605:225::o;11973:151::-;12062:7;12089:11;:18;12101:5;12089:18;;;;;;;;;;;;;;;:27;12108:7;12089:27;;;;;;;;;;;;;;;;12082:34;;11973:151;;;;:::o;16895:26::-;;;;:::o;16795:51::-;;;;:::o;10387:201::-;10000:13;:11;:13::i;:::-;10496:1:::1;10476:22;;:8;:22;;::::0;10468:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10552:28;10571:8;10552:18;:28::i;:::-;10387:201:::0;:::o;16746:42::-;;;;:::o;16855:31::-;;;;;;;;;;;;;:::o;1685:98::-;1738:7;1765:10;1758:17;;1685:98;:::o;15063:380::-;15216:1;15199:19;;:5;:19;;;15191:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15297:1;15278:21;;:7;:21;;;15270:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15381:6;15351:11;:18;15363:5;15351:18;;;;;;;;;;;;;;;:27;15370:7;15351:27;;;;;;;;;;;;;;;:36;;;;15419:7;15403:32;;15412:5;15403:32;;;15428:6;15403:32;;;;;;:::i;:::-;;;;;;;;15063:380;;;:::o;15451:453::-;15586:24;15613:25;15623:5;15630:7;15613:9;:25::i;:::-;15586:52;;15673:17;15653:16;:37;15649:248;;15735:6;15715:16;:26;;15707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15819:51;15828:5;15835:7;15863:6;15844:16;:25;15819:8;:51::i;:::-;15649:248;15575:329;15451:453;;;:::o;19406:2499::-;19522:1;19506:18;;:4;:18;;;19498:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19599:1;19585:16;;:2;:16;;;19577:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19668:1;19658:6;:11;19654:93;;19686:28;19702:4;19708:2;19712:1;19686:15;:28::i;:::-;19729:7;;19654:93;19765:15;19784:25;:31;19810:4;19784:31;;;;;;;;;;;;;;;;;;;;;;;;;19783:32;:66;;;;;19820:25;:29;19846:2;19820:29;;;;;;;;;;;;;;;;;;;;;;;;;19819:30;19783:66;19765:84;;19882:7;:5;:7::i;:::-;19874:15;;:4;:15;;;;:32;;;;;19899:7;:5;:7::i;:::-;19893:13;;:2;:13;;;;19874:32;:52;;;;;19924:1;19910:16;;:2;:16;;;;19874:52;:77;;;;;19944:6;19930:21;;:2;:21;;;;19874:77;:90;;;;;19956:8;;;;;;;;;;;19955:9;19874:90;19870:1060;;;19992:11;;;;;;;;;;;19987:148;;20036:19;:25;20056:4;20036:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20065:19;:23;20085:2;20065:23;;;;;;;;;;;;;;;;;;;;;;;;;20036:52;20028:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19987:148;20159:25;:31;20185:4;20159:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20195:31;:35;20227:2;20195:35;;;;;;;;;;;;;;;;;;;;;;;;;20194:36;20159:71;20155:760;;;20291:20;;20281:6;:30;;20273:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20426:9;;20409:13;20419:2;20409:9;:13::i;:::-;20400:6;:22;;;;:::i;:::-;:35;;20392:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20155:760;;;20508:25;:29;20534:2;20508:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20542:31;:37;20574:4;20542:37;;;;;;;;;;;;;;;;;;;;;;;;;20541:38;20508:71;20504:411;;;20622:20;;20612:6;:30;;20604:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20504:411;;;20768:31;:35;20800:2;20768:35;;;;;;;;;;;;;;;;;;;;;;;;;20763:152;;20862:9;;20845:13;20855:2;20845:9;:13::i;:::-;20836:6;:22;;;;:::i;:::-;:35;;20828:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20763:152;20504:411;20155:760;19870:1060;20942:28;20973:24;20991:4;20973:9;:24::i;:::-;20942:55;;21010:12;21048:1;21025:20;:24;:39;;;;;21054:10;21053:11;21025:39;21010:54;;21081:7;:20;;;;;21093:8;;;;;;;;;;;21092:9;21081:20;:56;;;;;21106:25;:31;21132:4;21106:31;;;;;;;;;;;;;;;;;;;;;;;;;21105:32;21081:56;:86;;;;;21142:19;:25;21162:4;21142:25;;;;;;;;;;;;;;;;;;;;;;;;;21141:26;21081:86;:114;;;;;21172:19;:23;21192:2;21172:23;;;;;;;;;;;;;;;;;;;;;;;;;21171:24;21081:114;21077:224;;;21223:4;21212:8;;:15;;;;;;;;;;;;;;;;;;21242:16;21251:6;21242:8;:16::i;:::-;21284:5;21273:8;;:16;;;;;;;;;;;;;;;;;;21077:224;21313:12;21329:8;;;;;;;;;;;21328:9;:24;;;;;21342:10;21341:11;21328:24;21313:39;;21369:19;:25;21389:4;21369:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21398:19;:23;21418:2;21398:23;;;;;;;;;;;;;;;;;;;;;;;;;21369:52;21365:100;;;21448:5;21438:15;;21365:100;21477:12;21510:7;21506:348;;;21538:25;:29;21564:2;21538:29;;;;;;;;;;;;;;;;;;;;;;;;;21534:193;;;21595:28;21619:3;21595:19;21606:7;;21595:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21588:35;;21534:193;;;21684:27;21707:3;21684:18;21695:6;;21684;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21677:34;;21534:193;21750:1;21743:4;:8;21739:83;;;21768:42;21784:4;21798;21805;21768:15;:42::i;:::-;21739:83;21842:4;21832:14;;;;;:::i;:::-;;;21506:348;21864:33;21880:4;21886:2;21890:6;21864:15;:33::i;:::-;19485:2420;;;;;19406:2499;;;;:::o;10136:132::-;10211:12;:10;:12::i;:::-;10200:23;;:7;:5;:7::i;:::-;:23;;;10192:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10136:132::o;10596:191::-;10670:16;10689:6;;;;;;;;;;;10670:25;;10715:8;10706:6;;:17;;;;;;;;;;;;;;;;;;10770:8;10739:40;;10760:8;10739:40;;;;;;;;;;;;10659:128;10596:191;:::o;21913:482::-;21981:21;22019:1;22005:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21981:40;;22050:4;22032;22037:1;22032:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22076:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22066:4;22071:1;22066:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22112:63;22129:4;22144:16;22163:11;22112:8;:63::i;:::-;22188:16;:67;;;22270:11;22296:1;22312:4;22331:15;;;;;;;;;;;22361;22188:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21968:427;21913:482;:::o;19078:186::-;19195:5;19161:25;:31;19187:4;19161:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19250:5;19216:40;;19244:4;19216:40;;;;;;;;;;;;19078:186;;:::o;13334:675::-;13481:1;13465:18;;:4;:18;;;13457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13558:1;13544:16;;:2;:16;;;13536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13613:38;13634:4;13640:2;13644:6;13613:20;:38::i;:::-;13664:19;13686:9;:15;13696:4;13686:15;;;;;;;;;;;;;;;;13664:37;;13735:6;13720:11;:21;;13712:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13852:6;13838:11;:20;13820:9;:15;13830:4;13820:15;;;;;;;;;;;;;;;:38;;;;13890:6;13873:9;:13;13883:2;13873:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13940:2;13925:26;;13934:4;13925:26;;;13944:6;13925:26;;;;;;:::i;:::-;;;;;;;;13964:37;13984:4;13990:2;13994:6;13964:19;:37::i;:::-;13446:563;13334:675;;;:::o;24228:1393::-;24281:23;24307:24;24325:4;24307:9;:24::i;:::-;24281:50;;24342:20;24399:1;24380:15;:20;24376:59;;24417:7;;;;24376:59;24467:1;24455:7;;24448:6;;:14;;;;:::i;:::-;24447:21;24443:1130;;24504:1;24486:15;:19;:59;;;;;24527:18;;24509:15;:36;24486:59;24483:443;;;24577:15;24562:30;;24483:443;;;24634:21;24658:28;24682:3;24658:19;24669:7;;24658:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24634:52;;24711:13;24701:23;;;;;:::i;:::-;;;24752:18;;24743:6;:27;24739:176;;;24806:18;;24791:33;;24739:176;;;24893:6;24878:21;;24739:176;24619:307;24483:443;24443:1130;;;24980:1;24962:15;:19;:66;;;;;25003:25;25026:1;25003:18;;:22;;:25;;;;:::i;:::-;24985:15;:43;24962:66;24959:607;;;25045:7;;;;24959:607;25100:1;25082:15;:19;:66;;;;;25123:25;25146:1;25123:18;;:22;;:25;;;;:::i;:::-;25105:15;:43;25082:66;:106;;;;;25170:18;;25152:15;:36;25082:106;25078:488;;;25220:25;25243:1;25220:18;;:22;;:25;;;;:::i;:::-;25205:40;;25078:488;;;25287:21;25311:28;25335:3;25311:19;25322:7;;25311:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;25287:52;;25364:13;25354:23;;;;;:::i;:::-;;;25405:18;;25396:6;:27;25392:163;;;25459:18;;25444:33;;25392:163;;;25533:6;25518:21;;25392:163;25272:294;25078:488;24443:1130;25583:30;25600:12;25583:16;:30::i;:::-;24270:1351;;24228:1393;;:::o;7837:98::-;7895:7;7926:1;7922;:5;;;;:::i;:::-;7915:12;;7837:98;;;;:::o;7943:::-;8001:7;8032:1;8028;:5;;;;:::i;:::-;8021:12;;7943:98;;;;:::o;15912:125::-;;;;:::o;16045:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:60::-;5589:3;5610:5;5603:12;;5561:60;;;:::o;5627:142::-;5677:9;5710:53;5728:34;5737:24;5755:5;5737:24;:::i;:::-;5728:34;:::i;:::-;5710:53;:::i;:::-;5697:66;;5627:142;;;:::o;5775:126::-;5825:9;5858:37;5889:5;5858:37;:::i;:::-;5845:50;;5775:126;;;:::o;5907:151::-;5982:9;6015:37;6046:5;6015:37;:::i;:::-;6002:50;;5907:151;;;:::o;6064:181::-;6176:62;6232:5;6176:62;:::i;:::-;6171:3;6164:75;6064:181;;:::o;6251:272::-;6369:4;6407:2;6396:9;6392:18;6384:26;;6420:96;6513:1;6502:9;6498:17;6489:6;6420:96;:::i;:::-;6251:272;;;;:::o;6529:329::-;6588:6;6637:2;6625:9;6616:7;6612:23;6608:32;6605:119;;;6643:79;;:::i;:::-;6605:119;6763:1;6788:53;6833:7;6824:6;6813:9;6809:22;6788:53;:::i;:::-;6778:63;;6734:117;6529:329;;;;:::o;6864:118::-;6951:24;6969:5;6951:24;:::i;:::-;6946:3;6939:37;6864:118;;:::o;6988:222::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7132:71;7200:1;7189:9;7185:17;7176:6;7132:71;:::i;:::-;6988:222;;;;:::o;7216:116::-;7286:21;7301:5;7286:21;:::i;:::-;7279:5;7276:32;7266:60;;7322:1;7319;7312:12;7266:60;7216:116;:::o;7338:133::-;7381:5;7419:6;7406:20;7397:29;;7435:30;7459:5;7435:30;:::i;:::-;7338:133;;;;:::o;7477:468::-;7542:6;7550;7599:2;7587:9;7578:7;7574:23;7570:32;7567:119;;;7605:79;;:::i;:::-;7567:119;7725:1;7750:53;7795:7;7786:6;7775:9;7771:22;7750:53;:::i;:::-;7740:63;;7696:117;7852:2;7878:50;7920:7;7911:6;7900:9;7896:22;7878:50;:::i;:::-;7868:60;;7823:115;7477:468;;;;;:::o;7951:474::-;8019:6;8027;8076:2;8064:9;8055:7;8051:23;8047:32;8044:119;;;8082:79;;:::i;:::-;8044:119;8202:1;8227:53;8272:7;8263:6;8252:9;8248:22;8227:53;:::i;:::-;8217:63;;8173:117;8329:2;8355:53;8400:7;8391:6;8380:9;8376:22;8355:53;:::i;:::-;8345:63;;8300:118;7951:474;;;;;:::o;8431:180::-;8479:77;8476:1;8469:88;8576:4;8573:1;8566:15;8600:4;8597:1;8590:15;8617:320;8661:6;8698:1;8692:4;8688:12;8678:22;;8745:1;8739:4;8735:12;8766:18;8756:81;;8822:4;8814:6;8810:17;8800:27;;8756:81;8884:2;8876:6;8873:14;8853:18;8850:38;8847:84;;8903:18;;:::i;:::-;8847:84;8668:269;8617:320;;;:::o;8943:143::-;9000:5;9031:6;9025:13;9016:22;;9047:33;9074:5;9047:33;:::i;:::-;8943:143;;;;:::o;9092:351::-;9162:6;9211:2;9199:9;9190:7;9186:23;9182:32;9179:119;;;9217:79;;:::i;:::-;9179:119;9337:1;9362:64;9418:7;9409:6;9398:9;9394:22;9362:64;:::i;:::-;9352:74;;9308:128;9092:351;;;;:::o;9449:168::-;9589:20;9585:1;9577:6;9573:14;9566:44;9449:168;:::o;9623:366::-;9765:3;9786:67;9850:2;9845:3;9786:67;:::i;:::-;9779:74;;9862:93;9951:3;9862:93;:::i;:::-;9980:2;9975:3;9971:12;9964:19;;9623:366;;;:::o;9995:419::-;10161:4;10199:2;10188:9;10184:18;10176:26;;10248:9;10242:4;10238:20;10234:1;10223:9;10219:17;10212:47;10276:131;10402:4;10276:131;:::i;:::-;10268:139;;9995:419;;;:::o;10420:332::-;10541:4;10579:2;10568:9;10564:18;10556:26;;10592:71;10660:1;10649:9;10645:17;10636:6;10592:71;:::i;:::-;10673:72;10741:2;10730:9;10726:18;10717:6;10673:72;:::i;:::-;10420:332;;;;;:::o;10758:137::-;10812:5;10843:6;10837:13;10828:22;;10859:30;10883:5;10859:30;:::i;:::-;10758:137;;;;:::o;10901:345::-;10968:6;11017:2;11005:9;10996:7;10992:23;10988:32;10985:119;;;11023:79;;:::i;:::-;10985:119;11143:1;11168:61;11221:7;11212:6;11201:9;11197:22;11168:61;:::i;:::-;11158:71;;11114:125;10901:345;;;;:::o;11252:180::-;11300:77;11297:1;11290:88;11397:4;11394:1;11387:15;11421:4;11418:1;11411:15;11438:191;11478:3;11497:20;11515:1;11497:20;:::i;:::-;11492:25;;11531:20;11549:1;11531:20;:::i;:::-;11526:25;;11574:1;11571;11567:9;11560:16;;11595:3;11592:1;11589:10;11586:36;;;11602:18;;:::i;:::-;11586:36;11438:191;;;;:::o;11635:172::-;11775:24;11771:1;11763:6;11759:14;11752:48;11635:172;:::o;11813:366::-;11955:3;11976:67;12040:2;12035:3;11976:67;:::i;:::-;11969:74;;12052:93;12141:3;12052:93;:::i;:::-;12170:2;12165:3;12161:12;12154:19;;11813:366;;;:::o;12185:419::-;12351:4;12389:2;12378:9;12374:18;12366:26;;12438:9;12432:4;12428:20;12424:1;12413:9;12409:17;12402:47;12466:131;12592:4;12466:131;:::i;:::-;12458:139;;12185:419;;;:::o;12610:410::-;12650:7;12673:20;12691:1;12673:20;:::i;:::-;12668:25;;12707:20;12725:1;12707:20;:::i;:::-;12702:25;;12762:1;12759;12755:9;12784:30;12802:11;12784:30;:::i;:::-;12773:41;;12963:1;12954:7;12950:15;12947:1;12944:22;12924:1;12917:9;12897:83;12874:139;;12993:18;;:::i;:::-;12874:139;12658:362;12610:410;;;;:::o;13026:180::-;13074:77;13071:1;13064:88;13171:4;13168:1;13161:15;13195:4;13192:1;13185:15;13212:185;13252:1;13269:20;13287:1;13269:20;:::i;:::-;13264:25;;13303:20;13321:1;13303:20;:::i;:::-;13298:25;;13342:1;13332:35;;13347:18;;:::i;:::-;13332:35;13389:1;13386;13382:9;13377:14;;13212:185;;;;:::o;13403:223::-;13543:34;13539:1;13531:6;13527:14;13520:58;13612:6;13607:2;13599:6;13595:15;13588:31;13403:223;:::o;13632:366::-;13774:3;13795:67;13859:2;13854:3;13795:67;:::i;:::-;13788:74;;13871:93;13960:3;13871:93;:::i;:::-;13989:2;13984:3;13980:12;13973:19;;13632:366;;;:::o;14004:419::-;14170:4;14208:2;14197:9;14193:18;14185:26;;14257:9;14251:4;14247:20;14243:1;14232:9;14228:17;14221:47;14285:131;14411:4;14285:131;:::i;:::-;14277:139;;14004:419;;;:::o;14429:244::-;14569:34;14565:1;14557:6;14553:14;14546:58;14638:27;14633:2;14625:6;14621:15;14614:52;14429:244;:::o;14679:366::-;14821:3;14842:67;14906:2;14901:3;14842:67;:::i;:::-;14835:74;;14918:93;15007:3;14918:93;:::i;:::-;15036:2;15031:3;15027:12;15020:19;;14679:366;;;:::o;15051:419::-;15217:4;15255:2;15244:9;15240:18;15232:26;;15304:9;15298:4;15294:20;15290:1;15279:9;15275:17;15268:47;15332:131;15458:4;15332:131;:::i;:::-;15324:139;;15051:419;;;:::o;15476:224::-;15616:34;15612:1;15604:6;15600:14;15593:58;15685:7;15680:2;15672:6;15668:15;15661:32;15476:224;:::o;15706:366::-;15848:3;15869:67;15933:2;15928:3;15869:67;:::i;:::-;15862:74;;15945:93;16034:3;15945:93;:::i;:::-;16063:2;16058:3;16054:12;16047:19;;15706:366;;;:::o;16078:419::-;16244:4;16282:2;16271:9;16267:18;16259:26;;16331:9;16325:4;16321:20;16317:1;16306:9;16302:17;16295:47;16359:131;16485:4;16359:131;:::i;:::-;16351:139;;16078:419;;;:::o;16503:172::-;16643:24;16639:1;16631:6;16627:14;16620:48;16503:172;:::o;16681:366::-;16823:3;16844:67;16908:2;16903:3;16844:67;:::i;:::-;16837:74;;16920:93;17009:3;16920:93;:::i;:::-;17038:2;17033:3;17029:12;17022:19;;16681:366;;;:::o;17053:419::-;17219:4;17257:2;17246:9;17242:18;17234:26;;17306:9;17300:4;17296:20;17292:1;17281:9;17277:17;17270:47;17334:131;17460:4;17334:131;:::i;:::-;17326:139;;17053:419;;;:::o;17478:225::-;17618:34;17614:1;17606:6;17602:14;17595:58;17687:8;17682:2;17674:6;17670:15;17663:33;17478:225;:::o;17709:366::-;17851:3;17872:67;17936:2;17931:3;17872:67;:::i;:::-;17865:74;;17948:93;18037:3;17948:93;:::i;:::-;18066:2;18061:3;18057:12;18050:19;;17709:366;;;:::o;18081:419::-;18247:4;18285:2;18274:9;18270:18;18262:26;;18334:9;18328:4;18324:20;18320:1;18309:9;18305:17;18298:47;18362:131;18488:4;18362:131;:::i;:::-;18354:139;;18081:419;;;:::o;18506:223::-;18646:34;18642:1;18634:6;18630:14;18623:58;18715:6;18710:2;18702:6;18698:15;18691:31;18506:223;:::o;18735:366::-;18877:3;18898:67;18962:2;18957:3;18898:67;:::i;:::-;18891:74;;18974:93;19063:3;18974:93;:::i;:::-;19092:2;19087:3;19083:12;19076:19;;18735:366;;;:::o;19107:419::-;19273:4;19311:2;19300:9;19296:18;19288:26;;19360:9;19354:4;19350:20;19346:1;19335:9;19331:17;19324:47;19388:131;19514:4;19388:131;:::i;:::-;19380:139;;19107:419;;;:::o;19532:221::-;19672:34;19668:1;19660:6;19656:14;19649:58;19741:4;19736:2;19728:6;19724:15;19717:29;19532:221;:::o;19759:366::-;19901:3;19922:67;19986:2;19981:3;19922:67;:::i;:::-;19915:74;;19998:93;20087:3;19998:93;:::i;:::-;20116:2;20111:3;20107:12;20100:19;;19759:366;;;:::o;20131:419::-;20297:4;20335:2;20324:9;20320:18;20312:26;;20384:9;20378:4;20374:20;20370:1;20359:9;20355:17;20348:47;20412:131;20538:4;20412:131;:::i;:::-;20404:139;;20131:419;;;:::o;20556:179::-;20696:31;20692:1;20684:6;20680:14;20673:55;20556:179;:::o;20741:366::-;20883:3;20904:67;20968:2;20963:3;20904:67;:::i;:::-;20897:74;;20980:93;21069:3;20980:93;:::i;:::-;21098:2;21093:3;21089:12;21082:19;;20741:366;;;:::o;21113:419::-;21279:4;21317:2;21306:9;21302:18;21294:26;;21366:9;21360:4;21356:20;21352:1;21341:9;21337:17;21330:47;21394:131;21520:4;21394:131;:::i;:::-;21386:139;;21113:419;;;:::o;21538:224::-;21678:34;21674:1;21666:6;21662:14;21655:58;21747:7;21742:2;21734:6;21730:15;21723:32;21538:224;:::o;21768:366::-;21910:3;21931:67;21995:2;21990:3;21931:67;:::i;:::-;21924:74;;22007:93;22096:3;22007:93;:::i;:::-;22125:2;22120:3;22116:12;22109:19;;21768:366;;;:::o;22140:419::-;22306:4;22344:2;22333:9;22329:18;22321:26;;22393:9;22387:4;22383:20;22379:1;22368:9;22364:17;22357:47;22421:131;22547:4;22421:131;:::i;:::-;22413:139;;22140:419;;;:::o;22565:222::-;22705:34;22701:1;22693:6;22689:14;22682:58;22774:5;22769:2;22761:6;22757:15;22750:30;22565:222;:::o;22793:366::-;22935:3;22956:67;23020:2;23015:3;22956:67;:::i;:::-;22949:74;;23032:93;23121:3;23032:93;:::i;:::-;23150:2;23145:3;23141:12;23134:19;;22793:366;;;:::o;23165:419::-;23331:4;23369:2;23358:9;23354:18;23346:26;;23418:9;23412:4;23408:20;23404:1;23393:9;23389:17;23382:47;23446:131;23572:4;23446:131;:::i;:::-;23438:139;;23165:419;;;:::o;23590:172::-;23730:24;23726:1;23718:6;23714:14;23707:48;23590:172;:::o;23768:366::-;23910:3;23931:67;23995:2;23990:3;23931:67;:::i;:::-;23924:74;;24007:93;24096:3;24007:93;:::i;:::-;24125:2;24120:3;24116:12;24109:19;;23768:366;;;:::o;24140:419::-;24306:4;24344:2;24333:9;24329:18;24321:26;;24393:9;24387:4;24383:20;24379:1;24368:9;24364:17;24357:47;24421:131;24547:4;24421:131;:::i;:::-;24413:139;;24140:419;;;:::o;24565:240::-;24705:34;24701:1;24693:6;24689:14;24682:58;24774:23;24769:2;24761:6;24757:15;24750:48;24565:240;:::o;24811:366::-;24953:3;24974:67;25038:2;25033:3;24974:67;:::i;:::-;24967:74;;25050:93;25139:3;25050:93;:::i;:::-;25168:2;25163:3;25159:12;25152:19;;24811:366;;;:::o;25183:419::-;25349:4;25387:2;25376:9;25372:18;25364:26;;25436:9;25430:4;25426:20;25422:1;25411:9;25407:17;25400:47;25464:131;25590:4;25464:131;:::i;:::-;25456:139;;25183:419;;;:::o;25608:169::-;25748:21;25744:1;25736:6;25732:14;25725:45;25608:169;:::o;25783:366::-;25925:3;25946:67;26010:2;26005:3;25946:67;:::i;:::-;25939:74;;26022:93;26111:3;26022:93;:::i;:::-;26140:2;26135:3;26131:12;26124:19;;25783:366;;;:::o;26155:419::-;26321:4;26359:2;26348:9;26344:18;26336:26;;26408:9;26402:4;26398:20;26394:1;26383:9;26379:17;26372:47;26436:131;26562:4;26436:131;:::i;:::-;26428:139;;26155:419;;;:::o;26580:241::-;26720:34;26716:1;26708:6;26704:14;26697:58;26789:24;26784:2;26776:6;26772:15;26765:49;26580:241;:::o;26827:366::-;26969:3;26990:67;27054:2;27049:3;26990:67;:::i;:::-;26983:74;;27066:93;27155:3;27066:93;:::i;:::-;27184:2;27179:3;27175:12;27168:19;;26827:366;;;:::o;27199:419::-;27365:4;27403:2;27392:9;27388:18;27380:26;;27452:9;27446:4;27442:20;27438:1;27427:9;27423:17;27416:47;27480:131;27606:4;27480:131;:::i;:::-;27472:139;;27199:419;;;:::o;27624:194::-;27664:4;27684:20;27702:1;27684:20;:::i;:::-;27679:25;;27718:20;27736:1;27718:20;:::i;:::-;27713:25;;27762:1;27759;27755:9;27747:17;;27786:1;27780:4;27777:11;27774:37;;;27791:18;;:::i;:::-;27774:37;27624:194;;;;:::o;27824:182::-;27964:34;27960:1;27952:6;27948:14;27941:58;27824:182;:::o;28012:366::-;28154:3;28175:67;28239:2;28234:3;28175:67;:::i;:::-;28168:74;;28251:93;28340:3;28251:93;:::i;:::-;28369:2;28364:3;28360:12;28353:19;;28012:366;;;:::o;28384:419::-;28550:4;28588:2;28577:9;28573:18;28565:26;;28637:9;28631:4;28627:20;28623:1;28612:9;28608:17;28601:47;28665:131;28791:4;28665:131;:::i;:::-;28657:139;;28384:419;;;:::o;28809:180::-;28857:77;28854:1;28847:88;28954:4;28951:1;28944:15;28978:4;28975:1;28968:15;28995:180;29043:77;29040:1;29033:88;29140:4;29137:1;29130:15;29164:4;29161:1;29154:15;29181:143;29238:5;29269:6;29263:13;29254:22;;29285:33;29312:5;29285:33;:::i;:::-;29181:143;;;;:::o;29330:351::-;29400:6;29449:2;29437:9;29428:7;29424:23;29420:32;29417:119;;;29455:79;;:::i;:::-;29417:119;29575:1;29600:64;29656:7;29647:6;29636:9;29632:22;29600:64;:::i;:::-;29590:74;;29546:128;29330:351;;;;:::o;29687:85::-;29732:7;29761:5;29750:16;;29687:85;;;:::o;29778:158::-;29836:9;29869:61;29887:42;29896:32;29922:5;29896:32;:::i;:::-;29887:42;:::i;:::-;29869:61;:::i;:::-;29856:74;;29778:158;;;:::o;29942:147::-;30037:45;30076:5;30037:45;:::i;:::-;30032:3;30025:58;29942:147;;:::o;30095:114::-;30162:6;30196:5;30190:12;30180:22;;30095:114;;;:::o;30215:184::-;30314:11;30348:6;30343:3;30336:19;30388:4;30383:3;30379:14;30364:29;;30215:184;;;;:::o;30405:132::-;30472:4;30495:3;30487:11;;30525:4;30520:3;30516:14;30508:22;;30405:132;;;:::o;30543:108::-;30620:24;30638:5;30620:24;:::i;:::-;30615:3;30608:37;30543:108;;:::o;30657:179::-;30726:10;30747:46;30789:3;30781:6;30747:46;:::i;:::-;30825:4;30820:3;30816:14;30802:28;;30657:179;;;;:::o;30842:113::-;30912:4;30944;30939:3;30935:14;30927:22;;30842:113;;;:::o;30991:732::-;31110:3;31139:54;31187:5;31139:54;:::i;:::-;31209:86;31288:6;31283:3;31209:86;:::i;:::-;31202:93;;31319:56;31369:5;31319:56;:::i;:::-;31398:7;31429:1;31414:284;31439:6;31436:1;31433:13;31414:284;;;31515:6;31509:13;31542:63;31601:3;31586:13;31542:63;:::i;:::-;31535:70;;31628:60;31681:6;31628:60;:::i;:::-;31618:70;;31474:224;31461:1;31458;31454:9;31449:14;;31414:284;;;31418:14;31714:3;31707:10;;31115:608;;;30991:732;;;;:::o;31729:831::-;31992:4;32030:3;32019:9;32015:19;32007:27;;32044:71;32112:1;32101:9;32097:17;32088:6;32044:71;:::i;:::-;32125:80;32201:2;32190:9;32186:18;32177:6;32125:80;:::i;:::-;32252:9;32246:4;32242:20;32237:2;32226:9;32222:18;32215:48;32280:108;32383:4;32374:6;32280:108;:::i;:::-;32272:116;;32398:72;32466:2;32455:9;32451:18;32442:6;32398:72;:::i;:::-;32480:73;32548:3;32537:9;32533:19;32524:6;32480:73;:::i;:::-;31729:831;;;;;;;;:::o;32566:225::-;32706:34;32702:1;32694:6;32690:14;32683:58;32775:8;32770:2;32762:6;32758:15;32751:33;32566:225;:::o;32797:366::-;32939:3;32960:67;33024:2;33019:3;32960:67;:::i;:::-;32953:74;;33036:93;33125:3;33036:93;:::i;:::-;33154:2;33149:3;33145:12;33138:19;;32797:366;;;:::o;33169:419::-;33335:4;33373:2;33362:9;33358:18;33350:26;;33422:9;33416:4;33412:20;33408:1;33397:9;33393:17;33386:47;33450:131;33576:4;33450:131;:::i;:::-;33442:139;;33169:419;;;:::o

Swarm Source

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