ETH Price: $2,134.46 (-8.59%)

Token

Abstract ALPHA (ALPHA)

Overview

Max Total Supply

100,000,000 ALPHA

Holders

1

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
Alpha

Compiler Version
v0.8.24+commit.e11b9ed9

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
paris EvmVersion
File 1 of 7 : Alpha.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

// Custom errors for gas optimization
error TradingDisabled();
error MaxTxExceeded();
error MaxWalletExceeded();
error InvalidAddress();
error TransferFailed();
error SwapAmountInvalid();
error TradingAlreadyEnabled();

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract Alpha is ERC20, Ownable {
    // Immutable addresses
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0x000000000000000000000000000000000000dEaD);
    address public constant developerWallet = 0xFD93f9d518286066241539396234348445d10F44;

    // Strings
    string public constant exchangeLink = "https://app.uniswap.or/swap";
    string public constant websiteLink = "https://AbstractALPHA.xyz";

    // Addresses
    address public communityWallet;
    address public marketingWallet;

    // Pack booleans together in a single storage slot
    bool public tradable;
    bool public swappable;
    bool public restrictions = true;
    bool public taxation = true;
    bool public taxLopsided = true;
    bool private swapping;

    // Use uint8 for small numbers to pack variables
    uint8 private immutable communityTax = 1;
    uint8 private immutable marketingTax = 1;
    uint8 private immutable developerTax = 1;
    uint8 private immutable communityLopsidedSellTax = 6;
    uint8 private immutable marketingLopsidedSellTax = 6;
    uint8 private immutable developerLopsidedSellTax = 4;

    // Public variables
    uint256 public swapTokenAmount;
    uint256 public restrictMaxTransaction;
    uint256 public restrictMaxWallet;
    uint256 public immutable totalBuyTax;
    uint256 public immutable totalSellTax;
    uint256 public immutable totalLopsidedSellTax;

    // Private accounting
    uint256 private communityTokens;
    uint256 private marketingTokens;
    uint256 private developerTokens;

    // Mappings
    mapping(address => bool) private automatedMarketMakerPairs;

    // Events
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event WalletUpdated(address indexed newWallet, address indexed oldWallet, uint8 walletType);

    constructor() ERC20("Abstract ALPHA", "ALPHA") {
        address _uniswapV2Router = 0xad1eCa41E6F772bE3cb5A48A6141f9bcc1AF9F7c;
        
        // Calculate total taxes once
        totalBuyTax = communityTax + marketingTax + developerTax;
        totalSellTax = totalBuyTax;
        totalLopsidedSellTax = communityLopsidedSellTax + marketingLopsidedSellTax + developerLopsidedSellTax;

        // Initialize wallets first
        communityWallet = 0x1f9aA613658dDb40910BDcaD1E235Fc1d98e7F17;
        marketingWallet = 0x9de74AB6116cF298C99C934292BA64b5E064d44d;

        // Deploy with initial supply
        uint256 totalSupply = 100_000_000 * 10**decimals();  // Use decimals() function
        _mint(address(this), totalSupply);

        // Set initial parameters
        swapTokenAmount = totalSupply / 2000;
        restrictMaxTransaction = totalSupply / 100;
        restrictMaxWallet = totalSupply / 20;

        // Initialize router first
        uniswapV2Router = IUniswapV2Router02(_uniswapV2Router);
        
        // Approve before creating pair
        _approve(address(this), _uniswapV2Router, type(uint256).max);

        // Create pair after approvals
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        
        // Set pair
        _setAutomatedMarketMakerPair(uniswapV2Pair, true);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        require(!tradable, "Trading already enabled");
        uint256 tokensInWallet = balanceOf(address(this));
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokensInWallet,
            0,
            0,
            owner(),
            block.timestamp
        );
        tradable = true;
        swappable = true;
    }

    function updateSwapTokenAmount(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= totalSupply() / 100000, "Swap amount too low");
        require(newAmount <= totalSupply() / 200, "Swap amount too high");
        swapTokenAmount = newAmount;
        return true;
    }

    function updateCommunityWallet(address _communityWallet) external onlyOwner {
        require(_communityWallet != address(0), "Invalid address");
        emit WalletUpdated(_communityWallet, communityWallet, 0);
        communityWallet = _communityWallet;
    }

    function updateMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != address(0), "Invalid address");
        emit WalletUpdated(_marketingWallet, marketingWallet, 1);
        marketingWallet = _marketingWallet;
    }

    function removeRestrictions() external onlyOwner {
        restrictions = false;
    }

    function resetTax() external onlyOwner {
        taxation = true;
        taxLopsided = true;
    }

    function reduceSellTax() external onlyOwner {
        taxLopsided = false;
    }

    function removeTax() external onlyOwner {
        taxation = false;
    }

    function withdrawStuckETH() public onlyOwner {
        (bool success, ) = msg.sender.call{value: address(this).balance}("");
        require(success, "Transfer failed");
    }

    function withdrawStuckTokens(address tkn) public onlyOwner {
        uint256 amount = IERC20(tkn).balanceOf(address(this));
        require(amount > 0, "No tokens");
        IERC20(tkn).transfer(msg.sender, amount);
    }

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

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (!tradable) {
            require(_isWhitelisted(from) || _isWhitelisted(to), "Trading disabled");
        }

        if (restrictions) {
            _validateTransferLimits(from, to, amount);
        }

        if (_shouldSwap(from, to)) {
            swapping = true;
            distributeTax();
            swapping = false;
        }

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

        super._transfer(from, to, amount);
    }

    function _isWhitelisted(address account) private view returns (bool) {
        return account == owner() || 
               account == address(this) || 
               account == deadAddress || 
               account == communityWallet || 
               account == marketingWallet || 
               account == developerWallet;
    }

    function _validateTransferLimits(address from, address to, uint256 amount) private view {
        if (automatedMarketMakerPairs[from] && !_isWhitelisted(to)) {
            require(amount <= restrictMaxTransaction, "Max tx exceeded");
            require(balanceOf(to) + amount <= restrictMaxWallet, "Max wallet exceeded");
        } else if (automatedMarketMakerPairs[to] && !_isWhitelisted(from)) {
            require(amount <= restrictMaxTransaction, "Max tx exceeded");
        } else if (!_isWhitelisted(to)) {
            require(balanceOf(to) + amount <= restrictMaxWallet, "Max wallet exceeded");
        }
    }

    function _shouldSwap(address from, address to) private view returns (bool) {
        return swappable &&
            !swapping &&
            balanceOf(address(this)) >= swapTokenAmount &&
            !automatedMarketMakerPairs[from] &&
            !_isWhitelisted(from) &&
            !_isWhitelisted(to);
    }

    function _calculateFees(address from, address to, uint256 amount) private view returns (uint256) {
        if (!taxation || swapping) return 0;
        
        unchecked {
            if (automatedMarketMakerPairs[to]) {
                if (taxLopsided) {
                    return (amount * totalLopsidedSellTax) / 100;
                } else {
                    return (amount * totalSellTax) / 100;
                }
            } else if (automatedMarketMakerPairs[from]) {
                return (amount * totalBuyTax) / 100;
            }
            return 0;
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function distributeTax() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) return;
        
        uint256 totalTokens = communityTokens + marketingTokens + developerTokens;
        if (totalTokens == 0) return;
        
        uint256 maxSwap = swapTokenAmount * 20;
        uint256 swapAmount = contractBalance > maxSwap ? maxSwap : contractBalance;

        swapTokensForEth(swapAmount);
        uint256 ethBalance = address(this).balance;
        
        if (ethBalance == 0) return;

        uint256 ethForCommunity = ethBalance * communityTokens / totalTokens;
        uint256 ethForMarketing = ethBalance * marketingTokens / totalTokens;
        uint256 ethForDeveloper = ethBalance - ethForCommunity - ethForMarketing;
        
        if (ethForCommunity > 0) {
            (bool success,) = communityWallet.call{value: ethForCommunity}("");
            require(success, "Community transfer failed");
        }
        
        if (ethForMarketing > 0) {
            (bool success,) = marketingWallet.call{value: ethForMarketing}("");
            require(success, "Marketing transfer failed");
        }
        
        if (ethForDeveloper > 0) {
            (bool success,) = developerWallet.call{value: ethForDeveloper}("");
            require(success, "Developer transfer failed");
        }
        
        communityTokens = 0;
        marketingTokens = 0;
        developerTokens = 0;
    }
}

