ETH Price: $3,417.76 (-2.36%)
Gas: 7 Gwei

Token

Block Escrow Token (BET)
 

Overview

Max Total Supply

1,000,000,000 BET

Holders

478

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: BET 23
Balance
816,118,847.491275036901785521 BET

Value
$0.00
0x6ae265957d3f2764e39f903c007e32e323e23f5a
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
BET

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-10
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) 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;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success;
    }
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract 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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address 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()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, 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");
        unchecked {
            _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");

        _beforeTokenTransfer(sender, recipient, amount);

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

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

contract BET is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feesOnBuy;
    uint256 public  feesOnSell;

    uint256 private liquidityProvider;

    address public  blockFundWallet;
    address public  liquidityProviderWallet;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event BlockFundWalletChanged(address blockFundWallet);
    event LiquiditydWalletChanged(address liquidityProviderWallet);
    event UpdateFees(uint256 feesOnBuy, uint256 feesOnSell);
    event SwapAndSendBlockFund(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("Block Escrow Token", "BET") 
    {   
        address router;
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
        } else {
            revert();
        }

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        feesOnBuy  = 5;
        feesOnSell = 5;

        blockFundWallet = 0x84915BD028C3789Cfef5837ecaCED4031B4423d4;
        liquidityProviderWallet = 0x443634DcD7543AB0Bf11Bd3f0ee8aaBF79e8549A;

        maxWalletLimitEnabled = true;

        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[address(0xdead)] = true;
        _isExcludedFromMaxWalletLimit[blockFundWallet] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        _mint(owner(), 1e9 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        maxWalletAmount = totalSupply() * 20 / 1000;

        tradingEnabled = false;
        swapEnabled = false;
    }

    receive() external payable {

  	}

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

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

    function updateFees(uint256 _feesOnSell, uint256 _feesOnBuy) external onlyOwner {
        require(_feesOnSell <= feesOnSell, "You can only decrease the fees");
        require(_feesOnBuy <= feesOnBuy, "You can only decrease the fees");

        feesOnSell = _feesOnSell;
        feesOnBuy = _feesOnBuy;

        emit UpdateFees(feesOnSell, feesOnBuy);
    }

    function changeBlockFundWallet(address _blockFundWallet) external onlyOwner{
        require(_blockFundWallet != blockFundWallet, "BlockFund wallet is already that address");
        require(_blockFundWallet != address(0),"BlockFund wallet cannot be the zero address");
        blockFundWallet = _blockFundWallet;

        emit BlockFundWalletChanged(blockFundWallet);
    }

    function changeLiquidityWallet(address _liquidityProviderWallet) external {
        require(msg.sender == liquidityProviderWallet, "Only liquidity wallet can change this");
        require(_liquidityProviderWallet != liquidityProviderWallet, "BlockFund wallet is already that address");
        require(_liquidityProviderWallet != address(0),"BlockFund wallet cannot be the zero address");
        liquidityProviderWallet = _liquidityProviderWallet;

        emit LiquiditydWalletChanged(liquidityProviderWallet);
    }

    bool public tradingEnabled;
    uint256 public tradingBlock;
    uint256 public tradingTime;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;
        tradingBlock = block.number;
        tradingTime = block.timestamp;
    }

    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");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendBlockFund(contractTokenBalance);     

            swapping = false;
        }

        uint256 feeOnBuy;
        uint256 feeOnSell;

        if (block.timestamp > tradingTime + (180 minutes)){
            // Stage normal
            feeOnBuy = feesOnBuy;
            feeOnSell = feesOnSell;
        } else if (block.timestamp > tradingTime + (120 minutes)){
            // Stage 3
            feeOnBuy = 0;
            feeOnSell = 15;
        } else if (block.timestamp > tradingTime + (60 minutes)){
            // Stage 2
            feeOnBuy = 0;
            feeOnSell = 25;
        } else{
            // Stage 1
            feeOnBuy = 5;
            feeOnSell = 25;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            if (block.number <= tradingBlock + 3){
                _totalFees = 99;
            } else {
                _totalFees = feeOnBuy;
            }
        } else if (to == uniswapV2Pair) {
            _totalFees = feeOnSell;
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);

            liquidityProvider += fees / 5;
        }

        if (maxWalletLimitEnabled) 
        {
            if (!_isExcludedFromMaxWalletLimit[from] && 
                !_isExcludedFromMaxWalletLimit[to] &&
                to != uniswapV2Pair
            ) {
                uint256 balance  = balanceOf(to);
                require(
                    balance + amount <= maxWalletAmount, 
                    "MaxWallet: Recipient exceeds the maxWalletAmount"
                );
            }
        }

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

    function setSwapEnabled(bool _enabled) external onlyOwner{
        require(swapEnabled != _enabled, "swapEnabled already at this state.");
        swapEnabled = _enabled;
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        require(newAmount >= totalSupply() / 1_000_000, "SwapTokensAtAmount must be greater than 0.0001% of total supply");
        require(newAmount <= totalSupply() / 1_000, "SwapTokensAtAmount must be greater than 0.1% of total supply");
        swapTokensAtAmount = newAmount;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swapAndSendBlockFund(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

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

        uint256 newBalance = address(this).balance - initialBalance;
        uint256 liquidityProviderAmount = newBalance * liquidityProvider / tokenAmount;

        payable(liquidityProviderWallet).sendValue(liquidityProviderAmount);
        payable(blockFundWallet).sendValue(address(this).balance);

        liquidityProvider = 0;

        emit SwapAndSendBlockFund(tokenAmount, newBalance);
    }

    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    bool    public maxWalletLimitEnabled;
    uint256 public maxWalletAmount;

    event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded);
    event MaxWalletLimitStateChanged(bool maxWalletLimit);
    event MaxWalletLimitAmountChanged(uint256 maxWalletAmount);

    function setEnableMaxWalletLimit(bool enable) external onlyOwner {
        require(enable != maxWalletLimitEnabled,"Max wallet limit is already set to that state");
        maxWalletLimitEnabled = enable;

        emit MaxWalletLimitStateChanged(maxWalletLimitEnabled);
    }

    function excludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        require( _isExcludedFromMaxWalletLimit[account] != exclude,"Account is already set to that state");
        require(account != address(this), "Can't set this address.");

        _isExcludedFromMaxWalletLimit[account] = exclude;

        emit ExcludedFromMaxWalletLimit(account, exclude);
    }

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"blockFundWallet","type":"address"}],"name":"BlockFundWalletChanged","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"liquidityProviderWallet","type":"address"}],"name":"LiquiditydWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendBlockFund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feesOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feesOnSell","type":"uint256"}],"name":"UpdateFees","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockFundWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_blockFundWallet","type":"address"}],"name":"changeBlockFundWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityProviderWallet","type":"address"}],"name":"changeLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProviderWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_feesOnSell","type":"uint256"},{"internalType":"uint256","name":"_feesOnBuy","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280601281526020017f426c6f636b20457363726f7720546f6b656e00000000000000000000000000008152506040518060400160405280600381526020017f424554000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000e9b565b508060049081620000a1919062000e9b565b5050506000620000b66200088960201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000603846036200017d577310ed43c718714eb63d5aa57b78b54704e256024e9050620001dd565b60614603620001a35773d99d1c33f9fc3444f8101754abc46c52416550d19050620001dc565b6001461480620001b35750600546145b15620001d657737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001db565b600080fd5b5b5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062000fec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e4919062000fec565b6040518363ffffffff1660e01b8152600401620003039291906200102f565b6020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000fec565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200089160201b60201c565b60056009819055506005600a819055507384915bd028c3789cfef5837ecaced4031b4423d4600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073443634dcd7543ab0bf11bd3f0ee8aabf79e8549a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360006101000a81548160ff0219169083151502179055506001601260006200050d62000a6260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016012600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000620006a062000a6260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007f2620007b762000a6260201b60201c565b620007c762000a8c60201b60201c565b600a620007d59190620011ec565b633b9aca00620007e691906200123d565b62000a9560201b60201c565b6113886200080562000c0d60201b60201c565b620008119190620012b7565b600e819055506103e860146200082c62000c0d60201b60201c565b6200083891906200123d565b620008449190620012b7565b6014819055506000600f60026101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff0219169083151502179055505050506200150b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000903576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fa9062001376565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096c906200140e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000a55919062001441565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afe90620014ae565b60405180910390fd5b62000b1b6000838362000c1760201b60201c565b806002600082825462000b2f9190620014d0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000b869190620014d0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000bed919062001441565b60405180910390a362000c096000838362000c1c60201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ca357607f821691505b60208210810362000cb95762000cb862000c5b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ce4565b62000d2f868362000ce4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d7c62000d7662000d708462000d47565b62000d51565b62000d47565b9050919050565b6000819050919050565b62000d988362000d5b565b62000db062000da78262000d83565b84845462000cf1565b825550505050565b600090565b62000dc762000db8565b62000dd481848462000d8d565b505050565b5b8181101562000dfc5762000df060008262000dbd565b60018101905062000dda565b5050565b601f82111562000e4b5762000e158162000cbf565b62000e208462000cd4565b8101602085101562000e30578190505b62000e4862000e3f8562000cd4565b83018262000dd9565b50505b505050565b600082821c905092915050565b600062000e706000198460080262000e50565b1980831691505092915050565b600062000e8b838362000e5d565b9150826002028217905092915050565b62000ea68262000c21565b67ffffffffffffffff81111562000ec25762000ec162000c2c565b5b62000ece825462000c8a565b62000edb82828562000e00565b600060209050601f83116001811462000f13576000841562000efe578287015190505b62000f0a858262000e7d565b86555062000f7a565b601f19841662000f238662000cbf565b60005b8281101562000f4d5784890151825560018201915060208501945060208101905062000f26565b8683101562000f6d578489015162000f69601f89168262000e5d565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fb48262000f87565b9050919050565b62000fc68162000fa7565b811462000fd257600080fd5b50565b60008151905062000fe68162000fbb565b92915050565b60006020828403121562001005576200100462000f82565b5b6000620010158482850162000fd5565b91505092915050565b620010298162000fa7565b82525050565b60006040820190506200104660008301856200101e565b6200105560208301846200101e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010ea57808604811115620010c257620010c16200105c565b5b6001851615620010d25780820291505b8081029050620010e2856200108b565b9450620010a2565b94509492505050565b600082620011055760019050620011d8565b81620011155760009050620011d8565b81600181146200112e576002811462001139576200116f565b6001915050620011d8565b60ff8411156200114e576200114d6200105c565b5b8360020a9150848211156200116857620011676200105c565b5b50620011d8565b5060208310610133831016604e8410600b8410161715620011a95782820a905083811115620011a357620011a26200105c565b5b620011d8565b620011b8848484600162001098565b92509050818404811115620011d257620011d16200105c565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011f98262000d47565b91506200120683620011df565b9250620012357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010f3565b905092915050565b60006200124a8262000d47565b9150620012578362000d47565b9250828202620012678162000d47565b915082820484148315176200128157620012806200105c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012c48262000d47565b9150620012d18362000d47565b925082620012e457620012e362001288565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200135e602483620012ef565b91506200136b8262001300565b604082019050919050565b6000602082019050818103600083015262001391816200134f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620013f6602283620012ef565b9150620014038262001398565b604082019050919050565b600060208201905081810360008301526200142981620013e7565b9050919050565b6200143b8162000d47565b82525050565b600060208201905062001458600083018462001430565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001496601f83620012ef565b9150620014a3826200145e565b602082019050919050565b60006020820190508181036000830152620014c98162001487565b9050919050565b6000620014dd8262000d47565b9150620014ea8362000d47565b92508282019050808211156200150557620015046200105c565b5b92915050565b6148e6806200151b6000396000f3fe6080604052600436106102295760003560e01c806380db1fbb11610123578063b8158d60116100ab578063e01af92c1161006f578063e01af92c14610840578063e2f4560514610869578063e4e4489314610894578063f2fde38b146108bf578063f9d0831a146108e857610230565b8063b8158d601461075b578063c024666814610786578063cd51e6d4146107af578063d2fcc001146107da578063dd62ed3e1461080357610230565b8063a457c2d7116100f2578063a457c2d714610650578063a8a69b9d1461068d578063a9059cbb146106ca578063aa4bde2814610707578063afa4f3b21461073257610230565b806380db1fbb146105b85780638a8c523c146105e35780638da5cb5b146105fa57806395d89b411461062557610230565b8063313ce567116101b15780636db79437116101755780636db79437146104d35780636ddd1713146104fc57806370a082311461052757806379243028146105645780637ba54f1f1461058f57610230565b8063313ce567146103d8578063395093511461040357806349bd5a5e146104405780634ada218b1461046b5780634fbee1931461049657610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c57806321a9d82a1461034757806323b872dd146103725780632a6c7dba146103af57610230565b8063066e6b751461023557806306fdde031461025e578063095ea7b3146102895780630ce30294146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190613281565b610911565b005b34801561026a57600080fd5b50610273610b44565b604051610280919061333e565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190613396565b610bd6565b6040516102bd91906133f1565b60405180910390f35b3480156102d257600080fd5b506102db610bf4565b6040516102e8919061341b565b60405180910390f35b3480156102fd57600080fd5b50610306610bfa565b6040516103139190613495565b60405180910390f35b34801561032857600080fd5b50610331610c20565b60405161033e919061341b565b60405180910390f35b34801561035357600080fd5b5061035c610c2a565b60405161036991906133f1565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906134b0565b610c3d565b6040516103a691906133f1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061352f565b610d5c565b005b3480156103e457600080fd5b506103ed610eab565b6040516103fa9190613578565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613396565b610eb4565b60405161043791906133f1565b60405180910390f35b34801561044c57600080fd5b50610455610f60565b60405161046291906135a2565b60405180910390f35b34801561047757600080fd5b50610480610f86565b60405161048d91906133f1565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613281565b610f99565b6040516104ca91906133f1565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f591906135bd565b610fef565b005b34801561050857600080fd5b5061051161115f565b60405161051e91906133f1565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613281565b611172565b60405161055b919061341b565b60405180910390f35b34801561057057600080fd5b506105796111ba565b60405161058691906135a2565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190613281565b6111e0565b005b3480156105c457600080fd5b506105cd61140c565b6040516105da91906135a2565b60405180910390f35b3480156105ef57600080fd5b506105f8611432565b005b34801561060657600080fd5b5061060f61155f565b60405161061c91906135a2565b60405180910390f35b34801561063157600080fd5b5061063a611589565b604051610647919061333e565b60405180910390f35b34801561065c57600080fd5b5061067760048036038101906106729190613396565b61161b565b60405161068491906133f1565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af9190613281565b611706565b6040516106c191906133f1565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec9190613396565b61175c565b6040516106fe91906133f1565b60405180910390f35b34801561071357600080fd5b5061071c61177a565b604051610729919061341b565b60405180910390f35b34801561073e57600080fd5b50610759600480360381019061075491906135fd565b611780565b005b34801561076757600080fd5b50610770611909565b60405161077d919061341b565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a8919061362a565b61190f565b005b3480156107bb57600080fd5b506107c4611ae1565b6040516107d1919061341b565b60405180910390f35b3480156107e657600080fd5b5061080160048036038101906107fc919061362a565b611ae7565b005b34801561080f57600080fd5b5061082a6004803603810190610825919061366a565b611d27565b604051610837919061341b565b60405180910390f35b34801561084c57600080fd5b506108676004803603810190610862919061352f565b611dae565b005b34801561087557600080fd5b5061087e611eb7565b60405161088b919061341b565b60405180910390f35b3480156108a057600080fd5b506108a9611ebd565b6040516108b6919061341b565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e19190613281565b611ec3565b005b3480156108f457600080fd5b5061090f600480360381019061090a9190613281565b612089565b005b6109196122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f906136f6565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e9061381a565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3f899bcf040109c4e2f804d9c89250dd1ccf292b7cc73ea0566524b0186ec5ed600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610b3991906135a2565b60405180910390a150565b606060038054610b5390613869565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7f90613869565b8015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b5050505050905090565b6000610bea610be36122f9565b8484612301565b6001905092915050565b600a5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b601360009054906101000a900460ff1681565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c896122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d455782811015610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d279061390c565b60405180910390fd5b610d4485610d3c6122f9565b858403612301565b5b610d508585856124ca565b60019150509392505050565b610d646122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea906136f6565b60405180910390fd5b601360009054906101000a900460ff16151581151503610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f9061399e565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1601360009054906101000a900460ff16604051610ea091906133f1565b60405180910390a150565b60006012905090565b6000610f56610ec16122f9565b848460016000610ecf6122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5191906139ed565b612301565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ff76122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d906136f6565b60405180910390fd5b600a548211156110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c290613a6d565b60405180910390fd5b600954811115611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790613a6d565b60405180910390fd5b81600a81905550806009819055507f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051611153929190613a8d565b60405180910390a15050565b600f60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790613b28565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790613788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113669061381a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe2491a2abd15e120355965e3bef7a5e9570d67de30ffddb7fc7408d0cb5450f8600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161140191906135a2565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143a6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c0906136f6565b60405180910390fd5b600f60029054906101000a900460ff1615611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090613b94565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055504360108190555042601181905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461159890613869565b80601f01602080910402602001604051908101604052809291908181526020018280546115c490613869565b80156116115780601f106115e657610100808354040283529160200191611611565b820191906000526020600020905b8154815290600101906020018083116115f457829003601f168201915b5050505050905090565b6000806001600061162a6122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613c26565b60405180910390fd5b6116fb6116f26122f9565b85858403612301565b600191505092915050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006117706117696122f9565b84846124ca565b6001905092915050565b60145481565b6117886122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e906136f6565b60405180910390fd5b620f4240611823610c20565b61182d9190613c75565b81101561186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690613d18565b60405180910390fd5b6103e861187a610c20565b6118849190613c75565b8111156118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90613daa565b60405180910390fd5b80600e819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600e546040516118fe919061341b565b60405180910390a150565b60115481565b6119176122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d906136f6565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90613e3c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611ad591906133f1565b60405180910390a25050565b60105481565b611aef6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b75906136f6565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613ece565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613f3a565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c82604051611d1b91906133f1565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611db66122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c906136f6565b60405180910390fd5b801515600f60019054906101000a900460ff16151503611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613fcc565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b60095481565b611ecb6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f51906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc09061405e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120916122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612120576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612117906136f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361218e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612185906140f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121f1576121eb473373ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506122f6565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161223191906135a2565b602060405180830381865afa15801561224e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122729190614125565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016122af929190614152565b6020604051808303816000875af11580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190614190565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123679061422f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d6906142c1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124bd919061341b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253090614353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f906143e5565b60405180910390fd5b600f60029054906101000a900460ff168061260c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126605750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269690614451565b60405180910390fd5b600081036126b8576126b383836000612c71565b612bb1565b60006126c330611172565b90506000600e5482101590508080156126e95750600f60009054906101000a900460ff16155b80156127425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561275a5750600f60019054906101000a900460ff165b1561279f576001600f60006101000a81548160ff02191690831515021790555061278382612ef0565b6000600f60006101000a81548160ff0219169083151502179055505b600080612a306011546127b291906139ed565b4211156127c8576009549150600a54905061281b565b611c206011546127d891906139ed565b4211156127ec5760009150600f905061281a565b610e106011546127fc91906139ed565b421115612810576000915060199050612819565b60059150601990505b5b5b6000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128be5750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128d55750600f60009054906101000a900460ff165b156128e357600090506129c3565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361295f57600360105461294791906139ed565b4311612956576063905061295a565b8290505b6129c2565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036129bc578190506129c1565b600090505b5b5b6000811115612a28576000606482886129dc9190614471565b6129e69190613c75565b905080876129f491906144b3565b9650612a01893083612c71565b600581612a0e9190613c75565b600b6000828254612a1f91906139ed565b92505081905550505b601360009054906101000a900460ff1615612ba057601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ae15750601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b3b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612b9f576000612b4b88611172565b90506014548782612b5c91906139ed565b1115612b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9490614559565b60405180910390fd5b505b5b612bab888888612c71565b50505050505b505050565b600081471015612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf2906145c5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612c2190614616565b60006040518083038185875af1925050503d8060008114612c5e576040519150601f19603f3d011682016040523d82523d6000602084013e612c63565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd790614353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d46906143e5565b60405180910390fd5b612d5a838383613214565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd79061469d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e7391906139ed565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ed7919061341b565b60405180910390a3612eea848484613219565b50505050565b60004790506000600267ffffffffffffffff811115612f1257612f116146bd565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576146ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130239190614730565b81600181518110613037576130366146ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016130d5959493929190614856565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b505050506000824761311591906144b3565b9050600084600b54836131289190614471565b6131329190613c75565b905061317f81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506131cb47600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506000600b819055507f4fb35cdb55260c191654ba032a78be45ea994738b8bc6279d11a20db6b2e2e998583604051613205929190613a8d565b60405180910390a15050505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061324e82613223565b9050919050565b61325e81613243565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b6000602082840312156132975761329661321e565b5b60006132a58482850161326c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132e85780820151818401526020810190506132cd565b60008484015250505050565b6000601f19601f8301169050919050565b6000613310826132ae565b61331a81856132b9565b935061332a8185602086016132ca565b613333816132f4565b840191505092915050565b600060208201905081810360008301526133588184613305565b905092915050565b6000819050919050565b61337381613360565b811461337e57600080fd5b50565b6000813590506133908161336a565b92915050565b600080604083850312156133ad576133ac61321e565b5b60006133bb8582860161326c565b92505060206133cc85828601613381565b9150509250929050565b60008115159050919050565b6133eb816133d6565b82525050565b600060208201905061340660008301846133e2565b92915050565b61341581613360565b82525050565b6000602082019050613430600083018461340c565b92915050565b6000819050919050565b600061345b61345661345184613223565b613436565b613223565b9050919050565b600061346d82613440565b9050919050565b600061347f82613462565b9050919050565b61348f81613474565b82525050565b60006020820190506134aa6000830184613486565b92915050565b6000806000606084860312156134c9576134c861321e565b5b60006134d78682870161326c565b93505060206134e88682870161326c565b92505060406134f986828701613381565b9150509250925092565b61350c816133d6565b811461351757600080fd5b50565b60008135905061352981613503565b92915050565b6000602082840312156135455761354461321e565b5b60006135538482850161351a565b91505092915050565b600060ff82169050919050565b6135728161355c565b82525050565b600060208201905061358d6000830184613569565b92915050565b61359c81613243565b82525050565b60006020820190506135b76000830184613593565b92915050565b600080604083850312156135d4576135d361321e565b5b60006135e285828601613381565b92505060206135f385828601613381565b9150509250929050565b6000602082840312156136135761361261321e565b5b600061362184828501613381565b91505092915050565b600080604083850312156136415761364061321e565b5b600061364f8582860161326c565b92505060206136608582860161351a565b9150509250929050565b600080604083850312156136815761368061321e565b5b600061368f8582860161326c565b92505060206136a08582860161326c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e06020836132b9565b91506136eb826136aa565b602082019050919050565b6000602082019050818103600083015261370f816136d3565b9050919050565b7f426c6f636b46756e642077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006137726028836132b9565b915061377d82613716565b604082019050919050565b600060208201905081810360008301526137a181613765565b9050919050565b7f426c6f636b46756e642077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613804602b836132b9565b915061380f826137a8565b604082019050919050565b60006020820190508181036000830152613833816137f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061388157607f821691505b6020821081036138945761389361383a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138f66028836132b9565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b9050919050565b7f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060008201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b6000613988602d836132b9565b91506139938261392c565b604082019050919050565b600060208201905081810360008301526139b78161397b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f882613360565b9150613a0383613360565b9250828201905080821115613a1b57613a1a6139be565b5b92915050565b7f596f752063616e206f6e6c792064656372656173652074686520666565730000600082015250565b6000613a57601e836132b9565b9150613a6282613a21565b602082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b6000604082019050613aa2600083018561340c565b613aaf602083018461340c565b9392505050565b7f4f6e6c79206c69717569646974792077616c6c65742063616e206368616e676560008201527f2074686973000000000000000000000000000000000000000000000000000000602082015250565b6000613b126025836132b9565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000613b7e6018836132b9565b9150613b8982613b48565b602082019050919050565b60006020820190508181036000830152613bad81613b71565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c106025836132b9565b9150613c1b82613bb4565b604082019050919050565b60006020820190508181036000830152613c3f81613c03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8082613360565b9150613c8b83613360565b925082613c9b57613c9a613c46565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b6000613d02603f836132b9565b9150613d0d82613ca6565b604082019050919050565b60006020820190508181036000830152613d3181613cf5565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3125206f6620746f74616c20737570706c7900000000602082015250565b6000613d94603c836132b9565b9150613d9f82613d38565b604082019050919050565b60006020820190508181036000830152613dc381613d87565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613e26602a836132b9565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb86024836132b9565b9150613ec382613e5c565b604082019050919050565b60006020820190508181036000830152613ee781613eab565b9050919050565b7f43616e277420736574207468697320616464726573732e000000000000000000600082015250565b6000613f246017836132b9565b9150613f2f82613eee565b602082019050919050565b60006020820190508181036000830152613f5381613f17565b9050919050565b7f73776170456e61626c656420616c72656164792061742074686973207374617460008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb66022836132b9565b9150613fc182613f5a565b604082019050919050565b60006020820190508181036000830152613fe581613fa9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140486026836132b9565b915061405382613fec565b604082019050919050565b600060208201905081810360008301526140778161403b565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b60006140da6037836132b9565b91506140e58261407e565b604082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b60008151905061411f8161336a565b92915050565b60006020828403121561413b5761413a61321e565b5b600061414984828501614110565b91505092915050565b60006040820190506141676000830185613593565b614174602083018461340c565b9392505050565b60008151905061418a81613503565b92915050565b6000602082840312156141a6576141a561321e565b5b60006141b48482850161417b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142196024836132b9565b9150614224826141bd565b604082019050919050565b600060208201905081810360008301526142488161420c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ab6022836132b9565b91506142b68261424f565b604082019050919050565b600060208201905081810360008301526142da8161429e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061433d6025836132b9565b9150614348826142e1565b604082019050919050565b6000602082019050818103600083015261436c81614330565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143cf6023836132b9565b91506143da82614373565b604082019050919050565b600060208201905081810360008301526143fe816143c2565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b600061443b6018836132b9565b915061444682614405565b602082019050919050565b6000602082019050818103600083015261446a8161442e565b9050919050565b600061447c82613360565b915061448783613360565b925082820261449581613360565b915082820484148315176144ac576144ab6139be565b5b5092915050565b60006144be82613360565b91506144c983613360565b92508282039050818111156144e1576144e06139be565b5b92915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b60006145436030836132b9565b915061454e826144e7565b604082019050919050565b6000602082019050818103600083015261457281614536565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006145af601d836132b9565b91506145ba82614579565b602082019050919050565b600060208201905081810360008301526145de816145a2565b9050919050565b600081905092915050565b50565b60006146006000836145e5565b915061460b826145f0565b600082019050919050565b6000614621826145f3565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146876026836132b9565b91506146928261462b565b604082019050919050565b600060208201905081810360008301526146b68161467a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061472a81613255565b92915050565b6000602082840312156147465761474561321e565b5b60006147548482850161471b565b91505092915050565b6000819050919050565b600061478261477d6147788461475d565b613436565b613360565b9050919050565b61479281614767565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147cd81613243565b82525050565b60006147df83836147c4565b60208301905092915050565b6000602082019050919050565b600061480382614798565b61480d81856147a3565b9350614818836147b4565b8060005b8381101561484957815161483088826147d3565b975061483b836147eb565b92505060018101905061481c565b5085935050505092915050565b600060a08201905061486b600083018861340c565b6148786020830187614789565b818103604083015261488a81866147f8565b90506148996060830185613593565b6148a6608083018461340c565b969550505050505056fea2646970667358221220cea4641844cb547962fcc1c67e4668a0dd41d259a4dee4dad73fbd79e5a296c464736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806380db1fbb11610123578063b8158d60116100ab578063e01af92c1161006f578063e01af92c14610840578063e2f4560514610869578063e4e4489314610894578063f2fde38b146108bf578063f9d0831a146108e857610230565b8063b8158d601461075b578063c024666814610786578063cd51e6d4146107af578063d2fcc001146107da578063dd62ed3e1461080357610230565b8063a457c2d7116100f2578063a457c2d714610650578063a8a69b9d1461068d578063a9059cbb146106ca578063aa4bde2814610707578063afa4f3b21461073257610230565b806380db1fbb146105b85780638a8c523c146105e35780638da5cb5b146105fa57806395d89b411461062557610230565b8063313ce567116101b15780636db79437116101755780636db79437146104d35780636ddd1713146104fc57806370a082311461052757806379243028146105645780637ba54f1f1461058f57610230565b8063313ce567146103d8578063395093511461040357806349bd5a5e146104405780634ada218b1461046b5780634fbee1931461049657610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c57806321a9d82a1461034757806323b872dd146103725780632a6c7dba146103af57610230565b8063066e6b751461023557806306fdde031461025e578063095ea7b3146102895780630ce30294146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190613281565b610911565b005b34801561026a57600080fd5b50610273610b44565b604051610280919061333e565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190613396565b610bd6565b6040516102bd91906133f1565b60405180910390f35b3480156102d257600080fd5b506102db610bf4565b6040516102e8919061341b565b60405180910390f35b3480156102fd57600080fd5b50610306610bfa565b6040516103139190613495565b60405180910390f35b34801561032857600080fd5b50610331610c20565b60405161033e919061341b565b60405180910390f35b34801561035357600080fd5b5061035c610c2a565b60405161036991906133f1565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906134b0565b610c3d565b6040516103a691906133f1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061352f565b610d5c565b005b3480156103e457600080fd5b506103ed610eab565b6040516103fa9190613578565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613396565b610eb4565b60405161043791906133f1565b60405180910390f35b34801561044c57600080fd5b50610455610f60565b60405161046291906135a2565b60405180910390f35b34801561047757600080fd5b50610480610f86565b60405161048d91906133f1565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613281565b610f99565b6040516104ca91906133f1565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f591906135bd565b610fef565b005b34801561050857600080fd5b5061051161115f565b60405161051e91906133f1565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613281565b611172565b60405161055b919061341b565b60405180910390f35b34801561057057600080fd5b506105796111ba565b60405161058691906135a2565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190613281565b6111e0565b005b3480156105c457600080fd5b506105cd61140c565b6040516105da91906135a2565b60405180910390f35b3480156105ef57600080fd5b506105f8611432565b005b34801561060657600080fd5b5061060f61155f565b60405161061c91906135a2565b60405180910390f35b34801561063157600080fd5b5061063a611589565b604051610647919061333e565b60405180910390f35b34801561065c57600080fd5b5061067760048036038101906106729190613396565b61161b565b60405161068491906133f1565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af9190613281565b611706565b6040516106c191906133f1565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec9190613396565b61175c565b6040516106fe91906133f1565b60405180910390f35b34801561071357600080fd5b5061071c61177a565b604051610729919061341b565b60405180910390f35b34801561073e57600080fd5b50610759600480360381019061075491906135fd565b611780565b005b34801561076757600080fd5b50610770611909565b60405161077d919061341b565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a8919061362a565b61190f565b005b3480156107bb57600080fd5b506107c4611ae1565b6040516107d1919061341b565b60405180910390f35b3480156107e657600080fd5b5061080160048036038101906107fc919061362a565b611ae7565b005b34801561080f57600080fd5b5061082a6004803603810190610825919061366a565b611d27565b604051610837919061341b565b60405180910390f35b34801561084c57600080fd5b506108676004803603810190610862919061352f565b611dae565b005b34801561087557600080fd5b5061087e611eb7565b60405161088b919061341b565b60405180910390f35b3480156108a057600080fd5b506108a9611ebd565b6040516108b6919061341b565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e19190613281565b611ec3565b005b3480156108f457600080fd5b5061090f600480360381019061090a9190613281565b612089565b005b6109196122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f906136f6565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e9061381a565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3f899bcf040109c4e2f804d9c89250dd1ccf292b7cc73ea0566524b0186ec5ed600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610b3991906135a2565b60405180910390a150565b606060038054610b5390613869565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7f90613869565b8015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b5050505050905090565b6000610bea610be36122f9565b8484612301565b6001905092915050565b600a5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b601360009054906101000a900460ff1681565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c896122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d455782811015610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d279061390c565b60405180910390fd5b610d4485610d3c6122f9565b858403612301565b5b610d508585856124ca565b60019150509392505050565b610d646122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea906136f6565b60405180910390fd5b601360009054906101000a900460ff16151581151503610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f9061399e565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1601360009054906101000a900460ff16604051610ea091906133f1565b60405180910390a150565b60006012905090565b6000610f56610ec16122f9565b848460016000610ecf6122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5191906139ed565b612301565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ff76122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d906136f6565b60405180910390fd5b600a548211156110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c290613a6d565b60405180910390fd5b600954811115611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790613a6d565b60405180910390fd5b81600a81905550806009819055507f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051611153929190613a8d565b60405180910390a15050565b600f60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790613b28565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790613788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113669061381a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe2491a2abd15e120355965e3bef7a5e9570d67de30ffddb7fc7408d0cb5450f8600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161140191906135a2565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143a6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c0906136f6565b60405180910390fd5b600f60029054906101000a900460ff1615611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090613b94565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055504360108190555042601181905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461159890613869565b80601f01602080910402602001604051908101604052809291908181526020018280546115c490613869565b80156116115780601f106115e657610100808354040283529160200191611611565b820191906000526020600020905b8154815290600101906020018083116115f457829003601f168201915b5050505050905090565b6000806001600061162a6122f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613c26565b60405180910390fd5b6116fb6116f26122f9565b85858403612301565b600191505092915050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006117706117696122f9565b84846124ca565b6001905092915050565b60145481565b6117886122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e906136f6565b60405180910390fd5b620f4240611823610c20565b61182d9190613c75565b81101561186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690613d18565b60405180910390fd5b6103e861187a610c20565b6118849190613c75565b8111156118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90613daa565b60405180910390fd5b80600e819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600e546040516118fe919061341b565b60405180910390a150565b60115481565b6119176122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d906136f6565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90613e3c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611ad591906133f1565b60405180910390a25050565b60105481565b611aef6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b75906136f6565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613ece565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613f3a565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c82604051611d1b91906133f1565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611db66122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c906136f6565b60405180910390fd5b801515600f60019054906101000a900460ff16151503611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613fcc565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b60095481565b611ecb6122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f51906136f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc09061405e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120916122f9565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612120576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612117906136f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361218e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612185906140f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121f1576121eb473373ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506122f6565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161223191906135a2565b602060405180830381865afa15801561224e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122729190614125565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016122af929190614152565b6020604051808303816000875af11580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190614190565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123679061422f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d6906142c1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124bd919061341b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253090614353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f906143e5565b60405180910390fd5b600f60029054906101000a900460ff168061260c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126605750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269690614451565b60405180910390fd5b600081036126b8576126b383836000612c71565b612bb1565b60006126c330611172565b90506000600e5482101590508080156126e95750600f60009054906101000a900460ff16155b80156127425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561275a5750600f60019054906101000a900460ff165b1561279f576001600f60006101000a81548160ff02191690831515021790555061278382612ef0565b6000600f60006101000a81548160ff0219169083151502179055505b600080612a306011546127b291906139ed565b4211156127c8576009549150600a54905061281b565b611c206011546127d891906139ed565b4211156127ec5760009150600f905061281a565b610e106011546127fc91906139ed565b421115612810576000915060199050612819565b60059150601990505b5b5b6000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128be5750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128d55750600f60009054906101000a900460ff165b156128e357600090506129c3565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361295f57600360105461294791906139ed565b4311612956576063905061295a565b8290505b6129c2565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036129bc578190506129c1565b600090505b5b5b6000811115612a28576000606482886129dc9190614471565b6129e69190613c75565b905080876129f491906144b3565b9650612a01893083612c71565b600581612a0e9190613c75565b600b6000828254612a1f91906139ed565b92505081905550505b601360009054906101000a900460ff1615612ba057601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ae15750601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b3b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612b9f576000612b4b88611172565b90506014548782612b5c91906139ed565b1115612b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9490614559565b60405180910390fd5b505b5b612bab888888612c71565b50505050505b505050565b600081471015612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf2906145c5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612c2190614616565b60006040518083038185875af1925050503d8060008114612c5e576040519150601f19603f3d011682016040523d82523d6000602084013e612c63565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd790614353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d46906143e5565b60405180910390fd5b612d5a838383613214565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd79061469d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e7391906139ed565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ed7919061341b565b60405180910390a3612eea848484613219565b50505050565b60004790506000600267ffffffffffffffff811115612f1257612f116146bd565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576146ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130239190614730565b81600181518110613037576130366146ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016130d5959493929190614856565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b505050506000824761311591906144b3565b9050600084600b54836131289190614471565b6131329190613c75565b905061317f81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506131cb47600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bb690919063ffffffff16565b506000600b819055507f4fb35cdb55260c191654ba032a78be45ea994738b8bc6279d11a20db6b2e2e998583604051613205929190613a8d565b60405180910390a15050505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061324e82613223565b9050919050565b61325e81613243565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b6000602082840312156132975761329661321e565b5b60006132a58482850161326c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132e85780820151818401526020810190506132cd565b60008484015250505050565b6000601f19601f8301169050919050565b6000613310826132ae565b61331a81856132b9565b935061332a8185602086016132ca565b613333816132f4565b840191505092915050565b600060208201905081810360008301526133588184613305565b905092915050565b6000819050919050565b61337381613360565b811461337e57600080fd5b50565b6000813590506133908161336a565b92915050565b600080604083850312156133ad576133ac61321e565b5b60006133bb8582860161326c565b92505060206133cc85828601613381565b9150509250929050565b60008115159050919050565b6133eb816133d6565b82525050565b600060208201905061340660008301846133e2565b92915050565b61341581613360565b82525050565b6000602082019050613430600083018461340c565b92915050565b6000819050919050565b600061345b61345661345184613223565b613436565b613223565b9050919050565b600061346d82613440565b9050919050565b600061347f82613462565b9050919050565b61348f81613474565b82525050565b60006020820190506134aa6000830184613486565b92915050565b6000806000606084860312156134c9576134c861321e565b5b60006134d78682870161326c565b93505060206134e88682870161326c565b92505060406134f986828701613381565b9150509250925092565b61350c816133d6565b811461351757600080fd5b50565b60008135905061352981613503565b92915050565b6000602082840312156135455761354461321e565b5b60006135538482850161351a565b91505092915050565b600060ff82169050919050565b6135728161355c565b82525050565b600060208201905061358d6000830184613569565b92915050565b61359c81613243565b82525050565b60006020820190506135b76000830184613593565b92915050565b600080604083850312156135d4576135d361321e565b5b60006135e285828601613381565b92505060206135f385828601613381565b9150509250929050565b6000602082840312156136135761361261321e565b5b600061362184828501613381565b91505092915050565b600080604083850312156136415761364061321e565b5b600061364f8582860161326c565b92505060206136608582860161351a565b9150509250929050565b600080604083850312156136815761368061321e565b5b600061368f8582860161326c565b92505060206136a08582860161326c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e06020836132b9565b91506136eb826136aa565b602082019050919050565b6000602082019050818103600083015261370f816136d3565b9050919050565b7f426c6f636b46756e642077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006137726028836132b9565b915061377d82613716565b604082019050919050565b600060208201905081810360008301526137a181613765565b9050919050565b7f426c6f636b46756e642077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613804602b836132b9565b915061380f826137a8565b604082019050919050565b60006020820190508181036000830152613833816137f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061388157607f821691505b6020821081036138945761389361383a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138f66028836132b9565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b9050919050565b7f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060008201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b6000613988602d836132b9565b91506139938261392c565b604082019050919050565b600060208201905081810360008301526139b78161397b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f882613360565b9150613a0383613360565b9250828201905080821115613a1b57613a1a6139be565b5b92915050565b7f596f752063616e206f6e6c792064656372656173652074686520666565730000600082015250565b6000613a57601e836132b9565b9150613a6282613a21565b602082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b6000604082019050613aa2600083018561340c565b613aaf602083018461340c565b9392505050565b7f4f6e6c79206c69717569646974792077616c6c65742063616e206368616e676560008201527f2074686973000000000000000000000000000000000000000000000000000000602082015250565b6000613b126025836132b9565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000613b7e6018836132b9565b9150613b8982613b48565b602082019050919050565b60006020820190508181036000830152613bad81613b71565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c106025836132b9565b9150613c1b82613bb4565b604082019050919050565b60006020820190508181036000830152613c3f81613c03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8082613360565b9150613c8b83613360565b925082613c9b57613c9a613c46565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b6000613d02603f836132b9565b9150613d0d82613ca6565b604082019050919050565b60006020820190508181036000830152613d3181613cf5565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3125206f6620746f74616c20737570706c7900000000602082015250565b6000613d94603c836132b9565b9150613d9f82613d38565b604082019050919050565b60006020820190508181036000830152613dc381613d87565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613e26602a836132b9565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb86024836132b9565b9150613ec382613e5c565b604082019050919050565b60006020820190508181036000830152613ee781613eab565b9050919050565b7f43616e277420736574207468697320616464726573732e000000000000000000600082015250565b6000613f246017836132b9565b9150613f2f82613eee565b602082019050919050565b60006020820190508181036000830152613f5381613f17565b9050919050565b7f73776170456e61626c656420616c72656164792061742074686973207374617460008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb66022836132b9565b9150613fc182613f5a565b604082019050919050565b60006020820190508181036000830152613fe581613fa9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140486026836132b9565b915061405382613fec565b604082019050919050565b600060208201905081810360008301526140778161403b565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b60006140da6037836132b9565b91506140e58261407e565b604082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b60008151905061411f8161336a565b92915050565b60006020828403121561413b5761413a61321e565b5b600061414984828501614110565b91505092915050565b60006040820190506141676000830185613593565b614174602083018461340c565b9392505050565b60008151905061418a81613503565b92915050565b6000602082840312156141a6576141a561321e565b5b60006141b48482850161417b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142196024836132b9565b9150614224826141bd565b604082019050919050565b600060208201905081810360008301526142488161420c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ab6022836132b9565b91506142b68261424f565b604082019050919050565b600060208201905081810360008301526142da8161429e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061433d6025836132b9565b9150614348826142e1565b604082019050919050565b6000602082019050818103600083015261436c81614330565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143cf6023836132b9565b91506143da82614373565b604082019050919050565b600060208201905081810360008301526143fe816143c2565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b600061443b6018836132b9565b915061444682614405565b602082019050919050565b6000602082019050818103600083015261446a8161442e565b9050919050565b600061447c82613360565b915061448783613360565b925082820261449581613360565b915082820484148315176144ac576144ab6139be565b5b5092915050565b60006144be82613360565b91506144c983613360565b92508282039050818111156144e1576144e06139be565b5b92915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b60006145436030836132b9565b915061454e826144e7565b604082019050919050565b6000602082019050818103600083015261457281614536565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006145af601d836132b9565b91506145ba82614579565b602082019050919050565b600060208201905081810360008301526145de816145a2565b9050919050565b600081905092915050565b50565b60006146006000836145e5565b915061460b826145f0565b600082019050919050565b6000614621826145f3565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146876026836132b9565b91506146928261462b565b604082019050919050565b600060208201905081810360008301526146b68161467a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061472a81613255565b92915050565b6000602082840312156147465761474561321e565b5b60006147548482850161471b565b91505092915050565b6000819050919050565b600061478261477d6147788461475d565b613436565b613360565b9050919050565b61479281614767565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147cd81613243565b82525050565b60006147df83836147c4565b60208301905092915050565b6000602082019050919050565b600061480382614798565b61480d81856147a3565b9350614818836147b4565b8060005b8381101561484957815161483088826147d3565b975061483b836147eb565b92505060018101905061481c565b5085935050505092915050565b600060a08201905061486b600083018861340c565b6148786020830187614789565b818103604083015261488a81866147f8565b90506148996060830185613593565b6148a6608083018461340c565b969550505050505056fea2646970667358221220cea4641844cb547962fcc1c67e4668a0dd41d259a4dee4dad73fbd79e5a296c464736f6c63430008110033

