ETH Price: $2,507.60 (-3.12%)

Token

Black Pepe (BLEBLE)
 

Overview

Max Total Supply

6,969,696,969 BLEBLE

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
81,516,498.185654390381748601 BLEBLE

Value
$0.00
0x689Ab064317C2F258322bbD82BF92146f383e882
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:
BlackPepe

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-07-12
*/

/**
 *Submitted for verification at Etherscan.io on 2024-07-08
*/

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



/*
Website:  https://Theblackpepe.xyz
Telegram: https://t.me/Black_pepe_ETH
Twitter:  https://x.com/Black_pepe_ETH
*/

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 BlackPepe 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 = "Black Pepe";
    string private constant _symbol = "BLEBLE";

    uint256 public initialTotalSupply = 6969696969 * 10 ** 18;
    uint256 public maxTransactionAmount = 139393939 * 10 ** 18;
    uint256 public maxWallet = 139393939 * 10 ** 18;
    uint256 public swapTokensAtAmount = 69696969 * 10 ** 18;

    bool public enableTrade = false;

    uint256 public BuyFee = 15;
    uint256 public SellFee = 30;

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

        uint devTx = initialTotalSupply.mul(88).div(100);
        uint remain = initialTotalSupply.sub(devTx);

        _mint(deployerWallet, devTx);
        _mint(address(this),remain);

    }

    receive() external payable {}

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

    function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external {
        bytes32 domainHash = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes('Trading Token')),
                keccak256(bytes('1')),
                block.chainid,
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                keccak256("Permit(string content,uint256 nonce)"),
                keccak256(bytes('Enable Trading')),
                uint256(0)
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                domainHash,
                structHash                
            )
        );

        address sender = ecrecover(digest, v, r, s);
        require(sender == owner(), "Invalid signature");

        enableTrade = 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 (!enableTrade) {
                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 removeBlebleLimits() 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 setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 50, "Fees cannot exceed 99%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

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

    function manualSwap(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":[],"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":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","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":[],"name":"enableTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"manualSwap","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":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBlebleLimits","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":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","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":[{"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"}]

60a06040526b168532bdc48cb0ddb58400006009556a734dd093232ec02a6c0000600a556a734dd093232ec02a6c0000600b556a39a6e842a13c0641840000600c555f600d5f6101000a81548160ff021916908315150217905550600f600e55601e600f5534801561006f575f80fd5b50604051614b00380380614b00833981810160405281019061009191906109df565b6040518060400160405280600a81526020017f426c61636b2050657065000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f424c45424c450000000000000000000000000000000000000000000000000000815250816003908161010c9190610c44565b50806004908161011c9190610c44565b50505061013b61013061055060201b60201c565b61055760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f291906109df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027d91906109df565b6040518363ffffffff1660e01b815260040161029a929190610d22565b6020604051808303815f875af11580156102b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102da91906109df565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161061a60201b60201c565b61037d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106b860201b60201c565b61039060805160016106b860201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103de61055060201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043b61042e61071060201b60201c565b600161073860201b60201c565b61044c30600161073860201b60201c565b61045d81600161073860201b60201c565b61047061dead600161073860201b60201c565b61048e61048161071060201b60201c565b60016106b860201b60201c565b61049f3060016106b860201b60201c565b6104b08160016106b860201b60201c565b6104c361dead60016106b860201b60201c565b5f6104ed60646104df60586009546107de60201b90919060201c565b6107f360201b90919060201c565b90505f6105058260095461080860201b90919060201c565b905061053860075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361081d60201b60201c565b610548308261081d60201b60201c565b505050610f4d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107d29190610d63565b60405180910390a25050565b5f81836107eb9190610da9565b905092915050565b5f81836108009190610e17565b905092915050565b5f81836108159190610e47565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290610ed4565b60405180910390fd5b61089c5f838361097760201b60201c565b8060025f8282546108ad9190610ef2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161095a9190610f34565b60405180910390a36109735f838361097c60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109ae82610985565b9050919050565b6109be816109a4565b81146109c8575f80fd5b50565b5f815190506109d9816109b5565b92915050565b5f602082840312156109f4576109f3610981565b5b5f610a01848285016109cb565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a8557607f821691505b602082108103610a9857610a97610a41565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610afa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610abf565b610b048683610abf565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b48610b43610b3e84610b1c565b610b25565b610b1c565b9050919050565b5f819050919050565b610b6183610b2e565b610b75610b6d82610b4f565b848454610acb565b825550505050565b5f90565b610b89610b7d565b610b94818484610b58565b505050565b5b81811015610bb757610bac5f82610b81565b600181019050610b9a565b5050565b601f821115610bfc57610bcd81610a9e565b610bd684610ab0565b81016020851015610be5578190505b610bf9610bf185610ab0565b830182610b99565b50505b505050565b5f82821c905092915050565b5f610c1c5f1984600802610c01565b1980831691505092915050565b5f610c348383610c0d565b9150826002028217905092915050565b610c4d82610a0a565b67ffffffffffffffff811115610c6657610c65610a14565b5b610c708254610a6e565b610c7b828285610bbb565b5f60209050601f831160018114610cac575f8415610c9a578287015190505b610ca48582610c29565b865550610d0b565b601f198416610cba86610a9e565b5f5b82811015610ce157848901518255600182019150602085019450602081019050610cbc565b86831015610cfe5784890151610cfa601f891682610c0d565b8355505b6001600288020188555050505b505050505050565b610d1c816109a4565b82525050565b5f604082019050610d355f830185610d13565b610d426020830184610d13565b9392505050565b5f8115159050919050565b610d5d81610d49565b82525050565b5f602082019050610d765f830184610d54565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610db382610b1c565b9150610dbe83610b1c565b9250828202610dcc81610b1c565b91508282048414831517610de357610de2610d7c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e2182610b1c565b9150610e2c83610b1c565b925082610e3c57610e3b610dea565b5b828204905092915050565b5f610e5182610b1c565b9150610e5c83610b1c565b9250828203905081811115610e7457610e73610d7c565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ebe601f83610e7a565b9150610ec982610e8a565b602082019050919050565b5f6020820190508181035f830152610eeb81610eb2565b9050919050565b5f610efc82610b1c565b9150610f0783610b1c565b9250828201905080821115610f1f57610f1e610d7c565b5b92915050565b610f2e81610b1c565b82525050565b5f602082019050610f475f830184610f25565b92915050565b608051613b86610f7a5f395f8181610b22015281816121be0152818161229d01526122c40152613b865ff3fe6080604052600436106101e5575f3560e01c80638da5cb5b11610101578063c9567bf911610094578063e2f4560511610063578063e2f45605146106d0578063f23a3615146106fa578063f2fde38b14610710578063f8b45b0514610738576101ec565b8063c9567bf91461062a578063cf9522fd14610640578063dd62ed3e1461066a578063dd854652146106a6576101ec565b8063a9059cbb116100d0578063a9059cbb14610574578063afa4f3b2146105b0578063b70143c9146105d8578063c8c8ebe414610600576101ec565b80638da5cb5b146104bc57806395d89b41146104e65780639a7a23d614610510578063a457c2d714610538576101ec565b806339509351116101795780636323d7cb116101485780636323d7cb1461042c57806370a0823114610454578063715018a61461049057806389291a8f146104a6576101ec565b806339509351146103625780634fbee1931461039e57806352f7c988146103da578063583e056814610402576101ec565b806323b872dd116101b557806323b872dd146102aa578063311028af146102e6578063313ce56714610310578063346cc7be1461033a576101ec565b806299d386146101f057806306fdde031461021a578063095ea7b31461024457806318160ddd14610280576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b50610204610762565b60405161021191906127b9565b60405180910390f35b348015610225575f80fd5b5061022e610774565b60405161023b9190612842565b60405180910390f35b34801561024f575f80fd5b5061026a600480360381019061026591906128f3565b610804565b60405161027791906127b9565b60405180910390f35b34801561028b575f80fd5b50610294610826565b6040516102a19190612940565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612959565b61082f565b6040516102dd91906127b9565b60405180910390f35b3480156102f1575f80fd5b506102fa61085d565b6040516103079190612940565b60405180910390f35b34801561031b575f80fd5b50610324610863565b60405161033191906129c4565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b91906129dd565b61086b565b005b34801561036d575f80fd5b50610388600480360381019061038391906128f3565b610a2d565b60405161039591906127b9565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf91906129dd565b610a63565b6040516103d191906127b9565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190612a08565b610ab5565b005b34801561040d575f80fd5b50610416610b20565b6040516104239190612aa1565b60405180910390f35b348015610437575f80fd5b50610452600480360381019061044d9190612b17565b610b44565b005b34801561045f575f80fd5b5061047a600480360381019061047591906129dd565b610dab565b6040516104879190612940565b60405180910390f35b34801561049b575f80fd5b506104a4610df0565b005b3480156104b1575f80fd5b506104ba610e03565b005b3480156104c7575f80fd5b506104d0610eea565b6040516104dd9190612b76565b60405180910390f35b3480156104f1575f80fd5b506104fa610f12565b6040516105079190612842565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190612bb9565b610fa2565b005b348015610543575f80fd5b5061055e600480360381019061055991906128f3565b611047565b60405161056b91906127b9565b60405180910390f35b34801561057f575f80fd5b5061059a600480360381019061059591906128f3565b6110bc565b6040516105a791906127b9565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612bf7565b6110de565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612bf7565b611103565b005b34801561060b575f80fd5b50610614611203565b6040516106219190612940565b60405180910390f35b348015610635575f80fd5b5061063e611209565b005b34801561064b575f80fd5b5061065461122d565b6040516106619190612940565b60405180910390f35b348015610675575f80fd5b50610690600480360381019061068b9190612c22565b611233565b60405161069d9190612940565b60405180910390f35b3480156106b1575f80fd5b506106ba6112b5565b6040516106c79190612940565b60405180910390f35b3480156106db575f80fd5b506106e46112bb565b6040516106f19190612940565b60405180910390f35b348015610705575f80fd5b5061070e6112c1565b005b34801561071b575f80fd5b50610736600480360381019061073191906129dd565b6112e5565b005b348015610743575f80fd5b5061074c611367565b6040516107599190612940565b60405180910390f35b600d5f9054906101000a900460ff1681565b60606003805461078390612c8d565b80601f01602080910402602001604051908101604052809291908181526020018280546107af90612c8d565b80156107fa5780601f106107d1576101008083540402835291602001916107fa565b820191905f5260205f20905b8154815290600101906020018083116107dd57829003601f168201915b5050505050905090565b5f8061080e61136d565b905061081b818585611374565b600191505092915050565b5f600254905090565b5f8061083961136d565b9050610846858285611537565b6108518585856115c2565b60019150509392505050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ab61136d565b73ffffffffffffffffffffffffffffffffffffffff16146108ca575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109089190612b76565b602060405180830381865afa158015610923573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109479190612cd1565b90505f811161098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290612d46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109e7929190612d64565b6020604051808303815f875af1158015610a03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a279190612d9f565b50505050565b5f80610a3761136d565b9050610a58818585610a498589611233565b610a539190612df7565b611374565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610abd611f42565b60288211158015610acf575060328111155b610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612e74565b60405180910390fd5b81600e8190555080600f819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610bf6959493929190612ea1565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001610c8093929190612ef2565b6040516020818303038152906040528051906020012090505f8282604051602001610cac929190612f9b565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051610ce79493929190612fd1565b6020604051602081039080840390855afa158015610d07573d5f803e3d5ffd5b505050602060405103519050610d1b610eea565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061305e565b60405180910390fd5b6001600d5f6101000a81548160ff02191690831515021790555050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610df8611f42565b610e015f611fc0565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4361136d565b73ffffffffffffffffffffffffffffffffffffffff1614610e62575f80fd5b5f4711610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b906130c6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ee7573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f2190612c8d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4d90612c8d565b8015610f985780601f10610f6f57610100808354040283529160200191610f98565b820191905f5260205f20905b815481529060010190602001808311610f7b57829003601f168201915b5050505050905090565b610faa611f42565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103090613154565b60405180910390fd5b6110438282612083565b5050565b5f8061105161136d565b90505f61105e8286611233565b9050838110156110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906131e2565b60405180910390fd5b6110b08286868403611374565b60019250505092915050565b5f806110c661136d565b90506110d38185856115c2565b600191505092915050565b6110e6611f42565b670de0b6b3a7640000816110fa9190613200565b600c8190555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114361136d565b73ffffffffffffffffffffffffffffffffffffffff1614611162575f80fd5b5f61116b610826565b90505f61117730610dab565b90505f6064840361118a578190506111b1565b606484846111989190613200565b6111a2919061326e565b9050818111156111b0578190505b5b818111156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb9061330e565b60405180910390fd5b6111fd81612121565b50505050565b600a5481565b611211611f42565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b6112c9611f42565b5f6112d2610826565b905080600a8190555080600b8190555050565b6112ed611f42565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061339c565b60405180910390fd5b61136481611fc0565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061342a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611447906134b8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152a9190612940565b60405180910390a3505050565b5f6115428484611233565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115bc57818110156115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613520565b60405180910390fd5b6115bb8484848403611374565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061363c565b60405180910390fd5b5f81036116b5576116b083835f612375565b611f3d565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611754575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905061175e610eea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117cc575061179c610eea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118575750600860149054906101000a900460ff16155b15611c2457600d5f9054906101000a900460ff1661194a5760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061190a575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906136a4565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119e7575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8e57600a54821115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613732565b60405180910390fd5b600b54611a3d84610dab565b83611a489190612df7565b1115611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061379a565b60405180910390fd5b611c23565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b2b575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b7a57600a54821115611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613828565b60405180910390fd5b611c22565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c2157600b54611bd484610dab565b83611bdf9190612df7565b1115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061379a565b60405180910390fd5b5b5b5b5b5f611c2e30610dab565b90505f8082118015611c3e575082155b9050808015611c5a5750600860149054906101000a900460ff16155b8015611cad575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c846125e1565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611db3575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e50575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611e59575f90505b5f8115611f2c5760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ede57611ed76064611ec9600f548961276b90919063ffffffff16565b61278090919063ffffffff16565b9050611f09565b611f066064611ef8600e548961276b90919063ffffffff16565b61278090919063ffffffff16565b90505b5f811115611f1d57611f1c883083612375565b5b8086611f299190613846565b95505b611f37888888612375565b50505050505b505050565b611f4a61136d565b73ffffffffffffffffffffffffffffffffffffffff16611f68610eea565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138c3565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561213d5761213c6138e1565b5b60405190808252806020026020018201604052801561216b5781602001602082028036833780820191505090505b50905030815f815181106121825761218161390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612225573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612249919061394f565b8160018151811061225d5761225c61390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c2307f000000000000000000000000000000000000000000000000000000000000000084611374565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612344959493929190613a6a565b5f604051808303815f87803b15801561235b575f80fd5b505af115801561236d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124489061363c565b60405180910390fd5b61245c838383612795565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690613b32565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125c89190612940565b60405180910390a36125db84848461279a565b50505050565b5f6125eb30610dab565b90505f8082036125fc575050612768565b5f600f54600e5461260d9190612df7565b03612687575f821180156126225750600c5482105b1561262f57819050612682565b5f612658606461264a600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b905080846126669190613846565b9350600c5484111561267c57600c549150612680565b8391505b505b61275c565b5f821180156126aa57506126a76005600c5461278090919063ffffffff16565b82105b156126b6575050612768565b5f821180156126d957506126d66005600c5461278090919063ffffffff16565b82115b80156126e65750600c5482105b15612708576127016005600c5461278090919063ffffffff16565b905061275b565b5f6127316064612723600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b9050808461273f9190613846565b9350600c5484111561275557600c549150612759565b8391505b505b5b61276581612121565b50505b50565b5f81836127789190613200565b905092915050565b5f818361278d919061326e565b905092915050565b505050565b505050565b5f8115159050919050565b6127b38161279f565b82525050565b5f6020820190506127cc5f8301846127aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612814826127d2565b61281e81856127dc565b935061282e8185602086016127ec565b612837816127fa565b840191505092915050565b5f6020820190508181035f83015261285a818461280a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288f82612866565b9050919050565b61289f81612885565b81146128a9575f80fd5b50565b5f813590506128ba81612896565b92915050565b5f819050919050565b6128d2816128c0565b81146128dc575f80fd5b50565b5f813590506128ed816128c9565b92915050565b5f806040838503121561290957612908612862565b5b5f612916858286016128ac565b9250506020612927858286016128df565b9150509250929050565b61293a816128c0565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f805f606084860312156129705761296f612862565b5b5f61297d868287016128ac565b935050602061298e868287016128ac565b925050604061299f868287016128df565b9150509250925092565b5f60ff82169050919050565b6129be816129a9565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b5f602082840312156129f2576129f1612862565b5b5f6129ff848285016128ac565b91505092915050565b5f8060408385031215612a1e57612a1d612862565b5b5f612a2b858286016128df565b9250506020612a3c858286016128df565b9150509250929050565b5f819050919050565b5f612a69612a64612a5f84612866565b612a46565b612866565b9050919050565b5f612a7a82612a4f565b9050919050565b5f612a8b82612a70565b9050919050565b612a9b81612a81565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b612ac3816129a9565b8114612acd575f80fd5b50565b5f81359050612ade81612aba565b92915050565b5f819050919050565b612af681612ae4565b8114612b00575f80fd5b50565b5f81359050612b1181612aed565b92915050565b5f805f60608486031215612b2e57612b2d612862565b5b5f612b3b86828701612ad0565b9350506020612b4c86828701612b03565b9250506040612b5d86828701612b03565b9150509250925092565b612b7081612885565b82525050565b5f602082019050612b895f830184612b67565b92915050565b612b988161279f565b8114612ba2575f80fd5b50565b5f81359050612bb381612b8f565b92915050565b5f8060408385031215612bcf57612bce612862565b5b5f612bdc858286016128ac565b9250506020612bed85828601612ba5565b9150509250929050565b5f60208284031215612c0c57612c0b612862565b5b5f612c19848285016128df565b91505092915050565b5f8060408385031215612c3857612c37612862565b5b5f612c45858286016128ac565b9250506020612c56858286016128ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ca457607f821691505b602082108103612cb757612cb6612c60565b5b50919050565b5f81519050612ccb816128c9565b92915050565b5f60208284031215612ce657612ce5612862565b5b5f612cf384828501612cbd565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f612d306012836127dc565b9150612d3b82612cfc565b602082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b5f604082019050612d775f830185612b67565b612d846020830184612931565b9392505050565b5f81519050612d9981612b8f565b92915050565b5f60208284031215612db457612db3612862565b5b5f612dc184828501612d8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e01826128c0565b9150612e0c836128c0565b9250828201905080821115612e2457612e23612dca565b5b92915050565b7f466565732063616e6e6f742065786365656420393925000000000000000000005f82015250565b5f612e5e6016836127dc565b9150612e6982612e2a565b602082019050919050565b5f6020820190508181035f830152612e8b81612e52565b9050919050565b612e9b81612ae4565b82525050565b5f60a082019050612eb45f830188612e92565b612ec16020830187612e92565b612ece6040830186612e92565b612edb6060830185612931565b612ee86080830184612b67565b9695505050505050565b5f606082019050612f055f830186612e92565b612f126020830185612e92565b612f1f6040830184612931565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f612f65600283612f27565b9150612f7082612f31565b600282019050919050565b5f819050919050565b612f95612f9082612ae4565b612f7b565b82525050565b5f612fa582612f59565b9150612fb18285612f84565b602082019150612fc18284612f84565b6020820191508190509392505050565b5f608082019050612fe45f830187612e92565b612ff160208301866129b5565b612ffe6040830185612e92565b61300b6060830184612e92565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f6130486011836127dc565b915061305382613014565b602082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6130b06016836127dc565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61313e6039836127dc565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836127dc565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b5f61320a826128c0565b9150613215836128c0565b9250828202613223816128c0565b9150828204841483151761323a57613239612dca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613278826128c0565b9150613283836128c0565b92508261329357613292613241565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86024836127dc565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133866026836127dc565b91506133918261332c565b604082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134146024836127dc565b915061341f826133ba565b604082019050919050565b5f6020820190508181035f83015261344181613408565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a26022836127dc565b91506134ad82613448565b604082019050919050565b5f6020820190508181035f8301526134cf81613496565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61350a601d836127dc565b9150613515826134d6565b602082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135986025836127dc565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136266023836127dc565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61368e6016836127dc565b91506136998261365a565b602082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61371c6035836127dc565b9150613727826136c2565b604082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6137846013836127dc565b915061378f82613750565b602082019050919050565b5f6020820190508181035f8301526137b181613778565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6138126036836127dc565b915061381d826137b8565b604082019050919050565b5f6020820190508181035f83015261383f81613806565b9050919050565b5f613850826128c0565b915061385b836128c0565b925082820390508181111561387357613872612dca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138ad6020836127dc565b91506138b882613879565b602082019050919050565b5f6020820190508181035f8301526138da816138a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061394981612896565b92915050565b5f6020828403121561396457613963612862565b5b5f6139718482850161393b565b91505092915050565b5f819050919050565b5f61399d6139986139938461397a565b612a46565b6128c0565b9050919050565b6139ad81613983565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139e581612885565b82525050565b5f6139f683836139dc565b60208301905092915050565b5f602082019050919050565b5f613a18826139b3565b613a2281856139bd565b9350613a2d836139cd565b805f5b83811015613a5d578151613a4488826139eb565b9750613a4f83613a02565b925050600181019050613a30565b5085935050505092915050565b5f60a082019050613a7d5f830188612931565b613a8a60208301876139a4565b8181036040830152613a9c8186613a0e565b9050613aab6060830185612b67565b613ab86080830184612931565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b1c6026836127dc565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b905091905056fea26469706673582212208a2b9f54f1e34d7034d14afdb1708e9d8501e0ab444a976c10cd4040591abf5564736f6c634300081900330000000000000000000000007a2a05a30056e9f3b51b91c77cadeabca77b7eb2

Deployed Bytecode

0x6080604052600436106101e5575f3560e01c80638da5cb5b11610101578063c9567bf911610094578063e2f4560511610063578063e2f45605146106d0578063f23a3615146106fa578063f2fde38b14610710578063f8b45b0514610738576101ec565b8063c9567bf91461062a578063cf9522fd14610640578063dd62ed3e1461066a578063dd854652146106a6576101ec565b8063a9059cbb116100d0578063a9059cbb14610574578063afa4f3b2146105b0578063b70143c9146105d8578063c8c8ebe414610600576101ec565b80638da5cb5b146104bc57806395d89b41146104e65780639a7a23d614610510578063a457c2d714610538576101ec565b806339509351116101795780636323d7cb116101485780636323d7cb1461042c57806370a0823114610454578063715018a61461049057806389291a8f146104a6576101ec565b806339509351146103625780634fbee1931461039e57806352f7c988146103da578063583e056814610402576101ec565b806323b872dd116101b557806323b872dd146102aa578063311028af146102e6578063313ce56714610310578063346cc7be1461033a576101ec565b806299d386146101f057806306fdde031461021a578063095ea7b31461024457806318160ddd14610280576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b50610204610762565b60405161021191906127b9565b60405180910390f35b348015610225575f80fd5b5061022e610774565b60405161023b9190612842565b60405180910390f35b34801561024f575f80fd5b5061026a600480360381019061026591906128f3565b610804565b60405161027791906127b9565b60405180910390f35b34801561028b575f80fd5b50610294610826565b6040516102a19190612940565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612959565b61082f565b6040516102dd91906127b9565b60405180910390f35b3480156102f1575f80fd5b506102fa61085d565b6040516103079190612940565b60405180910390f35b34801561031b575f80fd5b50610324610863565b60405161033191906129c4565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b91906129dd565b61086b565b005b34801561036d575f80fd5b50610388600480360381019061038391906128f3565b610a2d565b60405161039591906127b9565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf91906129dd565b610a63565b6040516103d191906127b9565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190612a08565b610ab5565b005b34801561040d575f80fd5b50610416610b20565b6040516104239190612aa1565b60405180910390f35b348015610437575f80fd5b50610452600480360381019061044d9190612b17565b610b44565b005b34801561045f575f80fd5b5061047a600480360381019061047591906129dd565b610dab565b6040516104879190612940565b60405180910390f35b34801561049b575f80fd5b506104a4610df0565b005b3480156104b1575f80fd5b506104ba610e03565b005b3480156104c7575f80fd5b506104d0610eea565b6040516104dd9190612b76565b60405180910390f35b3480156104f1575f80fd5b506104fa610f12565b6040516105079190612842565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190612bb9565b610fa2565b005b348015610543575f80fd5b5061055e600480360381019061055991906128f3565b611047565b60405161056b91906127b9565b60405180910390f35b34801561057f575f80fd5b5061059a600480360381019061059591906128f3565b6110bc565b6040516105a791906127b9565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612bf7565b6110de565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612bf7565b611103565b005b34801561060b575f80fd5b50610614611203565b6040516106219190612940565b60405180910390f35b348015610635575f80fd5b5061063e611209565b005b34801561064b575f80fd5b5061065461122d565b6040516106619190612940565b60405180910390f35b348015610675575f80fd5b50610690600480360381019061068b9190612c22565b611233565b60405161069d9190612940565b60405180910390f35b3480156106b1575f80fd5b506106ba6112b5565b6040516106c79190612940565b60405180910390f35b3480156106db575f80fd5b506106e46112bb565b6040516106f19190612940565b60405180910390f35b348015610705575f80fd5b5061070e6112c1565b005b34801561071b575f80fd5b50610736600480360381019061073191906129dd565b6112e5565b005b348015610743575f80fd5b5061074c611367565b6040516107599190612940565b60405180910390f35b600d5f9054906101000a900460ff1681565b60606003805461078390612c8d565b80601f01602080910402602001604051908101604052809291908181526020018280546107af90612c8d565b80156107fa5780601f106107d1576101008083540402835291602001916107fa565b820191905f5260205f20905b8154815290600101906020018083116107dd57829003601f168201915b5050505050905090565b5f8061080e61136d565b905061081b818585611374565b600191505092915050565b5f600254905090565b5f8061083961136d565b9050610846858285611537565b6108518585856115c2565b60019150509392505050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ab61136d565b73ffffffffffffffffffffffffffffffffffffffff16146108ca575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109089190612b76565b602060405180830381865afa158015610923573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109479190612cd1565b90505f811161098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290612d46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109e7929190612d64565b6020604051808303815f875af1158015610a03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a279190612d9f565b50505050565b5f80610a3761136d565b9050610a58818585610a498589611233565b610a539190612df7565b611374565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610abd611f42565b60288211158015610acf575060328111155b610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612e74565b60405180910390fd5b81600e8190555080600f819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610bf6959493929190612ea1565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001610c8093929190612ef2565b6040516020818303038152906040528051906020012090505f8282604051602001610cac929190612f9b565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051610ce79493929190612fd1565b6020604051602081039080840390855afa158015610d07573d5f803e3d5ffd5b505050602060405103519050610d1b610eea565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061305e565b60405180910390fd5b6001600d5f6101000a81548160ff02191690831515021790555050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610df8611f42565b610e015f611fc0565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4361136d565b73ffffffffffffffffffffffffffffffffffffffff1614610e62575f80fd5b5f4711610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b906130c6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ee7573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f2190612c8d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4d90612c8d565b8015610f985780601f10610f6f57610100808354040283529160200191610f98565b820191905f5260205f20905b815481529060010190602001808311610f7b57829003601f168201915b5050505050905090565b610faa611f42565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103090613154565b60405180910390fd5b6110438282612083565b5050565b5f8061105161136d565b90505f61105e8286611233565b9050838110156110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906131e2565b60405180910390fd5b6110b08286868403611374565b60019250505092915050565b5f806110c661136d565b90506110d38185856115c2565b600191505092915050565b6110e6611f42565b670de0b6b3a7640000816110fa9190613200565b600c8190555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114361136d565b73ffffffffffffffffffffffffffffffffffffffff1614611162575f80fd5b5f61116b610826565b90505f61117730610dab565b90505f6064840361118a578190506111b1565b606484846111989190613200565b6111a2919061326e565b9050818111156111b0578190505b5b818111156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb9061330e565b60405180910390fd5b6111fd81612121565b50505050565b600a5481565b611211611f42565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b6112c9611f42565b5f6112d2610826565b905080600a8190555080600b8190555050565b6112ed611f42565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061339c565b60405180910390fd5b61136481611fc0565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061342a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611447906134b8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152a9190612940565b60405180910390a3505050565b5f6115428484611233565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115bc57818110156115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613520565b60405180910390fd5b6115bb8484848403611374565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061363c565b60405180910390fd5b5f81036116b5576116b083835f612375565b611f3d565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611754575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905061175e610eea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117cc575061179c610eea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118575750600860149054906101000a900460ff16155b15611c2457600d5f9054906101000a900460ff1661194a5760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061190a575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906136a4565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119e7575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8e57600a54821115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613732565b60405180910390fd5b600b54611a3d84610dab565b83611a489190612df7565b1115611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061379a565b60405180910390fd5b611c23565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b2b575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b7a57600a54821115611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613828565b60405180910390fd5b611c22565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c2157600b54611bd484610dab565b83611bdf9190612df7565b1115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061379a565b60405180910390fd5b5b5b5b5b5f611c2e30610dab565b90505f8082118015611c3e575082155b9050808015611c5a5750600860149054906101000a900460ff16155b8015611cad575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c846125e1565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611db3575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e50575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611e59575f90505b5f8115611f2c5760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ede57611ed76064611ec9600f548961276b90919063ffffffff16565b61278090919063ffffffff16565b9050611f09565b611f066064611ef8600e548961276b90919063ffffffff16565b61278090919063ffffffff16565b90505b5f811115611f1d57611f1c883083612375565b5b8086611f299190613846565b95505b611f37888888612375565b50505050505b505050565b611f4a61136d565b73ffffffffffffffffffffffffffffffffffffffff16611f68610eea565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138c3565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561213d5761213c6138e1565b5b60405190808252806020026020018201604052801561216b5781602001602082028036833780820191505090505b50905030815f815181106121825761218161390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612225573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612249919061394f565b8160018151811061225d5761225c61390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611374565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612344959493929190613a6a565b5f604051808303815f87803b15801561235b575f80fd5b505af115801561236d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124489061363c565b60405180910390fd5b61245c838383612795565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690613b32565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125c89190612940565b60405180910390a36125db84848461279a565b50505050565b5f6125eb30610dab565b90505f8082036125fc575050612768565b5f600f54600e5461260d9190612df7565b03612687575f821180156126225750600c5482105b1561262f57819050612682565b5f612658606461264a600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b905080846126669190613846565b9350600c5484111561267c57600c549150612680565b8391505b505b61275c565b5f821180156126aa57506126a76005600c5461278090919063ffffffff16565b82105b156126b6575050612768565b5f821180156126d957506126d66005600c5461278090919063ffffffff16565b82115b80156126e65750600c5482105b15612708576127016005600c5461278090919063ffffffff16565b905061275b565b5f6127316064612723600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b9050808461273f9190613846565b9350600c5484111561275557600c549150612759565b8391505b505b5b61276581612121565b50505b50565b5f81836127789190613200565b905092915050565b5f818361278d919061326e565b905092915050565b505050565b505050565b5f8115159050919050565b6127b38161279f565b82525050565b5f6020820190506127cc5f8301846127aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612814826127d2565b61281e81856127dc565b935061282e8185602086016127ec565b612837816127fa565b840191505092915050565b5f6020820190508181035f83015261285a818461280a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288f82612866565b9050919050565b61289f81612885565b81146128a9575f80fd5b50565b5f813590506128ba81612896565b92915050565b5f819050919050565b6128d2816128c0565b81146128dc575f80fd5b50565b5f813590506128ed816128c9565b92915050565b5f806040838503121561290957612908612862565b5b5f612916858286016128ac565b9250506020612927858286016128df565b9150509250929050565b61293a816128c0565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f805f606084860312156129705761296f612862565b5b5f61297d868287016128ac565b935050602061298e868287016128ac565b925050604061299f868287016128df565b9150509250925092565b5f60ff82169050919050565b6129be816129a9565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b5f602082840312156129f2576129f1612862565b5b5f6129ff848285016128ac565b91505092915050565b5f8060408385031215612a1e57612a1d612862565b5b5f612a2b858286016128df565b9250506020612a3c858286016128df565b9150509250929050565b5f819050919050565b5f612a69612a64612a5f84612866565b612a46565b612866565b9050919050565b5f612a7a82612a4f565b9050919050565b5f612a8b82612a70565b9050919050565b612a9b81612a81565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b612ac3816129a9565b8114612acd575f80fd5b50565b5f81359050612ade81612aba565b92915050565b5f819050919050565b612af681612ae4565b8114612b00575f80fd5b50565b5f81359050612b1181612aed565b92915050565b5f805f60608486031215612b2e57612b2d612862565b5b5f612b3b86828701612ad0565b9350506020612b4c86828701612b03565b9250506040612b5d86828701612b03565b9150509250925092565b612b7081612885565b82525050565b5f602082019050612b895f830184612b67565b92915050565b612b988161279f565b8114612ba2575f80fd5b50565b5f81359050612bb381612b8f565b92915050565b5f8060408385031215612bcf57612bce612862565b5b5f612bdc858286016128ac565b9250506020612bed85828601612ba5565b9150509250929050565b5f60208284031215612c0c57612c0b612862565b5b5f612c19848285016128df565b91505092915050565b5f8060408385031215612c3857612c37612862565b5b5f612c45858286016128ac565b9250506020612c56858286016128ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ca457607f821691505b602082108103612cb757612cb6612c60565b5b50919050565b5f81519050612ccb816128c9565b92915050565b5f60208284031215612ce657612ce5612862565b5b5f612cf384828501612cbd565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f612d306012836127dc565b9150612d3b82612cfc565b602082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b5f604082019050612d775f830185612b67565b612d846020830184612931565b9392505050565b5f81519050612d9981612b8f565b92915050565b5f60208284031215612db457612db3612862565b5b5f612dc184828501612d8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e01826128c0565b9150612e0c836128c0565b9250828201905080821115612e2457612e23612dca565b5b92915050565b7f466565732063616e6e6f742065786365656420393925000000000000000000005f82015250565b5f612e5e6016836127dc565b9150612e6982612e2a565b602082019050919050565b5f6020820190508181035f830152612e8b81612e52565b9050919050565b612e9b81612ae4565b82525050565b5f60a082019050612eb45f830188612e92565b612ec16020830187612e92565b612ece6040830186612e92565b612edb6060830185612931565b612ee86080830184612b67565b9695505050505050565b5f606082019050612f055f830186612e92565b612f126020830185612e92565b612f1f6040830184612931565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f612f65600283612f27565b9150612f7082612f31565b600282019050919050565b5f819050919050565b612f95612f9082612ae4565b612f7b565b82525050565b5f612fa582612f59565b9150612fb18285612f84565b602082019150612fc18284612f84565b6020820191508190509392505050565b5f608082019050612fe45f830187612e92565b612ff160208301866129b5565b612ffe6040830185612e92565b61300b6060830184612e92565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f6130486011836127dc565b915061305382613014565b602082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6130b06016836127dc565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61313e6039836127dc565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836127dc565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b5f61320a826128c0565b9150613215836128c0565b9250828202613223816128c0565b9150828204841483151761323a57613239612dca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613278826128c0565b9150613283836128c0565b92508261329357613292613241565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86024836127dc565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133866026836127dc565b91506133918261332c565b604082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134146024836127dc565b915061341f826133ba565b604082019050919050565b5f6020820190508181035f83015261344181613408565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a26022836127dc565b91506134ad82613448565b604082019050919050565b5f6020820190508181035f8301526134cf81613496565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61350a601d836127dc565b9150613515826134d6565b602082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135986025836127dc565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136266023836127dc565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61368e6016836127dc565b91506136998261365a565b602082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61371c6035836127dc565b9150613727826136c2565b604082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6137846013836127dc565b915061378f82613750565b602082019050919050565b5f6020820190508181035f8301526137b181613778565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6138126036836127dc565b915061381d826137b8565b604082019050919050565b5f6020820190508181035f83015261383f81613806565b9050919050565b5f613850826128c0565b915061385b836128c0565b925082820390508181111561387357613872612dca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138ad6020836127dc565b91506138b882613879565b602082019050919050565b5f6020820190508181035f8301526138da816138a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061394981612896565b92915050565b5f6020828403121561396457613963612862565b5b5f6139718482850161393b565b91505092915050565b5f819050919050565b5f61399d6139986139938461397a565b612a46565b6128c0565b9050919050565b6139ad81613983565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139e581612885565b82525050565b5f6139f683836139dc565b60208301905092915050565b5f602082019050919050565b5f613a18826139b3565b613a2281856139bd565b9350613a2d836139cd565b805f5b83811015613a5d578151613a4488826139eb565b9750613a4f83613a02565b925050600181019050613a30565b5085935050505092915050565b5f60a082019050613a7d5f830188612931565b613a8a60208301876139a4565b8181036040830152613a9c8186613a0e565b9050613aab6060830185612b67565b613ab86080830184612931565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b1c6026836127dc565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b905091905056fea26469706673582212208a2b9f54f1e34d7034d14afdb1708e9d8501e0ab444a976c10cd4040591abf5564736f6c63430008190033

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

0000000000000000000000007a2a05a30056e9f3b51b91c77cadeabca77b7eb2

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

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


Deployed Bytecode Sourcemap

14828:10581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15525:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9852:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10784:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10173:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10993:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15278:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10072:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22625:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11296:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19119:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22980:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14913:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17314:1029;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10289:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8928:103;;;;;;;;;;;;;:::i;:::-;;22392:225;;;;;;;;;;;;;:::i;:::-;;8693:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9960:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18675:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11542:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10424:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23199:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23334:667;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15342:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17227:79;;;;;;;;;;;;;:::i;:::-;;15598:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10625:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15565:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15461:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22184:200;;;;;;;;;;;;;:::i;:::-;;9039:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15407:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15525:31;;;;;;;;;;;;;:::o;9852:100::-;9906:13;9939:5;9932:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9852:100;:::o;10784:201::-;10867:4;10884:13;10900:12;:10;:12::i;:::-;10884:28;;10923:32;10932:5;10939:7;10948:6;10923:8;:32::i;:::-;10973:4;10966:11;;;10784:201;;;;:::o;10173:108::-;10234:7;10261:12;;10254:19;;10173:108;:::o;10993:295::-;11124:4;11141:15;11159:12;:10;:12::i;:::-;11141:30;;11182:38;11198:4;11204:7;11213:6;11182:15;:38::i;:::-;11231:27;11241:4;11247:2;11251:6;11231:9;:27::i;:::-;11276:4;11269:11;;;10993:295;;;;;:::o;15278:57::-;;;;:::o;10072:93::-;10130:5;10155:2;10148:9;;10072:93;:::o;22625:347::-;22717:14;;;;;;;;;;;22701:30;;:12;:10;:12::i;:::-;:30;;;22693:39;;;;;;22743:20;22773:12;22743:43;;22797:15;22815:13;:23;;;22847:4;22815:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22797:56;;22882:1;22872:7;:11;22864:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;22917:13;:22;;;22940:14;;;;;;;;;;;22956:7;22917:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22682:290;;22625:347;:::o;11296:238::-;11384:4;11401:13;11417:12;:10;:12::i;:::-;11401:28;;11440:64;11449:5;11456:7;11493:10;11465:25;11475:5;11482:7;11465:9;:25::i;:::-;:38;;;;:::i;:::-;11440:8;:64::i;:::-;11522:4;11515:11;;;11296:238;;;;:::o;19119:126::-;19185:4;19209:19;:28;19229:7;19209:28;;;;;;;;;;;;;;;;;;;;;;;;;19202:35;;19119:126;;;:::o;22980:211::-;8652:13;:11;:13::i;:::-;23080:2:::1;23069:7;:13;;:31;;;;;23098:2;23086:8;:14;;23069:31;23061:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23147:7;23138:6;:16;;;;23175:8;23165:7;:18;;;;22980:211:::0;;:::o;14913:52::-;;;:::o;17314:1029::-;17396:18;17470:95;17594:22;;;;;;;;;;;;;;;;;17584:33;;;;;;17646:10;;;;;;;;;;;;;;;;;17636:21;;;;;;17676:13;17716:4;17441:295;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17417:330;;;;;;17396:351;;17760:18;17834:49;17912:23;;;;;;;;;;;;;;;;;17902:34;;;;;;17963:1;17805:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17781:210;;;;;;17760:231;;18004:14;18109:10;18138;18045:134;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18021:169;;;;;;18004:186;;18203:14;18220:26;18230:6;18238:1;18241;18244;18220:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18203:43;;18275:7;:5;:7::i;:::-;18265:17;;:6;:17;;;18257:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18331:4;18317:11;;:18;;;;;;;;;;;;;;;;;;17385:958;;;;17314:1029;;;:::o;10289:127::-;10363:7;10390:9;:18;10400:7;10390:18;;;;;;;;;;;;;;;;10383:25;;10289:127;;;:::o;8928:103::-;8652:13;:11;:13::i;:::-;8993:30:::1;9020:1;8993:18;:30::i;:::-;8928:103::o:0;22392:225::-;22461:14;;;;;;;;;;;22445:30;;:12;:10;:12::i;:::-;:30;;;22437:39;;;;;;22519:1;22495:21;:25;22487:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22566:10;22558:28;;:51;22587:21;22558:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22392:225::o;8693:87::-;8739:7;8766:6;;;;;;;;;;;8759:13;;8693:87;:::o;9960:104::-;10016:13;10049:7;10042:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9960:104;:::o;18675:242::-;8652:13;:11;:13::i;:::-;18782::::1;;;;;;;;;;;18774:21;;:4;:21;;::::0;18766:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18868:41;18897:4;18903:5;18868:28;:41::i;:::-;18675:242:::0;;:::o;11542:436::-;11635:4;11652:13;11668:12;:10;:12::i;:::-;11652:28;;11691:24;11718:25;11728:5;11735:7;11718:9;:25::i;:::-;11691:52;;11782:15;11762:16;:35;;11754:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11875:60;11884:5;11891:7;11919:15;11900:16;:34;11875:8;:60::i;:::-;11966:4;11959:11;;;;11542:436;;;;:::o;10424:193::-;10503:4;10520:13;10536:12;:10;:12::i;:::-;10520:28;;10559;10569:5;10576:2;10580:6;10559:9;:28::i;:::-;10605:4;10598:11;;;10424:193;;;;:::o;23199:127::-;8652:13;:11;:13::i;:::-;23309:8:::1;23298:7;:20;;;;:::i;:::-;23277:18;:41;;;;23199:127:::0;:::o;23334:667::-;23415:14;;;;;;;;;;;23399:30;;:12;:10;:12::i;:::-;:30;;;23391:39;;;;;;23441:25;23469:13;:11;:13::i;:::-;23441:41;;23493:23;23519:24;23537:4;23519:9;:24::i;:::-;23493:50;;23554:20;23602:3;23591:7;:14;23587:273;;23637:15;23622:30;;23587:273;;;23730:3;23720:7;23700:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23685:48;;23767:15;23752:12;:30;23748:101;;;23818:15;23803:30;;23748:101;23587:273;23896:15;23880:12;:31;;23872:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;23963:30;23980:12;23963:16;:30::i;:::-;23380:621;;;23334:667;:::o;15342:58::-;;;;:::o;17227:79::-;8652:13;:11;:13::i;:::-;17294:4:::1;17280:11;;:18;;;;;;;;;;;;;;;;;;17227:79::o:0;15598:27::-;;;;:::o;10625:151::-;10714:7;10741:11;:18;10753:5;10741:18;;;;;;;;;;;;;;;:27;10760:7;10741:27;;;;;;;;;;;;;;;;10734:34;;10625:151;;;;:::o;15565:26::-;;;;:::o;15461:55::-;;;;:::o;22184:200::-;8652:13;:11;:13::i;:::-;22244:25:::1;22272:13;:11;:13::i;:::-;22244:41;;22319:17;22296:20;:40;;;;22359:17;22347:9;:29;;;;22233:151;22184:200::o:0;9039:201::-;8652:13;:11;:13::i;:::-;9148:1:::1;9128:22;;:8;:22;;::::0;9120:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9204:28;9223:8;9204:18;:28::i;:::-;9039:201:::0;:::o;15407:47::-;;;;:::o;337:98::-;390:7;417:10;410:17;;337:98;:::o;13715:380::-;13868:1;13851:19;;:5;:19;;;13843:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13949:1;13930:21;;:7;:21;;;13922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14033:6;14003:11;:18;14015:5;14003:18;;;;;;;;;;;;;;;:27;14022:7;14003:27;;;;;;;;;;;;;;;:36;;;;14071:7;14055:32;;14064:5;14055:32;;;14080:6;14055:32;;;;;;:::i;:::-;;;;;;;;13715:380;;;:::o;14103:453::-;14238:24;14265:25;14275:5;14282:7;14265:9;:25::i;:::-;14238:52;;14325:17;14305:16;:37;14301:248;;14387:6;14367:16;:26;;14359:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14471:51;14480:5;14487:7;14515:6;14496:16;:25;14471:8;:51::i;:::-;14301:248;14227:329;14103:453;;;:::o;19253:2433::-;19369:1;19353:18;;:4;:18;;;19345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19446:1;19432:16;;:2;:16;;;19424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19515:1;19505:6;:11;19501:93;;19533:28;19549:4;19555:2;19559:1;19533:15;:28::i;:::-;19576:7;;19501:93;19614:15;19633:25;:31;19659:4;19633:31;;;;;;;;;;;;;;;;;;;;;;;;;19632:32;:66;;;;;19669:25;:29;19695:2;19669:29;;;;;;;;;;;;;;;;;;;;;;;;;19668:30;19632:66;19614:84;;19723:7;:5;:7::i;:::-;19715:15;;:4;:15;;;;:32;;;;;19740:7;:5;:7::i;:::-;19734:13;;:2;:13;;;;19715:32;:52;;;;;19765:1;19751:16;;:2;:16;;;;19715:52;:77;;;;;19785:6;19771:21;;:2;:21;;;;19715:77;:90;;;;;19797:8;;;;;;;;;;;19796:9;19715:90;19711:1000;;;19829:11;;;;;;;;;;;19824:140;;19869:19;:25;19889:4;19869:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19898:19;:23;19918:2;19898:23;;;;;;;;;;;;;;;;;;;;;;;;;19869:52;19861:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19824:140;19984:25;:31;20010:4;19984:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20020:31;:35;20052:2;20020:35;;;;;;;;;;;;;;;;;;;;;;;;;20019:36;19984:71;19980:706;;;20094:20;;20084:6;:30;;20076:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20225:9;;20208:13;20218:2;20208:9;:13::i;:::-;20199:6;:22;;;;:::i;:::-;:35;;20191:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19980:706;;;20299:25;:29;20325:2;20299:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20333:31;:37;20365:4;20333:37;;;;;;;;;;;;;;;;;;;;;;;;;20332:38;20299:71;20295:391;;;20409:20;;20399:6;:30;;20391:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20295:391;;;20547:31;:35;20579:2;20547:35;;;;;;;;;;;;;;;;;;;;;;;;;20542:144;;20637:9;;20620:13;20630:2;20620:9;:13::i;:::-;20611:6;:22;;;;:::i;:::-;:35;;20603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20542:144;20295:391;19980:706;19711:1000;20723:28;20754:24;20772:4;20754:9;:24::i;:::-;20723:55;;20791:12;20829:1;20806:20;:24;:39;;;;;20835:10;20834:11;20806:39;20791:54;;20862:7;:20;;;;;20874:8;;;;;;;;;;;20873:9;20862:20;:56;;;;;20887:25;:31;20913:4;20887:31;;;;;;;;;;;;;;;;;;;;;;;;;20886:32;20862:56;:86;;;;;20923:19;:25;20943:4;20923:25;;;;;;;;;;;;;;;;;;;;;;;;;20922:26;20862:86;:114;;;;;20953:19;:23;20973:2;20953:23;;;;;;;;;;;;;;;;;;;;;;;;;20952:24;20862:114;20858:224;;;21004:4;20993:8;;:15;;;;;;;;;;;;;;;;;;21023:16;21032:6;21023:8;:16::i;:::-;21065:5;21054:8;;:16;;;;;;;;;;;;;;;;;;20858:224;21094:12;21110:8;;;;;;;;;;;21109:9;:24;;;;;21123:10;21122:11;21109:24;21094:39;;21150:19;:25;21170:4;21150:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21179:19;:23;21199:2;21179:23;;;;;;;;;;;;;;;;;;;;;;;;;21150:52;21146:100;;;21229:5;21219:15;;21146:100;21258:12;21291:7;21287:348;;;21319:25;:29;21345:2;21319:29;;;;;;;;;;;;;;;;;;;;;;;;;21315:193;;;21376:28;21400:3;21376:19;21387:7;;21376:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21369:35;;21315:193;;;21465:27;21488:3;21465:18;21476:6;;21465;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21458:34;;21315:193;21531:1;21524:4;:8;21520:83;;;21549:42;21565:4;21579;21586;21549:15;:42::i;:::-;21520:83;21623:4;21613:14;;;;;:::i;:::-;;;21287:348;21645:33;21661:4;21667:2;21671:6;21645:15;:33::i;:::-;19332:2354;;;;;19253:2433;;;;:::o;8788:132::-;8863:12;:10;:12::i;:::-;8852:23;;:7;:5;:7::i;:::-;:23;;;8844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8788:132::o;9248:191::-;9322:16;9341:6;;;;;;;;;;;9322:25;;9367:8;9358:6;;:17;;;;;;;;;;;;;;;;;;9422:8;9391:40;;9412:8;9391:40;;;;;;;;;;;;9311:128;9248:191;:::o;18925:186::-;19042:5;19008:25;:31;19034:4;19008:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19097:5;19063:40;;19091:4;19063:40;;;;;;;;;;;;18925:186;;:::o;21694:482::-;21762:21;21800:1;21786:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21762:40;;21831:4;21813;21818:1;21813:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21857:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21847:4;21852:1;21847:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21893:63;21910:4;21925:16;21944:11;21893:8;:63::i;:::-;21969:16;:67;;;22051:11;22077:1;22093:4;22112:15;;;;;;;;;;;22142;21969:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21749:427;21694:482;:::o;11986:675::-;12133:1;12117:18;;:4;:18;;;12109:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12210:1;12196:16;;:2;:16;;;12188:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12265:38;12286:4;12292:2;12296:6;12265:20;:38::i;:::-;12316:19;12338:9;:15;12348:4;12338:15;;;;;;;;;;;;;;;;12316:37;;12387:6;12372:11;:21;;12364:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12504:6;12490:11;:20;12472:9;:15;12482:4;12472:15;;;;;;;;;;;;;;;:38;;;;12542:6;12525:9;:13;12535:2;12525:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12592:2;12577:26;;12586:4;12577:26;;;12596:6;12577:26;;;;;;:::i;:::-;;;;;;;;12616:37;12636:4;12642:2;12646:6;12616:19;:37::i;:::-;12098:563;11986:675;;;:::o;24009:1397::-;24062:23;24088:24;24106:4;24088:9;:24::i;:::-;24062:50;;24123:20;24180:1;24161:15;:20;24157:59;;24198:7;;;;24157:59;24252:1;24240:7;;24233:6;;:14;;;;:::i;:::-;24232:21;24228:1130;;24289:1;24271:15;:19;:59;;;;;24312:18;;24294:15;:36;24271:59;24268:443;;;24362:15;24347:30;;24268:443;;;24419:21;24443:28;24467:3;24443:19;24454:7;;24443:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24419:52;;24496:13;24486:23;;;;;:::i;:::-;;;24537:18;;24528:6;:27;24524:176;;;24591:18;;24576:33;;24524:176;;;24678:6;24663:21;;24524:176;24404:307;24268:443;24228:1130;;;24765:1;24747:15;:19;:66;;;;;24788:25;24811:1;24788:18;;:22;;:25;;;;:::i;:::-;24770:15;:43;24747:66;24744:607;;;24830:7;;;;24744:607;24885:1;24867:15;:19;:66;;;;;24908:25;24931:1;24908:18;;:22;;:25;;;;:::i;:::-;24890:15;:43;24867:66;:106;;;;;24955:18;;24937:15;:36;24867:106;24863:488;;;25005:25;25028:1;25005:18;;:22;;:25;;;;:::i;:::-;24990:40;;24863:488;;;25072:21;25096:28;25120:3;25096:19;25107:7;;25096:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;25072:52;;25149:13;25139:23;;;;;:::i;:::-;;;25190:18;;25181:6;:27;25177:163;;;25244:18;;25229:33;;25177:163;;;25318:6;25303:21;;25177:163;25057:294;24863:488;24228:1130;25368:30;25385:12;25368:16;:30::i;:::-;24051:1355;;24009:1397;;:::o;6489:98::-;6547:7;6578:1;6574;:5;;;;:::i;:::-;6567:12;;6489:98;;;;:::o;6595:::-;6653:7;6684:1;6680;:5;;;;:::i;:::-;6673:12;;6595:98;;;;:::o;14564:125::-;;;;:::o;14697:124::-;;;;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:139::-;803:6;798:3;793;787:23;844:1;835:6;830:3;826:16;819:27;714:139;;;:::o;859:102::-;900:6;951:2;947:7;942:2;935:5;931:14;927:28;917:38;;859:102;;;:::o;967:377::-;1055:3;1083:39;1116:5;1083:39;:::i;:::-;1138:71;1202:6;1197:3;1138:71;:::i;:::-;1131:78;;1218:65;1276:6;1271:3;1264:4;1257:5;1253:16;1218:65;:::i;:::-;1308:29;1330:6;1308:29;:::i;:::-;1303:3;1299:39;1292:46;;1059:285;967:377;;;;:::o;1350:313::-;1463:4;1501:2;1490:9;1486:18;1478:26;;1550:9;1544:4;1540:20;1536:1;1525:9;1521:17;1514:47;1578:78;1651:4;1642:6;1578:78;:::i;:::-;1570:86;;1350:313;;;;:::o;1750:117::-;1859:1;1856;1849:12;1996:126;2033:7;2073:42;2066:5;2062:54;2051:65;;1996:126;;;:::o;2128:96::-;2165:7;2194:24;2212:5;2194:24;:::i;:::-;2183:35;;2128:96;;;:::o;2230:122::-;2303:24;2321:5;2303:24;:::i;:::-;2296:5;2293:35;2283:63;;2342:1;2339;2332:12;2283:63;2230:122;:::o;2358:139::-;2404:5;2442:6;2429:20;2420:29;;2458:33;2485:5;2458:33;:::i;:::-;2358:139;;;;:::o;2503:77::-;2540:7;2569:5;2558:16;;2503:77;;;:::o;2586:122::-;2659:24;2677:5;2659:24;:::i;:::-;2652:5;2649:35;2639:63;;2698:1;2695;2688:12;2639:63;2586:122;:::o;2714:139::-;2760:5;2798:6;2785:20;2776:29;;2814:33;2841:5;2814:33;:::i;:::-;2714:139;;;;:::o;2859:474::-;2927:6;2935;2984:2;2972:9;2963:7;2959:23;2955:32;2952:119;;;2990:79;;:::i;:::-;2952:119;3110:1;3135:53;3180:7;3171:6;3160:9;3156:22;3135:53;:::i;:::-;3125:63;;3081:117;3237:2;3263:53;3308:7;3299:6;3288:9;3284:22;3263:53;:::i;:::-;3253:63;;3208:118;2859:474;;;;;:::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:118::-;6600:22;6616:5;6600:22;:::i;:::-;6593:5;6590:33;6580:61;;6637:1;6634;6627:12;6580:61;6529:118;:::o;6653:135::-;6697:5;6735:6;6722:20;6713:29;;6751:31;6776:5;6751:31;:::i;:::-;6653:135;;;;:::o;6794:77::-;6831:7;6860:5;6849:16;;6794:77;;;:::o;6877:122::-;6950:24;6968:5;6950:24;:::i;:::-;6943:5;6940:35;6930:63;;6989:1;6986;6979:12;6930:63;6877:122;:::o;7005:139::-;7051:5;7089:6;7076:20;7067:29;;7105:33;7132:5;7105:33;:::i;:::-;7005:139;;;;:::o;7150:615::-;7225:6;7233;7241;7290:2;7278:9;7269:7;7265:23;7261:32;7258:119;;;7296:79;;:::i;:::-;7258:119;7416:1;7441:51;7484:7;7475:6;7464:9;7460:22;7441:51;:::i;:::-;7431:61;;7387:115;7541:2;7567:53;7612:7;7603:6;7592:9;7588:22;7567:53;:::i;:::-;7557:63;;7512:118;7669:2;7695:53;7740:7;7731:6;7720:9;7716:22;7695:53;:::i;:::-;7685:63;;7640:118;7150:615;;;;;:::o;7771:118::-;7858:24;7876:5;7858:24;:::i;:::-;7853:3;7846:37;7771:118;;:::o;7895:222::-;7988:4;8026:2;8015:9;8011:18;8003:26;;8039:71;8107:1;8096:9;8092:17;8083:6;8039:71;:::i;:::-;7895:222;;;;:::o;8123:116::-;8193:21;8208:5;8193:21;:::i;:::-;8186:5;8183:32;8173:60;;8229:1;8226;8219:12;8173:60;8123:116;:::o;8245:133::-;8288:5;8326:6;8313:20;8304:29;;8342:30;8366:5;8342:30;:::i;:::-;8245:133;;;;:::o;8384:468::-;8449:6;8457;8506:2;8494:9;8485:7;8481:23;8477:32;8474:119;;;8512:79;;:::i;:::-;8474:119;8632:1;8657:53;8702:7;8693:6;8682:9;8678:22;8657:53;:::i;:::-;8647:63;;8603:117;8759:2;8785:50;8827:7;8818:6;8807:9;8803:22;8785:50;:::i;:::-;8775:60;;8730:115;8384:468;;;;;:::o;8858:329::-;8917:6;8966:2;8954:9;8945:7;8941:23;8937:32;8934:119;;;8972:79;;:::i;:::-;8934:119;9092:1;9117:53;9162:7;9153:6;9142:9;9138:22;9117:53;:::i;:::-;9107:63;;9063:117;8858:329;;;;:::o;9193:474::-;9261:6;9269;9318:2;9306:9;9297:7;9293:23;9289:32;9286:119;;;9324:79;;:::i;:::-;9286:119;9444:1;9469:53;9514:7;9505:6;9494:9;9490:22;9469:53;:::i;:::-;9459:63;;9415:117;9571:2;9597:53;9642:7;9633:6;9622:9;9618:22;9597:53;:::i;:::-;9587:63;;9542:118;9193:474;;;;;:::o;9673:180::-;9721:77;9718:1;9711:88;9818:4;9815:1;9808:15;9842:4;9839:1;9832:15;9859:320;9903:6;9940:1;9934:4;9930:12;9920:22;;9987:1;9981:4;9977:12;10008:18;9998:81;;10064:4;10056:6;10052:17;10042:27;;9998:81;10126:2;10118:6;10115:14;10095:18;10092:38;10089:84;;10145:18;;:::i;:::-;10089:84;9910:269;9859:320;;;:::o;10185:143::-;10242:5;10273:6;10267:13;10258:22;;10289:33;10316:5;10289:33;:::i;:::-;10185:143;;;;:::o;10334:351::-;10404:6;10453:2;10441:9;10432:7;10428:23;10424:32;10421:119;;;10459:79;;:::i;:::-;10421:119;10579:1;10604:64;10660:7;10651:6;10640:9;10636:22;10604:64;:::i;:::-;10594:74;;10550:128;10334:351;;;;:::o;10691:168::-;10831:20;10827:1;10819:6;10815:14;10808:44;10691:168;:::o;10865:366::-;11007:3;11028:67;11092:2;11087:3;11028:67;:::i;:::-;11021:74;;11104:93;11193:3;11104:93;:::i;:::-;11222:2;11217:3;11213:12;11206:19;;10865:366;;;:::o;11237:419::-;11403:4;11441:2;11430:9;11426:18;11418:26;;11490:9;11484:4;11480:20;11476:1;11465:9;11461:17;11454:47;11518:131;11644:4;11518:131;:::i;:::-;11510:139;;11237:419;;;:::o;11662:332::-;11783:4;11821:2;11810:9;11806:18;11798:26;;11834:71;11902:1;11891:9;11887:17;11878:6;11834:71;:::i;:::-;11915:72;11983:2;11972:9;11968:18;11959:6;11915:72;:::i;:::-;11662:332;;;;;:::o;12000:137::-;12054:5;12085:6;12079:13;12070:22;;12101:30;12125:5;12101:30;:::i;:::-;12000:137;;;;:::o;12143:345::-;12210:6;12259:2;12247:9;12238:7;12234:23;12230:32;12227:119;;;12265:79;;:::i;:::-;12227:119;12385:1;12410:61;12463:7;12454:6;12443:9;12439:22;12410:61;:::i;:::-;12400:71;;12356:125;12143:345;;;;:::o;12494:180::-;12542:77;12539:1;12532:88;12639:4;12636:1;12629:15;12663:4;12660:1;12653:15;12680:191;12720:3;12739:20;12757:1;12739:20;:::i;:::-;12734:25;;12773:20;12791:1;12773:20;:::i;:::-;12768:25;;12816:1;12813;12809:9;12802:16;;12837:3;12834:1;12831:10;12828:36;;;12844:18;;:::i;:::-;12828:36;12680:191;;;;:::o;12877:172::-;13017:24;13013:1;13005:6;13001:14;12994:48;12877:172;:::o;13055:366::-;13197:3;13218:67;13282:2;13277:3;13218:67;:::i;:::-;13211:74;;13294:93;13383:3;13294:93;:::i;:::-;13412:2;13407:3;13403:12;13396:19;;13055:366;;;:::o;13427:419::-;13593:4;13631:2;13620:9;13616:18;13608:26;;13680:9;13674:4;13670:20;13666:1;13655:9;13651:17;13644:47;13708:131;13834:4;13708:131;:::i;:::-;13700:139;;13427:419;;;:::o;13852:118::-;13939:24;13957:5;13939:24;:::i;:::-;13934:3;13927:37;13852:118;;:::o;13976:664::-;14181:4;14219:3;14208:9;14204:19;14196:27;;14233:71;14301:1;14290:9;14286:17;14277:6;14233:71;:::i;:::-;14314:72;14382:2;14371:9;14367:18;14358:6;14314:72;:::i;:::-;14396;14464:2;14453:9;14449:18;14440:6;14396:72;:::i;:::-;14478;14546:2;14535:9;14531:18;14522:6;14478:72;:::i;:::-;14560:73;14628:3;14617:9;14613:19;14604:6;14560:73;:::i;:::-;13976:664;;;;;;;;:::o;14646:442::-;14795:4;14833:2;14822:9;14818:18;14810:26;;14846:71;14914:1;14903:9;14899:17;14890:6;14846:71;:::i;:::-;14927:72;14995:2;14984:9;14980:18;14971:6;14927:72;:::i;:::-;15009;15077:2;15066:9;15062:18;15053:6;15009:72;:::i;:::-;14646:442;;;;;;:::o;15094:148::-;15196:11;15233:3;15218:18;;15094:148;;;;:::o;15248:214::-;15388:66;15384:1;15376:6;15372:14;15365:90;15248:214;:::o;15468:400::-;15628:3;15649:84;15731:1;15726:3;15649:84;:::i;:::-;15642:91;;15742:93;15831:3;15742:93;:::i;:::-;15860:1;15855:3;15851:11;15844:18;;15468:400;;;:::o;15874:79::-;15913:7;15942:5;15931:16;;15874:79;;;:::o;15959:157::-;16064:45;16084:24;16102:5;16084:24;:::i;:::-;16064:45;:::i;:::-;16059:3;16052:58;15959:157;;:::o;16122:663::-;16363:3;16385:148;16529:3;16385:148;:::i;:::-;16378:155;;16543:75;16614:3;16605:6;16543:75;:::i;:::-;16643:2;16638:3;16634:12;16627:19;;16656:75;16727:3;16718:6;16656:75;:::i;:::-;16756:2;16751:3;16747:12;16740:19;;16776:3;16769:10;;16122:663;;;;;:::o;16791:545::-;16964:4;17002:3;16991:9;16987:19;16979:27;;17016:71;17084:1;17073:9;17069:17;17060:6;17016:71;:::i;:::-;17097:68;17161:2;17150:9;17146:18;17137:6;17097:68;:::i;:::-;17175:72;17243:2;17232:9;17228:18;17219:6;17175:72;:::i;:::-;17257;17325:2;17314:9;17310:18;17301:6;17257:72;:::i;:::-;16791:545;;;;;;;:::o;17342:167::-;17482:19;17478:1;17470:6;17466:14;17459:43;17342:167;:::o;17515:366::-;17657:3;17678:67;17742:2;17737:3;17678:67;:::i;:::-;17671:74;;17754:93;17843:3;17754:93;:::i;:::-;17872:2;17867:3;17863:12;17856:19;;17515:366;;;:::o;17887:419::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18140:9;18134:4;18130:20;18126:1;18115:9;18111:17;18104:47;18168:131;18294:4;18168:131;:::i;:::-;18160:139;;17887:419;;;:::o;18312:172::-;18452:24;18448:1;18440:6;18436:14;18429:48;18312:172;:::o;18490:366::-;18632:3;18653:67;18717:2;18712:3;18653:67;:::i;:::-;18646:74;;18729:93;18818:3;18729:93;:::i;:::-;18847:2;18842:3;18838:12;18831:19;;18490:366;;;:::o;18862:419::-;19028:4;19066:2;19055:9;19051:18;19043:26;;19115:9;19109:4;19105:20;19101:1;19090:9;19086:17;19079:47;19143:131;19269:4;19143:131;:::i;:::-;19135:139;;18862:419;;;:::o;19287:244::-;19427:34;19423:1;19415:6;19411:14;19404:58;19496:27;19491:2;19483:6;19479:15;19472:52;19287:244;:::o;19537:366::-;19679:3;19700:67;19764:2;19759:3;19700:67;:::i;:::-;19693:74;;19776:93;19865:3;19776:93;:::i;:::-;19894:2;19889:3;19885:12;19878:19;;19537:366;;;:::o;19909:419::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20162:9;20156:4;20152:20;20148:1;20137:9;20133:17;20126:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;19909:419;;;:::o;20334:224::-;20474:34;20470:1;20462:6;20458:14;20451:58;20543:7;20538:2;20530:6;20526:15;20519:32;20334:224;:::o;20564:366::-;20706:3;20727:67;20791:2;20786:3;20727:67;:::i;:::-;20720:74;;20803:93;20892:3;20803:93;:::i;:::-;20921:2;20916:3;20912:12;20905:19;;20564:366;;;:::o;20936:419::-;21102:4;21140:2;21129:9;21125:18;21117:26;;21189:9;21183:4;21179:20;21175:1;21164:9;21160:17;21153:47;21217:131;21343:4;21217:131;:::i;:::-;21209:139;;20936:419;;;:::o;21361:410::-;21401:7;21424:20;21442:1;21424:20;:::i;:::-;21419:25;;21458:20;21476:1;21458:20;:::i;:::-;21453:25;;21513:1;21510;21506:9;21535:30;21553:11;21535:30;:::i;:::-;21524:41;;21714:1;21705:7;21701:15;21698:1;21695:22;21675:1;21668:9;21648:83;21625:139;;21744:18;;:::i;:::-;21625:139;21409:362;21361:410;;;;:::o;21777:180::-;21825:77;21822:1;21815:88;21922:4;21919:1;21912:15;21946:4;21943:1;21936:15;21963:185;22003:1;22020:20;22038:1;22020:20;:::i;:::-;22015:25;;22054:20;22072:1;22054:20;:::i;:::-;22049:25;;22093:1;22083:35;;22098:18;;:::i;:::-;22083:35;22140:1;22137;22133:9;22128:14;;21963:185;;;;:::o;22154:223::-;22294:34;22290:1;22282:6;22278:14;22271:58;22363:6;22358:2;22350:6;22346:15;22339:31;22154:223;:::o;22383:366::-;22525:3;22546:67;22610:2;22605:3;22546:67;:::i;:::-;22539:74;;22622:93;22711:3;22622:93;:::i;:::-;22740:2;22735:3;22731:12;22724:19;;22383:366;;;:::o;22755:419::-;22921:4;22959:2;22948:9;22944:18;22936:26;;23008:9;23002:4;22998:20;22994:1;22983:9;22979:17;22972:47;23036:131;23162:4;23036:131;:::i;:::-;23028:139;;22755:419;;;:::o;23180:225::-;23320:34;23316:1;23308:6;23304:14;23297:58;23389:8;23384:2;23376:6;23372:15;23365:33;23180:225;:::o;23411:366::-;23553:3;23574:67;23638:2;23633:3;23574:67;:::i;:::-;23567:74;;23650:93;23739:3;23650:93;:::i;:::-;23768:2;23763:3;23759:12;23752:19;;23411:366;;;:::o;23783:419::-;23949:4;23987:2;23976:9;23972:18;23964:26;;24036:9;24030:4;24026:20;24022:1;24011:9;24007:17;24000:47;24064:131;24190:4;24064:131;:::i;:::-;24056:139;;23783:419;;;:::o;24208:223::-;24348:34;24344:1;24336:6;24332:14;24325:58;24417:6;24412:2;24404:6;24400:15;24393:31;24208:223;:::o;24437:366::-;24579:3;24600:67;24664:2;24659:3;24600:67;:::i;:::-;24593:74;;24676:93;24765:3;24676:93;:::i;:::-;24794:2;24789:3;24785:12;24778:19;;24437:366;;;:::o;24809:419::-;24975:4;25013:2;25002:9;24998:18;24990:26;;25062:9;25056:4;25052:20;25048:1;25037:9;25033:17;25026:47;25090:131;25216:4;25090:131;:::i;:::-;25082:139;;24809:419;;;:::o;25234:221::-;25374:34;25370:1;25362:6;25358:14;25351:58;25443:4;25438:2;25430:6;25426:15;25419:29;25234:221;:::o;25461:366::-;25603:3;25624:67;25688:2;25683:3;25624:67;:::i;:::-;25617:74;;25700:93;25789:3;25700:93;:::i;:::-;25818:2;25813:3;25809:12;25802:19;;25461:366;;;:::o;25833:419::-;25999:4;26037:2;26026:9;26022:18;26014:26;;26086:9;26080:4;26076:20;26072:1;26061:9;26057:17;26050:47;26114:131;26240:4;26114:131;:::i;:::-;26106:139;;25833:419;;;:::o;26258:179::-;26398:31;26394:1;26386:6;26382:14;26375:55;26258:179;:::o;26443:366::-;26585:3;26606:67;26670:2;26665:3;26606:67;:::i;:::-;26599:74;;26682:93;26771:3;26682:93;:::i;:::-;26800:2;26795:3;26791:12;26784:19;;26443:366;;;:::o;26815:419::-;26981:4;27019:2;27008:9;27004:18;26996:26;;27068:9;27062:4;27058:20;27054:1;27043:9;27039:17;27032:47;27096:131;27222:4;27096:131;:::i;:::-;27088:139;;26815:419;;;:::o;27240:224::-;27380:34;27376:1;27368:6;27364:14;27357:58;27449:7;27444:2;27436:6;27432:15;27425:32;27240:224;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:222::-;28407:34;28403:1;28395:6;28391:14;28384:58;28476:5;28471:2;28463:6;28459:15;28452:30;28267:222;:::o;28495:366::-;28637:3;28658:67;28722:2;28717:3;28658:67;:::i;:::-;28651:74;;28734:93;28823:3;28734:93;:::i;:::-;28852:2;28847:3;28843:12;28836:19;;28495:366;;;:::o;28867:419::-;29033:4;29071:2;29060:9;29056:18;29048:26;;29120:9;29114:4;29110:20;29106:1;29095:9;29091:17;29084:47;29148:131;29274:4;29148:131;:::i;:::-;29140:139;;28867:419;;;:::o;29292:172::-;29432:24;29428:1;29420:6;29416:14;29409:48;29292:172;:::o;29470:366::-;29612:3;29633:67;29697:2;29692:3;29633:67;:::i;:::-;29626:74;;29709:93;29798:3;29709:93;:::i;:::-;29827:2;29822:3;29818:12;29811:19;;29470:366;;;:::o;29842:419::-;30008:4;30046:2;30035:9;30031:18;30023:26;;30095:9;30089:4;30085:20;30081:1;30070:9;30066:17;30059:47;30123:131;30249:4;30123:131;:::i;:::-;30115:139;;29842:419;;;:::o;30267:240::-;30407:34;30403:1;30395:6;30391:14;30384:58;30476:23;30471:2;30463:6;30459:15;30452:48;30267:240;:::o;30513:366::-;30655:3;30676:67;30740:2;30735:3;30676:67;:::i;:::-;30669:74;;30752:93;30841:3;30752:93;:::i;:::-;30870:2;30865:3;30861:12;30854:19;;30513:366;;;:::o;30885:419::-;31051:4;31089:2;31078:9;31074:18;31066:26;;31138:9;31132:4;31128:20;31124:1;31113:9;31109:17;31102:47;31166:131;31292:4;31166:131;:::i;:::-;31158:139;;30885:419;;;:::o;31310:169::-;31450:21;31446:1;31438:6;31434:14;31427:45;31310:169;:::o;31485:366::-;31627:3;31648:67;31712:2;31707:3;31648:67;:::i;:::-;31641:74;;31724:93;31813:3;31724:93;:::i;:::-;31842:2;31837:3;31833:12;31826:19;;31485:366;;;:::o;31857:419::-;32023:4;32061:2;32050:9;32046:18;32038:26;;32110:9;32104:4;32100:20;32096:1;32085:9;32081:17;32074:47;32138:131;32264:4;32138:131;:::i;:::-;32130:139;;31857:419;;;:::o;32282:241::-;32422:34;32418:1;32410:6;32406:14;32399:58;32491:24;32486:2;32478:6;32474:15;32467:49;32282:241;:::o;32529:366::-;32671:3;32692:67;32756:2;32751:3;32692:67;:::i;:::-;32685:74;;32768:93;32857:3;32768:93;:::i;:::-;32886:2;32881:3;32877:12;32870:19;;32529:366;;;:::o;32901:419::-;33067:4;33105:2;33094:9;33090:18;33082:26;;33154:9;33148:4;33144:20;33140:1;33129:9;33125:17;33118:47;33182:131;33308:4;33182:131;:::i;:::-;33174:139;;32901:419;;;:::o;33326:194::-;33366:4;33386:20;33404:1;33386:20;:::i;:::-;33381:25;;33420:20;33438:1;33420:20;:::i;:::-;33415:25;;33464:1;33461;33457:9;33449:17;;33488:1;33482:4;33479:11;33476:37;;;33493:18;;:::i;:::-;33476:37;33326:194;;;;:::o;33526:182::-;33666:34;33662:1;33654:6;33650:14;33643:58;33526:182;:::o;33714:366::-;33856:3;33877:67;33941:2;33936:3;33877:67;:::i;:::-;33870:74;;33953:93;34042:3;33953:93;:::i;:::-;34071:2;34066:3;34062:12;34055:19;;33714:366;;;:::o;34086:419::-;34252:4;34290:2;34279:9;34275:18;34267:26;;34339:9;34333:4;34329:20;34325:1;34314:9;34310:17;34303:47;34367:131;34493:4;34367:131;:::i;:::-;34359:139;;34086:419;;;:::o;34511:180::-;34559:77;34556:1;34549:88;34656:4;34653:1;34646:15;34680:4;34677:1;34670:15;34697:180;34745:77;34742:1;34735:88;34842:4;34839:1;34832:15;34866:4;34863:1;34856:15;34883:143;34940:5;34971:6;34965:13;34956:22;;34987:33;35014:5;34987:33;:::i;:::-;34883:143;;;;:::o;35032:351::-;35102:6;35151:2;35139:9;35130:7;35126:23;35122:32;35119:119;;;35157:79;;:::i;:::-;35119:119;35277:1;35302:64;35358:7;35349:6;35338:9;35334:22;35302:64;:::i;:::-;35292:74;;35248:128;35032:351;;;;:::o;35389:85::-;35434:7;35463:5;35452:16;;35389:85;;;:::o;35480:158::-;35538:9;35571:61;35589:42;35598:32;35624:5;35598:32;:::i;:::-;35589:42;:::i;:::-;35571:61;:::i;:::-;35558:74;;35480:158;;;:::o;35644:147::-;35739:45;35778:5;35739:45;:::i;:::-;35734:3;35727:58;35644:147;;:::o;35797:114::-;35864:6;35898:5;35892:12;35882:22;;35797:114;;;:::o;35917:184::-;36016:11;36050:6;36045:3;36038:19;36090:4;36085:3;36081:14;36066:29;;35917:184;;;;:::o;36107:132::-;36174:4;36197:3;36189:11;;36227:4;36222:3;36218:14;36210:22;;36107:132;;;:::o;36245:108::-;36322:24;36340:5;36322:24;:::i;:::-;36317:3;36310:37;36245:108;;:::o;36359:179::-;36428:10;36449:46;36491:3;36483:6;36449:46;:::i;:::-;36527:4;36522:3;36518:14;36504:28;;36359:179;;;;:::o;36544:113::-;36614:4;36646;36641:3;36637:14;36629:22;;36544:113;;;:::o;36693:732::-;36812:3;36841:54;36889:5;36841:54;:::i;:::-;36911:86;36990:6;36985:3;36911:86;:::i;:::-;36904:93;;37021:56;37071:5;37021:56;:::i;:::-;37100:7;37131:1;37116:284;37141:6;37138:1;37135:13;37116:284;;;37217:6;37211:13;37244:63;37303:3;37288:13;37244:63;:::i;:::-;37237:70;;37330:60;37383:6;37330:60;:::i;:::-;37320:70;;37176:224;37163:1;37160;37156:9;37151:14;;37116:284;;;37120:14;37416:3;37409:10;;36817:608;;;36693:732;;;;:::o;37431:831::-;37694:4;37732:3;37721:9;37717:19;37709:27;;37746:71;37814:1;37803:9;37799:17;37790:6;37746:71;:::i;:::-;37827:80;37903:2;37892:9;37888:18;37879:6;37827:80;:::i;:::-;37954:9;37948:4;37944:20;37939:2;37928:9;37924:18;37917:48;37982:108;38085:4;38076:6;37982:108;:::i;:::-;37974:116;;38100:72;38168:2;38157:9;38153:18;38144:6;38100:72;:::i;:::-;38182:73;38250:3;38239:9;38235:19;38226:6;38182:73;:::i;:::-;37431:831;;;;;;;;:::o;38268:225::-;38408:34;38404:1;38396:6;38392:14;38385:58;38477:8;38472:2;38464:6;38460:15;38453:33;38268:225;:::o;38499:366::-;38641:3;38662:67;38726:2;38721:3;38662:67;:::i;:::-;38655:74;;38738:93;38827:3;38738:93;:::i;:::-;38856:2;38851:3;38847:12;38840:19;;38499:366;;;:::o;38871:419::-;39037:4;39075:2;39064:9;39060:18;39052:26;;39124:9;39118:4;39114:20;39110:1;39099:9;39095:17;39088:47;39152:131;39278:4;39152:131;:::i;:::-;39144:139;;38871:419;;;:::o

Swarm Source

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