ETH Price: $2,111.57 (+4.28%)

Token

Althereum (ALTH)
 

Overview

Max Total Supply

3,500,000,000 ALTH

Holders

1,168 (0.00%)

Transfers

-
2 ( -33.33%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

OVERVIEW

Althereum: Advanced meme token trading platform with multi-chain support. Features bonding curve mechanics, real-time trading, social chat system, gamified points & achievements, creator tools, and enterprise-grade infrastructure. Production-ready social trading ecosystem for creators.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Althereum

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Althereum.sol
// SPDX-License-Identifier: Unlicensed
// https://althereum.com
// https://x.com/althereumdotcom
// https://t.me/althereum

pragma solidity 0.8.17;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

contract Althereum is ERC20, Ownable {
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    address public operationsWallet;
    uint256 public swapTokensAtAmount;

    // Gas Optimization: Pack booleans into single storage slot
    struct Settings {
        bool limitsInEffect;
        bool tradingActive;
        bool swapEnabled;
        bool lpBurnEnabled;
        uint8 operationsFee;  // 0-5%, fits in uint8
        uint8 percentForLPBurn;  // 0-100 (represents 0-10%), fits in uint8
    }
    Settings public settings;

    // LP Burn timing
    uint256 public lpBurnFrequency = 7200 seconds;
    uint256 public lastLpBurnTime;

    // Fee constants
    uint256 private constant MAX_FEE = 5; // Maximum 5%
    uint256 private constant FEE_DENOMINATOR = 100;

    uint256 public tokensForOperations;
    uint256 private launchedAt;

    // Reentrancy protection
    bool private _inSwap;
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }

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

    // Comprehensive Events
    event TradingEnabled(uint256 timestamp, uint256 blockNumber);
    event LimitsRemoved(uint256 timestamp);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event OperationsWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event OperationsFeeUpdated(uint256 newFee, uint256 oldFee);
    event SwapTokensAtAmountUpdated(uint256 newAmount, uint256 oldAmount);
    event SwapEnabledUpdated(bool enabled);
    event LPBurnSettingsUpdated(uint256 frequency, uint256 percent, bool enabled);
    event AutoNukeLP(uint256 amountBurned, uint256 timestamp);
    event FeeCollected(
        address indexed from,
        address indexed to, 
        uint256 amount,
        uint256 feeAmount,
        string feeType
    );

    constructor() ERC20("Althereum", "ALTH") {
        // Step 1: Basic router setup
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        // Verify router exists
        require(address(_uniswapV2Router) != address(0), "Router address is zero");
        
        uniswapV2Router = _uniswapV2Router;
        
        // Step 2: Get factory (this might fail if router doesn't exist)
        address factory = _uniswapV2Router.factory();
        require(factory != address(0), "Factory address is zero");
        
        // Step 3: Get WETH (this might fail)
        address weth = _uniswapV2Router.WETH();
        require(weth != address(0), "WETH address is zero");
        
        // Step 4: Create pair (this is the most likely failure point)
        uniswapV2Pair = IUniswapV2Factory(factory).createPair(address(this), weth);
        require(uniswapV2Pair != address(0), "Pair creation failed");
        
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        uint256 totalSupply = 3_500_000_000 * 1e18;
        swapTokensAtAmount = totalSupply / 2000; // 0.05%

        operationsWallet = 0x06180bf836E533b7F3D4a2d8B99A96d982024200;

        // Initialize settings struct (gas optimized)
        settings = Settings({
            limitsInEffect: true,
            tradingActive: false,
            swapEnabled: false,
            lpBurnEnabled: true,
            operationsFee: 5,
            percentForLPBurn: 25  // 0.25%
        });

        // Exclude from fees
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[0x000000000000000000000000000000000000dEaD] = true;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        settings.tradingActive = true;
        settings.swapEnabled = true;
        launchedAt = block.number;
        lastLpBurnTime = block.timestamp;
        emit TradingEnabled(block.timestamp, block.number);
    }

    function removeLimits() external onlyOwner {
        settings.limitsInEffect = false;
        emit LimitsRemoved(block.timestamp);
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount >= totalSupply() / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= totalSupply() / 200, "Swap amount cannot be higher than 0.5% total supply.");
        uint256 oldAmount = swapTokensAtAmount;
        swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountUpdated(newAmount, oldAmount);
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        settings.swapEnabled = enabled;
        emit SwapEnabledUpdated(enabled);
    }

    function updateOperationsFee(uint256 newFee) external onlyOwner {
        require(newFee <= MAX_FEE, "Fee cannot exceed 5%");
        uint256 oldFee = settings.operationsFee;
        settings.operationsFee = uint8(newFee);
        emit OperationsFeeUpdated(newFee, oldFee);
    }

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

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateOperationsWallet(address newOperationsWallet) external onlyOwner {
        require(newOperationsWallet != address(0), "Operations wallet cannot be zero address");
        emit OperationsWalletUpdated(newOperationsWallet, operationsWallet);
        operationsWallet = newOperationsWallet;
    }

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

    // Gas optimized getters for packed struct
    function limitsInEffect() external view returns (bool) {
        return settings.limitsInEffect;
    }

    function tradingActive() external view returns (bool) {
        return settings.tradingActive;
    }

    function swapEnabled() external view returns (bool) {
        return settings.swapEnabled;
    }

    function lpBurnEnabled() external view returns (bool) {
        return settings.lpBurnEnabled;
    }

    function operationsFee() external view returns (uint256) {
        return settings.operationsFee;
    }

    function percentForLPBurn() external view returns (uint256) {
        return settings.percentForLPBurn;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        // Gas Optimization: Cache settings in memory
        Settings memory cachedSettings = settings;
        address contractOwner = owner();

        if (cachedSettings.limitsInEffect) {
            if (from != contractOwner && to != contractOwner && !swapping) {
                if (!cachedSettings.tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }
            }
        }

        // Check if we should swap
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        // Auto LP Burn on sells
        if(!swapping && !_inSwap && automatedMarketMakerPairs[to] && cachedSettings.lpBurnEnabled && 
           block.timestamp >= lastLpBurnTime + lpBurnFrequency && !_isExcludedFromFees[from]) {
            autoBurnLiquidityPairTokens();
        }

        // Determine if we should take fees
        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee && cachedSettings.operationsFee > 0) {
            // Only take fees on buys/sells, not wallet transfers
            if (automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from]) {
                fees = (amount * cachedSettings.operationsFee) / FEE_DENOMINATOR;
                tokensForOperations += fees;
                
                if (fees > 0) {
                    super._transfer(from, address(this), fees);
                    
                    // Emit fee collection event
                    string memory feeType = automatedMarketMakerPairs[to] ? "sell" : "buy";
                    emit FeeCollected(from, to, amount, fees, feeType);
                }
                amount -= fees;
            }
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private lockTheSwap {
        uint256 contractBalance = balanceOf(address(this));
        
        if (contractBalance == 0) return;

        // Limit swap amount to prevent large price impact
        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        
        uint256 ethBalance = address(this).balance - initialETHBalance;
        tokensForOperations = 0;

        if (ethBalance > 0) {
            (bool success,) = operationsWallet.call{value: ethBalance}("");
            require(success, "ETH transfer failed");
            
            // Emit comprehensive swap event
            emit SwapAndLiquify(contractBalance, ethBalance, 0);
        }
    }

    // LP Burning Functions - Improved with better validation and events
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "Cannot set burn more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        settings.percentForLPBurn = uint8(_percent / 10); // Convert to 0-100 scale
        settings.lpBurnEnabled = _Enabled;
        emit LPBurnSettingsUpdated(_frequencyInSeconds, _percent, _Enabled);
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        uint256 liquidityPairBalance = balanceOf(uniswapV2Pair);

        // Use same calculation as legacy contract for 0.25%
        uint256 amountToBurn = (liquidityPairBalance * settings.percentForLPBurn) / 10000;

        if (amountToBurn > 0) {
            // Burn tokens from LP - This increases token price by reducing supply
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
            
            // Sync the pair to update reserves
            IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
            pair.sync();
            
            emit AutoNukeLP(amountToBurn, block.timestamp);
        }
        
        return true;
    }

    // Emergency functions
    function withdrawStuckETH() external onlyOwner {
        (bool success,) = msg.sender.call{value: address(this).balance}("");
        require(success, "ETH transfer failed");
    }

    function withdrawStuckToken(address _token, address _to) external onlyOwner {
        require(_token != address(0), "Invalid token address");
        require(_to != address(0), "Invalid recipient address");
        require(_token != address(this), "Cannot withdraw own token");
        uint256 balance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(_to, balance);
    }
}

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

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"uint256","name":"amountBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount","type":"uint256"},{"indexed":false,"internalType":"string","name":"feeType","type":"string"}],"name":"FeeCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"frequency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"LPBurnSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"OperationsFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OperationsWalletUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settings","outputs":[{"internalType":"bool","name":"limitsInEffect","type":"bool"},{"internalType":"bool","name":"tradingActive","type":"bool"},{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"lpBurnEnabled","type":"bool"},{"internalType":"uint8","name":"operationsFee","type":"uint8"},{"internalType":"uint8","name":"percentForLPBurn","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"uint256","name":"newFee","type":"uint256"}],"name":"updateOperationsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052611c206009553480156200001757600080fd5b506040518060400160405280600981526020017f416c7468657265756d00000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f414c544800000000000000000000000000000000000000000000000000000000815250816003908162000095919062000c23565b508060049081620000a7919062000c23565b5050506000620000bc6200082760201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001dd9062000d6b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e919062000df7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000302576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f99062000e79565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000350573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000376919062000df7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620003ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e19062000eeb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200042792919062000f1e565b6020604051808303816000875af115801562000447573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046d919062000df7565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff1660a05173ffffffffffffffffffffffffffffffffffffffff160362000514576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200050b9062000f9b565b60405180910390fd5b6001600f600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006b0b4f21d42f59c0d52c00000090506107d0816200058f91906200101b565b6007819055507306180bf836e533b7f3d4a2d8b99a96d982024200600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060c00160405280600115158152602001600015158152602001600015158152602001600115158152602001600560ff168152602001601960ff16815250600860008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160000160026101000a81548160ff02191690831515021790555060608201518160000160036101000a81548160ff02191690831515021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff1602179055509050506001600e6000620007086200082f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200081d33826200085960201b60201c565b505050506200112e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c290620010a3565b60405180910390fd5b8060026000828254620008df9190620010c5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009369190620010c5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200099d919062001111565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a2b57607f821691505b60208210810362000a415762000a40620009e3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a6c565b62000ab7868362000a6c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b0462000afe62000af88462000acf565b62000ad9565b62000acf565b9050919050565b6000819050919050565b62000b208362000ae3565b62000b3862000b2f8262000b0b565b84845462000a79565b825550505050565b600090565b62000b4f62000b40565b62000b5c81848462000b15565b505050565b5b8181101562000b845762000b7860008262000b45565b60018101905062000b62565b5050565b601f82111562000bd35762000b9d8162000a47565b62000ba88462000a5c565b8101602085101562000bb8578190505b62000bd062000bc78562000a5c565b83018262000b61565b50505b505050565b600082821c905092915050565b600062000bf86000198460080262000bd8565b1980831691505092915050565b600062000c13838362000be5565b9150826002028217905092915050565b62000c2e82620009a9565b67ffffffffffffffff81111562000c4a5762000c49620009b4565b5b62000c56825462000a12565b62000c6382828562000b88565b600060209050601f83116001811462000c9b576000841562000c86578287015190505b62000c92858262000c05565b86555062000d02565b601f19841662000cab8662000a47565b60005b8281101562000cd55784890151825560018201915060208501945060208101905062000cae565b8683101562000cf5578489015162000cf1601f89168262000be5565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f526f757465722061646472657373206973207a65726f00000000000000000000600082015250565b600062000d5360168362000d0a565b915062000d608262000d1b565b602082019050919050565b6000602082019050818103600083015262000d868162000d44565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dbf8262000d92565b9050919050565b62000dd18162000db2565b811462000ddd57600080fd5b50565b60008151905062000df18162000dc6565b92915050565b60006020828403121562000e105762000e0f62000d8d565b5b600062000e208482850162000de0565b91505092915050565b7f466163746f72792061646472657373206973207a65726f000000000000000000600082015250565b600062000e6160178362000d0a565b915062000e6e8262000e29565b602082019050919050565b6000602082019050818103600083015262000e948162000e52565b9050919050565b7f574554482061646472657373206973207a65726f000000000000000000000000600082015250565b600062000ed360148362000d0a565b915062000ee08262000e9b565b602082019050919050565b6000602082019050818103600083015262000f068162000ec4565b9050919050565b62000f188162000db2565b82525050565b600060408201905062000f35600083018562000f0d565b62000f44602083018462000f0d565b9392505050565b7f50616972206372656174696f6e206661696c6564000000000000000000000000600082015250565b600062000f8360148362000d0a565b915062000f908262000f4b565b602082019050919050565b6000602082019050818103600083015262000fb68162000f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010288262000acf565b9150620010358362000acf565b92508262001048576200104762000fbd565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200108b601f8362000d0a565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b9050919050565b6000620010d28262000acf565b9150620010df8362000acf565b9250828201905080821115620010fa57620010f962000fec565b5b92915050565b6200110b8162000acf565b82525050565b600060208201905062001128600083018462001100565b92915050565b60805160a051614c636200118560003960008181610e330152818161168801528181613355015281816133bb01526133e7015260008181610a4d0152818161354b0152818161362c01526136530152614c636000f3fe60806040526004361061024a5760003560e01c80638a8c523c11610139578063bc205ad3116100b6578063e2f456051161007a578063e2f4560514610894578063f2fde38b146108bf578063f5648a4f146108e8578063f9de5aab146108ff578063fb002c9714610928578063fd72e22a1461095357610251565b8063bc205ad3146107ac578063c0246668146107d5578063d257b34f146107fe578063dd62ed3e14610827578063e06174e41461086457610251565b8063a457c2d7116100fd578063a457c2d71461069f578063a4c82a00146106dc578063a9059cbb14610707578063b62496f514610744578063bbc0c7421461078157610251565b80638a8c523c146105e05780638da5cb5b146105f7578063924de9b71461062257806395d89b411461064b5780639a7a23d61461067657610251565b8063313ce567116101c75780636ddd17131161018b5780636ddd17131461052157806370a082311461054c578063715018a614610589578063730c1888146105a0578063751039fc146105c957610251565b8063313ce56714610426578063395093511461045157806349bd5a5e1461048e5780634a62bb65146104b95780634fbee193146104e457610251565b8063199ffc721161020e578063199ffc721461033f57806323b872dd1461036a5780632c3e486c146103a75780632e82f1a0146103d257806330d5d18d146103fd57610251565b806306fdde0314610256578063090896be14610281578063095ea7b3146102ac5780631694505e146102e957806318160ddd1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61097e565b6040516102789190613779565b60405180910390f35b34801561028d57600080fd5b50610296610a10565b6040516102a391906137b4565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061385e565b610a2d565b6040516102e091906138b9565b60405180910390f35b3480156102f557600080fd5b506102fe610a4b565b60405161030b9190613933565b60405180910390f35b34801561032057600080fd5b50610329610a6f565b60405161033691906137b4565b60405180910390f35b34801561034b57600080fd5b50610354610a79565b60405161036191906137b4565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c919061394e565b610a96565b60405161039e91906138b9565b60405180910390f35b3480156103b357600080fd5b506103bc610b96565b6040516103c991906137b4565b60405180910390f35b3480156103de57600080fd5b506103e7610b9c565b6040516103f491906138b9565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f91906139a1565b610bb6565b005b34801561043257600080fd5b5061043b610d7c565b60405161044891906139ea565b60405180910390f35b34801561045d57600080fd5b506104786004803603810190610473919061385e565b610d85565b60405161048591906138b9565b60405180910390f35b34801561049a57600080fd5b506104a3610e31565b6040516104b09190613a14565b60405180910390f35b3480156104c557600080fd5b506104ce610e55565b6040516104db91906138b9565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906139a1565b610e6f565b60405161051891906138b9565b60405180910390f35b34801561052d57600080fd5b50610536610ec5565b60405161054391906138b9565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e91906139a1565b610edf565b60405161058091906137b4565b60405180910390f35b34801561059557600080fd5b5061059e610f27565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190613a5b565b61107f565b005b3480156105d557600080fd5b506105de61123b565b005b3480156105ec57600080fd5b506105f5611329565b005b34801561060357600080fd5b5061060c611445565b6040516106199190613a14565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190613aae565b61146f565b005b34801561065757600080fd5b5061066061155d565b60405161066d9190613779565b60405180910390f35b34801561068257600080fd5b5061069d60048036038101906106989190613adb565b6115ef565b005b3480156106ab57600080fd5b506106c660048036038101906106c1919061385e565b6117b5565b6040516106d391906138b9565b60405180910390f35b3480156106e857600080fd5b506106f16118a9565b6040516106fe91906137b4565b60405180910390f35b34801561071357600080fd5b5061072e6004803603810190610729919061385e565b6118af565b60405161073b91906138b9565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906139a1565b6118cd565b60405161077891906138b9565b60405180910390f35b34801561078d57600080fd5b506107966118ed565b6040516107a391906138b9565b60405180910390f35b3480156107b857600080fd5b506107d360048036038101906107ce9190613b1b565b611907565b005b3480156107e157600080fd5b506107fc60048036038101906107f79190613adb565b611bec565b005b34801561080a57600080fd5b5061082560048036038101906108209190613b5b565b611d2c565b005b34801561083357600080fd5b5061084e60048036038101906108499190613b1b565b611ebc565b60405161085b91906137b4565b60405180910390f35b34801561087057600080fd5b50610879611f43565b60405161088b96959493929190613b88565b60405180910390f35b3480156108a057600080fd5b506108a9611fbb565b6040516108b691906137b4565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e191906139a1565b611fc1565b005b3480156108f457600080fd5b506108fd612187565b005b34801561090b57600080fd5b5061092660048036038101906109219190613b5b565b6122cd565b005b34801561093457600080fd5b5061093d61241d565b60405161094a91906137b4565b60405180910390f35b34801561095f57600080fd5b50610968612423565b6040516109759190613a14565b60405180910390f35b60606003805461098d90613c18565b80601f01602080910402602001604051908101604052809291908181526020018280546109b990613c18565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000600860000160049054906101000a900460ff1660ff16905090565b6000610a41610a3a612449565b8484612451565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000600860000160059054906101000a900460ff1660ff16905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ae2612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990613cbb565b60405180910390fd5b610b6d85858561261a565b610b8a85610b79612449565b8584610b859190613d0a565b612451565b60019150509392505050565b60095481565b6000600860000160039054906101000a900460ff16905090565b610bbe612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390613e1c565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b6000610e27610d92612449565b848460016000610da0612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e229190613e3c565b612451565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600860000160009054906101000a900460ff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600860000160029054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f2f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611087612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613d8a565b60405180910390fd5b61025883101561115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115290613ee2565b60405180910390fd5b6103e8821115801561116e575060008210155b6111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613f74565b60405180910390fd5b82600981905550600a826111c19190613fc3565b600860000160056101000a81548160ff021916908360ff16021790555080600860000160036101000a81548160ff0219169083151502179055507ff3f9ef21e0df449ae7b4b5643a57931f4fd4fc6a5a934df1a80dc81d90fca0e783838360405161122e93929190613ff4565b60405180910390a1505050565b611243612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990613d8a565b60405180910390fd5b6000600860000160006101000a81548160ff0219169083151502179055507ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e5026164260405161131f91906137b4565b60405180910390a1565b611331612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613d8a565b60405180910390fd5b6001600860000160016101000a81548160ff0219169083151502179055506001600860000160026101000a81548160ff02191690831515021790555043600c8190555042600a819055507f7920707bc1e04048b254e37287ad152443d9f95ea809f714fbee15fd3cc966d0424360405161143b92919061402b565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611477612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90613d8a565b60405180910390fd5b80600860000160026101000a81548160ff0219169083151502179055507f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a128160405161155291906138b9565b60405180910390a150565b60606004805461156c90613c18565b80601f016020809104026020016040519081016040528092919081815260200182805461159890613c18565b80156115e55780601f106115ba576101008083540402835291602001916115e5565b820191906000526020600020905b8154815290600101906020018083116115c857829003601f168201915b5050505050905090565b6115f7612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613d8a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906140c6565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080600160006117c4612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890614158565b60405180910390fd5b61189e61188c612449565b8585846118999190613d0a565b612451565b600191505092915050565b600a5481565b60006118c36118bc612449565b848461261a565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600860000160019054906101000a900460ff16905090565b61190f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199590613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a04906141c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390614230565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae19061429c565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b259190613a14565b602060405180830381865afa158015611b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6691906142d1565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ba39291906142fe565b6020604051808303816000875af1158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be6919061433c565b50505050565b611bf4612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613d8a565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d2091906138b9565b60405180910390a25050565b611d34612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613d8a565b60405180910390fd5b620186a0611dcf610a6f565b611dd99190613fc3565b811015611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e12906143db565b60405180910390fd5b60c8611e25610a6f565b611e2f9190613fc3565b811115611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e689061446d565b60405180910390fd5b60006007549050816007819055507febb96427ceba6a46f9f71146db5c30bc7e2fe31285e9bf34b38bbdede7cd5ea18282604051611eb092919061402b565b60405180910390a15050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60088060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16905086565b60075481565b611fc9612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120be906144ff565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61218f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590613d8a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161224490614550565b60006040518083038185875af1925050503d8060008114612281576040519150601f19603f3d011682016040523d82523d6000602084013e612286565b606091505b50509050806122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c1906145b1565b60405180910390fd5b50565b6122d5612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b90613d8a565b60405180910390fd5b60058111156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f9061461d565b60405180910390fd5b6000600860000160049054906101000a900460ff1660ff16905081600860000160046101000a81548160ff021916908360ff1602179055507f1b0fb26f048892973b87d06d67dfc5bb6ad0945e4b09099f765cf6e8fa288059828260405161241192919061402b565b60405180910390a15050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b7906146af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361252f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252690614741565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161260d91906137b4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612689576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612680906147d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef90614865565b60405180910390fd5b600081036127115761270c83836000612f22565b612f1d565b600060086040518060c00160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900460ff161515151581526020016000820160039054906101000a900460ff161515151581526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a900460ff1660ff1660ff1681525050905060006127d2611445565b9050816000015115612950578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561284657508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561285f5750600560149054906101000a900460ff16155b1561294f57816020015161294e57600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061290e5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61294d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612944906148d1565b60405180910390fd5b5b5b5b600061295b30610edf565b905060006007548210159050808015612975575083604001515b801561298e5750600560149054906101000a900460ff16155b80156129a75750600d60009054906101000a900460ff16155b80156129fd5750600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a535750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612aa95750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aed576001600560146101000a81548160ff021916908315150217905550612ad161318b565b6000600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff16158015612b175750600d60009054906101000a900460ff16155b8015612b6c5750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612b79575083606001515b8015612b945750600954600a54612b909190613e3c565b4210155b8015612bea5750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf957612bf7613345565b505b6000600560149054906101000a900460ff16158015612c625750600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cb85750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000818015612cd057506000866080015160ff16115b15612f0b57600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d765750600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f0a576064866080015160ff1688612d9091906148f1565b612d9a9190613fc3565b905080600b6000828254612dae9190613e3c565b925050819055506000811115612efb57612dc9893083612f22565b6000600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e57576040518060400160405280600381526020017f6275790000000000000000000000000000000000000000000000000000000000815250612e8e565b6040518060400160405280600481526020017f73656c6c000000000000000000000000000000000000000000000000000000008152505b90508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fed54d1d7390e2f8f1da6d7732ab550e33ff6caa1c8568d56aa88b9e5e33862948a8585604051612ef193929190614933565b60405180910390a3505b8087612f079190613d0a565b96505b5b612f16898989612f22565b5050505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f88906147d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff790614865565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d906149e3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131199190613e3c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161317d91906137b4565b60405180910390a350505050565b6001600d60006101000a81548160ff02191690831515021790555060006131b130610edf565b9050600081036131c15750613328565b60146007546131d091906148f1565b8111156131e95760146007546131e691906148f1565b90505b60004790506131f7826134ac565b600081476132059190613d0a565b90506000600b819055506000811115613324576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161326090614550565b60006040518083038185875af1925050503d806000811461329d576040519150601f19603f3d011682016040523d82523d6000602084013e6132a2565b606091505b50509050806132e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132dd906145b1565b60405180910390fd5b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618483600060405161331a93929190614a3e565b60405180910390a1505b5050505b6000600d60006101000a81548160ff021916908315150217905550565b600042600a8190555060006133797f0000000000000000000000000000000000000000000000000000000000000000610edf565b90506000612710600860000160059054906101000a900460ff1660ff16836133a191906148f1565b6133ab9190613fc3565b905060008111156134a3576133e37f000000000000000000000000000000000000000000000000000000000000000061dead83612f22565b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561345057600080fd5b505af1158015613464573d6000803e3d6000fd5b505050507f403d6651380439e2edf66233dac8e3b37fe4f8df434ed132e31096774e0b9172824260405161349992919061402b565b60405180910390a1505b60019250505090565b6000600267ffffffffffffffff8111156134c9576134c8614a75565b5b6040519080825280602002602001820160405280156134f75781602001602082028036833780820191505090505b509050308160008151811061350f5761350e614aa4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d89190614ae8565b816001815181106135ec576135eb614aa4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613651307f000000000000000000000000000000000000000000000000000000000000000084612451565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614bd3565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613723578082015181840152602081019050613708565b60008484015250505050565b6000601f19601f8301169050919050565b600061374b826136e9565b61375581856136f4565b9350613765818560208601613705565b61376e8161372f565b840191505092915050565b600060208201905081810360008301526137938184613740565b905092915050565b6000819050919050565b6137ae8161379b565b82525050565b60006020820190506137c960008301846137a5565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137ff826137d4565b9050919050565b61380f816137f4565b811461381a57600080fd5b50565b60008135905061382c81613806565b92915050565b61383b8161379b565b811461384657600080fd5b50565b60008135905061385881613832565b92915050565b60008060408385031215613875576138746137cf565b5b60006138838582860161381d565b925050602061389485828601613849565b9150509250929050565b60008115159050919050565b6138b38161389e565b82525050565b60006020820190506138ce60008301846138aa565b92915050565b6000819050919050565b60006138f96138f46138ef846137d4565b6138d4565b6137d4565b9050919050565b600061390b826138de565b9050919050565b600061391d82613900565b9050919050565b61392d81613912565b82525050565b60006020820190506139486000830184613924565b92915050565b600080600060608486031215613967576139666137cf565b5b60006139758682870161381d565b93505060206139868682870161381d565b925050604061399786828701613849565b9150509250925092565b6000602082840312156139b7576139b66137cf565b5b60006139c58482850161381d565b91505092915050565b600060ff82169050919050565b6139e4816139ce565b82525050565b60006020820190506139ff60008301846139db565b92915050565b613a0e816137f4565b82525050565b6000602082019050613a296000830184613a05565b92915050565b613a388161389e565b8114613a4357600080fd5b50565b600081359050613a5581613a2f565b92915050565b600080600060608486031215613a7457613a736137cf565b5b6000613a8286828701613849565b9350506020613a9386828701613849565b9250506040613aa486828701613a46565b9150509250925092565b600060208284031215613ac457613ac36137cf565b5b6000613ad284828501613a46565b91505092915050565b60008060408385031215613af257613af16137cf565b5b6000613b008582860161381d565b9250506020613b1185828601613a46565b9150509250929050565b60008060408385031215613b3257613b316137cf565b5b6000613b408582860161381d565b9250506020613b518582860161381d565b9150509250929050565b600060208284031215613b7157613b706137cf565b5b6000613b7f84828501613849565b91505092915050565b600060c082019050613b9d60008301896138aa565b613baa60208301886138aa565b613bb760408301876138aa565b613bc460608301866138aa565b613bd160808301856139db565b613bde60a08301846139db565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c3057607f821691505b602082108103613c4357613c42613be9565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ca56028836136f4565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d158261379b565b9150613d208361379b565b9250828203905081811115613d3857613d37613cdb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d746020836136f4565b9150613d7f82613d3e565b602082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4f7065726174696f6e732077616c6c65742063616e6e6f74206265207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613e066028836136f4565b9150613e1182613daa565b604082019050919050565b60006020820190508181036000830152613e3581613df9565b9050919050565b6000613e478261379b565b9150613e528361379b565b9250828201905080821115613e6a57613e69613cdb565b5b92915050565b7f43616e6e6f7420736574206275726e206d6f7265206f6674656e207468616e2060008201527f6576657279203130206d696e7574657300000000000000000000000000000000602082015250565b6000613ecc6030836136f4565b9150613ed782613e70565b604082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b6000613f5e6030836136f4565b9150613f6982613f02565b604082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fce8261379b565b9150613fd98361379b565b925082613fe957613fe8613f94565b5b828204905092915050565b600060608201905061400960008301866137a5565b61401660208301856137a5565b61402360408301846138aa565b949350505050565b600060408201905061404060008301856137a5565b61404d60208301846137a5565b9392505050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140b06039836136f4565b91506140bb82614054565b604082019050919050565b600060208201905081810360008301526140df816140a3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141426025836136f4565b915061414d826140e6565b604082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b60006141ae6015836136f4565b91506141b982614178565b602082019050919050565b600060208201905081810360008301526141dd816141a1565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b600061421a6019836136f4565b9150614225826141e4565b602082019050919050565b600060208201905081810360008301526142498161420d565b9050919050565b7f43616e6e6f74207769746864726177206f776e20746f6b656e00000000000000600082015250565b60006142866019836136f4565b915061429182614250565b602082019050919050565b600060208201905081810360008301526142b581614279565b9050919050565b6000815190506142cb81613832565b92915050565b6000602082840312156142e7576142e66137cf565b5b60006142f5848285016142bc565b91505092915050565b60006040820190506143136000830185613a05565b61432060208301846137a5565b9392505050565b60008151905061433681613a2f565b92915050565b600060208284031215614352576143516137cf565b5b600061436084828501614327565b91505092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006143c56035836136f4565b91506143d082614369565b604082019050919050565b600060208201905081810360008301526143f4816143b8565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006144576034836136f4565b9150614462826143fb565b604082019050919050565b600060208201905081810360008301526144868161444a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144e96026836136f4565b91506144f48261448d565b604082019050919050565b60006020820190508181036000830152614518816144dc565b9050919050565b600081905092915050565b50565b600061453a60008361451f565b91506145458261452a565b600082019050919050565b600061455b8261452d565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061459b6013836136f4565b91506145a682614565565b602082019050919050565b600060208201905081810360008301526145ca8161458e565b9050919050565b7f4665652063616e6e6f7420657863656564203525000000000000000000000000600082015250565b60006146076014836136f4565b9150614612826145d1565b602082019050919050565b60006020820190508181036000830152614636816145fa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146996024836136f4565b91506146a48261463d565b604082019050919050565b600060208201905081810360008301526146c88161468c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061472b6022836136f4565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147bd6025836136f4565b91506147c882614761565b604082019050919050565b600060208201905081810360008301526147ec816147b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061484f6023836136f4565b915061485a826147f3565b604082019050919050565b6000602082019050818103600083015261487e81614842565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006148bb6016836136f4565b91506148c682614885565b602082019050919050565b600060208201905081810360008301526148ea816148ae565b9050919050565b60006148fc8261379b565b91506149078361379b565b92508282026149158161379b565b9150828204841483151761492c5761492b613cdb565b5b5092915050565b600060608201905061494860008301866137a5565b61495560208301856137a5565b81810360408301526149678184613740565b9050949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149cd6026836136f4565b91506149d882614971565b604082019050919050565b600060208201905081810360008301526149fc816149c0565b9050919050565b6000819050919050565b6000614a28614a23614a1e84614a03565b6138d4565b61379b565b9050919050565b614a3881614a0d565b82525050565b6000606082019050614a5360008301866137a5565b614a6060208301856137a5565b614a6d6040830184614a2f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614ae281613806565b92915050565b600060208284031215614afe57614afd6137cf565b5b6000614b0c84828501614ad3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b4a816137f4565b82525050565b6000614b5c8383614b41565b60208301905092915050565b6000602082019050919050565b6000614b8082614b15565b614b8a8185614b20565b9350614b9583614b31565b8060005b83811015614bc6578151614bad8882614b50565b9750614bb883614b68565b925050600181019050614b99565b5085935050505092915050565b600060a082019050614be860008301886137a5565b614bf56020830187614a2f565b8181036040830152614c078186614b75565b9050614c166060830185613a05565b614c2360808301846137a5565b969550505050505056fea2646970667358221220a94bf1f9de598ed021ab788d67c3f7f900979efc8a03a61c9bdfdc75f339d16b64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80638a8c523c11610139578063bc205ad3116100b6578063e2f456051161007a578063e2f4560514610894578063f2fde38b146108bf578063f5648a4f146108e8578063f9de5aab146108ff578063fb002c9714610928578063fd72e22a1461095357610251565b8063bc205ad3146107ac578063c0246668146107d5578063d257b34f146107fe578063dd62ed3e14610827578063e06174e41461086457610251565b8063a457c2d7116100fd578063a457c2d71461069f578063a4c82a00146106dc578063a9059cbb14610707578063b62496f514610744578063bbc0c7421461078157610251565b80638a8c523c146105e05780638da5cb5b146105f7578063924de9b71461062257806395d89b411461064b5780639a7a23d61461067657610251565b8063313ce567116101c75780636ddd17131161018b5780636ddd17131461052157806370a082311461054c578063715018a614610589578063730c1888146105a0578063751039fc146105c957610251565b8063313ce56714610426578063395093511461045157806349bd5a5e1461048e5780634a62bb65146104b95780634fbee193146104e457610251565b8063199ffc721161020e578063199ffc721461033f57806323b872dd1461036a5780632c3e486c146103a75780632e82f1a0146103d257806330d5d18d146103fd57610251565b806306fdde0314610256578063090896be14610281578063095ea7b3146102ac5780631694505e146102e957806318160ddd1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61097e565b6040516102789190613779565b60405180910390f35b34801561028d57600080fd5b50610296610a10565b6040516102a391906137b4565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061385e565b610a2d565b6040516102e091906138b9565b60405180910390f35b3480156102f557600080fd5b506102fe610a4b565b60405161030b9190613933565b60405180910390f35b34801561032057600080fd5b50610329610a6f565b60405161033691906137b4565b60405180910390f35b34801561034b57600080fd5b50610354610a79565b60405161036191906137b4565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c919061394e565b610a96565b60405161039e91906138b9565b60405180910390f35b3480156103b357600080fd5b506103bc610b96565b6040516103c991906137b4565b60405180910390f35b3480156103de57600080fd5b506103e7610b9c565b6040516103f491906138b9565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f91906139a1565b610bb6565b005b34801561043257600080fd5b5061043b610d7c565b60405161044891906139ea565b60405180910390f35b34801561045d57600080fd5b506104786004803603810190610473919061385e565b610d85565b60405161048591906138b9565b60405180910390f35b34801561049a57600080fd5b506104a3610e31565b6040516104b09190613a14565b60405180910390f35b3480156104c557600080fd5b506104ce610e55565b6040516104db91906138b9565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906139a1565b610e6f565b60405161051891906138b9565b60405180910390f35b34801561052d57600080fd5b50610536610ec5565b60405161054391906138b9565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e91906139a1565b610edf565b60405161058091906137b4565b60405180910390f35b34801561059557600080fd5b5061059e610f27565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190613a5b565b61107f565b005b3480156105d557600080fd5b506105de61123b565b005b3480156105ec57600080fd5b506105f5611329565b005b34801561060357600080fd5b5061060c611445565b6040516106199190613a14565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190613aae565b61146f565b005b34801561065757600080fd5b5061066061155d565b60405161066d9190613779565b60405180910390f35b34801561068257600080fd5b5061069d60048036038101906106989190613adb565b6115ef565b005b3480156106ab57600080fd5b506106c660048036038101906106c1919061385e565b6117b5565b6040516106d391906138b9565b60405180910390f35b3480156106e857600080fd5b506106f16118a9565b6040516106fe91906137b4565b60405180910390f35b34801561071357600080fd5b5061072e6004803603810190610729919061385e565b6118af565b60405161073b91906138b9565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906139a1565b6118cd565b60405161077891906138b9565b60405180910390f35b34801561078d57600080fd5b506107966118ed565b6040516107a391906138b9565b60405180910390f35b3480156107b857600080fd5b506107d360048036038101906107ce9190613b1b565b611907565b005b3480156107e157600080fd5b506107fc60048036038101906107f79190613adb565b611bec565b005b34801561080a57600080fd5b5061082560048036038101906108209190613b5b565b611d2c565b005b34801561083357600080fd5b5061084e60048036038101906108499190613b1b565b611ebc565b60405161085b91906137b4565b60405180910390f35b34801561087057600080fd5b50610879611f43565b60405161088b96959493929190613b88565b60405180910390f35b3480156108a057600080fd5b506108a9611fbb565b6040516108b691906137b4565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e191906139a1565b611fc1565b005b3480156108f457600080fd5b506108fd612187565b005b34801561090b57600080fd5b5061092660048036038101906109219190613b5b565b6122cd565b005b34801561093457600080fd5b5061093d61241d565b60405161094a91906137b4565b60405180910390f35b34801561095f57600080fd5b50610968612423565b6040516109759190613a14565b60405180910390f35b60606003805461098d90613c18565b80601f01602080910402602001604051908101604052809291908181526020018280546109b990613c18565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000600860000160049054906101000a900460ff1660ff16905090565b6000610a41610a3a612449565b8484612451565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000600860000160059054906101000a900460ff1660ff16905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ae2612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990613cbb565b60405180910390fd5b610b6d85858561261a565b610b8a85610b79612449565b8584610b859190613d0a565b612451565b60019150509392505050565b60095481565b6000600860000160039054906101000a900460ff16905090565b610bbe612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390613e1c565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b6000610e27610d92612449565b848460016000610da0612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e229190613e3c565b612451565b6001905092915050565b7f0000000000000000000000006e51c6446c11568be1940cb31020582cad7a6b8081565b6000600860000160009054906101000a900460ff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600860000160029054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f2f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611087612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613d8a565b60405180910390fd5b61025883101561115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115290613ee2565b60405180910390fd5b6103e8821115801561116e575060008210155b6111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613f74565b60405180910390fd5b82600981905550600a826111c19190613fc3565b600860000160056101000a81548160ff021916908360ff16021790555080600860000160036101000a81548160ff0219169083151502179055507ff3f9ef21e0df449ae7b4b5643a57931f4fd4fc6a5a934df1a80dc81d90fca0e783838360405161122e93929190613ff4565b60405180910390a1505050565b611243612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990613d8a565b60405180910390fd5b6000600860000160006101000a81548160ff0219169083151502179055507ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e5026164260405161131f91906137b4565b60405180910390a1565b611331612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613d8a565b60405180910390fd5b6001600860000160016101000a81548160ff0219169083151502179055506001600860000160026101000a81548160ff02191690831515021790555043600c8190555042600a819055507f7920707bc1e04048b254e37287ad152443d9f95ea809f714fbee15fd3cc966d0424360405161143b92919061402b565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611477612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90613d8a565b60405180910390fd5b80600860000160026101000a81548160ff0219169083151502179055507f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a128160405161155291906138b9565b60405180910390a150565b60606004805461156c90613c18565b80601f016020809104026020016040519081016040528092919081815260200182805461159890613c18565b80156115e55780601f106115ba576101008083540402835291602001916115e5565b820191906000526020600020905b8154815290600101906020018083116115c857829003601f168201915b5050505050905090565b6115f7612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613d8a565b60405180910390fd5b7f0000000000000000000000006e51c6446c11568be1940cb31020582cad7a6b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906140c6565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080600160006117c4612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890614158565b60405180910390fd5b61189e61188c612449565b8585846118999190613d0a565b612451565b600191505092915050565b600a5481565b60006118c36118bc612449565b848461261a565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600860000160019054906101000a900460ff16905090565b61190f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199590613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a04906141c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390614230565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae19061429c565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b259190613a14565b602060405180830381865afa158015611b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6691906142d1565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ba39291906142fe565b6020604051808303816000875af1158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be6919061433c565b50505050565b611bf4612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613d8a565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d2091906138b9565b60405180910390a25050565b611d34612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613d8a565b60405180910390fd5b620186a0611dcf610a6f565b611dd99190613fc3565b811015611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e12906143db565b60405180910390fd5b60c8611e25610a6f565b611e2f9190613fc3565b811115611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e689061446d565b60405180910390fd5b60006007549050816007819055507febb96427ceba6a46f9f71146db5c30bc7e2fe31285e9bf34b38bbdede7cd5ea18282604051611eb092919061402b565b60405180910390a15050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60088060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16905086565b60075481565b611fc9612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120be906144ff565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61218f612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590613d8a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161224490614550565b60006040518083038185875af1925050503d8060008114612281576040519150601f19603f3d011682016040523d82523d6000602084013e612286565b606091505b50509050806122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c1906145b1565b60405180910390fd5b50565b6122d5612449565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b90613d8a565b60405180910390fd5b60058111156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f9061461d565b60405180910390fd5b6000600860000160049054906101000a900460ff1660ff16905081600860000160046101000a81548160ff021916908360ff1602179055507f1b0fb26f048892973b87d06d67dfc5bb6ad0945e4b09099f765cf6e8fa288059828260405161241192919061402b565b60405180910390a15050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b7906146af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361252f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252690614741565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161260d91906137b4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612689576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612680906147d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef90614865565b60405180910390fd5b600081036127115761270c83836000612f22565b612f1d565b600060086040518060c00160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900460ff161515151581526020016000820160039054906101000a900460ff161515151581526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a900460ff1660ff1660ff1681525050905060006127d2611445565b9050816000015115612950578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561284657508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561285f5750600560149054906101000a900460ff16155b1561294f57816020015161294e57600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061290e5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61294d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612944906148d1565b60405180910390fd5b5b5b5b600061295b30610edf565b905060006007548210159050808015612975575083604001515b801561298e5750600560149054906101000a900460ff16155b80156129a75750600d60009054906101000a900460ff16155b80156129fd5750600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a535750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612aa95750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aed576001600560146101000a81548160ff021916908315150217905550612ad161318b565b6000600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff16158015612b175750600d60009054906101000a900460ff16155b8015612b6c5750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612b79575083606001515b8015612b945750600954600a54612b909190613e3c565b4210155b8015612bea5750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf957612bf7613345565b505b6000600560149054906101000a900460ff16158015612c625750600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cb85750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000818015612cd057506000866080015160ff16115b15612f0b57600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d765750600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f0a576064866080015160ff1688612d9091906148f1565b612d9a9190613fc3565b905080600b6000828254612dae9190613e3c565b925050819055506000811115612efb57612dc9893083612f22565b6000600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e57576040518060400160405280600381526020017f6275790000000000000000000000000000000000000000000000000000000000815250612e8e565b6040518060400160405280600481526020017f73656c6c000000000000000000000000000000000000000000000000000000008152505b90508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fed54d1d7390e2f8f1da6d7732ab550e33ff6caa1c8568d56aa88b9e5e33862948a8585604051612ef193929190614933565b60405180910390a3505b8087612f079190613d0a565b96505b5b612f16898989612f22565b5050505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f88906147d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff790614865565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d906149e3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131199190613e3c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161317d91906137b4565b60405180910390a350505050565b6001600d60006101000a81548160ff02191690831515021790555060006131b130610edf565b9050600081036131c15750613328565b60146007546131d091906148f1565b8111156131e95760146007546131e691906148f1565b90505b60004790506131f7826134ac565b600081476132059190613d0a565b90506000600b819055506000811115613324576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161326090614550565b60006040518083038185875af1925050503d806000811461329d576040519150601f19603f3d011682016040523d82523d6000602084013e6132a2565b606091505b50509050806132e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132dd906145b1565b60405180910390fd5b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618483600060405161331a93929190614a3e565b60405180910390a1505b5050505b6000600d60006101000a81548160ff021916908315150217905550565b600042600a8190555060006133797f0000000000000000000000006e51c6446c11568be1940cb31020582cad7a6b80610edf565b90506000612710600860000160059054906101000a900460ff1660ff16836133a191906148f1565b6133ab9190613fc3565b905060008111156134a3576133e37f0000000000000000000000006e51c6446c11568be1940cb31020582cad7a6b8061dead83612f22565b60007f0000000000000000000000006e51c6446c11568be1940cb31020582cad7a6b8090508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561345057600080fd5b505af1158015613464573d6000803e3d6000fd5b505050507f403d6651380439e2edf66233dac8e3b37fe4f8df434ed132e31096774e0b9172824260405161349992919061402b565b60405180910390a1505b60019250505090565b6000600267ffffffffffffffff8111156134c9576134c8614a75565b5b6040519080825280602002602001820160405280156134f75781602001602082028036833780820191505090505b509050308160008151811061350f5761350e614aa4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d89190614ae8565b816001815181106135ec576135eb614aa4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613651307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612451565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614bd3565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613723578082015181840152602081019050613708565b60008484015250505050565b6000601f19601f8301169050919050565b600061374b826136e9565b61375581856136f4565b9350613765818560208601613705565b61376e8161372f565b840191505092915050565b600060208201905081810360008301526137938184613740565b905092915050565b6000819050919050565b6137ae8161379b565b82525050565b60006020820190506137c960008301846137a5565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137ff826137d4565b9050919050565b61380f816137f4565b811461381a57600080fd5b50565b60008135905061382c81613806565b92915050565b61383b8161379b565b811461384657600080fd5b50565b60008135905061385881613832565b92915050565b60008060408385031215613875576138746137cf565b5b60006138838582860161381d565b925050602061389485828601613849565b9150509250929050565b60008115159050919050565b6138b38161389e565b82525050565b60006020820190506138ce60008301846138aa565b92915050565b6000819050919050565b60006138f96138f46138ef846137d4565b6138d4565b6137d4565b9050919050565b600061390b826138de565b9050919050565b600061391d82613900565b9050919050565b61392d81613912565b82525050565b60006020820190506139486000830184613924565b92915050565b600080600060608486031215613967576139666137cf565b5b60006139758682870161381d565b93505060206139868682870161381d565b925050604061399786828701613849565b9150509250925092565b6000602082840312156139b7576139b66137cf565b5b60006139c58482850161381d565b91505092915050565b600060ff82169050919050565b6139e4816139ce565b82525050565b60006020820190506139ff60008301846139db565b92915050565b613a0e816137f4565b82525050565b6000602082019050613a296000830184613a05565b92915050565b613a388161389e565b8114613a4357600080fd5b50565b600081359050613a5581613a2f565b92915050565b600080600060608486031215613a7457613a736137cf565b5b6000613a8286828701613849565b9350506020613a9386828701613849565b9250506040613aa486828701613a46565b9150509250925092565b600060208284031215613ac457613ac36137cf565b5b6000613ad284828501613a46565b91505092915050565b60008060408385031215613af257613af16137cf565b5b6000613b008582860161381d565b9250506020613b1185828601613a46565b9150509250929050565b60008060408385031215613b3257613b316137cf565b5b6000613b408582860161381d565b9250506020613b518582860161381d565b9150509250929050565b600060208284031215613b7157613b706137cf565b5b6000613b7f84828501613849565b91505092915050565b600060c082019050613b9d60008301896138aa565b613baa60208301886138aa565b613bb760408301876138aa565b613bc460608301866138aa565b613bd160808301856139db565b613bde60a08301846139db565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c3057607f821691505b602082108103613c4357613c42613be9565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ca56028836136f4565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d158261379b565b9150613d208361379b565b9250828203905081811115613d3857613d37613cdb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d746020836136f4565b9150613d7f82613d3e565b602082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4f7065726174696f6e732077616c6c65742063616e6e6f74206265207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613e066028836136f4565b9150613e1182613daa565b604082019050919050565b60006020820190508181036000830152613e3581613df9565b9050919050565b6000613e478261379b565b9150613e528361379b565b9250828201905080821115613e6a57613e69613cdb565b5b92915050565b7f43616e6e6f7420736574206275726e206d6f7265206f6674656e207468616e2060008201527f6576657279203130206d696e7574657300000000000000000000000000000000602082015250565b6000613ecc6030836136f4565b9150613ed782613e70565b604082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b6000613f5e6030836136f4565b9150613f6982613f02565b604082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fce8261379b565b9150613fd98361379b565b925082613fe957613fe8613f94565b5b828204905092915050565b600060608201905061400960008301866137a5565b61401660208301856137a5565b61402360408301846138aa565b949350505050565b600060408201905061404060008301856137a5565b61404d60208301846137a5565b9392505050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140b06039836136f4565b91506140bb82614054565b604082019050919050565b600060208201905081810360008301526140df816140a3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141426025836136f4565b915061414d826140e6565b604082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b60006141ae6015836136f4565b91506141b982614178565b602082019050919050565b600060208201905081810360008301526141dd816141a1565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b600061421a6019836136f4565b9150614225826141e4565b602082019050919050565b600060208201905081810360008301526142498161420d565b9050919050565b7f43616e6e6f74207769746864726177206f776e20746f6b656e00000000000000600082015250565b60006142866019836136f4565b915061429182614250565b602082019050919050565b600060208201905081810360008301526142b581614279565b9050919050565b6000815190506142cb81613832565b92915050565b6000602082840312156142e7576142e66137cf565b5b60006142f5848285016142bc565b91505092915050565b60006040820190506143136000830185613a05565b61432060208301846137a5565b9392505050565b60008151905061433681613a2f565b92915050565b600060208284031215614352576143516137cf565b5b600061436084828501614327565b91505092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006143c56035836136f4565b91506143d082614369565b604082019050919050565b600060208201905081810360008301526143f4816143b8565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006144576034836136f4565b9150614462826143fb565b604082019050919050565b600060208201905081810360008301526144868161444a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144e96026836136f4565b91506144f48261448d565b604082019050919050565b60006020820190508181036000830152614518816144dc565b9050919050565b600081905092915050565b50565b600061453a60008361451f565b91506145458261452a565b600082019050919050565b600061455b8261452d565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061459b6013836136f4565b91506145a682614565565b602082019050919050565b600060208201905081810360008301526145ca8161458e565b9050919050565b7f4665652063616e6e6f7420657863656564203525000000000000000000000000600082015250565b60006146076014836136f4565b9150614612826145d1565b602082019050919050565b60006020820190508181036000830152614636816145fa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146996024836136f4565b91506146a48261463d565b604082019050919050565b600060208201905081810360008301526146c88161468c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061472b6022836136f4565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147bd6025836136f4565b91506147c882614761565b604082019050919050565b600060208201905081810360008301526147ec816147b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061484f6023836136f4565b915061485a826147f3565b604082019050919050565b6000602082019050818103600083015261487e81614842565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006148bb6016836136f4565b91506148c682614885565b602082019050919050565b600060208201905081810360008301526148ea816148ae565b9050919050565b60006148fc8261379b565b91506149078361379b565b92508282026149158161379b565b9150828204841483151761492c5761492b613cdb565b5b5092915050565b600060608201905061494860008301866137a5565b61495560208301856137a5565b81810360408301526149678184613740565b9050949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149cd6026836136f4565b91506149d882614971565b604082019050919050565b600060208201905081810360008301526149fc816149c0565b9050919050565b6000819050919050565b6000614a28614a23614a1e84614a03565b6138d4565b61379b565b9050919050565b614a3881614a0d565b82525050565b6000606082019050614a5360008301866137a5565b614a6060208301856137a5565b614a6d6040830184614a2f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614ae281613806565b92915050565b600060208284031215614afe57614afd6137cf565b5b6000614b0c84828501614ad3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b4a816137f4565b82525050565b6000614b5c8383614b41565b60208301905092915050565b6000602082019050919050565b6000614b8082614b15565b614b8a8185614b20565b9350614b9583614b31565b8060005b83811015614bc6578151614bad8882614b50565b9750614bb883614b68565b925050600181019050614b99565b5085935050505092915050565b600060a082019050614be860008301886137a5565b614bf56020830187614a2f565b8181036040830152614c078186614b75565b9050614c166060830185613a05565b614c2360808301846137a5565b969550505050505056fea2646970667358221220a94bf1f9de598ed021ab788d67c3f7f900979efc8a03a61c9bdfdc75f339d16b64736f6c63430008110033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.