ETH Price: $2,918.89 (-9.94%)
Gas: 45 Gwei

Token

Gamofi Token (GAMO)
 

Overview

Max Total Supply

10,000,000 GAMO

Holders

290

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15,691.290599023334475612 GAMO

Value
$0.00
0x9df8b8b2b49c3be04e744eb9b109ead584f8a732
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:
GAMO

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-02
*/

// SPDX-License-Identifier: MIT


/**
 * 🌐 Website: https://gamofi.io
 * 🐦 Twitter: https://twitter.com/gamofiio
 * 💬 Telegram: https://t.me/gamofi
 */

pragma solidity 0.8.21;

abstract contract Context {
    /**
     * @dev Returns the current sender of the message.
     * This function is internal view virtual, meaning that it can only be used within this contract or derived contracts.
     * @return The address of the account that initiated the transaction.
     */
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    /**
     * @dev Returns the total supply of tokens.
     * @return The total supply of tokens.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the balance of a specific account.
     * @param account The address of the account to check the balance for.
     * @return The balance of the specified account.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Transfers tokens to a recipient.
     * @param recipient The address of the recipient.
     * @param amount The amount of tokens to be transferred.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining allowance for a spender.
     * @param owner The address of the token owner.
     * @param spender The address of the spender.
     * @return The remaining allowance for the specified owner and spender.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Approves a spender to spend a certain amount of tokens on behalf of the owner.
     * @param spender The address which will spend the funds.
     * @param amount The amount of tokens to be spent.
     * @return A boolean indicating whether the approval was successful or not.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Transfers tokens from one account to another.
     * @param sender The address from which the tokens will be transferred.
     * @param recipient The address to which the tokens will be transferred.
     * @param amount The amount of tokens to be transferred.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when tokens are transferred from one address to another.
     * @param from The address from which the tokens are transferred.
     * @param to The address to which the tokens are transferred.
     * @param value The amount of tokens being transferred.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the approval of a spender is updated.
     * @param owner The address that approves the spender.
     * @param spender The address that is approved.
     * @param value The new approved amount.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     * @param a The first integer to add.
     * @param b The second integer to add.
     * @return The sum of the two integers.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow.
     * @param a The integer to subtract from (minuend).
     * @param b The integer to subtract (subtrahend).
     * @return The difference of the two integers.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Subtracts two unsigned integers, reverts with custom message on overflow.
     * @param a The integer to subtract from (minuend).
     * @param b The integer to subtract (subtrahend).
     * @param errorMessage The error message to revert with.
     * @return The difference of the two integers.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     * @param a The first integer to multiply.
     * @param b The second integer to multiply.
     * @return The product of the two integers.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Divides two unsigned integers, reverts on division by zero.
     * @param a The dividend.
     * @param b The divisor.
     * @return The quotient of the division.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Divides two unsigned integers, reverts with custom message on division by zero.
     * @param a The dividend.
     * @param b The divisor.
     * @param errorMessage The error message to revert with.
     * @return The quotient of the division.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;

    /// @dev Emitted when ownership is transferred.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract, setting the original owner to the sender account.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Renounces ownership, leaving the contract without an owner.
     * @notice Renouncing ownership will leave the contract without an owner,
     * which means it will not be possible to call onlyOwner functions anymore.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Factory {
    /**
     * @dev Creates a new UniswapV2 pair for the given tokens.
     * @param tokenA The address of the first token in the pair.
     * @param tokenB The address of the second token in the pair.
     * @return pair The address of the newly created UniswapV2 pair.
     */
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    /**
     * @dev Swaps an exact amount of input tokens for as much output as possible, along with additional functionality
     * to support fee-on-transfer tokens.
     * @param amountIn The amount of input tokens to swap.
     * @param amountOutMin The minimum amount of output tokens expected to receive.
     * @param path An array of token addresses representing the path of the swap.
     * @param to The recipient address to send the swapped ETH to.
     * @param deadline The timestamp for the deadline of the swap transaction.
     */
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    /**
     * @dev Returns the address of the UniswapV2Factory contract.
     * @return The address of the UniswapV2Factory contract.
     */
    function factory() external pure returns (address);

    /**
     * @dev Returns the address of the WETH (Wrapped ETH) contract.
     * @return The address of the WETH contract.
     */
    function WETH() external pure returns (address);

    /**
    * @dev Adds liquidity to an ETH-based pool.
    * @param token The address of the ERC-20 token to add liquidity for.
    * @param amountTokenDesired The desired amount of tokens to add.
    * @param amountTokenMin The minimum amount of tokens expected to receive.
    * @param amountETHMin The minimum amount of ETH expected to receive.
    * @param to The recipient address to send the liquidity to.
    * @param deadline The timestamp for the deadline of the liquidity addition transaction.
    * @return amountToken The amount of token added.
    * @return amountETH The amount of ETH added.
    * @return liquidity The amount of liquidity added.
    */
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract GAMO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;

    string private constant _name = unicode"Gamofi Token";
    string private constant _symbol = unicode"GAMO";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10000000 * 10**_decimals;

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

    uint256 private _buyFee = 20;
    uint256 private _sellFee = 25;

    uint256 public _maxTxAmount = _totalSupply / 200;
    uint256 public _maxWalletSize = _totalSupply / 200;
    uint256 public _taxSwapThreshold = _totalSupply / 400;

    address payable private _taxWallet;

    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferDelayEnabled = true;

    event FeeUpdated(uint256 buyFee, uint256 sellFee);
    event MaxTxAmountUpdated(uint256 maxTxAmount);
    event MaxWalletSizeUpdated(uint256 maxWalletSize);
    event TaxSwapThresholdUpdated(uint256 newThreshold);
    event TransferDelayUpdated(bool transferDelayEnabled);
    event TradingOpened();
    event StuckETHCleared(uint256 amount);
    event StuckTokensCleared(address indexed tokenAddress, uint256 amount);

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

    /**
     * @dev Initializes the GAMO token contract.
     * @param taxWallet The address of the wallet to receive tax fees.
     */
    constructor (address taxWallet) {
        _taxWallet = payable(taxWallet);
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    /**
     * @dev Gets the name of the GAMO token.
     * @return The name of the token.
     */
    function name() public pure returns (string memory) {
        return _name;
    }

    /**
     * @dev Gets the symbol of the GAMO token.
     * @return The symbol of the token.
     */
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Gets the number of decimals used for the GAMO token.
     * @return The number of decimals.
     */
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Gets the total supply of the GAMO token.
     * @return The total supply.
     */
    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param account The address to query the balance of.
     * @return The balance of the specified address.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev Transfers tokens from the sender to the recipient.
     * @param recipient The address of the recipient.
     * @param amount The amount of tokens to transfer.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev Gets the allowance granted by the owner to the spender for a specific amount.
     * @param owner The address granting the allowance.
     * @param spender The address receiving the allowance.
     * @return The remaining allowance for the spender.
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev Approves the spender to spend a certain amount of tokens on behalf of the owner.
     * @param spender The address to be approved.
     * @param amount The amount of tokens to approve.
     * @return A boolean indicating whether the approval was successful or not.
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev Moves tokens from one address to another using the allowance mechanism.
     * @param sender The address to send tokens from.
     * @param recipient The address to receive tokens.
     * @param amount The amount of tokens to transfer.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Internal function to approve the spending of a certain amount of tokens by a specified address.
     * @param owner The address granting the allowance.
     * @param spender The address receiving the allowance.
     * @param amount The amount of tokens to approve.
     */
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Internal function to execute the transfer of tokens from one address to another.
     * @param from The address to send tokens from.
     * @param to The address to receive tokens.
     * @param amount The amount of tokens to transfer.
     */
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "_transfer: Transfer amount must be greater than zero");

        uint256 taxAmount = 0;

        // Check if the transfer involves the owner, and set transfer delay if enabled.
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            // Check if the transfer is from the Uniswap pair and calculate buy fees.
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul(_buyFee).div(100);
                require(amount <= _maxTxAmount, "_transfer: Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "_transfer: Exceeds the maxWalletSize.");
            }

            // Check if the transfer is to the Uniswap pair and calculate sell fees.
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul(_sellFee).div(100);
            }

            // Check if a swap is needed and execute the swap.
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                if (amount >= _taxSwapThreshold) {
                    swapTokensForEth(_taxSwapThreshold);
                } else {
                    swapTokensForEth(amount);
                }
            }
        }

        // If there's a tax, transfer the tax amount to the contract.
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        // Update balances after the transfer.
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    /**
     * @dev Internal function to swap tokens for ETH.
     * @param tokenAmount The amount of tokens to swap.
     */
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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,
            address(_taxWallet),
            block.timestamp
        );
    }

    /**
     * @dev Sets the buy fee percentage.
     * @param tax The new buy fee percentage (less than or equal to 25).
     */
    function setBuyfee(uint256 tax) external onlyOwner {
        require(tax <= 25, "setBuyfee: Tax should be less than or equal to 25");
        _buyFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    /**
     * @dev Sets the sell fee percentage.
     * @param tax The new sell fee percentage (less than or equal to 25).
     */
    function setSellFee(uint256 tax) external onlyOwner {
        require(tax <= 25, "setSellFee: Tax should be less than or equal to 25");
        _sellFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    /**
     * @dev Sets the maximum transfer amount as a percentage of the total supply.
     * @param percent The percentage of the total supply to set as the new maximum transfer amount (1 corresponds to 0.01%).
     */
    function setMaxTransferAmount(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setMaxTransferAmount: Percentage should be less than or equal to 10000");
        _maxTxAmount = _totalSupply * percent / 10000;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

    /**
     * @dev Sets the maximum wallet size as a percentage of the total supply.
     * @param percent The percentage value to set the maximum wallet size (1 corresponds to 0.01%).
     * Only the owner can call this function.
     */
    function setMaxBalance(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setMaxBalance: Percentage should be less than or equal to 10000");
        _maxWalletSize = _totalSupply * percent / 10000;
        emit MaxWalletSizeUpdated(_maxWalletSize);
    }

    /**
     * @dev Sets the threshold for swapping tokens to ETH.
     * @param percent The percentage of the total supply to set as the new threshold (1 corresponds to 0.01%).
     */
    function setTaxSwapThreshold(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setTaxSwapThreshold: Percentage should be less than or equal to 10000");
        _taxSwapThreshold = _totalSupply * percent / 10000;
        emit TaxSwapThresholdUpdated(_taxSwapThreshold);
    }
    
    /**
     * @dev Removes transaction limits and disables transfer delay.
     * Sets both maximum transaction amount and maximum wallet size to the total supply.
     * Only the owner can call this function.
     */
    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_totalSupply);
        emit MaxWalletSizeUpdated(_totalSupply);
        emit TransferDelayUpdated(false);
    }

    /**
     * @dev Disables the transfer delay feature.
     * Only the owner can call this function.
     */
    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
        emit TransferDelayUpdated(false);
    }

    /**
    * @dev Clears all stuck ETH from the contract and transfers it to the owner.
    * Only the owner can call this function.
    */
    function clearStuckETH() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "No stuck ETH to clear");

        payable(owner()).transfer(contractBalance);

        emit StuckETHCleared(contractBalance);
    }

    /**
    * @dev Clears all stuck tokens from the contract and transfers them to the owner.
    * Only the owner can call this function.
    * @param tokenAddress The address of the ERC-20 token to clear from the contract.
    */
    function clearStuckTokens(address tokenAddress) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        uint256 contractTokenBalance = token.balanceOf(address(this));
        require(contractTokenBalance > 0, "No stuck tokens to clear");

        token.transfer(owner(), contractTokenBalance);

        emit StuckTokensCleared(tokenAddress, contractTokenBalance);
    }

    /**
     * @dev Opens trading by initializing the Uniswap router, creating a pair,
     * adding liquidity, and enabling swapping on the contract.
     * Only the owner can call this function.
     */
    function openTrading() external onlyOwner() {
        require(!tradingOpen, "openTrading: Trading is already open");

        // Initialize the Uniswap router
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        // Approve the router to spend the total supply of the token
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        // Create the Uniswap pair
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        // Add liquidity to the Uniswap pair
        uniswapV2Router.addLiquidityETH{
            value: address(this).balance
        }(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        // Approve Uniswap router to spend the pair's tokens
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        // Enable swapping on the contract
        swapEnabled = true;

        // Set trading as open
        tradingOpen = true;
        emit TradingOpened();
    }

    /**
     * @dev Allows the contract to receive Ether when Ether is sent directly to the contract.
     */
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StuckETHCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StuckTokensCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"TaxSwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"transferDelayEnabled","type":"bool"}],"name":"TransferDelayUpdated","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"pure","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTransferAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600655601960075560c86012600a6200002091906200060b565b629896806200003091906200065b565b6200003c9190620006d2565b60085560c86012600a6200005191906200060b565b629896806200006191906200065b565b6200006d9190620006d2565b6009556101906012600a6200008391906200060b565b629896806200009391906200065b565b6200009f9190620006d2565b600a555f600c60156101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff0219169083151502179055506001600c60176101000a81548160ff021916908315150217905550348015620000fd575f80fd5b50604051620046d4380380620046d483398181016040528101906200012391906200076e565b5f620001346200044b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200022091906200060b565b629896806200023091906200065b565b60035f620002436200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f620002956200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003bf6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200041d91906200060b565b629896806200042d91906200065b565b6040516200043c9190620007af565b60405180910390a350620007ca565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050357808604811115620004db57620004da62000479565b5b6001851615620004eb5780820291505b8081029050620004fb85620004a6565b9450620004bb565b94509492505050565b5f826200051d5760019050620005ef565b816200052c575f9050620005ef565b8160018114620005455760028114620005505762000586565b6001915050620005ef565b60ff84111562000565576200056462000479565b5b8360020a9150848211156200057f576200057e62000479565b5b50620005ef565b5060208310610133831016604e8410600b8410161715620005c05782820a905083811115620005ba57620005b962000479565b5b620005ef565b620005cf8484846001620004b2565b92509050818404811115620005e957620005e862000479565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061782620005f6565b91506200062483620005ff565b9250620006537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050c565b905092915050565b5f6200066782620005f6565b91506200067483620005f6565b92508282026200068481620005f6565b915082820484148315176200069e576200069d62000479565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006de82620005f6565b9150620006eb83620005f6565b925082620006fe57620006fd620006a5565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000738826200070d565b9050919050565b6200074a816200072c565b811462000755575f80fd5b50565b5f8151905062000768816200073f565b92915050565b5f6020828403121562000786576200078562000709565b5b5f620007958482850162000758565b91505092915050565b620007a981620005f6565b82525050565b5f602082019050620007c45f8301846200079e565b92915050565b613efc80620007d85f395ff3fe608060405260043610610169575f3560e01c80638da5cb5b116100d0578063c876d0b911610089578063dd62ed3e11610063578063dd62ed3e146104e8578063de2aa57d14610524578063e884f2601461054c578063f88de0c31461056257610170565b8063c876d0b914610480578063c9567bf9146104aa578063c95b7e26146104c057610170565b80638da5cb5b146103745780638f9a55c01461039e57806395d89b41146103c85780639d51d9b7146103f2578063a9059cbb1461041a578063bf474bed1461045657610170565b806370a082311161012257806370a0823114610292578063715018a6146102ce578063751039fc146102e45780637d1db4a5146102fa5780638b4cee08146103245780638bf554091461034c57610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da57806323b872dd14610204578063313ce56714610240578063346cc7be1461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610578565b6040516101959190612b64565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612c15565b6105b5565b6040516101d19190612c6d565b60405180910390f35b3480156101e5575f80fd5b506101ee6105d2565b6040516101fb9190612c95565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612cae565b6105f4565b6040516102379190612c6d565b60405180910390f35b34801561024b575f80fd5b506102546106c8565b6040516102619190612d19565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612d32565b6106d0565b005b34801561029d575f80fd5b506102b860048036038101906102b39190612d32565b6108fb565b6040516102c59190612c95565b60405180910390f35b3480156102d9575f80fd5b506102e2610941565b005b3480156102ef575f80fd5b506102f8610a8f565b005b348015610305575f80fd5b5061030e610c5e565b60405161031b9190612c95565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612d5d565b610c64565b005b348015610357575f80fd5b50610372600480360381019061036d9190612d5d565b610d83565b005b34801561037f575f80fd5b50610388610ed2565b6040516103959190612d97565b60405180910390f35b3480156103a9575f80fd5b506103b2610ef9565b6040516103bf9190612c95565b60405180910390f35b3480156103d3575f80fd5b506103dc610eff565b6040516103e99190612b64565b60405180910390f35b3480156103fd575f80fd5b5061041860048036038101906104139190612d5d565b610f3c565b005b348015610425575f80fd5b50610440600480360381019061043b9190612c15565b61108b565b60405161044d9190612c6d565b60405180910390f35b348015610461575f80fd5b5061046a6110a8565b6040516104779190612c95565b60405180910390f35b34801561048b575f80fd5b506104946110ae565b6040516104a19190612c6d565b60405180910390f35b3480156104b5575f80fd5b506104be6110c1565b005b3480156104cb575f80fd5b506104e660048036038101906104e19190612d5d565b61160e565b005b3480156104f3575f80fd5b5061050e60048036038101906105099190612db0565b61172d565b60405161051b9190612c95565b60405180910390f35b34801561052f575f80fd5b5061054a60048036038101906105459190612d5d565b6117af565b005b348015610557575f80fd5b506105606118fe565b005b34801561056d575f80fd5b506105766119e5565b005b60606040518060400160405280600c81526020017f47616d6f666920546f6b656e0000000000000000000000000000000000000000815250905090565b5f6105c86105c1611b44565b8484611b4b565b6001905092915050565b5f6012600a6105e19190612f4a565b629896806105ef9190612f94565b905090565b5f610600848484611d0e565b6106bd8461060c611b44565b6106b885604051806060016040528060288152602001613e9f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066f611b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126259092919063ffffffff16565b611b4b565b600190509392505050565b5f6012905090565b6106d8611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b9061301f565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a29190612d97565b602060405180830381865afa1580156107bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e19190613051565b90505f8111610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c906130c6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610849610ed2565b836040518363ffffffff1660e01b81526004016108679291906130e4565b6020604051808303815f875af1158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190613135565b508273ffffffffffffffffffffffffffffffffffffffff167f2c173e3ab5b50dfe2d876a6c7de0f777aef7fdaf4d1440ebed38708b3b78ebf4826040516108ee9190612c95565b60405180910390a2505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610949611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061301f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a97611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a9061301f565b60405180910390fd5b6012600a610b319190612f4a565b62989680610b3f9190612f94565b6008819055506012600a610b539190612f4a565b62989680610b619190612f94565b6009819055505f600c60176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bb09190612f4a565b62989680610bbe9190612f94565b604051610bcb9190612c95565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6012600a610c029190612f4a565b62989680610c109190612f94565b604051610c1d9190612c95565b60405180910390a17f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f604051610c549190612c6d565b60405180910390a1565b60085481565b610c6c611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef9061301f565b60405180910390fd5b6019811115610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d33906131d0565b60405180910390fd5b806007819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df61302600654600754604051610d789291906131ee565b60405180910390a150565b610d8b611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e9061301f565b60405180910390fd5b612710811115610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906132ab565b60405180910390fd5b612710816012600a610e6e9190612f4a565b62989680610e7c9190612f94565b610e869190612f94565b610e9091906132f6565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600854604051610ec79190612c95565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f47414d4f00000000000000000000000000000000000000000000000000000000815250905090565b610f44611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc79061301f565b60405180910390fd5b612710811115611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613396565b60405180910390fd5b612710816012600a6110279190612f4a565b629896806110359190612f94565b61103f9190612f94565b61104991906132f6565b6009819055507ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6009546040516110809190612c95565b60405180910390a150565b5f61109e611097611b44565b8484611d0e565b6001905092915050565b600a5481565b600c60179054906101000a900460ff1681565b6110c9611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061301f565b60405180910390fd5b600c60149054906101000a900460ff16156111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c90613424565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112403060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61122d9190612f4a565b6298968061123b9190612f94565b611b4b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ce9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113789190613456565b6040518363ffffffff1660e01b8152600401611395929190613481565b6020604051808303815f875af11580156113b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d59190613456565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061145c306108fb565b5f80611466610ed2565b426040518863ffffffff1660e01b8152600401611488969594939291906134ea565b60606040518083038185885af11580156114a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114c99190613549565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115699291906130e4565b6020604051808303815f875af1158015611585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a99190613135565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b611616611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061301f565b60405180910390fd5b60198111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613609565b60405180910390fd5b806006819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df613026006546007546040516117229291906131ee565b60405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117b7611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a9061301f565b60405180910390fd5b612710811115611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f906136bd565b60405180910390fd5b612710816012600a61189a9190612f4a565b629896806118a89190612f94565b6118b29190612f94565b6118bc91906132f6565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a546040516118f39190612c95565b60405180910390a150565b611906611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899061301f565b60405180910390fd5b5f600c60176101000a81548160ff0219169083151502179055507f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f6040516119db9190612c6d565b60405180910390a1565b6119ed611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a709061301f565b60405180910390fd5b5f4790505f8111611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab690613725565b60405180910390fd5b611ac7610ed2565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b09573d5f803e3d5ffd5b507f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b81604051611b399190612c95565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb0906137b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613841565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d019190612c95565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906138cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de19061395d565b60405180910390fd5b5f8111611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906139eb565b60405180910390fd5b5f611e35610ed2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ea35750611e73610ed2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561237557600c60179054906101000a900460ff161561202f5760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f675750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202e574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613a9f565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d8575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561212b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f857612158606461214a6006548561268790919063ffffffff16565b6126fe90919063ffffffff16565b905060085482111561219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690613b2d565b60405180910390fd5b600954826121ac856108fb565b6121b69190613b4b565b11156121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613bee565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b0576122ad606461229f6007548561268790919063ffffffff16565b6126fe90919063ffffffff16565b90505b5f6122ba306108fb565b9050600c60159054906101000a900460ff161580156123255750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561233d5750600c60169054906101000a900460ff165b801561234a5750600a5481115b1561237357600a54831061236857612363600a54612747565b612372565b61237183612747565b5b5b505b5f811115612474576123cd8160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d390919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161246b9190612c95565b60405180910390a35b6124c48260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3090919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061256761251b8284612a3090919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d390919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61260a8486612a3090919063ffffffff16565b6040516126179190612c95565b60405180910390a350505050565b5f83831115829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612b64565b60405180910390fd5b505f838561267a9190613c0c565b9050809150509392505050565b5f808303612697575f90506126f8565b5f82846126a49190612f94565b90508284826126b391906132f6565b146126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea90613caf565b60405180910390fd5b809150505b92915050565b5f61273f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a79565b905092915050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561277e5761277d613ccd565b5b6040519080825280602002602001820160405280156127ac5781602001602082028036833780820191505090505b50905030815f815181106127c3576127c2613cfa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612867573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288b9190613456565b8160018151811061289f5761289e613cfa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129053060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612988959493929190613dde565b5f604051808303815f87803b15801561299f575f80fd5b505af11580156129b1573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f8082846129e19190613b4b565b905083811015612a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1d90613e80565b60405180910390fd5b8091505092915050565b5f612a7183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612625565b905092915050565b5f8083118290612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab69190612b64565b60405180910390fd5b505f8385612acd91906132f6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b11578082015181840152602081019050612af6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b3682612ada565b612b408185612ae4565b9350612b50818560208601612af4565b612b5981612b1c565b840191505092915050565b5f6020820190508181035f830152612b7c8184612b2c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bb182612b88565b9050919050565b612bc181612ba7565b8114612bcb575f80fd5b50565b5f81359050612bdc81612bb8565b92915050565b5f819050919050565b612bf481612be2565b8114612bfe575f80fd5b50565b5f81359050612c0f81612beb565b92915050565b5f8060408385031215612c2b57612c2a612b84565b5b5f612c3885828601612bce565b9250506020612c4985828601612c01565b9150509250929050565b5f8115159050919050565b612c6781612c53565b82525050565b5f602082019050612c805f830184612c5e565b92915050565b612c8f81612be2565b82525050565b5f602082019050612ca85f830184612c86565b92915050565b5f805f60608486031215612cc557612cc4612b84565b5b5f612cd286828701612bce565b9350506020612ce386828701612bce565b9250506040612cf486828701612c01565b9150509250925092565b5f60ff82169050919050565b612d1381612cfe565b82525050565b5f602082019050612d2c5f830184612d0a565b92915050565b5f60208284031215612d4757612d46612b84565b5b5f612d5484828501612bce565b91505092915050565b5f60208284031215612d7257612d71612b84565b5b5f612d7f84828501612c01565b91505092915050565b612d9181612ba7565b82525050565b5f602082019050612daa5f830184612d88565b92915050565b5f8060408385031215612dc657612dc5612b84565b5b5f612dd385828601612bce565b9250506020612de485828601612bce565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e7057808604811115612e4c57612e4b612dee565b5b6001851615612e5b5780820291505b8081029050612e6985612e1b565b9450612e30565b94509492505050565b5f82612e885760019050612f43565b81612e95575f9050612f43565b8160018114612eab5760028114612eb557612ee4565b6001915050612f43565b60ff841115612ec757612ec6612dee565b5b8360020a915084821115612ede57612edd612dee565b5b50612f43565b5060208310610133831016604e8410600b8410161715612f195782820a905083811115612f1457612f13612dee565b5b612f43565b612f268484846001612e27565b92509050818404811115612f3d57612f3c612dee565b5b81810290505b9392505050565b5f612f5482612be2565b9150612f5f83612cfe565b9250612f8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e79565b905092915050565b5f612f9e82612be2565b9150612fa983612be2565b9250828202612fb781612be2565b91508282048414831517612fce57612fcd612dee565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613009602083612ae4565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f8151905061304b81612beb565b92915050565b5f6020828403121561306657613065612b84565b5b5f6130738482850161303d565b91505092915050565b7f4e6f20737475636b20746f6b656e7320746f20636c65617200000000000000005f82015250565b5f6130b0601883612ae4565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b5f6040820190506130f75f830185612d88565b6131046020830184612c86565b9392505050565b61311481612c53565b811461311e575f80fd5b50565b5f8151905061312f8161310b565b92915050565b5f6020828403121561314a57613149612b84565b5b5f61315784828501613121565b91505092915050565b7f73657453656c6c4665653a205461782073686f756c64206265206c65737320745f8201527f68616e206f7220657175616c20746f2032350000000000000000000000000000602082015250565b5f6131ba603283612ae4565b91506131c582613160565b604082019050919050565b5f6020820190508181035f8301526131e7816131ae565b9050919050565b5f6040820190506132015f830185612c86565b61320e6020830184612c86565b9392505050565b7f7365744d61785472616e73666572416d6f756e743a2050657263656e746167655f8201527f2073686f756c64206265206c657373207468616e206f7220657175616c20746f60208201527f2031303030300000000000000000000000000000000000000000000000000000604082015250565b5f613295604683612ae4565b91506132a082613215565b606082019050919050565b5f6020820190508181035f8301526132c281613289565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61330082612be2565b915061330b83612be2565b92508261331b5761331a6132c9565b5b828204905092915050565b7f7365744d617842616c616e63653a2050657263656e746167652073686f756c645f8201527f206265206c657373207468616e206f7220657175616c20746f20313030303000602082015250565b5f613380603f83612ae4565b915061338b82613326565b604082019050919050565b5f6020820190508181035f8301526133ad81613374565b9050919050565b7f6f70656e54726164696e673a2054726164696e6720697320616c7265616479205f8201527f6f70656e00000000000000000000000000000000000000000000000000000000602082015250565b5f61340e602483612ae4565b9150613419826133b4565b604082019050919050565b5f6020820190508181035f83015261343b81613402565b9050919050565b5f8151905061345081612bb8565b92915050565b5f6020828403121561346b5761346a612b84565b5b5f61347884828501613442565b91505092915050565b5f6040820190506134945f830185612d88565b6134a16020830184612d88565b9392505050565b5f819050919050565b5f819050919050565b5f6134d46134cf6134ca846134a8565b6134b1565b612be2565b9050919050565b6134e4816134ba565b82525050565b5f60c0820190506134fd5f830189612d88565b61350a6020830188612c86565b61351760408301876134db565b61352460608301866134db565b6135316080830185612d88565b61353e60a0830184612c86565b979650505050505050565b5f805f606084860312156135605761355f612b84565b5b5f61356d8682870161303d565b935050602061357e8682870161303d565b925050604061358f8682870161303d565b9150509250925092565b7f7365744275796665653a205461782073686f756c64206265206c6573732074685f8201527f616e206f7220657175616c20746f203235000000000000000000000000000000602082015250565b5f6135f3603183612ae4565b91506135fe82613599565b604082019050919050565b5f6020820190508181035f830152613620816135e7565b9050919050565b7f736574546178537761705468726573686f6c643a2050657263656e74616765205f8201527f73686f756c64206265206c657373207468616e206f7220657175616c20746f2060208201527f3130303030000000000000000000000000000000000000000000000000000000604082015250565b5f6136a7604583612ae4565b91506136b282613627565b606082019050919050565b5f6020820190508181035f8301526136d48161369b565b9050919050565b7f4e6f20737475636b2045544820746f20636c65617200000000000000000000005f82015250565b5f61370f601583612ae4565b915061371a826136db565b602082019050919050565b5f6020820190508181035f83015261373c81613703565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61379d602483612ae4565b91506137a882613743565b604082019050919050565b5f6020820190508181035f8301526137ca81613791565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61382b602283612ae4565b9150613836826137d1565b604082019050919050565b5f6020820190508181035f8301526138588161381f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138b9602583612ae4565b91506138c48261385f565b604082019050919050565b5f6020820190508181035f8301526138e6816138ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613947602383612ae4565b9150613952826138ed565b604082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f5f7472616e736665723a205472616e7366657220616d6f756e74206d757374205f8201527f62652067726561746572207468616e207a65726f000000000000000000000000602082015250565b5f6139d5603483612ae4565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613a89604983612ae4565b9150613a9482613a09565b606082019050919050565b5f6020820190508181035f830152613ab681613a7d565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f613b17602483612ae4565b9150613b2282613abd565b604082019050919050565b5f6020820190508181035f830152613b4481613b0b565b9050919050565b5f613b5582612be2565b9150613b6083612be2565b9250828201905080821115613b7857613b77612dee565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c65745f8201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613bd8602583612ae4565b9150613be382613b7e565b604082019050919050565b5f6020820190508181035f830152613c0581613bcc565b9050919050565b5f613c1682612be2565b9150613c2183612be2565b9250828203905081811115613c3957613c38612dee565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c99602183612ae4565b9150613ca482613c3f565b604082019050919050565b5f6020820190508181035f830152613cc681613c8d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d5981612ba7565b82525050565b5f613d6a8383613d50565b60208301905092915050565b5f602082019050919050565b5f613d8c82613d27565b613d968185613d31565b9350613da183613d41565b805f5b83811015613dd1578151613db88882613d5f565b9750613dc383613d76565b925050600181019050613da4565b5085935050505092915050565b5f60a082019050613df15f830188612c86565b613dfe60208301876134db565b8181036040830152613e108186613d82565b9050613e1f6060830185612d88565b613e2c6080830184612c86565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e6a601b83612ae4565b9150613e7582613e36565b602082019050919050565b5f6020820190508181035f830152613e9781613e5e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220929827ef507d2f67381b09dd34abbc478da5a2bf1b8a81852de78d3dc0e05ac864736f6c634300081500330000000000000000000000002f1e94558d4e5180061be39b5aa4cae0b280e6c7

Deployed Bytecode

0x608060405260043610610169575f3560e01c80638da5cb5b116100d0578063c876d0b911610089578063dd62ed3e11610063578063dd62ed3e146104e8578063de2aa57d14610524578063e884f2601461054c578063f88de0c31461056257610170565b8063c876d0b914610480578063c9567bf9146104aa578063c95b7e26146104c057610170565b80638da5cb5b146103745780638f9a55c01461039e57806395d89b41146103c85780639d51d9b7146103f2578063a9059cbb1461041a578063bf474bed1461045657610170565b806370a082311161012257806370a0823114610292578063715018a6146102ce578063751039fc146102e45780637d1db4a5146102fa5780638b4cee08146103245780638bf554091461034c57610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da57806323b872dd14610204578063313ce56714610240578063346cc7be1461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610578565b6040516101959190612b64565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612c15565b6105b5565b6040516101d19190612c6d565b60405180910390f35b3480156101e5575f80fd5b506101ee6105d2565b6040516101fb9190612c95565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612cae565b6105f4565b6040516102379190612c6d565b60405180910390f35b34801561024b575f80fd5b506102546106c8565b6040516102619190612d19565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612d32565b6106d0565b005b34801561029d575f80fd5b506102b860048036038101906102b39190612d32565b6108fb565b6040516102c59190612c95565b60405180910390f35b3480156102d9575f80fd5b506102e2610941565b005b3480156102ef575f80fd5b506102f8610a8f565b005b348015610305575f80fd5b5061030e610c5e565b60405161031b9190612c95565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612d5d565b610c64565b005b348015610357575f80fd5b50610372600480360381019061036d9190612d5d565b610d83565b005b34801561037f575f80fd5b50610388610ed2565b6040516103959190612d97565b60405180910390f35b3480156103a9575f80fd5b506103b2610ef9565b6040516103bf9190612c95565b60405180910390f35b3480156103d3575f80fd5b506103dc610eff565b6040516103e99190612b64565b60405180910390f35b3480156103fd575f80fd5b5061041860048036038101906104139190612d5d565b610f3c565b005b348015610425575f80fd5b50610440600480360381019061043b9190612c15565b61108b565b60405161044d9190612c6d565b60405180910390f35b348015610461575f80fd5b5061046a6110a8565b6040516104779190612c95565b60405180910390f35b34801561048b575f80fd5b506104946110ae565b6040516104a19190612c6d565b60405180910390f35b3480156104b5575f80fd5b506104be6110c1565b005b3480156104cb575f80fd5b506104e660048036038101906104e19190612d5d565b61160e565b005b3480156104f3575f80fd5b5061050e60048036038101906105099190612db0565b61172d565b60405161051b9190612c95565b60405180910390f35b34801561052f575f80fd5b5061054a60048036038101906105459190612d5d565b6117af565b005b348015610557575f80fd5b506105606118fe565b005b34801561056d575f80fd5b506105766119e5565b005b60606040518060400160405280600c81526020017f47616d6f666920546f6b656e0000000000000000000000000000000000000000815250905090565b5f6105c86105c1611b44565b8484611b4b565b6001905092915050565b5f6012600a6105e19190612f4a565b629896806105ef9190612f94565b905090565b5f610600848484611d0e565b6106bd8461060c611b44565b6106b885604051806060016040528060288152602001613e9f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066f611b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126259092919063ffffffff16565b611b4b565b600190509392505050565b5f6012905090565b6106d8611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b9061301f565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a29190612d97565b602060405180830381865afa1580156107bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e19190613051565b90505f8111610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c906130c6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610849610ed2565b836040518363ffffffff1660e01b81526004016108679291906130e4565b6020604051808303815f875af1158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190613135565b508273ffffffffffffffffffffffffffffffffffffffff167f2c173e3ab5b50dfe2d876a6c7de0f777aef7fdaf4d1440ebed38708b3b78ebf4826040516108ee9190612c95565b60405180910390a2505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610949611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061301f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a97611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a9061301f565b60405180910390fd5b6012600a610b319190612f4a565b62989680610b3f9190612f94565b6008819055506012600a610b539190612f4a565b62989680610b619190612f94565b6009819055505f600c60176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bb09190612f4a565b62989680610bbe9190612f94565b604051610bcb9190612c95565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6012600a610c029190612f4a565b62989680610c109190612f94565b604051610c1d9190612c95565b60405180910390a17f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f604051610c549190612c6d565b60405180910390a1565b60085481565b610c6c611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef9061301f565b60405180910390fd5b6019811115610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d33906131d0565b60405180910390fd5b806007819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df61302600654600754604051610d789291906131ee565b60405180910390a150565b610d8b611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e9061301f565b60405180910390fd5b612710811115610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906132ab565b60405180910390fd5b612710816012600a610e6e9190612f4a565b62989680610e7c9190612f94565b610e869190612f94565b610e9091906132f6565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600854604051610ec79190612c95565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f47414d4f00000000000000000000000000000000000000000000000000000000815250905090565b610f44611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc79061301f565b60405180910390fd5b612710811115611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613396565b60405180910390fd5b612710816012600a6110279190612f4a565b629896806110359190612f94565b61103f9190612f94565b61104991906132f6565b6009819055507ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6009546040516110809190612c95565b60405180910390a150565b5f61109e611097611b44565b8484611d0e565b6001905092915050565b600a5481565b600c60179054906101000a900460ff1681565b6110c9611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061301f565b60405180910390fd5b600c60149054906101000a900460ff16156111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c90613424565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112403060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61122d9190612f4a565b6298968061123b9190612f94565b611b4b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ce9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113789190613456565b6040518363ffffffff1660e01b8152600401611395929190613481565b6020604051808303815f875af11580156113b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d59190613456565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061145c306108fb565b5f80611466610ed2565b426040518863ffffffff1660e01b8152600401611488969594939291906134ea565b60606040518083038185885af11580156114a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114c99190613549565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115699291906130e4565b6020604051808303815f875af1158015611585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a99190613135565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b611616611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061301f565b60405180910390fd5b60198111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613609565b60405180910390fd5b806006819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df613026006546007546040516117229291906131ee565b60405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117b7611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a9061301f565b60405180910390fd5b612710811115611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f906136bd565b60405180910390fd5b612710816012600a61189a9190612f4a565b629896806118a89190612f94565b6118b29190612f94565b6118bc91906132f6565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a546040516118f39190612c95565b60405180910390a150565b611906611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899061301f565b60405180910390fd5b5f600c60176101000a81548160ff0219169083151502179055507f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f6040516119db9190612c6d565b60405180910390a1565b6119ed611b44565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a709061301f565b60405180910390fd5b5f4790505f8111611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab690613725565b60405180910390fd5b611ac7610ed2565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b09573d5f803e3d5ffd5b507f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b81604051611b399190612c95565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb0906137b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613841565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d019190612c95565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906138cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de19061395d565b60405180910390fd5b5f8111611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906139eb565b60405180910390fd5b5f611e35610ed2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ea35750611e73610ed2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561237557600c60179054906101000a900460ff161561202f5760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f675750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202e574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613a9f565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d8575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561212b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f857612158606461214a6006548561268790919063ffffffff16565b6126fe90919063ffffffff16565b905060085482111561219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690613b2d565b60405180910390fd5b600954826121ac856108fb565b6121b69190613b4b565b11156121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613bee565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b0576122ad606461229f6007548561268790919063ffffffff16565b6126fe90919063ffffffff16565b90505b5f6122ba306108fb565b9050600c60159054906101000a900460ff161580156123255750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561233d5750600c60169054906101000a900460ff165b801561234a5750600a5481115b1561237357600a54831061236857612363600a54612747565b612372565b61237183612747565b5b5b505b5f811115612474576123cd8160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d390919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161246b9190612c95565b60405180910390a35b6124c48260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3090919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061256761251b8284612a3090919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d390919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61260a8486612a3090919063ffffffff16565b6040516126179190612c95565b60405180910390a350505050565b5f83831115829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612b64565b60405180910390fd5b505f838561267a9190613c0c565b9050809150509392505050565b5f808303612697575f90506126f8565b5f82846126a49190612f94565b90508284826126b391906132f6565b146126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea90613caf565b60405180910390fd5b809150505b92915050565b5f61273f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a79565b905092915050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561277e5761277d613ccd565b5b6040519080825280602002602001820160405280156127ac5781602001602082028036833780820191505090505b50905030815f815181106127c3576127c2613cfa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612867573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288b9190613456565b8160018151811061289f5761289e613cfa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129053060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612988959493929190613dde565b5f604051808303815f87803b15801561299f575f80fd5b505af11580156129b1573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f8082846129e19190613b4b565b905083811015612a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1d90613e80565b60405180910390fd5b8091505092915050565b5f612a7183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612625565b905092915050565b5f8083118290612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab69190612b64565b60405180910390fd5b505f8385612acd91906132f6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b11578082015181840152602081019050612af6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b3682612ada565b612b408185612ae4565b9350612b50818560208601612af4565b612b5981612b1c565b840191505092915050565b5f6020820190508181035f830152612b7c8184612b2c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bb182612b88565b9050919050565b612bc181612ba7565b8114612bcb575f80fd5b50565b5f81359050612bdc81612bb8565b92915050565b5f819050919050565b612bf481612be2565b8114612bfe575f80fd5b50565b5f81359050612c0f81612beb565b92915050565b5f8060408385031215612c2b57612c2a612b84565b5b5f612c3885828601612bce565b9250506020612c4985828601612c01565b9150509250929050565b5f8115159050919050565b612c6781612c53565b82525050565b5f602082019050612c805f830184612c5e565b92915050565b612c8f81612be2565b82525050565b5f602082019050612ca85f830184612c86565b92915050565b5f805f60608486031215612cc557612cc4612b84565b5b5f612cd286828701612bce565b9350506020612ce386828701612bce565b9250506040612cf486828701612c01565b9150509250925092565b5f60ff82169050919050565b612d1381612cfe565b82525050565b5f602082019050612d2c5f830184612d0a565b92915050565b5f60208284031215612d4757612d46612b84565b5b5f612d5484828501612bce565b91505092915050565b5f60208284031215612d7257612d71612b84565b5b5f612d7f84828501612c01565b91505092915050565b612d9181612ba7565b82525050565b5f602082019050612daa5f830184612d88565b92915050565b5f8060408385031215612dc657612dc5612b84565b5b5f612dd385828601612bce565b9250506020612de485828601612bce565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e7057808604811115612e4c57612e4b612dee565b5b6001851615612e5b5780820291505b8081029050612e6985612e1b565b9450612e30565b94509492505050565b5f82612e885760019050612f43565b81612e95575f9050612f43565b8160018114612eab5760028114612eb557612ee4565b6001915050612f43565b60ff841115612ec757612ec6612dee565b5b8360020a915084821115612ede57612edd612dee565b5b50612f43565b5060208310610133831016604e8410600b8410161715612f195782820a905083811115612f1457612f13612dee565b5b612f43565b612f268484846001612e27565b92509050818404811115612f3d57612f3c612dee565b5b81810290505b9392505050565b5f612f5482612be2565b9150612f5f83612cfe565b9250612f8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e79565b905092915050565b5f612f9e82612be2565b9150612fa983612be2565b9250828202612fb781612be2565b91508282048414831517612fce57612fcd612dee565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613009602083612ae4565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f8151905061304b81612beb565b92915050565b5f6020828403121561306657613065612b84565b5b5f6130738482850161303d565b91505092915050565b7f4e6f20737475636b20746f6b656e7320746f20636c65617200000000000000005f82015250565b5f6130b0601883612ae4565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b5f6040820190506130f75f830185612d88565b6131046020830184612c86565b9392505050565b61311481612c53565b811461311e575f80fd5b50565b5f8151905061312f8161310b565b92915050565b5f6020828403121561314a57613149612b84565b5b5f61315784828501613121565b91505092915050565b7f73657453656c6c4665653a205461782073686f756c64206265206c65737320745f8201527f68616e206f7220657175616c20746f2032350000000000000000000000000000602082015250565b5f6131ba603283612ae4565b91506131c582613160565b604082019050919050565b5f6020820190508181035f8301526131e7816131ae565b9050919050565b5f6040820190506132015f830185612c86565b61320e6020830184612c86565b9392505050565b7f7365744d61785472616e73666572416d6f756e743a2050657263656e746167655f8201527f2073686f756c64206265206c657373207468616e206f7220657175616c20746f60208201527f2031303030300000000000000000000000000000000000000000000000000000604082015250565b5f613295604683612ae4565b91506132a082613215565b606082019050919050565b5f6020820190508181035f8301526132c281613289565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61330082612be2565b915061330b83612be2565b92508261331b5761331a6132c9565b5b828204905092915050565b7f7365744d617842616c616e63653a2050657263656e746167652073686f756c645f8201527f206265206c657373207468616e206f7220657175616c20746f20313030303000602082015250565b5f613380603f83612ae4565b915061338b82613326565b604082019050919050565b5f6020820190508181035f8301526133ad81613374565b9050919050565b7f6f70656e54726164696e673a2054726164696e6720697320616c7265616479205f8201527f6f70656e00000000000000000000000000000000000000000000000000000000602082015250565b5f61340e602483612ae4565b9150613419826133b4565b604082019050919050565b5f6020820190508181035f83015261343b81613402565b9050919050565b5f8151905061345081612bb8565b92915050565b5f6020828403121561346b5761346a612b84565b5b5f61347884828501613442565b91505092915050565b5f6040820190506134945f830185612d88565b6134a16020830184612d88565b9392505050565b5f819050919050565b5f819050919050565b5f6134d46134cf6134ca846134a8565b6134b1565b612be2565b9050919050565b6134e4816134ba565b82525050565b5f60c0820190506134fd5f830189612d88565b61350a6020830188612c86565b61351760408301876134db565b61352460608301866134db565b6135316080830185612d88565b61353e60a0830184612c86565b979650505050505050565b5f805f606084860312156135605761355f612b84565b5b5f61356d8682870161303d565b935050602061357e8682870161303d565b925050604061358f8682870161303d565b9150509250925092565b7f7365744275796665653a205461782073686f756c64206265206c6573732074685f8201527f616e206f7220657175616c20746f203235000000000000000000000000000000602082015250565b5f6135f3603183612ae4565b91506135fe82613599565b604082019050919050565b5f6020820190508181035f830152613620816135e7565b9050919050565b7f736574546178537761705468726573686f6c643a2050657263656e74616765205f8201527f73686f756c64206265206c657373207468616e206f7220657175616c20746f2060208201527f3130303030000000000000000000000000000000000000000000000000000000604082015250565b5f6136a7604583612ae4565b91506136b282613627565b606082019050919050565b5f6020820190508181035f8301526136d48161369b565b9050919050565b7f4e6f20737475636b2045544820746f20636c65617200000000000000000000005f82015250565b5f61370f601583612ae4565b915061371a826136db565b602082019050919050565b5f6020820190508181035f83015261373c81613703565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61379d602483612ae4565b91506137a882613743565b604082019050919050565b5f6020820190508181035f8301526137ca81613791565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61382b602283612ae4565b9150613836826137d1565b604082019050919050565b5f6020820190508181035f8301526138588161381f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138b9602583612ae4565b91506138c48261385f565b604082019050919050565b5f6020820190508181035f8301526138e6816138ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613947602383612ae4565b9150613952826138ed565b604082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f5f7472616e736665723a205472616e7366657220616d6f756e74206d757374205f8201527f62652067726561746572207468616e207a65726f000000000000000000000000602082015250565b5f6139d5603483612ae4565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613a89604983612ae4565b9150613a9482613a09565b606082019050919050565b5f6020820190508181035f830152613ab681613a7d565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f613b17602483612ae4565b9150613b2282613abd565b604082019050919050565b5f6020820190508181035f830152613b4481613b0b565b9050919050565b5f613b5582612be2565b9150613b6083612be2565b9250828201905080821115613b7857613b77612dee565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c65745f8201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613bd8602583612ae4565b9150613be382613b7e565b604082019050919050565b5f6020820190508181035f830152613c0581613bcc565b9050919050565b5f613c1682612be2565b9150613c2183612be2565b9250828203905081811115613c3957613c38612dee565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c99602183612ae4565b9150613ca482613c3f565b604082019050919050565b5f6020820190508181035f830152613cc681613c8d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d5981612ba7565b82525050565b5f613d6a8383613d50565b60208301905092915050565b5f602082019050919050565b5f613d8c82613d27565b613d968185613d31565b9350613da183613d41565b805f5b83811015613dd1578151613db88882613d5f565b9750613dc383613d76565b925050600181019050613da4565b5085935050505092915050565b5f60a082019050613df15f830188612c86565b613dfe60208301876134db565b8181036040830152613e108186613d82565b9050613e1f6060830185612d88565b613e2c6080830184612c86565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e6a601b83612ae4565b9150613e7582613e36565b602082019050919050565b5f6020820190508181035f830152613e9781613e5e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220929827ef507d2f67381b09dd34abbc478da5a2bf1b8a81852de78d3dc0e05ac864736f6c63430008150033

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

0000000000000000000000002f1e94558d4e5180061be39b5aa4cae0b280e6c7

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x2F1E94558D4E5180061BE39b5Aa4cae0B280e6c7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002f1e94558d4e5180061be39b5aa4cae0b280e6c7


Deployed Bytecode Sourcemap

9884:15096:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12111:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14330:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12725:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14850:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12528:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23005:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13021:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7155:148;;;;;;;;;;;;;:::i;:::-;;21755:309;;;;;;;;;;;;;:::i;:::-;;10583:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19751:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20199:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6605:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10638:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12309:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20740:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13422:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10695:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10940:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23618:1209;;;;;;;;;;;;;:::i;:::-;;19397:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13880:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21218:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22187:141;;;;;;;;;;;;;:::i;:::-;;22481:279;;;;;;;;;;;;;:::i;:::-;;12111:83;12148:13;12181:5;;;;;;;;;;;;;;;;;12174:12;;12111:83;:::o;14330:161::-;14405:4;14422:39;14431:12;:10;:12::i;:::-;14445:7;14454:6;14422:8;:39::i;:::-;14479:4;14472:11;;14330:161;;;;:::o;12725:100::-;12778:7;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;12798:19;;12725:100;:::o;14850:313::-;14948:4;14965:36;14975:6;14983:9;14994:6;14965:9;:36::i;:::-;15012:121;15021:6;15029:12;:10;:12::i;:::-;15043:89;15081:6;15043:89;;;;;;;;;;;;;;;;;:11;:19;15055:6;15043:19;;;;;;;;;;;;;;;:33;15063:12;:10;:12::i;:::-;15043:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15012:8;:121::i;:::-;15151:4;15144:11;;14850:313;;;;;:::o;12528:83::-;12569:5;10166:2;12587:16;;12528:83;:::o;23005:395::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23083:12:::1;23105;23083:35;;23129:28;23160:5;:15;;;23184:4;23160:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23129:61;;23232:1;23209:20;:24;23201:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;23275:5;:14;;;23290:7;:5;:7::i;:::-;23299:20;23275:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23357:12;23338:54;;;23371:20;23338:54;;;;;;:::i;:::-;;;;;;;;23072:328;;23005:395:::0;:::o;13021:119::-;13087:7;13114:9;:18;13124:7;13114:18;;;;;;;;;;;;;;;;13107:25;;13021:119;;;:::o;7155:148::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7262:1:::1;7225:40;;7246:6;::::0;::::1;;;;;;;;7225:40;;;;;;;;;;;;7293:1;7276:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7155:148::o:0;21755:309::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10166:2:::1;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;21809:12;:27;;;;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;21847:14;:29;;;;21910:5;21887:20;;:28;;;;;;;;;;;;;;;;;;21931:32;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;21931:32;;;;;;:::i;:::-;;;;;;;;21979:34;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;21979:34;;;;;;:::i;:::-;;;;;;;;22029:27;22050:5;22029:27;;;;;;:::i;:::-;;;;;;;;21755:309::o:0;10583:48::-;;;;:::o;19751:213::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19829:2:::1;19822:3;:9;;19814:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19908:3;19897:8;:14;;;;19927:29;19938:7;;19947:8;;19927:29;;;;;;;:::i;:::-;;;;;;;;19751:213:::0;:::o;20199:288::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20295:5:::1;20284:7;:16;;20276:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;20426:5;20416:7;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;20401:22;;;;:::i;:::-;:30;;;;:::i;:::-;20386:12;:45;;;;20447:32;20466:12;;20447:32;;;;;;:::i;:::-;;;;;;;;20199:288:::0;:::o;6605:79::-;6643:7;6670:6;;;;;;;;;;;6663:13;;6605:79;:::o;10638:50::-;;;;:::o;12309:87::-;12348:13;12381:7;;;;;;;;;;;;;;;;;12374:14;;12309:87;:::o;20740:280::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20829:5:::1;20818:7;:16;;20810:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;20955:5;20945:7;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;20930:22;;;;:::i;:::-;:30;;;;:::i;:::-;20913:14;:47;;;;20976:36;20997:14;;20976:36;;;;;;:::i;:::-;;;;;;;;20740:280:::0;:::o;13422:167::-;13500:4;13517:42;13527:12;:10;:12::i;:::-;13541:9;13552:6;13517:9;:42::i;:::-;13577:4;13570:11;;13422:167;;;;:::o;10695:53::-;;;;:::o;10940:39::-;;;;;;;;;;;;;:::o;23618:1209::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23682:11:::1;;;;;;;;;;;23681:12;23673:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;23840:42;23789:15;;:104;;;;;;;;;;;;;;;;;;23976:63;23993:4;24008:15;;;;;;;;;;;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;23976:8;:63::i;:::-;24122:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24104:55;;;24168:4;24175:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24104:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24088:13;;:110;;;;;;;;;;;;;;;;;;24257:15;;;;;;;;;;;:31;;;24310:21;24365:4;24385:24;24403:4;24385:9;:24::i;:::-;24424:1;24440::::0;24456:7:::1;:5;:7::i;:::-;24478:15;24257:247;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24586:13;;;;;;;;;;;24579:29;;;24617:15;;;;;;;;;;;24635:14;24579:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24721:4;24707:11;;:18;;;;;;;;;;;;;;;;;;24784:4;24770:11;;:18;;;;;;;;;;;;;;;;;;24804:15;;;;;;;;;;23618:1209::o:0;19397:210::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19474:2:::1;19467:3;:9;;19459:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19551:3;19541:7;:13;;;;19570:29;19581:7;;19590:8;;19570:29;;;;;;;:::i;:::-;;;;;;;;19397:210:::0;:::o;13880:143::-;13961:7;13988:11;:18;14000:5;13988:18;;;;;;;;;;;;;;;:27;14007:7;13988:27;;;;;;;;;;;;;;;;13981:34;;13880:143;;;;:::o;21218:301::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21313:5:::1;21302:7;:16;;21294:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;21448:5;21438:7;10166:2;10226;:13;;;;:::i;:::-;10215:8;:24;;;;:::i;:::-;21423:22;;;;:::i;:::-;:30;;;;:::i;:::-;21403:17;:50;;;;21469:42;21493:17;;21469:42;;;;;;:::i;:::-;;;;;;;;21218:301:::0;:::o;22187:141::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22272:5:::1;22249:20;;:28;;;;;;;;;;;;;;;;;;22293:27;22314:5;22293:27;;;;;;:::i;:::-;;;;;;;;22187:141::o:0;22481:279::-;6827:12;:10;:12::i;:::-;6817:22;;:6;;;;;;;;;;:22;;;6809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22536:23:::1;22562:21;22536:47;;22620:1;22602:15;:19;22594:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;22668:7;:5;:7::i;:::-;22660:25;;:42;22686:15;22660:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22720:32;22736:15;22720:32;;;;;;:::i;:::-;;;;;;;;22525:235;22481:279::o:0;504:98::-;557:7;584:10;577:17;;504:98;:::o;15470:335::-;15580:1;15563:19;;:5;:19;;;15555:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15661:1;15642:21;;:7;:21;;;15634:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15743:6;15713:11;:18;15725:5;15713:18;;;;;;;;;;;;;;;:27;15732:7;15713:27;;;;;;;;;;;;;;;:36;;;;15781:7;15765:32;;15774:5;15765:32;;;15790:6;15765:32;;;;;;:::i;:::-;;;;;;;;15470:335;;;:::o;16083:2545::-;16187:1;16171:18;;:4;:18;;;16163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16264:1;16250:16;;:2;:16;;;16242:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16334:1;16325:6;:10;16317:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16405:17;16540:7;:5;:7::i;:::-;16532:15;;:4;:15;;;;:32;;;;;16557:7;:5;:7::i;:::-;16551:13;;:2;:13;;;;16532:32;16528:1608;;;16585:20;;;;;;;;;;;16581:388;;;16644:15;;;;;;;;;;;16630:30;;:2;:30;;;;:62;;;;;16678:13;;;;;;;;;;;16664:28;;:2;:28;;;;16630:62;16626:328;;;16767:12;16725:28;:39;16754:9;16725:39;;;;;;;;;;;;;;;;:54;16717:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;16922:12;16880:28;:39;16909:9;16880:39;;;;;;;;;;;;;;;:54;;;;16626:328;16581:388;17084:13;;;;;;;;;;;17076:21;;:4;:21;;;:55;;;;;17115:15;;;;;;;;;;;17101:30;;:2;:30;;;;17076:55;:82;;;;;17136:18;:22;17155:2;17136:22;;;;;;;;;;;;;;;;;;;;;;;;;17135:23;17076:82;17072:362;;;17191:28;17215:3;17191:19;17202:7;;17191:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17179:40;;17256:12;;17246:6;:22;;17238:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17362:14;;17352:6;17336:13;17346:2;17336:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;17328:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17072:362;17546:13;;;;;;;;;;;17540:19;;:2;:19;;;:44;;;;;17579:4;17563:21;;:4;:21;;;;17540:44;17536:126;;;17617:29;17642:3;17617:20;17628:8;;17617:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17605:41;;17536:126;17742:28;17773:24;17791:4;17773:9;:24::i;:::-;17742:55;;17817:6;;;;;;;;;;;17816:7;:30;;;;;17833:13;;;;;;;;;;;17827:19;;:2;:19;;;17816:30;:45;;;;;17850:11;;;;;;;;;;;17816:45;:89;;;;;17888:17;;17865:20;:40;17816:89;17812:313;;;17940:17;;17930:6;:27;17926:184;;17982:35;17999:17;;17982:16;:35::i;:::-;17926:184;;;18066:24;18083:6;18066:16;:24::i;:::-;17926:184;17812:313;16566:1570;16528:1608;18235:1;18223:9;:13;18219:172;;;18280:39;18309:9;18280;:24;18298:4;18280:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18253:9;:24;18271:4;18253:24;;;;;;;;;;;;;;;:66;;;;18362:4;18339:40;;18348:4;18339:40;;;18369:9;18339:40;;;;;;:::i;:::-;;;;;;;;18219:172;18469:27;18489:6;18469:9;:15;18479:4;18469:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;18451:9;:15;18461:4;18451:15;;;;;;;;;;;;;;;:45;;;;18523:40;18541:21;18552:9;18541:6;:10;;:21;;;;:::i;:::-;18523:9;:13;18533:2;18523:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;18507:9;:13;18517:2;18507:13;;;;;;;;;;;;;;;:56;;;;18594:2;18579:41;;18588:4;18579:41;;;18598:21;18609:9;18598:6;:10;;:21;;;;:::i;:::-;18579:41;;;;;;:::i;:::-;;;;;;;;16152:2476;16083:2545;;;:::o;4504:190::-;4590:7;4623:1;4618;:6;;4626:12;4610:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4650:9;4666:1;4662;:5;;;;:::i;:::-;4650:17;;4685:1;4678:8;;;4504:190;;;;;:::o;4934:246::-;4992:7;5021:1;5016;:6;5012:47;;5046:1;5039:8;;;;5012:47;5069:9;5085:1;5081;:5;;;;:::i;:::-;5069:17;;5114:1;5109;5105;:5;;;;:::i;:::-;:10;5097:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5171:1;5164:8;;;4934:246;;;;;:::o;5386:132::-;5444:7;5471:39;5475:1;5478;5471:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5464:46;;5386:132;;;;:::o;18766:489::-;11462:4;11453:6;;:13;;;;;;;;;;;;;;;;;;18844:21:::1;18882:1;18868:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18844:40;;18913:4;18895;18900:1;18895:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18939:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18929:4;18934:1;18929:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;18972:62;18989:4;19004:15;;;;;;;;;;;19022:11;18972:8;:62::i;:::-;19045:15;;;;;;;;;;;:66;;;19126:11;19152:1;19168:4;19195:10;;;;;;;;;;;19221:15;19045:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18833:422;11498:5:::0;11489:6;;:14;;;;;;;;;;;;;;;;;;18766:489;:::o;3593:179::-;3651:7;3671:9;3687:1;3683;:5;;;;:::i;:::-;3671:17;;3712:1;3707;:6;;3699:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3763:1;3756:8;;;3593:179;;;;:::o;4029:136::-;4087:7;4114:43;4118:1;4121;4114:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4107:50;;4029:136;;;;:::o;5806:189::-;5892:7;5924:1;5920;:5;5927:12;5912:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5951:9;5967:1;5963;:5;;;;:::i;:::-;5951:17;;5986:1;5979:8;;;5806:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:143::-;10327:5;10358:6;10352:13;10343:22;;10374:33;10401:5;10374:33;:::i;:::-;10270:143;;;;:::o;10419:351::-;10489:6;10538:2;10526:9;10517:7;10513:23;10509:32;10506:119;;;10544:79;;:::i;:::-;10506:119;10664:1;10689:64;10745:7;10736:6;10725:9;10721:22;10689:64;:::i;:::-;10679:74;;10635:128;10419:351;;;;:::o;10776:174::-;10916:26;10912:1;10904:6;10900:14;10893:50;10776:174;:::o;10956:366::-;11098:3;11119:67;11183:2;11178:3;11119:67;:::i;:::-;11112:74;;11195:93;11284:3;11195:93;:::i;:::-;11313:2;11308:3;11304:12;11297:19;;10956:366;;;:::o;11328:419::-;11494:4;11532:2;11521:9;11517:18;11509:26;;11581:9;11575:4;11571:20;11567:1;11556:9;11552:17;11545:47;11609:131;11735:4;11609:131;:::i;:::-;11601:139;;11328:419;;;:::o;11753:332::-;11874:4;11912:2;11901:9;11897:18;11889:26;;11925:71;11993:1;11982:9;11978:17;11969:6;11925:71;:::i;:::-;12006:72;12074:2;12063:9;12059:18;12050:6;12006:72;:::i;:::-;11753:332;;;;;:::o;12091:116::-;12161:21;12176:5;12161:21;:::i;:::-;12154:5;12151:32;12141:60;;12197:1;12194;12187:12;12141:60;12091:116;:::o;12213:137::-;12267:5;12298:6;12292:13;12283:22;;12314:30;12338:5;12314:30;:::i;:::-;12213:137;;;;:::o;12356:345::-;12423:6;12472:2;12460:9;12451:7;12447:23;12443:32;12440:119;;;12478:79;;:::i;:::-;12440:119;12598:1;12623:61;12676:7;12667:6;12656:9;12652:22;12623:61;:::i;:::-;12613:71;;12569:125;12356:345;;;;:::o;12707:237::-;12847:34;12843:1;12835:6;12831:14;12824:58;12916:20;12911:2;12903:6;12899:15;12892:45;12707:237;:::o;12950:366::-;13092:3;13113:67;13177:2;13172:3;13113:67;:::i;:::-;13106:74;;13189:93;13278:3;13189:93;:::i;:::-;13307:2;13302:3;13298:12;13291:19;;12950:366;;;:::o;13322:419::-;13488:4;13526:2;13515:9;13511:18;13503:26;;13575:9;13569:4;13565:20;13561:1;13550:9;13546:17;13539:47;13603:131;13729:4;13603:131;:::i;:::-;13595:139;;13322:419;;;:::o;13747:332::-;13868:4;13906:2;13895:9;13891:18;13883:26;;13919:71;13987:1;13976:9;13972:17;13963:6;13919:71;:::i;:::-;14000:72;14068:2;14057:9;14053:18;14044:6;14000:72;:::i;:::-;13747:332;;;;;:::o;14085:294::-;14225:34;14221:1;14213:6;14209:14;14202:58;14294:34;14289:2;14281:6;14277:15;14270:59;14363:8;14358:2;14350:6;14346:15;14339:33;14085:294;:::o;14385:366::-;14527:3;14548:67;14612:2;14607:3;14548:67;:::i;:::-;14541:74;;14624:93;14713:3;14624:93;:::i;:::-;14742:2;14737:3;14733:12;14726:19;;14385:366;;;:::o;14757:419::-;14923:4;14961:2;14950:9;14946:18;14938:26;;15010:9;15004:4;15000:20;14996:1;14985:9;14981:17;14974:47;15038:131;15164:4;15038:131;:::i;:::-;15030:139;;14757:419;;;:::o;15182:180::-;15230:77;15227:1;15220:88;15327:4;15324:1;15317:15;15351:4;15348:1;15341:15;15368:185;15408:1;15425:20;15443:1;15425:20;:::i;:::-;15420:25;;15459:20;15477:1;15459:20;:::i;:::-;15454:25;;15498:1;15488:35;;15503:18;;:::i;:::-;15488:35;15545:1;15542;15538:9;15533:14;;15368:185;;;;:::o;15559:250::-;15699:34;15695:1;15687:6;15683:14;15676:58;15768:33;15763:2;15755:6;15751:15;15744:58;15559:250;:::o;15815:366::-;15957:3;15978:67;16042:2;16037:3;15978:67;:::i;:::-;15971:74;;16054:93;16143:3;16054:93;:::i;:::-;16172:2;16167:3;16163:12;16156:19;;15815:366;;;:::o;16187:419::-;16353:4;16391:2;16380:9;16376:18;16368:26;;16440:9;16434:4;16430:20;16426:1;16415:9;16411:17;16404:47;16468:131;16594:4;16468:131;:::i;:::-;16460:139;;16187:419;;;:::o;16612:223::-;16752:34;16748:1;16740:6;16736:14;16729:58;16821:6;16816:2;16808:6;16804:15;16797:31;16612:223;:::o;16841:366::-;16983:3;17004:67;17068:2;17063:3;17004:67;:::i;:::-;16997:74;;17080:93;17169:3;17080:93;:::i;:::-;17198:2;17193:3;17189:12;17182:19;;16841:366;;;:::o;17213:419::-;17379:4;17417:2;17406:9;17402:18;17394:26;;17466:9;17460:4;17456:20;17452:1;17441:9;17437:17;17430:47;17494:131;17620:4;17494:131;:::i;:::-;17486:139;;17213:419;;;:::o;17638:143::-;17695:5;17726:6;17720:13;17711:22;;17742:33;17769:5;17742:33;:::i;:::-;17638:143;;;;:::o;17787:351::-;17857:6;17906:2;17894:9;17885:7;17881:23;17877:32;17874:119;;;17912:79;;:::i;:::-;17874:119;18032:1;18057:64;18113:7;18104:6;18093:9;18089:22;18057:64;:::i;:::-;18047:74;;18003:128;17787:351;;;;:::o;18144:332::-;18265:4;18303:2;18292:9;18288:18;18280:26;;18316:71;18384:1;18373:9;18369:17;18360:6;18316:71;:::i;:::-;18397:72;18465:2;18454:9;18450:18;18441:6;18397:72;:::i;:::-;18144:332;;;;;:::o;18482:85::-;18527:7;18556:5;18545:16;;18482:85;;;:::o;18573:60::-;18601:3;18622:5;18615:12;;18573:60;;;:::o;18639:158::-;18697:9;18730:61;18748:42;18757:32;18783:5;18757:32;:::i;:::-;18748:42;:::i;:::-;18730:61;:::i;:::-;18717:74;;18639:158;;;:::o;18803:147::-;18898:45;18937:5;18898:45;:::i;:::-;18893:3;18886:58;18803:147;;:::o;18956:807::-;19205:4;19243:3;19232:9;19228:19;19220:27;;19257:71;19325:1;19314:9;19310:17;19301:6;19257:71;:::i;:::-;19338:72;19406:2;19395:9;19391:18;19382:6;19338:72;:::i;:::-;19420:80;19496:2;19485:9;19481:18;19472:6;19420:80;:::i;:::-;19510;19586:2;19575:9;19571:18;19562:6;19510:80;:::i;:::-;19600:73;19668:3;19657:9;19653:19;19644:6;19600:73;:::i;:::-;19683;19751:3;19740:9;19736:19;19727:6;19683:73;:::i;:::-;18956:807;;;;;;;;;:::o;19769:663::-;19857:6;19865;19873;19922:2;19910:9;19901:7;19897:23;19893:32;19890:119;;;19928:79;;:::i;:::-;19890:119;20048:1;20073:64;20129:7;20120:6;20109:9;20105:22;20073:64;:::i;:::-;20063:74;;20019:128;20186:2;20212:64;20268:7;20259:6;20248:9;20244:22;20212:64;:::i;:::-;20202:74;;20157:129;20325:2;20351:64;20407:7;20398:6;20387:9;20383:22;20351:64;:::i;:::-;20341:74;;20296:129;19769:663;;;;;:::o;20438:236::-;20578:34;20574:1;20566:6;20562:14;20555:58;20647:19;20642:2;20634:6;20630:15;20623:44;20438:236;:::o;20680:366::-;20822:3;20843:67;20907:2;20902:3;20843:67;:::i;:::-;20836:74;;20919:93;21008:3;20919:93;:::i;:::-;21037:2;21032:3;21028:12;21021:19;;20680:366;;;:::o;21052:419::-;21218:4;21256:2;21245:9;21241:18;21233:26;;21305:9;21299:4;21295:20;21291:1;21280:9;21276:17;21269:47;21333:131;21459:4;21333:131;:::i;:::-;21325:139;;21052:419;;;:::o;21477:293::-;21617:34;21613:1;21605:6;21601:14;21594:58;21686:34;21681:2;21673:6;21669:15;21662:59;21755:7;21750:2;21742:6;21738:15;21731:32;21477:293;:::o;21776:366::-;21918:3;21939:67;22003:2;21998:3;21939:67;:::i;:::-;21932:74;;22015:93;22104:3;22015:93;:::i;:::-;22133:2;22128:3;22124:12;22117:19;;21776:366;;;:::o;22148:419::-;22314:4;22352:2;22341:9;22337:18;22329:26;;22401:9;22395:4;22391:20;22387:1;22376:9;22372:17;22365:47;22429:131;22555:4;22429:131;:::i;:::-;22421:139;;22148:419;;;:::o;22573:171::-;22713:23;22709:1;22701:6;22697:14;22690:47;22573:171;:::o;22750:366::-;22892:3;22913:67;22977:2;22972:3;22913:67;:::i;:::-;22906:74;;22989:93;23078:3;22989:93;:::i;:::-;23107:2;23102:3;23098:12;23091:19;;22750:366;;;:::o;23122:419::-;23288:4;23326:2;23315:9;23311:18;23303:26;;23375:9;23369:4;23365:20;23361:1;23350:9;23346:17;23339:47;23403:131;23529:4;23403:131;:::i;:::-;23395:139;;23122:419;;;:::o;23547:223::-;23687:34;23683:1;23675:6;23671:14;23664:58;23756:6;23751:2;23743:6;23739:15;23732:31;23547:223;:::o;23776:366::-;23918:3;23939:67;24003:2;23998:3;23939:67;:::i;:::-;23932:74;;24015:93;24104:3;24015:93;:::i;:::-;24133:2;24128:3;24124:12;24117:19;;23776:366;;;:::o;24148:419::-;24314:4;24352:2;24341:9;24337:18;24329:26;;24401:9;24395:4;24391:20;24387:1;24376:9;24372:17;24365:47;24429:131;24555:4;24429:131;:::i;:::-;24421:139;;24148:419;;;:::o;24573:221::-;24713:34;24709:1;24701:6;24697:14;24690:58;24782:4;24777:2;24769:6;24765:15;24758:29;24573:221;:::o;24800:366::-;24942:3;24963:67;25027:2;25022:3;24963:67;:::i;:::-;24956:74;;25039:93;25128:3;25039:93;:::i;:::-;25157:2;25152:3;25148:12;25141:19;;24800:366;;;:::o;25172:419::-;25338:4;25376:2;25365:9;25361:18;25353:26;;25425:9;25419:4;25415:20;25411:1;25400:9;25396:17;25389:47;25453:131;25579:4;25453:131;:::i;:::-;25445:139;;25172:419;;;:::o;25597:224::-;25737:34;25733:1;25725:6;25721:14;25714:58;25806:7;25801:2;25793:6;25789:15;25782:32;25597:224;:::o;25827:366::-;25969:3;25990:67;26054:2;26049:3;25990:67;:::i;:::-;25983:74;;26066:93;26155:3;26066:93;:::i;:::-;26184:2;26179:3;26175:12;26168:19;;25827:366;;;:::o;26199:419::-;26365:4;26403:2;26392:9;26388:18;26380:26;;26452:9;26446:4;26442:20;26438:1;26427:9;26423:17;26416:47;26480:131;26606:4;26480:131;:::i;:::-;26472:139;;26199:419;;;:::o;26624:222::-;26764:34;26760:1;26752:6;26748:14;26741:58;26833:5;26828:2;26820:6;26816:15;26809:30;26624:222;:::o;26852:366::-;26994:3;27015:67;27079:2;27074:3;27015:67;:::i;:::-;27008:74;;27091:93;27180:3;27091:93;:::i;:::-;27209:2;27204:3;27200:12;27193:19;;26852:366;;;:::o;27224:419::-;27390:4;27428:2;27417:9;27413:18;27405:26;;27477:9;27471:4;27467:20;27463:1;27452:9;27448:17;27441:47;27505:131;27631:4;27505:131;:::i;:::-;27497:139;;27224:419;;;:::o;27649:239::-;27789:34;27785:1;27777:6;27773:14;27766:58;27858:22;27853:2;27845:6;27841:15;27834:47;27649:239;:::o;27894:366::-;28036:3;28057:67;28121:2;28116:3;28057:67;:::i;:::-;28050:74;;28133:93;28222:3;28133:93;:::i;:::-;28251:2;28246:3;28242:12;28235:19;;27894:366;;;:::o;28266:419::-;28432:4;28470:2;28459:9;28455:18;28447:26;;28519:9;28513:4;28509:20;28505:1;28494:9;28490:17;28483:47;28547:131;28673:4;28547:131;:::i;:::-;28539:139;;28266:419;;;:::o;28691:297::-;28831:34;28827:1;28819:6;28815:14;28808:58;28900:34;28895:2;28887:6;28883:15;28876:59;28969:11;28964:2;28956:6;28952:15;28945:36;28691:297;:::o;28994:366::-;29136:3;29157:67;29221:2;29216:3;29157:67;:::i;:::-;29150:74;;29233:93;29322:3;29233:93;:::i;:::-;29351:2;29346:3;29342:12;29335:19;;28994:366;;;:::o;29366:419::-;29532:4;29570:2;29559:9;29555:18;29547:26;;29619:9;29613:4;29609:20;29605:1;29594:9;29590:17;29583:47;29647:131;29773:4;29647:131;:::i;:::-;29639:139;;29366:419;;;:::o;29791:223::-;29931:34;29927:1;29919:6;29915:14;29908:58;30000:6;29995:2;29987:6;29983:15;29976:31;29791:223;:::o;30020:366::-;30162:3;30183:67;30247:2;30242:3;30183:67;:::i;:::-;30176:74;;30259:93;30348:3;30259:93;:::i;:::-;30377:2;30372:3;30368:12;30361:19;;30020:366;;;:::o;30392:419::-;30558:4;30596:2;30585:9;30581:18;30573:26;;30645:9;30639:4;30635:20;30631:1;30620:9;30616:17;30609:47;30673:131;30799:4;30673:131;:::i;:::-;30665:139;;30392:419;;;:::o;30817:191::-;30857:3;30876:20;30894:1;30876:20;:::i;:::-;30871:25;;30910:20;30928:1;30910:20;:::i;:::-;30905:25;;30953:1;30950;30946:9;30939:16;;30974:3;30971:1;30968:10;30965:36;;;30981:18;;:::i;:::-;30965:36;30817:191;;;;:::o;31014:224::-;31154:34;31150:1;31142:6;31138:14;31131:58;31223:7;31218:2;31210:6;31206:15;31199:32;31014:224;:::o;31244:366::-;31386:3;31407:67;31471:2;31466:3;31407:67;:::i;:::-;31400:74;;31483:93;31572:3;31483:93;:::i;:::-;31601:2;31596:3;31592:12;31585:19;;31244:366;;;:::o;31616:419::-;31782:4;31820:2;31809:9;31805:18;31797:26;;31869:9;31863:4;31859:20;31855:1;31844:9;31840:17;31833:47;31897:131;32023:4;31897:131;:::i;:::-;31889:139;;31616:419;;;:::o;32041:194::-;32081:4;32101:20;32119:1;32101:20;:::i;:::-;32096:25;;32135:20;32153:1;32135:20;:::i;:::-;32130:25;;32179:1;32176;32172:9;32164:17;;32203:1;32197:4;32194:11;32191:37;;;32208:18;;:::i;:::-;32191:37;32041:194;;;;:::o;32241:220::-;32381:34;32377:1;32369:6;32365:14;32358:58;32450:3;32445:2;32437:6;32433:15;32426:28;32241:220;:::o;32467:366::-;32609:3;32630:67;32694:2;32689:3;32630:67;:::i;:::-;32623:74;;32706:93;32795:3;32706:93;:::i;:::-;32824:2;32819:3;32815:12;32808:19;;32467:366;;;:::o;32839:419::-;33005:4;33043:2;33032:9;33028:18;33020:26;;33092:9;33086:4;33082:20;33078:1;33067:9;33063:17;33056:47;33120:131;33246:4;33120:131;:::i;:::-;33112:139;;32839:419;;;:::o;33264:180::-;33312:77;33309:1;33302:88;33409:4;33406:1;33399:15;33433:4;33430:1;33423:15;33450:180;33498:77;33495:1;33488:88;33595:4;33592:1;33585:15;33619:4;33616:1;33609:15;33636:114;33703:6;33737:5;33731:12;33721:22;;33636:114;;;:::o;33756:184::-;33855:11;33889:6;33884:3;33877:19;33929:4;33924:3;33920:14;33905:29;;33756:184;;;;:::o;33946:132::-;34013:4;34036:3;34028:11;;34066:4;34061:3;34057:14;34049:22;;33946:132;;;:::o;34084:108::-;34161:24;34179:5;34161:24;:::i;:::-;34156:3;34149:37;34084:108;;:::o;34198:179::-;34267:10;34288:46;34330:3;34322:6;34288:46;:::i;:::-;34366:4;34361:3;34357:14;34343:28;;34198:179;;;;:::o;34383:113::-;34453:4;34485;34480:3;34476:14;34468:22;;34383:113;;;:::o;34532:732::-;34651:3;34680:54;34728:5;34680:54;:::i;:::-;34750:86;34829:6;34824:3;34750:86;:::i;:::-;34743:93;;34860:56;34910:5;34860:56;:::i;:::-;34939:7;34970:1;34955:284;34980:6;34977:1;34974:13;34955:284;;;35056:6;35050:13;35083:63;35142:3;35127:13;35083:63;:::i;:::-;35076:70;;35169:60;35222:6;35169:60;:::i;:::-;35159:70;;35015:224;35002:1;34999;34995:9;34990:14;;34955:284;;;34959:14;35255:3;35248:10;;34656:608;;;34532:732;;;;:::o;35270:831::-;35533:4;35571:3;35560:9;35556:19;35548:27;;35585:71;35653:1;35642:9;35638:17;35629:6;35585:71;:::i;:::-;35666:80;35742:2;35731:9;35727:18;35718:6;35666:80;:::i;:::-;35793:9;35787:4;35783:20;35778:2;35767:9;35763:18;35756:48;35821:108;35924:4;35915:6;35821:108;:::i;:::-;35813:116;;35939:72;36007:2;35996:9;35992:18;35983:6;35939:72;:::i;:::-;36021:73;36089:3;36078:9;36074:19;36065:6;36021:73;:::i;:::-;35270:831;;;;;;;;:::o;36107:177::-;36247:29;36243:1;36235:6;36231:14;36224:53;36107:177;:::o;36290:366::-;36432:3;36453:67;36517:2;36512:3;36453:67;:::i;:::-;36446:74;;36529:93;36618:3;36529:93;:::i;:::-;36647:2;36642:3;36638:12;36631:19;;36290:366;;;:::o;36662:419::-;36828:4;36866:2;36855:9;36851:18;36843:26;;36915:9;36909:4;36905:20;36901:1;36890:9;36886:17;36879:47;36943:131;37069:4;36943:131;:::i;:::-;36935:139;;36662:419;;;:::o

Swarm Source

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