File 2 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 7 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 7 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 5 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 6 of 7 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

File 7 of 7 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"},{"indexed":false,"internalType":"uint8","name":"walletType","type":"uint8"}],"name":"WalletUpdated","type":"event"},{"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":"communityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeLink","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictMaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swappable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxLopsided","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLopsidedSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_communityWallet","type":"address"}],"name":"updateCommunityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokenAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"websiteLink","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tkn","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

9c4d535b00000000000000000000000000000000000000000000000000000000000000000100042f30fb8fc558052aa88f032bb9288b06f15c61c49746e56319530e6e7100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x0004000000000002000d000000000002000000000401034f00000060011002700000037f03100197000300000034035500020000000403550000037f0010019d00000001002001900000005d0000c13d0000008001000039000000400010043f000000040030008c0000007c0000413d000000000104043b000000e001100270000003a20010009c000000a70000a13d000003a30010009c000000ba0000213d000003b20010009c000001230000a13d000003b30010009c0000017a0000213d000003b70010009c000002300000613d000003b80010009c000002370000613d000003b90010009c000005e70000c13d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000002401400370000000000101043b000200000001001d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000000302000029000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000000020310006c0000032d0000813d000000400100043d0000006402100039000003f00300004100000000003204350000004402100039000003f1030000410000000000320435000000240210003900000025030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000001e001000039000000400010043f0000000001000416000000000001004b000005e70000c13d0000000e01000039000001e00010043f0000038001000041000002000010043f0000026001000039000000400010043f0000000504000039000002200040043f0000038101000041000002400010043f0000000303000039000000000103041a000000010210019000000001051002700000007f0550618f0000001f0050008c00000000010000390000000101002039000000000012004b000000800000613d0000040001000041000000000010043f0000002201000039000000040010043f000004010100004100000df800010430000000000003004b000005e70000c13d000000000100001900000df70001042e000000200050008c0000009a0000413d000300000005001d000000000030043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b00000003020000290000001f0220003900000005022002700000000002210019000000000021004b000000050400003900000003030000390000009a0000813d000000000001041b0000000101100039000000000021004b000000960000413d000002000100043d00000383011001970000001c011001bf000000000013041b000002200600043d000003840060009c000000e40000413d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df800010430000003c00010009c000000d50000a13d000003c10010009c0000014b0000a13d000003c20010009c000001ab0000213d000003c60010009c0000023e0000613d000003c70010009c000002490000613d000003c80010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a00000405001001980000048d0000013d000003a40010009c0000015e0000a13d000003a50010009c000001b60000213d000003a90010009c000002500000613d000003aa0010009c000002550000613d000003ab0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a000003e402200197000000000021041b000000000100001900000df70001042e000003cf0010009c0000016b0000213d000003d60010009c000001da0000a13d000003d70010009c0000026f0000613d000003d80010009c0000027d0000613d000003d90010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000201000039000003de0000013d0000000405000039000000000105041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000760000c13d000000200030008c000001100000413d000200000003001d000300000006001d000000000050043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d00000003060000290000001f026000390000000502200270000000200060008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000005040000390000000405000039000001100000813d000000000002041b0000000102200039000000000012004b0000010c0000413d0000001f0060008c000002250000a13d000300000006001d000000000050043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d00000003060000290000041002600198000000000101043b000004920000c13d00000020030000390000049e0000013d000003ba0010009c000001e70000a13d000003bb0010009c0000028b0000613d000003bc0010009c000002ee0000613d000003bd0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000760000c13d000000800010043f000000000005004b0000043b0000613d000000000030043f000000020020008c000005120000413d000003f50200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000001420000413d000005f30000013d000003c90010009c000001fc0000a13d000003ca0010009c000002f70000613d000003cb0010009c000002fe0000613d000003cc0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000001000412000900000001001d000801000000003d000080050100003900000044030000390000000004000415000000090440008a000004810000013d000003ac0010009c000002110000a13d000003ad0010009c000003380000613d000003ae0010009c0000033d0000613d000003af0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000901000039000003de0000013d000003d00010009c0000021a0000a13d000003d10010009c0000035a0000613d000003d20010009c000003650000613d000003d30010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000dead01000039000000800010043f000003e50100004100000df70001042e000003b40010009c0000039e0000613d000003b50010009c000003bb0000613d000003b60010009c000005e70000c13d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000305000029000000000005004b000003b10000613d0000000701000039000000000201041a0000000101000039000000800010043f00000000010004140000037f0010009c0000037f01008041000000c001100210000003eb011001c7000200000002001d00000386062001970000800d020000390000000303000039000003ec040000410df60dec0000040f0000000100200190000005e70000613d0000000201000029000003850110019700000003011001af0000000702000039000000000012041b000000000100001900000df70001042e000003c30010009c000003d00000613d000003c40010009c000003e20000613d000003c50010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000701000039000002f20000013d000003a60010009c000003fa0000613d000003a70010009c000004170000613d000003a80010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f0000000100200190000005040000613d000000000301043b00000000010004140000000004000411000000040040008c0000057d0000c13d00000001020000390000000101000031000006130000013d000003da0010009c000004290000613d000003db0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d000000c001000039000000400010043f0000001902000039000000800020043f0000040e02000041000004490000013d000003be0010009c000004410000613d000003bf0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a0000040202200197000000000021041b000000000100001900000df70001042e000003cd0010009c000004520000613d000003ce0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a0000040602200197000000000021041b000000000100001900000df70001042e000003b00010009c000004770000613d000003b10010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000601000039000002f20000013d000003d40010009c000004870000613d000003d50010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000040c01000041000000800010043f000003e50100004100000df70001042e000000000006004b0000000001000019000002290000613d000002400100043d0000000302600210000004110220027f0000041102200167000000000121016f0000000102600210000000000121019f000004ac0000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f4001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f3001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000700000001001d000600200000003d000080050100003900000044030000390000000004000415000000070440008a000002870000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f6001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000a01000039000003de0000013d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000003860010009c000005e70000213d0000002402400370000000000202043b000300000002001d000003860020009c000005e70000213d000000000010043f0000000101000039000000200010043f000000400200003900000000010000190df60db90000040f0000000302000029000000000020043f000000200010043f00000000010000190000004002000039000003dd0000013d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000201043b000003860020009c000005e70000213d0000002401400370000000000301043b00000000010004110df608890000040f000003c80000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000d00000001001d000c00000000003d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000003ea020000410df60dce0000040f000002f30000013d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000701000039000000000101041a000003f600100198000005050000c13d0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000300000001001d000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f0000000100200190000005040000613d000000000101043b000100000001001d000000400300043d000000840130003900000000020004110000000000210435000000240130003900000003020000290000000000210435000003f801000041000000000013043500000004013000390000000002000410000000000021043500000064013000390000000000010435000200000003001d00000044013000390000000000010435000003f901000041000000000010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fa011001c70000800b020000390df60df10000040f0000000100200190000005040000613d000000000101043b0000000202000029000000a4022000390000000000120435000003ea01000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f0000000100200190000005040000613d000000000201043b00000000010004140000038604200197000000040040008c000006ba0000c13d0000000103000031000000600030008c00000060040000390000000004034019000007a10000013d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a0000038601100197000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000001201000039000000800010043f000003e50100004100000df70001042e000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c7000080100200003900020000000403530df60df10000040f000000020300035f0000000100200190000005e70000613d000000000101043b0000000302000029000000000020043f000000200010043f0000002401300370000000000101043b000200000001001d00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a0000000202000029000000000021001a000004fe0000413d0000000003210019000000000100041100000003020000290df608890000040f000000400100043d000000010200003900000000002104350000037f0010009c0000037f010080410000004001100210000003ed011001c700000df70001042e0000000001000416000000000001004b000005e70000c13d0000000801000039000003de0000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d000003e601000041000000800010043f0000000001000410000000840010043f00000000010004140000000302000029000000040020008c000005840000c13d0000000103000031000000200030008c00000020040000390000000004034019000005a90000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000b00000001001d000a01200000003d0000800501000039000000440300003900000000040004150000000b0440008a000004810000013d000000640030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000002401400370000000000101043b000200000001001d000003860010009c000005e70000213d0000004401400370000000000101043b000100000001001d0000000301000029000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000000002000411000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000004110010009c000006a90000613d000000010310006c000006a60000813d000000400100043d00000044021000390000040b03000041000000000032043500000024021000390000001d03000039000004de0000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000305000029000000000005004b000005c20000c13d000003a001000041000000800010043f0000002001000039000000840010043f0000000f01000039000000a40010043f000003ee01000041000000c40010043f000003ef0100004100000df800010430000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000201043b000003860020009c000005e70000213d0000002401400370000000000301043b00000000010004110df608e00000040f0000000101000039000000400200043d00000000001204350000037f0020009c0000037f020080410000004001200210000003ed011001c700000df70001042e000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000003860010009c000005e70000213d000000000010043f000000200000043f000000400200003900000000010000190df60db90000040f000000000101041a000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000000501000039000000000201041a00000386032001970000000005000411000000000053004b0000046e0000c13d0000038502200197000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d020000390000000303000039000003880400004100000000060000190df60dec0000040f00000001002001900000007e0000c13d000005e70000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000601043b000003860060009c000005e70000213d0000000501000039000000000201041a00000386032001970000000005000411000000000053004b0000046e0000c13d000000000006004b000005d90000c13d000003a001000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000003e101000041000000c40010043f000003e201000041000000e40010043f000003e30100004100000df8000104300000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a000003df02200197000003e0022001c7000000000021041b000000000100001900000df70001042e0000000001000416000000000001004b000005e70000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000760000c13d000000800010043f000000000005004b0000050f0000c13d0000041201200197000000a00010043f000000000004004b000000c001000039000000a001006039000005f40000013d0000000001000416000000000001004b000005e70000c13d000000c001000039000000400010043f0000001b02000039000000800020043f0000040302000041000000a00020043f00000080020000390df6084f0000040f000000c00110008a0000037f0010009c0000037f01008041000000600110021000000404011001c700000df70001042e000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b0000000502000039000000000202041a00000386022001970000000003000411000000000032004b0000046e0000c13d0000000202000039000000000202041a000004080320012a000000000031004b000005140000813d000003a001000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000040a01000041000000c40010043f000003ef0100004100000df800010430000003a001000041000000800010043f0000002001000039000000840010043f000000a40010043f0000040701000041000000c40010043f000003ef0100004100000df8000104300000000001000416000000000001004b000005e70000c13d0000000001000412000500000001001d000401400000003d000080050100003900000044030000390000000004000415000000050440008a0000000504400210000003ea020000410df60dce0000040f000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a0000040d001001980000000001000039000000010100c039000000800010043f000003e50100004100000df70001042e000000010320008a000000050330027000000000043100190000002003000039000000010440003900000220053000390000000005050433000000000051041b00000020033000390000000101100039000000000041004b000004970000c13d000000000062004b000004a80000813d0000000302600210000000f80220018f000004110220027f000004110220016700000220033000390000000003030433000000000223016f000000000021041b000000010160021000000001011001bf00000005040000390000000405000039000000000015041b000000000104041a00000385021001970000000006000411000000000226019f000000000024041b000000000200041400000386051001970000037f0020009c0000037f02008041000000c00120021000000387011001c70000800d02000039000000030300003900000388040000410df60dec0000040f0000000100200190000005e70000613d0000000701000039000000000201041a0000000103000039000000c00030043f000000e00030043f000001000030043f0000000603000039000001200030043f000001400030043f0000000404000039000001600040043f0000000304000039000001800040043f000001a00040043f0000001004000039000001c00040043f000000000403041a000003850440019700000389044001c7000000000043041b0000038a022001970000038b022001c7000000000021041b0000000003000410000000000003004b000004e90000c13d000000400100043d00000044021000390000039f03000041000000000032043500000024021000390000001f030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df8000104300000000201000039000000000201041a0000038c0220009c000004fe0000813d000000000021041b000000000030043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000201041a0000038c0220009c0000000006000410000005210000413d0000040001000041000000000010043f0000001101000039000000040010043f000004010100004100000df800010430000000000001042f000003a001000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000003f701000041000000c40010043f000003ef0100004100000df800010430000000000030043f000000020020008c000005e90000813d000000a001000039000005f40000013d000000c80220011a000000000021004b000006050000a13d000003a001000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000040901000041000000c40010043f000003ef0100004100000df800010430000000000021041b0000038f01000041000000400200043d00000000001204350000037f0020009c0000037f02008041000000400120021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d020000390000000303000039000003900400004100000000050000190df60dec0000040f0000000100200190000005e70000613d00000391010000410000000802000039000000000012041b00000392010000410000000902000039000000000012041b00000393010000410000000a02000039000000000012041b0000039401000041000000800010043f0000000001000410000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000039402000041000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000010200008a000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d0200003900000003030000390000039504000041000000000500041000000394060000410df60dec0000040f0000000100200190000005e70000613d000000800200043d000000400300043d0000039601000041000300000003001d000000000013043500000000010004140000038602200197000000040020008c000006c70000c13d0000000104000031000000200040008c0000002004008039000006f10000013d0000037f0010009c0000037f01008041000000c001100210000000000003004b0000060b0000c13d00000000020400190000060e0000013d0000037f0010009c0000037f01008041000000c001100210000003e7011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a000039000005980000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000005940000c13d000000000006004b000005a50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000006450000613d0000001f01400039000000600110018f00000080021001bf000200000002001d000000400020043f000000200030008c000005e70000413d000000a40210003900000084031001bf000000800400043d000000000004004b000006630000c13d000003a004000041000000020500002900000000004504350000002004000039000000000043043500000009030000390000000000320435000000c401100039000003e90200004100000000002104350000004001500210000003a1011001c700000df8000104300000000601000039000000000201041a000000800000043f00000000010004140000037f0010009c0000037f01008041000000c001100210000003eb011001c7000200000002001d00000386062001970000800d020000390000000303000039000003ec040000410df60dec0000040f0000000100200190000005e70000613d0000000201000029000003850110019700000003011001af0000000602000039000000000012041b000000000100001900000df70001042e0000038502200197000000000262019f000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d02000039000000030300003900000388040000410df60dec0000040f00000001002001900000007e0000c13d000000000100001900000df8000104300000040f0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000005eb0000413d000000c001300039000000800210008a00000080010000390df608640000040f000000400100043d000300000001001d00000080020000390df6084f0000040f000000030200002900000000012100490000037f0010009c0000037f0100804100000060011002100000037f0020009c0000037f020080410000004002200210000000000121019f00000df70001042e0000000802000039000000000012041b0000000101000039000000800010043f000003e50100004100000df70001042e00000387011001c7000080090200003900000000050000190df60dec0000040f000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b0000061e0000c13d00000001002001900000007e0000c13d000000400100043d0000004402100039000003de03000041000000000032043500000024021000390000000f03000039000004de0000013d0000001f0410003900000410044001970000003f044000390000041005400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000003990050009c000000a10000213d0000000100600190000000a10000c13d000000400050043f000000000614043600000410031001980000001f0410018f00000000013600190000000305000367000006370000613d000000000705034f000000007807043c0000000006860436000000000016004b000006330000c13d000000000004004b000006150000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000006150000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000064c0000c13d000000000005004b0000065d0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000037f0020009c0000037f020080410000004002200210000000000112019f00000df800010430000003e80500004100000002060000290000000000560435000000000506001900000000060004110000000000630435000000000042043500000000030004140000000302000029000000040020008c000006710000c13d0000000001150019000000400010043f0000069e0000013d0000037f0030009c0000037f03008041000000c0013002100000004003500210000000000131019f0000039c011001c70df60dec0000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000006870000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000006830000c13d000000000006004b000006940000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000006ae0000613d0000001f01400039000000600110018f0000000201100029000000400010043f000000200030008c000005e70000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b0000007e0000613d000005e70000013d000000030100002900000000020004110df608890000040f0000000301000029000000020200002900000001030000290df608e00000040f000003300000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006b50000c13d000006500000013d00000002020000290000037f0020009c0000037f0200804100000040022002100000037f0010009c0000037f01008041000000c001100210000000000121019f000000010000006b0000077c0000c13d000003fd011001c70000000002040019000007800000013d00000003030000290000037f0030009c0000037f0300804100000040033002100000037f0010009c0000037f01008041000000c001100210000000000131019f00000397011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000006e00000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000006dc0000c13d000000000006004b000006ed0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000007c10000613d0000001f01400039000000600110018f0000000303100029000000000013004b00000000020000390000000102004039000200000003001d000003990030009c000000a10000213d0000000100200190000000a10000c13d0000000202000029000000400020043f000000200040008c000005e70000413d00000003020000290000000002020433000300000002001d000003860020009c000005e70000213d000000800200043d0000039a030000410000000204000029000000000034043500000000030004140000038602200197000000040020008c000007cd0000c13d0000000202100029000100000002001d000003990020009c000000a10000213d0000000102000029000000400020043f00000002020000290000000002020433000003860020009c000005e70000213d0000000104000029000000240340003900000000002304350000039b02000041000000000024043500000004024000390000000003000410000000000032043500000000020004140000000303000029000000040030008c0000080e0000c13d0000000101100029000003990010009c000000a10000213d000000400010043f00000001010000290000000001010433000300000001001d000003860010009c000005e70000213d0000000301000029000000a00010043f000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000201041a000004120220019700000001022001bf000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d02000039000000030300003900000001060000390000039d0400004100000003050000290df60dec0000040f0000000100200190000005e70000613d000000800100043d00000140000004430000016000100443000000a00200043d00000020010000390000018000100443000001a000200443000000c00200043d0000004003000039000001c000300443000001e0002004430000006002000039000000e00300043d000002000020044300000220003004430000008002000039000001000300043d00000240002004430000026000300443000000a002000039000001200300043d0000028000200443000002a000300443000000c002000039000001400300043d000002c000200443000002e000300443000000e002000039000001600300043d000003000020044300000320003004430000010002000039000001800300043d000003400020044300000360003004430000012002000039000001a00300043d0000038000200443000003a0003004430000014002000039000001c00300043d000003c000200443000003e00030044300000100001004430000000b0100003900000120001004430000039e0100004100000df70001042e000003fc011001c70000800902000039000000010300002900000000050000190df60dec0000040f00000060031002700000037f03300197000000600030008c000000600400003900000000040340190000001f0640018f00000060074001900000000205700029000007900000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b0000078c0000c13d000000000006004b0000079d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000007b50000613d0000001f01400039000000e00210018f0000000201200029000000000021004b00000000020000390000000102004039000003990010009c000000a10000213d0000000100200190000000a10000c13d000000400010043f000000600030008c000005e70000413d0000000702000039000000000102041a000003fe01100197000003ff011001c7000000000012041b000000000100001900000df70001042e0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007bc0000c13d000006500000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007c80000c13d000006500000013d00000002010000290000037f0010009c0000037f0100804100000040011002100000037f0030009c0000037f03008041000000c003300210000000000113019f00000397011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000007e60000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000007e20000c13d000000000006004b000007f30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000008020000613d0000001f01400039000000600110018f0000000202100029000100000002001d000003990020009c000000a10000213d0000000102000029000000400020043f000000200030008c000005e70000413d000007130000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008090000c13d000006500000013d0000000101000029000100000001001d0000037f0010009c0000037f0100804100000040011002100000037f0020009c0000037f02008041000000c002200210000000000112019f0000039c011001c700000003020000290df60dec0000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000105700029000008290000613d000000000801034f0000000109000029000000008a08043c0000000009a90436000000000059004b000008250000c13d000000000006004b000008360000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000008430000613d0000001f01400039000000600110018f0000000101100029000003990010009c000000a10000213d000000400010043f000000200030008c000005e70000413d000007270000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000084a0000c13d000006500000013d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b0000085e0000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000008570000413d000000000321001900000000000304350000001f0220003900000410022001970000000001210019000000000001042d0000001f0220003900000410022001970000000001120019000000000021004b00000000020000390000000102004039000003990010009c000008700000213d0000000100200190000008700000c13d000000400010043f000000000001042d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df800010430000000000001004b000008790000613d000000000001042d000000400100043d000000440210003900000407030000410000000000320435000003a0020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df80001043000030000000000020000038601100198000008c20000613d000200000003001d000303860020019c000008cc0000613d000100000001001d000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f00000001002001900000000303000029000008c00000613d000000000101043b000000000030043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f00000003060000290000000100200190000008c00000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d020000390000000303000039000003950400004100000001050000290df60dec0000040f0000000100200190000008c00000613d000000000001042d000000000100001900000df800010430000000400100043d00000064021000390000041503000041000000000032043500000044021000390000041603000041000000000032043500000024021000390000002403000039000008d50000013d000000400100043d000000640210003900000413030000410000000000320435000000440210003900000414030000410000000000320435000000240210003900000022030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000a000000000002000a03860010019c00000d1e0000613d000003860620019800000d280000613d000000000003004b000009820000613d0000000701000039000000000801041a000003f600800198000008f00000c13d0000000501000039000000000101041a00000386011001970000000a0010006b000009e10000c13d000800000003001d000003f400800198000900000006001d000700000008001d000009310000613d0000000a01000029000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff00100190000000050100003900000009020000290000090c0000613d000000000101041a0000038601100197000000000012004b000009ab0000c13d000000000020043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d0000000502000039000000000202041a0000038602200197000000000101043b000000000101041a000000ff001001900000092d0000613d0000000a0020006b0000092d0000613d00000000010004100000000a03000029000000000013004b000000000100003900000001010060390000dead0030008c0000092d0000613d00000001001001900000092d0000c13d0000000601000039000000000101041a00000386011001970000000a0010006b00000ac50000c13d0000000906000029000000000026004b0000000708000029000009940000c13d0000040d00800198000009600000613d0000041a00800198000009600000c13d0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d0000000802000039000000000202041a000000000101043b000000000101041a000000000021004b0000000906000029000009600000413d0000000a01000029000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000009060000290000000705000029000009600000c13d0000000501000039000000000101041a00000386011001970000000a0010006b00000ada0000c13d0000000701000039000000000101041a000004050010019800000a800000613d0000041a0010019800000a800000c13d000700000001001d000000000060043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000a0b0000613d000003ea010000410000000000100443000000000100041200000004001004430000000701000029000003f30010019800000a220000613d00000140010000390000002400100443000000000100041400000a250000013d000000200000043f000000000060043f000000400100043d00000000000104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000ac10000013d0000000001000410000000000016004b000000000100003900000001010060390000dead0060008c000009310000613d0000000100100190000009310000c13d0000000601000039000000000101041a0000038601100197000000000016004b000009310000613d0000040c0060009c000009310000613d0000000701000039000000000101041a0000038601100197000000000016004b000009310000613d000000200000043f0000000001000414000009c60000013d0000000001000410000000000012004b000000000100003900000001010060390000dead0020008c0000090c0000613d00000001001001900000090c0000c13d0000000601000039000000000101041a0000038601100197000000000012004b0000090c0000613d0000040c0020009c0000090c0000613d0000000701000039000000000101041a0000038601100197000000000012004b0000090c0000613d0000000901000039000000000101041a000000080010006c00000ad30000413d000000000020043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a0000000802000029000000000021001a00000d4e0000413d00000000012100190000000a02000039000000000202041a000000000021004b00000009060000290000000708000029000009310000a13d000000400100043d0000004402100039000004190300004100000000003204350000002402100039000000130300003900000d2e0000013d00000000020004100000000a04000029000000000024004b000000000500003900000001050060390000dead0040008c000008f00000613d0000000100500190000008f00000c13d0000000604000039000000000404041a00000386074001970000000a0070006b000008f00000613d0000000a040000290000040c0040009c000008f00000613d00000386048001970000000a0040006b000008f00000613d000000000016004b000008f00000613d000000000026004b000000000100003900000001010060390000dead0060008c000008f00000613d0000000100100190000008f00000c13d000000000076004b000008f00000613d0000040c0060009c000008f00000613d000000000046004b000008f00000613d000000400100043d0000004402100039000004170300004100000000003204350000002402100039000000100300003900000d2e0000013d0000000a01000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000a800000613d000003ea0100004100000000001004430000000001000412000000040010044300000100010000390000002400100443000000000100041400000a250000013d0000012001000039000000240010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f000000010020019000000d4d0000613d000000000101043b00000008011000b9000000640010008c00000a800000413d000600000001001d0000000001000410000703860010019c00000d540000613d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d00000006020000290006006400200122000000000101043b000000000101041a000000060110006c000500000001001d00000d390000413d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000502000029000000000021041b0000000701000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000201041a0000000603000029000000000032001a00000d4e0000413d0000000002320019000000000021041b000000400100043d00000000003104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000007060000290df60dec0000040f000000010020019000000d1c0000613d0000000602000029000000080120006b00000d4e0000413d000800000001001d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000700080010007400000d390000413d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000702000029000000000021041b0000000901000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000201041a0000000803000029000000000032001a00000d4e0000413d0000000002320019000000000021041b000000400100043d00000000003104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000009060000290df60dec0000040f000000010020019000000d1c0000613d000000000001042d0000000a010000290000040c0010009c0000092d0000613d0000000701000039000000000101041a00000386011001970000000a0010006b0000092d0000613d0000000901000039000000000101041a000000080010006c00000009060000290000000708000029000009310000813d000000400100043d00000044021000390000041803000041000000000032043500000024021000390000000f0300003900000d2e0000013d0000000a030000290000000002000410000000000023004b000000000200003900000001020060390000dead0030008c000009600000613d0000000100200190000009600000c13d0000000602000039000000000202041a00000386022001970000000a0020006b000009600000613d0000000a030000290000040c0030009c000009600000613d0000000703000039000000000303041a00000386033001970000000a0030006b000009600000613d000000000016004b000009600000613d0000000001000410000000000016004b000000000100003900000001010060390000dead0060008c000009600000613d0000000100100190000009600000c13d000000000026004b000009600000613d0000040c0060009c000009600000613d000000000036004b000009600000613d0000041b015001970000041c011001c70000000702000039000000000012041b0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000401041a000000000004004b00000d160000613d0000000b01000039000000000101041a0000000c02000039000000000202041a000000000012001a00000d4e0000413d00000000011200190000000d02000039000000000202041a000000000012001a00000d4e0000413d000000000312001a00000d160000613d0000000801000039000000000201041a00000014012000c9000000000002004b00000b290000613d00000000022100d9000000140020008c00000d4e0000c13d000300000003001d000000000014004b0000000004018019000500000004001d000000400300043d0000041d0030009c00000d5e0000813d0000006001300039000000400010043f0000000202000039000600000003001d0000000005230436000000000200003100000002022003670000000003050019000000002402043c0000000003430436000000000013004b00000b380000c13d0000000001000410000200000005001d0000000000150435000003ea01000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f000000010020019000000d4d0000613d000000000201043b000000400500043d0000039a01000041000000000015043500000000010004140000038602200197000000040020008c000700000002001d00000b5b0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000b870000013d0000037f0050009c0000037f03000041000000000305401900000040033002100000037f0010009c0000037f01008041000000c001100210000000000131019f00000397011001c7000400000005001d0df60df10000040f000000040900002900000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000000579001900000b750000613d000000000801034f000000008a08043c0000000009a90436000000000059004b00000b710000c13d000000000006004b00000b820000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000d7e0000613d00000004050000290000001f01400039000000600210018f0000000001520019000000000021004b00000000020000390000000102004039000003990010009c00000d5e0000213d000000010020019000000d5e0000c13d000000400010043f000000200030008c00000d1c0000413d00000000010504330000041e0010009c00000d1c0000813d00000006030000290000000002030433000000020020008c00000d640000413d0000004002300039000000000012043500000000010004100000038602100198000000070100002900000d6a0000613d000000000001004b00000d740000613d000400000002001d000000000020043f0000000101000039000100000001001d000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000702000029000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000502000029000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d0200003900000003030000390000039504000041000000040500002900000007060000290df60dec0000040f000000010020019000000d1c0000613d0000041f0100004100000000001004430000000701000029000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c700008002020000390df60df10000040f000000010020019000000d4d0000613d000000000101043b000000000001004b00000d1c0000613d000000400500043d0000004401500039000000a0020000390000000000210435000004200100004100000000001504350000000401500039000000050200002900000000002104350000002401500039000000000001043500000006010000290000000001010433000000a4025000390000000000120435000000c406500039000000000001004b00000bfe0000613d000000000200001900000002040000290000000043040434000003860330019700000000063604360000000102200039000000000012004b00000bf80000413d000600000006001d000000640150003900000000020004100000000000210435000003f901000041000000000010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fa011001c70000800b02000039000400000005001d0df60df10000040f000000010020019000000d4d0000613d000000000101043b00000004050000290000008402500039000000000012043500000000010004140000000702000029000000040020008c00000c2a0000613d00000006035000690000037f0030009c0000037f0300804100000060043002100000037f0050009c0000037f0300004100000000030540190000004003300210000000000334019f0000037f0010009c0000037f01008041000000c001100210000000000131019f0df60dec0000040f000000040500002900000060031002700001037f0030019d0003000000010355000000010020019000000d8a0000613d000003990050009c00000d5e0000213d000000400050043f000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f000000010020019000000d4d0000613d000000000201043b000000000002004b000000030500002900000d160000613d0000000b01000039000000000301041a00000000012300a900000000042100d9000000000034004b00000d4e0000c13d0000000c03000039000000000303041a00000000062300a900000000042600d9000000000034004b00000d4e0000c13d00000000035100d9000000000432004b00000d4e0000413d00070000005600e1000000070240006c000500000002001d00000d4e0000413d000600000004001d000000000015004b00000c950000213d000400000006001d0000000601000039000000000201041a00000000010004140000038604200197000000040040008c00000c5d0000c13d000000010100003100000c690000013d0000037f0010009c0000037f01008041000000c00110021000000387011001c7000080090200003900000000050000190df60dec0000040f0001000100200193000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b00000c910000613d0000001f0310003900000410033001970000003f033000390000041004300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000003990040009c00000d5e0000213d000000010050019000000d5e0000c13d000000400040043f000000000513043600000410021001980000001f0310018f0000000001250019000000030400036700000c840000613d000000000604034f000000006706043c0000000005750436000000000015004b00000c800000c13d000000000003004b00000c910000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000000010000006b0000000305000029000000040600002900000da90000613d000000000065004b00000cd70000213d0000000701000039000000000201041a00000000010004140000038604200197000000040040008c00000ca00000c13d0000000102000039000000010100003100000cad0000013d0000037f0010009c0000037f01008041000000c00110021000000387011001c70000800902000039000000070300002900000000050000190df60dec0000040f000000010220018f000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b00000cd50000613d0000001f0410003900000410044001970000003f044000390000041005400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000003990050009c00000d5e0000213d000000010060019000000d5e0000c13d000000400050043f000000000614043600000410031001980000001f0410018f0000000001360019000000030500036700000cc80000613d000000000705034f000000007807043c0000000006860436000000000016004b00000cc40000c13d000000000004004b00000cd50000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000000002004b00000dad0000613d0000000702000029000000060020006b00000d100000613d00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c7000080090200003900000005030000290000040c0400004100000000050000190df60dec0000040f000300000001035500000060031002700001037f0030019d0000037f0330019800000d0e0000613d0000001f0430003900000423044001970000003f044000390000042404400197000000400500043d0000000004450019000000000054004b00000000060000390000000106004039000003990040009c00000d5e0000213d000000010060019000000d5e0000c13d000000400040043f0000001f0430018f00000000063504360000039805300198000000000356001900000d010000613d000000000701034f000000007807043c0000000006860436000000000036004b00000cfd0000c13d000000000004004b00000d0e0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000db10000613d0000000b01000039000000000001041b0000000c01000039000000000001041b0000000d01000039000000000001041b0000000702000039000000000102041a0000041b01100197000000000012041b0000000906000029000009600000013d000000000100001900000df800010430000000400100043d00000064021000390000042b03000041000000000032043500000044021000390000042c0300004100000000003204350000002402100039000000210300003900000d420000013d000000400100043d00000044021000390000042a03000041000000000032043500000024021000390000001f030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df800010430000000400100043d000000640210003900000428030000410000000000320435000000440210003900000429030000410000000000320435000000240210003900000026030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000000000001042f0000040001000041000000000010043f0000001101000039000000040010043f000004010100004100000df800010430000000400100043d0000006402100039000004260300004100000000003204350000004402100039000004270300004100000000003204350000002402100039000000230300003900000d420000013d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df8000104300000040001000041000000000010043f0000003201000039000000040010043f000004010100004100000df800010430000000400100043d0000006402100039000004150300004100000000003204350000004402100039000004160300004100000000003204350000002402100039000000240300003900000d420000013d000000400100043d0000006402100039000004130300004100000000003204350000004402100039000004140300004100000000003204350000002402100039000000220300003900000d420000013d0000001f0530018f0000039806300198000000400200043d000000000462001900000d960000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d850000c13d00000d960000013d0000037f033001970000001f0530018f0000039806300198000000400200043d000000000462001900000d960000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d920000c13d000000000005004b00000da30000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000037f0020009c0000037f020080410000004002200210000000000112019f00000df800010430000000400100043d0000004402100039000004210300004100000db40000013d000000400100043d0000004402100039000004220300004100000db40000013d000000400100043d0000004402100039000004250300004100000000003204350000002402100039000000190300003900000d2e0000013d000000000001042f0000037f0010009c0000037f0100804100000040011002100000037f0020009c0000037f020080410000006002200210000000000112019f00000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000387011001c700008010020000390df60df10000040f000000010020019000000dcc0000613d000000000101043b000000000001042d000000000100001900000df80001043000000000050100190000000000200443000000050030008c00000ddc0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b00000dd40000413d0000037f0030009c0000037f03008041000000600130021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f0000042d011001c700000000020500190df60df10000040f000000010020019000000deb0000613d000000000101043b000000000001042d000000000001042f00000def002104210000000102000039000000000001042d0000000002000019000000000001042d00000df4002104230000000102000039000000000001042d0000000002000019000000000001042d00000df60000043200000df70001042e00000df80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff416273747261637420414c504841000000000000000000000000000000000000414c5048410000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000000000000000000001f9aa613658ddb40910bdcad1e235fc1d98e7f17ffffffffffffff000000ffff00000000000000000000000000000000000000000000000000000001010100009de74ab6116cf298c99c934292ba64b5e064d44dffffffffffffffffffffffffffffffffffffffffffad482d2337f32d1c0000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffad482d2337f32d1bffffff00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000000000000000000000000a968163f0a57b40000000000000000000000000000000000000000000000000d3c21bcecceda10000000000000000000000000000000000000000000000000422ca8b0a00a425000000000000000000000000000000ad1eca41e6f772be3cb5a48a6141f9bcc1af9f7c8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925c45a015500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffffad5c464800000000000000000000000000000000000000000000000000000000c9c65396000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000ffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab000000020000000000000000000000000000030000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000076a2262200000000000000000000000000000000000000000000000000000000ab3f39a700000000000000000000000000000000000000000000000000000000d8066a8500000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f32383e900000000000000000000000000000000000000000000000000000000f5648a4f00000000000000000000000000000000000000000000000000000000d8066a8600000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000eab15e4300000000000000000000000000000000000000000000000000000000c95714e200000000000000000000000000000000000000000000000000000000c95714e300000000000000000000000000000000000000000000000000000000cb96372800000000000000000000000000000000000000000000000000000000d2dc0fd700000000000000000000000000000000000000000000000000000000ab3f39a800000000000000000000000000000000000000000000000000000000c757483900000000000000000000000000000000000000000000000000000000a077b29700000000000000000000000000000000000000000000000000000000a6ce120900000000000000000000000000000000000000000000000000000000a6ce120a00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000aacebbe300000000000000000000000000000000000000000000000000000000a077b29800000000000000000000000000000000000000000000000000000000a0b0e4b800000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008a8c523b000000000000000000000000000000000000000000000000000000008a8c523c000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000076a22623000000000000000000000000000000000000000000000000000000007b311a0d000000000000000000000000000000000000000000000000000000002e8210ac0000000000000000000000000000000000000000000000000000000049bd5a5d0000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000075f0a8740000000000000000000000000000000000000000000000000000000049bd5a5e0000000000000000000000000000000000000000000000000000000054840c6e000000000000000000000000000000000000000000000000000000006b195db300000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000046469afb000000000000000000000000000000000000000000000000000000002e8210ad000000000000000000000000000000000000000000000000000000002f5f2572000000000000000000000000000000000000000000000000000000001857aead000000000000000000000000000000000000000000000000000000001bff7897000000000000000000000000000000000000000000000000000000001bff78980000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000027c8f835000000000000000000000000000000000000000000000000000000001857aeae00000000000000000000000000000000000000000000000000000000185870f900000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000001694505e0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000079219d59cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65640000000000000000000000000000000000ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff00000000000000010100000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000a9059cbb000000000000000000000000000000000000000000000000000000004e6f20746f6b656e730000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e020000000000000000000000000000000000002000000080000000000000000023da297b7b4ada8bc00cbea5a89072d204b631fafb384876278fd613292d3bff0000000000000000000000000000000000000020000000000000000000000000496e76616c6964206164647265737300000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77000000000000000000000000000000000000008400000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0000000000000000000000ff000000000000000000000000000000000000000054726164696e6720616c726561647920656e61626c6564000000000000000000f305d71900000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000200000000000000000000000000000004000000000000000000000000020000020000000000000000000000000000004400000000000000000000000002000000000000000000000000000000000000c400000000000000000000000000000000000000000000000000000000000000c4000000000000000000000000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000010100000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff68747470733a2f2f6170702e756e69737761702e6f722f7377617000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000ff0000000000000000000000000000000000000000000000ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000000000000000000000000186a05377617020616d6f756e7420746f6f20686967680000000000000000000000005377617020616d6f756e7420746f6f206c6f770000000000000000000000000045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000000000000000000000000000fd93f9d518286066241539396234348445d10f4400000000000000000000ff00000000000000000000000000000000000000000068747470733a2f2f4162737472616374414c5048412e78797a00000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646454726164696e672064697361626c6564000000000000000000000000000000004d617820747820657863656564656400000000000000000000000000000000004d61782077616c6c657420657863656564656400000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000100000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83791ac94700000000000000000000000000000000000000000000000000000000436f6d6d756e697479207472616e73666572206661696c6564000000000000004d61726b6574696e67207472616e73666572206661696c65640000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe0446576656c6f706572207472616e73666572206661696c656400000000000000657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e742065786365656473206245524332303a207472616e7366657220746f207a65726f206164647265737300730000000000000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d207a65726f206164647265730200000200000000000000000000000000000000000000000000000000000000d5376c747be15ee2a6d460d6350c0848f672d77571843a45f56f9ba48b561427

[ 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.