Deployed Bytecode Sourcemap

15548:10816:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19657:380;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10833:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11747:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15808:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15628:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11154:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25239:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11924:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25529:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11053:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12505:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15676:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20579:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19151:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19284:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16045:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11270:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15923:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20045:526;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15885:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20681:253;;;;;;;;;;;;;:::i;:::-;;9962:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10941:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26216:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11405:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25282:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23872:423;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20646:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18853:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20612:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25817:391;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11588:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23685:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15971:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15776:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10176:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18380:465;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19657:380;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19771:15:::1;;;;;;;;;;;19751:35;;:16;:35;;::::0;19743:88:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19878:1;19850:30;;:16;:30;;::::0;19842:85:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19956:16;19938:15;;:34;;;;;;;;;;;;;;;;;;19990:39;20013:15;;;;;;;;;;;19990:39;;;;;;:::i;:::-;;;;;;;;19657:380:::0;:::o;10833:100::-;10887:13;10920:5;10913:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10833:100;:::o;11747:169::-;11830:4;11847:39;11856:12;:10;:12::i;:::-;11870:7;11879:6;11847:8;:39::i;:::-;11904:4;11897:11;;11747:169;;;;:::o;15808:26::-;;;;:::o;15628:41::-;;;;;;;;;;;;;:::o;11154:108::-;11215:7;11242:12;;11235:19;;11154:108;:::o;25239:36::-;;;;;;;;;;;;;:::o;11924:573::-;12064:4;12081:24;12108:11;:19;12120:6;12108:19;;;;;;;;;;;;;;;:33;12128:12;:10;:12::i;:::-;12108:33;;;;;;;;;;;;;;;;12081:60;;12176:17;12156:16;:37;12152:265;;12238:6;12218:16;:26;;12210:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12333:57;12342:6;12350:12;:10;:12::i;:::-;12383:6;12364:16;:25;12333:8;:57::i;:::-;12152:265;12429:36;12439:6;12447:9;12458:6;12429:9;:36::i;:::-;12485:4;12478:11;;;11924:573;;;;;:::o;25529:280::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25623:21:::1;;;;;;;;;;;25613:31;;:6;:31;;::::0;25605:88:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25728:6;25704:21;;:30;;;;;;;;;;;;;;;;;;25752:49;25779:21;;;;;;;;;;;25752:49;;;;;;:::i;:::-;;;;;;;;25529:280:::0;:::o;11053:93::-;11111:5;11136:2;11129:9;;11053:93;:::o;12505:215::-;12593:4;12610:80;12619:12;:10;:12::i;:::-;12633:7;12679:10;12642:11;:25;12654:12;:10;:12::i;:::-;12642:25;;;;;;;;;;;;;;;:34;12668:7;12642:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12610:8;:80::i;:::-;12708:4;12701:11;;12505:215;;;;:::o;15676:29::-;;;;;;;;;;;;;:::o;20579:26::-;;;;;;;;;;;;;:::o;19151:125::-;19216:4;19240:19;:28;19260:7;19240:28;;;;;;;;;;;;;;;;;;;;;;;;;19233:35;;19151:125;;;:::o;19284:365::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19398:10:::1;;19383:11;:25;;19375:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19476:9;;19462:10;:23;;19454:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19546:11;19533:10;:24;;;;19580:10;19568:9;:22;;;;19608:33;19619:10;;19631:9;;19608:33;;;;;;;:::i;:::-;;;;;;;;19284:365:::0;;:::o;16045:26::-;;;;;;;;;;;;;:::o;11270:127::-;11344:7;11371:9;:18;11381:7;11371:18;;;;;;;;;;;;;;;;11364:25;;11270:127;;;:::o;15923:39::-;;;;;;;;;;;;;:::o;20045:526::-;20152:23;;;;;;;;;;;20138:37;;:10;:37;;;20130:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20264:23;;;;;;;;;;;20236:51;;:24;:51;;;20228:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;20387:1;20351:38;;:24;:38;;;20343:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;20473:24;20447:23;;:50;;;;;;;;;;;;;;;;;;20515:48;20539:23;;;;;;;;;;;20515:48;;;;;;:::i;:::-;;;;;;;;20045:526;:::o;15885:31::-;;;;;;;;;;;;;:::o;20681:253::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20744:14:::1;;;;;;;;;;;20743:15;20735:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20815:4;20798:14;;:21;;;;;;;;;;;;;;;;;;20844:4;20830:11;;:18;;;;;;;;;;;;;;;;;;20874:12;20859;:27;;;;20911:15;20897:11;:29;;;;20681:253::o:0;9962:79::-;10000:7;10027:6;;;;;;;;;;;10020:13;;9962:79;:::o;10941:104::-;10997:13;11030:7;11023:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10941:104;:::o;12728:413::-;12821:4;12838:24;12865:11;:25;12877:12;:10;:12::i;:::-;12865:25;;;;;;;;;;;;;;;:34;12891:7;12865:34;;;;;;;;;;;;;;;;12838:61;;12938:15;12918:16;:35;;12910:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13031:67;13040:12;:10;:12::i;:::-;13054:7;13082:15;13063:16;:34;13031:8;:67::i;:::-;13129:4;13122:11;;;12728:413;;;;:::o;26216:145::-;26291:4;26315:29;:38;26345:7;26315:38;;;;;;;;;;;;;;;;;;;;;;;;;26308:45;;26216:145;;;:::o;11405:175::-;11491:4;11508:42;11518:12;:10;:12::i;:::-;11532:9;11543:6;11508:9;:42::i;:::-;11568:4;11561:11;;11405:175;;;;:::o;25282:30::-;;;;:::o;23872:423::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23988:9:::1;23972:13;:11;:13::i;:::-;:25;;;;:::i;:::-;23959:9;:38;;23951:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;24113:5;24097:13;:11;:13::i;:::-;:21;;;;:::i;:::-;24084:9;:34;;24076:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;24215:9;24194:18;:30;;;;24242:45;24268:18;;24242:45;;;;;;:::i;:::-;;;;;;;;23872:423:::0;:::o;20646:26::-;;;;:::o;18853:290::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18979:8:::1;18947:40;;:19;:28;18967:7;18947:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;18939:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19075:8;19044:19;:28;19064:7;19044:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19117:7;19101:34;;;19126:8;19101:34;;;;;;:::i;:::-;;;;;;;;18853:290:::0;;:::o;20612:27::-;;;;:::o;25817:391::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25959:7:::1;25917:49;;:29;:38;25947:7;25917:38;;;;;;;;;;;;;;;;;;;;;;;;;:49;;::::0;25908:98:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;26044:4;26025:24;;:7;:24;;::::0;26017:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;26131:7;26090:29;:38;26120:7;26090:38;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;26183:7;26156:44;;;26192:7;26156:44;;;;;;:::i;:::-;;;;;;;;25817:391:::0;;:::o;11588:151::-;11677:7;11704:11;:18;11716:5;11704:18;;;;;;;;;;;;;;;:27;11723:7;11704:27;;;;;;;;;;;;;;;;11697:34;;11588:151;;;;:::o;23685:179::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23776:8:::1;23761:23;;:11;;;;;;;;;;;:23;;::::0;23753:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23848:8;23834:11;;:22;;;;;;;;;;;;;;;;;;23685:179:::0;:::o;15971:34::-;;;;:::o;15776:25::-;;;;:::o;10176:244::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10285:1:::1;10265:22;;:8;:22;;::::0;10257:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10375:8;10346:38;;10367:6;;;;;;;;;;;10346:38;;;;;;;;;;;;10404:8;10395:6;;:17;;;;;;;;;;;;;;;;;;10176:244:::0;:::o;18380:465::-;10099:12;:10;:12::i;:::-;10089:22;;:6;;;;;;;;;;;:22;;;10081:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18476:4:::1;18459:22;;:5;:22;;::::0;18451:90:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18573:3;18556:21;;:5;:21;;::::0;18552:127:::1;;18594:52;18624:21;18602:10;18594:29;;;;:52;;;;:::i;:::-;;18661:7;;18552:127;18689:17;18716:5;18689:33;;18733:15;18751:10;:20;;;18780:4;18751:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18733:53;;18797:10;:19;;;18817:10;18829:7;18797:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18440:405;;10159:1;18380:465:::0;:::o;9285:98::-;9338:7;9365:10;9358:17;;9285:98;:::o;14896:380::-;15049:1;15032:19;;:5;:19;;;15024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15130:1;15111:21;;:7;:21;;;15103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15214:6;15184:11;:18;15196:5;15184:18;;;;;;;;;;;;;;;:27;15203:7;15184:27;;;;;;;;;;;;;;;:36;;;;15252:7;15236:32;;15245:5;15236:32;;;15261:6;15236:32;;;;;;:::i;:::-;;;;;;;;14896:380;;;:::o;20942:2735::-;21055:1;21039:18;;:4;:18;;;21031:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21132:1;21118:16;;:2;:16;;;21110:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21193:14;;;;;;;;;;;:43;;;;21211:19;:25;21231:4;21211:25;;;;;;;;;;;;;;;;;;;;;;;;;21193:43;:70;;;;21240:19;:23;21260:2;21240:23;;;;;;;;;;;;;;;;;;;;;;;;;21193:70;21185:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;21326:1;21316:6;:11;21312:93;;21344:28;21360:4;21366:2;21370:1;21344:15;:28::i;:::-;21387:7;;21312:93;21411:28;21442:24;21460:4;21442:9;:24::i;:::-;21411:55;;21479:12;21518:18;;21494:20;:42;;21479:57;;21553:7;:33;;;;;21578:8;;;;;;;;;;;21577:9;21553:33;:69;;;;;21609:13;;;;;;;;;;;21603:19;;:2;:19;;;21553:69;:97;;;;;21639:11;;;;;;;;;;;21553:97;21549:252;;;21688:4;21677:8;;:15;;;;;;;;;;;;;;;;;;21709:42;21730:20;21709;:42::i;:::-;21784:5;21773:8;;:16;;;;;;;;;;;;;;;;;;21549:252;21813:16;21840:17;21907:11;21892;;:27;;;;:::i;:::-;21874:15;:45;21870:555;;;21975:9;;21964:20;;22011:10;;21999:22;;21870:555;;;22076:11;22061;;:27;;;;:::i;:::-;22043:15;:45;22039:386;;;22139:1;22128:12;;22167:2;22155:14;;22039:386;;;22224:10;22209:11;;:26;;;;:::i;:::-;22191:15;:44;22187:238;;;22286:1;22275:12;;22314:2;22302:14;;22187:238;;;22383:1;22372:12;;22411:2;22399:14;;22187:238;22039:386;21870:555;22437:18;22470:19;:25;22490:4;22470:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22499:19;:23;22519:2;22499:23;;;;;;;;;;;;;;;;;;;;;;;;;22470:52;:64;;;;22526:8;;;;;;;;;;;22470:64;22466:446;;;22564:1;22551:14;;22466:446;;;22595:13;;;;;;;;;;;22587:21;;:4;:21;;;22583:329;;22660:1;22645:12;;:16;;;;:::i;:::-;22629:12;:32;22625:149;;22694:2;22681:15;;22625:149;;;22750:8;22737:21;;22625:149;22583:329;;;22801:13;;;;;;;;;;;22795:19;;:2;:19;;;22791:121;;22844:9;22831:22;;22791:121;;;22899:1;22886:14;;22791:121;22583:329;22466:446;22941:1;22928:10;:14;22924:229;;;22959:12;22998:3;22984:10;22975:6;:19;;;;:::i;:::-;22974:27;;;;:::i;:::-;22959:42;;23034:4;23025:6;:13;;;;:::i;:::-;23016:22;;23053:42;23069:4;23083;23090;23053:15;:42::i;:::-;23140:1;23133:4;:8;;;;:::i;:::-;23112:17;;:29;;;;;;;:::i;:::-;;;;;;;;22944:209;22924:229;23169:21;;;;;;;;;;;23165:459;;;23222:29;:35;23252:4;23222:35;;;;;;;;;;;;;;;;;;;;;;;;;23221:36;:92;;;;;23280:29;:33;23310:2;23280:33;;;;;;;;;;;;;;;;;;;;;;;;;23279:34;23221:92;:132;;;;;23340:13;;;;;;;;;;;23334:19;;:2;:19;;;;23221:132;23217:396;;;23388:15;23407:13;23417:2;23407:9;:13::i;:::-;23388:32;;23489:15;;23479:6;23469:7;:16;;;;:::i;:::-;:35;;23439:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;23369:244;23217:396;23165:459;23636:33;23652:4;23658:2;23662:6;23636:15;:33::i;:::-;21020:2657;;;;;20942:2735;;;;:::o;8979:266::-;9058:4;9107:6;9082:21;:31;;9074:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9161:12;9179:9;:14;;9201:6;9179:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9160:52;;;9230:7;9223:14;;;8979:266;;;;:::o;13149:733::-;13307:1;13289:20;;:6;:20;;;13281:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13391:1;13370:23;;:9;:23;;;13362:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13446:47;13467:6;13475:9;13486:6;13446:20;:47::i;:::-;13506:21;13530:9;:17;13540:6;13530:17;;;;;;;;;;;;;;;;13506:41;;13583:6;13566:13;:23;;13558:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13704:6;13688:13;:22;13668:9;:17;13678:6;13668:17;;;;;;;;;;;;;;;:42;;;;13756:6;13732:9;:20;13742:9;13732:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13797:9;13780:35;;13789:6;13780:35;;;13808:6;13780:35;;;;;;:::i;:::-;;;;;;;;13828:46;13848:6;13856:9;13867:6;13828:19;:46::i;:::-;13270:612;13149:733;;;:::o;24303:859::-;24373:22;24398:21;24373:46;;24432:21;24470:1;24456:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24432:40;;24501:4;24483;24488:1;24483:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24527:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24517:4;24522:1;24517:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24562:15;;;;;;;;;;;:66;;;24643:11;24669:1;24685:4;24712;24732:15;24562:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24761:18;24806:14;24782:21;:38;;;;:::i;:::-;24761:59;;24831:31;24898:11;24878:17;;24865:10;:30;;;;:::i;:::-;:44;;;;:::i;:::-;24831:78;;24922:67;24965:23;24930;;;;;;;;;;;24922:42;;;;:67;;;;:::i;:::-;;25000:57;25035:21;25008:15;;;;;;;;;;;25000:34;;;;:57;;;;:::i;:::-;;25090:1;25070:17;:21;;;;25109:45;25130:11;25143:10;25109:45;;;;;;;:::i;:::-;;;;;;;;24362:800;;;;24303:859;:::o;15284:125::-;;;;:::o;15417:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:246::-;1537:1;1547:113;1561:6;1558:1;1555:13;1547:113;;;1646:1;1641:3;1637:11;1631:18;1627:1;1622:3;1618:11;1611:39;1583:2;1580:1;1576:10;1571:15;;1547:113;;;1694:1;1685:6;1680:3;1676:16;1669:27;1518:184;1456:246;;;:::o;1708:102::-;1749:6;1800:2;1796:7;1791:2;1784:5;1780:14;1776:28;1766:38;;1708:102;;;:::o;1816:377::-;1904:3;1932:39;1965:5;1932:39;:::i;:::-;1987:71;2051:6;2046:3;1987:71;:::i;:::-;1980:78;;2067:65;2125:6;2120:3;2113:4;2106:5;2102:16;2067:65;:::i;:::-;2157:29;2179:6;2157:29;:::i;:::-;2152:3;2148:39;2141:46;;1908:285;1816:377;;;;:::o;2199:313::-;2312:4;2350:2;2339:9;2335:18;2327:26;;2399:9;2393:4;2389:20;2385:1;2374:9;2370:17;2363:47;2427:78;2500:4;2491:6;2427:78;:::i;:::-;2419:86;;2199:313;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:60::-;4161:3;4182:5;4175:12;;4133:60;;;:::o;4199:142::-;4249:9;4282:53;4300:34;4309:24;4327:5;4309:24;:::i;:::-;4300:34;:::i;:::-;4282:53;:::i;:::-;4269:66;;4199:142;;;:::o;4347:126::-;4397:9;4430:37;4461:5;4430:37;:::i;:::-;4417:50;;4347:126;;;:::o;4479:152::-;4555:9;4588:37;4619:5;4588:37;:::i;:::-;4575:50;;4479:152;;;:::o;4637:183::-;4750:63;4807:5;4750:63;:::i;:::-;4745:3;4738:76;4637:183;;:::o;4826:274::-;4945:4;4983:2;4972:9;4968:18;4960:26;;4996:97;5090:1;5079:9;5075:17;5066:6;4996:97;:::i;:::-;4826:274;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:116::-;5801:21;5816:5;5801:21;:::i;:::-;5794:5;5791:32;5781:60;;5837:1;5834;5827:12;5781:60;5731:116;:::o;5853:133::-;5896:5;5934:6;5921:20;5912:29;;5950:30;5974:5;5950:30;:::i;:::-;5853:133;;;;:::o;5992:323::-;6048:6;6097:2;6085:9;6076:7;6072:23;6068:32;6065:119;;;6103:79;;:::i;:::-;6065:119;6223:1;6248:50;6290:7;6281:6;6270:9;6266:22;6248:50;:::i;:::-;6238:60;;6194:114;5992:323;;;;:::o;6321:86::-;6356:7;6396:4;6389:5;6385:16;6374:27;;6321:86;;;:::o;6413:112::-;6496:22;6512:5;6496:22;:::i;:::-;6491:3;6484:35;6413:112;;:::o;6531:214::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:67;6735:1;6724:9;6720:17;6711:6;6671:67;:::i;:::-;6531:214;;;;:::o;6751:118::-;6838:24;6856:5;6838:24;:::i;:::-;6833:3;6826:37;6751:118;;:::o;6875:222::-;6968:4;7006:2;6995:9;6991:18;6983:26;;7019:71;7087:1;7076:9;7072:17;7063:6;7019:71;:::i;:::-;6875:222;;;;:::o;7103:474::-;7171:6;7179;7228:2;7216:9;7207:7;7203:23;7199:32;7196:119;;;7234:79;;:::i;:::-;7196:119;7354:1;7379:53;7424:7;7415:6;7404:9;7400:22;7379:53;:::i;:::-;7369:63;;7325:117;7481:2;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7452:118;7103:474;;;;;:::o;7583:329::-;7642:6;7691:2;7679:9;7670:7;7666:23;7662:32;7659:119;;;7697:79;;:::i;:::-;7659:119;7817:1;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7788:117;7583:329;;;;:::o;7918:468::-;7983:6;7991;8040:2;8028:9;8019:7;8015:23;8011:32;8008:119;;;8046:79;;:::i;:::-;8008:119;8166:1;8191:53;8236:7;8227:6;8216:9;8212:22;8191:53;:::i;:::-;8181:63;;8137:117;8293:2;8319:50;8361:7;8352:6;8341:9;8337:22;8319:50;:::i;:::-;8309:60;;8264:115;7918:468;;;;;:::o;8392:474::-;8460:6;8468;8517:2;8505:9;8496:7;8492:23;8488:32;8485:119;;;8523:79;;:::i;:::-;8485:119;8643:1;8668:53;8713:7;8704:6;8693:9;8689:22;8668:53;:::i;:::-;8658:63;;8614:117;8770:2;8796:53;8841:7;8832:6;8821:9;8817:22;8796:53;:::i;:::-;8786:63;;8741:118;8392:474;;;;;:::o;8872:182::-;9012:34;9008:1;9000:6;8996:14;8989:58;8872:182;:::o;9060:366::-;9202:3;9223:67;9287:2;9282:3;9223:67;:::i;:::-;9216:74;;9299:93;9388:3;9299:93;:::i;:::-;9417:2;9412:3;9408:12;9401:19;;9060:366;;;:::o;9432:419::-;9598:4;9636:2;9625:9;9621:18;9613:26;;9685:9;9679:4;9675:20;9671:1;9660:9;9656:17;9649:47;9713:131;9839:4;9713:131;:::i;:::-;9705:139;;9432:419;;;:::o;9857:227::-;9997:34;9993:1;9985:6;9981:14;9974:58;10066:10;10061:2;10053:6;10049:15;10042:35;9857:227;:::o;10090:366::-;10232:3;10253:67;10317:2;10312:3;10253:67;:::i;:::-;10246:74;;10329:93;10418:3;10329:93;:::i;:::-;10447:2;10442:3;10438:12;10431:19;;10090:366;;;:::o;10462:419::-;10628:4;10666:2;10655:9;10651:18;10643:26;;10715:9;10709:4;10705:20;10701:1;10690:9;10686:17;10679:47;10743:131;10869:4;10743:131;:::i;:::-;10735:139;;10462:419;;;:::o;10887:230::-;11027:34;11023:1;11015:6;11011:14;11004:58;11096:13;11091:2;11083:6;11079:15;11072:38;10887:230;:::o;11123:366::-;11265:3;11286:67;11350:2;11345:3;11286:67;:::i;:::-;11279:74;;11362:93;11451:3;11362:93;:::i;:::-;11480:2;11475:3;11471:12;11464:19;;11123:366;;;:::o;11495:419::-;11661:4;11699:2;11688:9;11684:18;11676:26;;11748:9;11742:4;11738:20;11734:1;11723:9;11719:17;11712:47;11776:131;11902:4;11776:131;:::i;:::-;11768:139;;11495:419;;;:::o;11920:180::-;11968:77;11965:1;11958:88;12065:4;12062:1;12055:15;12089:4;12086:1;12079:15;12106:320;12150:6;12187:1;12181:4;12177:12;12167:22;;12234:1;12228:4;12224:12;12255:18;12245:81;;12311:4;12303:6;12299:17;12289:27;;12245:81;12373:2;12365:6;12362:14;12342:18;12339:38;12336:84;;12392:18;;:::i;:::-;12336:84;12157:269;12106:320;;;:::o;12432:227::-;12572:34;12568:1;12560:6;12556:14;12549:58;12641:10;12636:2;12628:6;12624:15;12617:35;12432:227;:::o;12665:366::-;12807:3;12828:67;12892:2;12887:3;12828:67;:::i;:::-;12821:74;;12904:93;12993:3;12904:93;:::i;:::-;13022:2;13017:3;13013:12;13006:19;;12665:366;;;:::o;13037:419::-;13203:4;13241:2;13230:9;13226:18;13218:26;;13290:9;13284:4;13280:20;13276:1;13265:9;13261:17;13254:47;13318:131;13444:4;13318:131;:::i;:::-;13310:139;;13037:419;;;:::o;13462:232::-;13602:34;13598:1;13590:6;13586:14;13579:58;13671:15;13666:2;13658:6;13654:15;13647:40;13462:232;:::o;13700:366::-;13842:3;13863:67;13927:2;13922:3;13863:67;:::i;:::-;13856:74;;13939:93;14028:3;13939:93;:::i;:::-;14057:2;14052:3;14048:12;14041:19;;13700:366;;;:::o;14072:419::-;14238:4;14276:2;14265:9;14261:18;14253:26;;14325:9;14319:4;14315:20;14311:1;14300:9;14296:17;14289:47;14353:131;14479:4;14353:131;:::i;:::-;14345:139;;14072:419;;;:::o;14497:180::-;14545:77;14542:1;14535:88;14642:4;14639:1;14632:15;14666:4;14663:1;14656:15;14683:191;14723:3;14742:20;14760:1;14742:20;:::i;:::-;14737:25;;14776:20;14794:1;14776:20;:::i;:::-;14771:25;;14819:1;14816;14812:9;14805:16;;14840:3;14837:1;14834:10;14831:36;;;14847:18;;:::i;:::-;14831:36;14683:191;;;;:::o;14880:180::-;15020:32;15016:1;15008:6;15004:14;14997:56;14880:180;:::o;15066:366::-;15208:3;15229:67;15293:2;15288:3;15229:67;:::i;:::-;15222:74;;15305:93;15394:3;15305:93;:::i;:::-;15423:2;15418:3;15414:12;15407:19;;15066:366;;;:::o;15438:419::-;15604:4;15642:2;15631:9;15627:18;15619:26;;15691:9;15685:4;15681:20;15677:1;15666:9;15662:17;15655:47;15719:131;15845:4;15719:131;:::i;:::-;15711:139;;15438:419;;;:::o;15863:332::-;15984:4;16022:2;16011:9;16007:18;15999:26;;16035:71;16103:1;16092:9;16088:17;16079:6;16035:71;:::i;:::-;16116:72;16184:2;16173:9;16169:18;16160:6;16116:72;:::i;:::-;15863:332;;;;;:::o;16201:224::-;16341:34;16337:1;16329:6;16325:14;16318:58;16410:7;16405:2;16397:6;16393:15;16386:32;16201:224;:::o;16431:366::-;16573:3;16594:67;16658:2;16653:3;16594:67;:::i;:::-;16587:74;;16670:93;16759:3;16670:93;:::i;:::-;16788:2;16783:3;16779:12;16772:19;;16431:366;;;:::o;16803:419::-;16969:4;17007:2;16996:9;16992:18;16984:26;;17056:9;17050:4;17046:20;17042:1;17031:9;17027:17;17020:47;17084:131;17210:4;17084:131;:::i;:::-;17076:139;;16803:419;;;:::o;17228:174::-;17368:26;17364:1;17356:6;17352:14;17345:50;17228:174;:::o;17408:366::-;17550:3;17571:67;17635:2;17630:3;17571:67;:::i;:::-;17564:74;;17647:93;17736:3;17647:93;:::i;:::-;17765:2;17760:3;17756:12;17749:19;;17408:366;;;:::o;17780:419::-;17946:4;17984:2;17973:9;17969:18;17961:26;;18033:9;18027:4;18023:20;18019:1;18008:9;18004:17;17997:47;18061:131;18187:4;18061:131;:::i;:::-;18053:139;;17780:419;;;:::o;18205:224::-;18345:34;18341:1;18333:6;18329:14;18322:58;18414:7;18409:2;18401:6;18397:15;18390:32;18205:224;:::o;18435:366::-;18577:3;18598:67;18662:2;18657:3;18598:67;:::i;:::-;18591:74;;18674:93;18763:3;18674:93;:::i;:::-;18792:2;18787:3;18783:12;18776:19;;18435:366;;;:::o;18807:419::-;18973:4;19011:2;19000:9;18996:18;18988:26;;19060:9;19054:4;19050:20;19046:1;19035:9;19031:17;19024:47;19088:131;19214:4;19088:131;:::i;:::-;19080:139;;18807:419;;;:::o;19232:180::-;19280:77;19277:1;19270:88;19377:4;19374:1;19367:15;19401:4;19398:1;19391:15;19418:185;19458:1;19475:20;19493:1;19475:20;:::i;:::-;19470:25;;19509:20;19527:1;19509:20;:::i;:::-;19504:25;;19548:1;19538:35;;19553:18;;:::i;:::-;19538:35;19595:1;19592;19588:9;19583:14;;19418:185;;;;:::o;19609:250::-;19749:34;19745:1;19737:6;19733:14;19726:58;19818:33;19813:2;19805:6;19801:15;19794:58;19609:250;:::o;19865:366::-;20007:3;20028:67;20092:2;20087:3;20028:67;:::i;:::-;20021:74;;20104:93;20193:3;20104:93;:::i;:::-;20222:2;20217:3;20213:12;20206:19;;19865:366;;;:::o;20237:419::-;20403:4;20441:2;20430:9;20426:18;20418:26;;20490:9;20484:4;20480:20;20476:1;20465:9;20461:17;20454:47;20518:131;20644:4;20518:131;:::i;:::-;20510:139;;20237:419;;;:::o;20662:247::-;20802:34;20798:1;20790:6;20786:14;20779:58;20871:30;20866:2;20858:6;20854:15;20847:55;20662:247;:::o;20915:366::-;21057:3;21078:67;21142:2;21137:3;21078:67;:::i;:::-;21071:74;;21154:93;21243:3;21154:93;:::i;:::-;21272:2;21267:3;21263:12;21256:19;;20915:366;;;:::o;21287:419::-;21453:4;21491:2;21480:9;21476:18;21468:26;;21540:9;21534:4;21530:20;21526:1;21515:9;21511:17;21504:47;21568:131;21694:4;21568:131;:::i;:::-;21560:139;;21287:419;;;:::o;21712:229::-;21852:34;21848:1;21840:6;21836:14;21829:58;21921:12;21916:2;21908:6;21904:15;21897:37;21712:229;:::o;21947:366::-;22089:3;22110:67;22174:2;22169:3;22110:67;:::i;:::-;22103:74;;22186:93;22275:3;22186:93;:::i;:::-;22304:2;22299:3;22295:12;22288:19;;21947:366;;;:::o;22319:419::-;22485:4;22523:2;22512:9;22508:18;22500:26;;22572:9;22566:4;22562:20;22558:1;22547:9;22543:17;22536:47;22600:131;22726:4;22600:131;:::i;:::-;22592:139;;22319:419;;;:::o;22744:223::-;22884:34;22880:1;22872:6;22868:14;22861:58;22953:6;22948:2;22940:6;22936:15;22929:31;22744:223;:::o;22973:366::-;23115:3;23136:67;23200:2;23195:3;23136:67;:::i;:::-;23129:74;;23212:93;23301:3;23212:93;:::i;:::-;23330:2;23325:3;23321:12;23314:19;;22973:366;;;:::o;23345:419::-;23511:4;23549:2;23538:9;23534:18;23526:26;;23598:9;23592:4;23588:20;23584:1;23573:9;23569:17;23562:47;23626:131;23752:4;23626:131;:::i;:::-;23618:139;;23345:419;;;:::o;23770:173::-;23910:25;23906:1;23898:6;23894:14;23887:49;23770:173;:::o;23949:366::-;24091:3;24112:67;24176:2;24171:3;24112:67;:::i;:::-;24105:74;;24188:93;24277:3;24188:93;:::i;:::-;24306:2;24301:3;24297:12;24290:19;;23949:366;;;:::o;24321:419::-;24487:4;24525:2;24514:9;24510:18;24502:26;;24574:9;24568:4;24564:20;24560:1;24549:9;24545:17;24538:47;24602:131;24728:4;24602:131;:::i;:::-;24594:139;;24321:419;;;:::o;24746:221::-;24886:34;24882:1;24874:6;24870:14;24863:58;24955:4;24950:2;24942:6;24938:15;24931:29;24746:221;:::o;24973:366::-;25115:3;25136:67;25200:2;25195:3;25136:67;:::i;:::-;25129:74;;25212:93;25301:3;25212:93;:::i;:::-;25330:2;25325:3;25321:12;25314:19;;24973:366;;;:::o;25345:419::-;25511:4;25549:2;25538:9;25534:18;25526:26;;25598:9;25592:4;25588:20;25584:1;25573:9;25569:17;25562:47;25626:131;25752:4;25626:131;:::i;:::-;25618:139;;25345:419;;;:::o;25770:225::-;25910:34;25906:1;25898:6;25894:14;25887:58;25979:8;25974:2;25966:6;25962:15;25955:33;25770:225;:::o;26001:366::-;26143:3;26164:67;26228:2;26223:3;26164:67;:::i;:::-;26157:74;;26240:93;26329:3;26240:93;:::i;:::-;26358:2;26353:3;26349:12;26342:19;;26001:366;;;:::o;26373:419::-;26539:4;26577:2;26566:9;26562:18;26554:26;;26626:9;26620:4;26616:20;26612:1;26601:9;26597:17;26590:47;26654:131;26780:4;26654:131;:::i;:::-;26646:139;;26373:419;;;:::o;26798:242::-;26938:34;26934:1;26926:6;26922:14;26915:58;27007:25;27002:2;26994:6;26990:15;26983:50;26798:242;:::o;27046:366::-;27188:3;27209:67;27273:2;27268:3;27209:67;:::i;:::-;27202:74;;27285:93;27374:3;27285:93;:::i;:::-;27403:2;27398:3;27394:12;27387:19;;27046:366;;;:::o;27418:419::-;27584:4;27622:2;27611:9;27607:18;27599:26;;27671:9;27665:4;27661:20;27657:1;27646:9;27642:17;27635:47;27699:131;27825:4;27699:131;:::i;:::-;27691:139;;27418:419;;;:::o;27843:143::-;27900:5;27931:6;27925:13;27916:22;;27947:33;27974:5;27947:33;:::i;:::-;27843:143;;;;:::o;27992:351::-;28062:6;28111:2;28099:9;28090:7;28086:23;28082:32;28079:119;;;28117:79;;:::i;:::-;28079:119;28237:1;28262:64;28318:7;28309:6;28298:9;28294:22;28262:64;:::i;:::-;28252:74;;28208:128;27992:351;;;;:::o;28349:332::-;28470:4;28508:2;28497:9;28493:18;28485:26;;28521:71;28589:1;28578:9;28574:17;28565:6;28521:71;:::i;:::-;28602:72;28670:2;28659:9;28655:18;28646:6;28602:72;:::i;:::-;28349:332;;;;;:::o;28687:137::-;28741:5;28772:6;28766:13;28757:22;;28788:30;28812:5;28788:30;:::i;:::-;28687:137;;;;:::o;28830:345::-;28897:6;28946:2;28934:9;28925:7;28921:23;28917:32;28914:119;;;28952:79;;:::i;:::-;28914:119;29072:1;29097:61;29150:7;29141:6;29130:9;29126:22;29097:61;:::i;:::-;29087:71;;29043:125;28830:345;;;;:::o;29181:223::-;29321:34;29317:1;29309:6;29305:14;29298:58;29390:6;29385:2;29377:6;29373:15;29366:31;29181:223;:::o;29410:366::-;29552:3;29573:67;29637:2;29632:3;29573:67;:::i;:::-;29566:74;;29649:93;29738:3;29649:93;:::i;:::-;29767:2;29762:3;29758:12;29751:19;;29410:366;;;:::o;29782:419::-;29948:4;29986:2;29975:9;29971:18;29963:26;;30035:9;30029:4;30025:20;30021:1;30010:9;30006:17;29999:47;30063:131;30189:4;30063:131;:::i;:::-;30055:139;;29782:419;;;:::o;30207:221::-;30347:34;30343:1;30335:6;30331:14;30324:58;30416:4;30411:2;30403:6;30399:15;30392:29;30207:221;:::o;30434:366::-;30576:3;30597:67;30661:2;30656:3;30597:67;:::i;:::-;30590:74;;30673:93;30762:3;30673:93;:::i;:::-;30791:2;30786:3;30782:12;30775:19;;30434:366;;;:::o;30806:419::-;30972:4;31010:2;30999:9;30995:18;30987:26;;31059:9;31053:4;31049:20;31045:1;31034:9;31030:17;31023:47;31087:131;31213:4;31087:131;:::i;:::-;31079:139;;30806:419;;;:::o;31231:224::-;31371:34;31367:1;31359:6;31355:14;31348:58;31440:7;31435:2;31427:6;31423:15;31416:32;31231:224;:::o;31461:366::-;31603:3;31624:67;31688:2;31683:3;31624:67;:::i;:::-;31617:74;;31700:93;31789:3;31700:93;:::i;:::-;31818:2;31813:3;31809:12;31802:19;;31461:366;;;:::o;31833:419::-;31999:4;32037:2;32026:9;32022:18;32014:26;;32086:9;32080:4;32076:20;32072:1;32061:9;32057:17;32050:47;32114:131;32240:4;32114:131;:::i;:::-;32106:139;;31833:419;;;:::o;32258:222::-;32398:34;32394:1;32386:6;32382:14;32375:58;32467:5;32462:2;32454:6;32450:15;32443:30;32258:222;:::o;32486:366::-;32628:3;32649:67;32713:2;32708:3;32649:67;:::i;:::-;32642:74;;32725:93;32814:3;32725:93;:::i;:::-;32843:2;32838:3;32834:12;32827:19;;32486:366;;;:::o;32858:419::-;33024:4;33062:2;33051:9;33047:18;33039:26;;33111:9;33105:4;33101:20;33097:1;33086:9;33082:17;33075:47;33139:131;33265:4;33139:131;:::i;:::-;33131:139;;32858:419;;;:::o;33283:174::-;33423:26;33419:1;33411:6;33407:14;33400:50;33283:174;:::o;33463:366::-;33605:3;33626:67;33690:2;33685:3;33626:67;:::i;:::-;33619:74;;33702:93;33791:3;33702:93;:::i;:::-;33820:2;33815:3;33811:12;33804:19;;33463:366;;;:::o;33835:419::-;34001:4;34039:2;34028:9;34024:18;34016:26;;34088:9;34082:4;34078:20;34074:1;34063:9;34059:17;34052:47;34116:131;34242:4;34116:131;:::i;:::-;34108:139;;33835:419;;;:::o;34260:410::-;34300:7;34323:20;34341:1;34323:20;:::i;:::-;34318:25;;34357:20;34375:1;34357:20;:::i;:::-;34352:25;;34412:1;34409;34405:9;34434:30;34452:11;34434:30;:::i;:::-;34423:41;;34613:1;34604:7;34600:15;34597:1;34594:22;34574:1;34567:9;34547:83;34524:139;;34643:18;;:::i;:::-;34524:139;34308:362;34260:410;;;;:::o;34676:194::-;34716:4;34736:20;34754:1;34736:20;:::i;:::-;34731:25;;34770:20;34788:1;34770:20;:::i;:::-;34765:25;;34814:1;34811;34807:9;34799:17;;34838:1;34832:4;34829:11;34826:37;;;34843:18;;:::i;:::-;34826:37;34676:194;;;;:::o;34876:235::-;35016:34;35012:1;35004:6;35000:14;34993:58;35085:18;35080:2;35072:6;35068:15;35061:43;34876:235;:::o;35117:366::-;35259:3;35280:67;35344:2;35339:3;35280:67;:::i;:::-;35273:74;;35356:93;35445:3;35356:93;:::i;:::-;35474:2;35469:3;35465:12;35458:19;;35117:366;;;:::o;35489:419::-;35655:4;35693:2;35682:9;35678:18;35670:26;;35742:9;35736:4;35732:20;35728:1;35717:9;35713:17;35706:47;35770:131;35896:4;35770:131;:::i;:::-;35762:139;;35489:419;;;:::o;35914:179::-;36054:31;36050:1;36042:6;36038:14;36031:55;35914:179;:::o;36099:366::-;36241:3;36262:67;36326:2;36321:3;36262:67;:::i;:::-;36255:74;;36338:93;36427:3;36338:93;:::i;:::-;36456:2;36451:3;36447:12;36440:19;;36099:366;;;:::o;36471:419::-;36637:4;36675:2;36664:9;36660:18;36652:26;;36724:9;36718:4;36714:20;36710:1;36699:9;36695:17;36688:47;36752:131;36878:4;36752:131;:::i;:::-;36744:139;;36471:419;;;:::o;36896:147::-;36997:11;37034:3;37019:18;;36896:147;;;;:::o;37049:114::-;;:::o;37169:398::-;37328:3;37349:83;37430:1;37425:3;37349:83;:::i;:::-;37342:90;;37441:93;37530:3;37441:93;:::i;:::-;37559:1;37554:3;37550:11;37543:18;;37169:398;;;:::o;37573:379::-;37757:3;37779:147;37922:3;37779:147;:::i;:::-;37772:154;;37943:3;37936:10;;37573:379;;;:::o;37958:225::-;38098:34;38094:1;38086:6;38082:14;38075:58;38167:8;38162:2;38154:6;38150:15;38143:33;37958:225;:::o;38189:366::-;38331:3;38352:67;38416:2;38411:3;38352:67;:::i;:::-;38345:74;;38428:93;38517:3;38428:93;:::i;:::-;38546:2;38541:3;38537:12;38530:19;;38189:366;;;:::o;38561:419::-;38727:4;38765:2;38754:9;38750:18;38742:26;;38814:9;38808:4;38804:20;38800:1;38789:9;38785:17;38778:47;38842:131;38968:4;38842:131;:::i;:::-;38834:139;;38561:419;;;:::o;38986:180::-;39034:77;39031:1;39024:88;39131:4;39128:1;39121:15;39155:4;39152:1;39145:15;39172:180;39220:77;39217:1;39210:88;39317:4;39314:1;39307:15;39341:4;39338:1;39331:15;39358:143;39415:5;39446:6;39440:13;39431:22;;39462:33;39489:5;39462:33;:::i;:::-;39358:143;;;;:::o;39507:351::-;39577:6;39626:2;39614:9;39605:7;39601:23;39597:32;39594:119;;;39632:79;;:::i;:::-;39594:119;39752:1;39777:64;39833:7;39824:6;39813:9;39809:22;39777:64;:::i;:::-;39767:74;;39723:128;39507:351;;;;:::o;39864:85::-;39909:7;39938:5;39927:16;;39864:85;;;:::o;39955:158::-;40013:9;40046:61;40064:42;40073:32;40099:5;40073:32;:::i;:::-;40064:42;:::i;:::-;40046:61;:::i;:::-;40033:74;;39955:158;;;:::o;40119:147::-;40214:45;40253:5;40214:45;:::i;:::-;40209:3;40202:58;40119:147;;:::o;40272:114::-;40339:6;40373:5;40367:12;40357:22;;40272:114;;;:::o;40392:184::-;40491:11;40525:6;40520:3;40513:19;40565:4;40560:3;40556:14;40541:29;;40392:184;;;;:::o;40582:132::-;40649:4;40672:3;40664:11;;40702:4;40697:3;40693:14;40685:22;;40582:132;;;:::o;40720:108::-;40797:24;40815:5;40797:24;:::i;:::-;40792:3;40785:37;40720:108;;:::o;40834:179::-;40903:10;40924:46;40966:3;40958:6;40924:46;:::i;:::-;41002:4;40997:3;40993:14;40979:28;;40834:179;;;;:::o;41019:113::-;41089:4;41121;41116:3;41112:14;41104:22;;41019:113;;;:::o;41168:732::-;41287:3;41316:54;41364:5;41316:54;:::i;:::-;41386:86;41465:6;41460:3;41386:86;:::i;:::-;41379:93;;41496:56;41546:5;41496:56;:::i;:::-;41575:7;41606:1;41591:284;41616:6;41613:1;41610:13;41591:284;;;41692:6;41686:13;41719:63;41778:3;41763:13;41719:63;:::i;:::-;41712:70;;41805:60;41858:6;41805:60;:::i;:::-;41795:70;;41651:224;41638:1;41635;41631:9;41626:14;;41591:284;;;41595:14;41891:3;41884:10;;41292:608;;;41168:732;;;;:::o;41906:831::-;42169:4;42207:3;42196:9;42192:19;42184:27;;42221:71;42289:1;42278:9;42274:17;42265:6;42221:71;:::i;:::-;42302:80;42378:2;42367:9;42363:18;42354:6;42302:80;:::i;:::-;42429:9;42423:4;42419:20;42414:2;42403:9;42399:18;42392:48;42457:108;42560:4;42551:6;42457:108;:::i;:::-;42449:116;;42575:72;42643:2;42632:9;42628:18;42619:6;42575:72;:::i;:::-;42657:73;42725:3;42714:9;42710:19;42701:6;42657:73;:::i;:::-;41906:831;;;;;;;;:::o

Swarm Source

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