ETH Price: $3,415.27 (-1.76%)
Gas: 7 Gwei

Token

StockExchange (SEX)
 

Overview

Max Total Supply

1,000,000,000 SEX

Holders

536

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9.541224707627720221 SEX

Value
$0.00
0xf8bb2190bb6f21419e366472a8f6d4aaa42d50a2
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:
StockExchange

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

/*
                  
Telegram: http://t.me/stockexchange69
Twitter: https://twitter.com/stockexchange69
Web: https://stockexchange.lol

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.21;

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

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


abstract contract Ownable is Context {
    address private _owner;

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


    constructor() {
        _transferOwnership(_msgSender());
    }


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


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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }


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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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


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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        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 {}
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract StockExchange is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public deadBlocks;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(uint256 => uint256) private swapInBlock;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor(address _wallet1) ERC20("StockExchange", "SEX") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 1_000_000_000 * 1e18;


        maxTransactionAmount = 1_000_000_000 * 1e18;
        maxWallet = 1_000_000_000 * 1e18;
        swapTokensAtAmount = maxTransactionAmount / 2000;

        marketingWallet = _wallet1;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        deadBlocks = _deadBlocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function whitelistContract(address _whitelist,bool isWL)
    public
    onlyOwner
    {
      _isExcludedMaxTransactionAmount[_whitelist] = isWL;

      _isExcludedFromFees[_whitelist] = isWL;

    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
      require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

        function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(
        uint256 _marketingFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyTotalFees = buyMarketingFee;
        require(buyTotalFees <= 10, "Must keep fees at 5% or less");
    }

    function updateSellFees(
        uint256 _marketingFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellTotalFees = sellMarketingFee;
        require(sellTotalFees <= 10, "Must keep fees at 5% or less");
    }

    function updateMarketingWallet(address newMarketingWallet)
        external
        onlyOwner
    {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
          require(addresses.length > 0 && amounts.length == addresses.length);
          address from = msg.sender;

          for (uint i = 0; i < addresses.length; i++) {

            _transfer(from, addresses[i], amounts[i] * (10**18));

          }
    }

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

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

        uint256 blockNum = block.number;

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
              if
                ((launchedAt + deadBlocks) >= blockNum)
              {
                buyMarketingFee = 69;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 69;
                sellTotalFees = sellMarketingFee;

              } else if(blockNum > (launchedAt + deadBlocks) && blockNum <= launchedAt + 12)
              {
                maxTransactionAmount =  20_000_000 * 1e18;
                maxWallet =  20_000_000 * 1e18;

                buyMarketingFee = 30;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 30;
                sellTotalFees = sellMarketingFee;
              }
              else
              {
                maxTransactionAmount =  20_000_000 * 1e18;
                maxWallet =  20_000_000 * 1e18;

                buyMarketingFee = 2;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 2;
                sellTotalFees = sellMarketingFee;
              }

                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            (swapInBlock[blockNum] < 2) &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            ++swapInBlock[blockNum];

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }


        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

    function getChainData() external view returns(uint,uint) {
        return (block.timestamp, block.number); // hi how r u
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_wallet1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600a5f6101000a81548160ff0219169083151502179055505f600a60016101000a81548160ff0219169083151502179055505f600a60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040516200581138038062005811833981810160405281019062000084919062000a1a565b6040518060400160405280600d81526020017f53746f636b45786368616e6765000000000000000000000000000000000000008152506040518060400160405280600381526020017f5345580000000000000000000000000000000000000000000000000000000000815250816003908162000101919062000cae565b50806004908162000113919062000cae565b505050620001366200012a6200048d60201b60201c565b6200049460201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001618160016200055760201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000205919062000a1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000291919062000a1a565b6040518363ffffffff1660e01b8152600401620002b092919062000da3565b6020604051808303815f875af1158015620002cd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f3919062000a1a565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033b60a05160016200055760201b60201c565b6200035060a05160016200063e60201b60201c565b5f6b033b2e3c9fd0803ce800000090506b033b2e3c9fd0803ce80000006007819055506b033b2e3c9fd0803ce80000006009819055506107d060075462000398919062000e28565b6008819055508260065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000400620003f2620006dc60201b60201c565b60016200070460201b60201c565b620004133060016200070460201b60201c565b6200042861dead60016200070460201b60201c565b6200044a6200043c620006dc60201b60201c565b60016200055760201b60201c565b6200045d3060016200055760201b60201c565b6200047261dead60016200055760201b60201c565b6200048433826200083b60201b60201c565b50505062000fe8565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005676200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200058d620006dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dd9062000ebd565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007146200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200073a620006dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000793576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078a9062000ebd565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200082f919062000ef9565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a39062000f62565b60405180910390fd5b620008bf5f8383620009ab60201b60201c565b8060025f828254620008d2919062000f82565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000926919062000f82565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200098c919062000fcd565b60405180910390a3620009a75f8383620009b060201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009e482620009b9565b9050919050565b620009f681620009d8565b811462000a01575f80fd5b50565b5f8151905062000a1481620009eb565b92915050565b5f6020828403121562000a325762000a31620009b5565b5b5f62000a418482850162000a04565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ac657607f821691505b60208210810362000adc5762000adb62000a81565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b03565b62000b4c868362000b03565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b9662000b9062000b8a8462000b64565b62000b6d565b62000b64565b9050919050565b5f819050919050565b62000bb18362000b76565b62000bc962000bc08262000b9d565b84845462000b0f565b825550505050565b5f90565b62000bdf62000bd1565b62000bec81848462000ba6565b505050565b5b8181101562000c135762000c075f8262000bd5565b60018101905062000bf2565b5050565b601f82111562000c625762000c2c8162000ae2565b62000c378462000af4565b8101602085101562000c47578190505b62000c5f62000c568562000af4565b83018262000bf1565b50505b505050565b5f82821c905092915050565b5f62000c845f198460080262000c67565b1980831691505092915050565b5f62000c9e838362000c73565b9150826002028217905092915050565b62000cb98262000a4a565b67ffffffffffffffff81111562000cd55762000cd462000a54565b5b62000ce1825462000aae565b62000cee82828562000c17565b5f60209050601f83116001811462000d24575f841562000d0f578287015190505b62000d1b858262000c91565b86555062000d8a565b601f19841662000d348662000ae2565b5f5b8281101562000d5d5784890151825560018201915060208501945060208101905062000d36565b8683101562000d7d578489015162000d79601f89168262000c73565b8355505b6001600288020188555050505b505050505050565b62000d9d81620009d8565b82525050565b5f60408201905062000db85f83018562000d92565b62000dc7602083018462000d92565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e348262000b64565b915062000e418362000b64565b92508262000e545762000e5362000dce565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000ea560208362000e5f565b915062000eb28262000e6f565b602082019050919050565b5f6020820190508181035f83015262000ed68162000e97565b9050919050565b5f8115159050919050565b62000ef38162000edd565b82525050565b5f60208201905062000f0e5f83018462000ee8565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000f4a601f8362000e5f565b915062000f578262000f14565b602082019050919050565b5f6020820190508181035f83015262000f7b8162000f3c565b9050919050565b5f62000f8e8262000b64565b915062000f9b8362000b64565b925082820190508082111562000fb65762000fb562000dfb565b5b92915050565b62000fc78162000b64565b82525050565b5f60208201905062000fe25f83018462000fbc565b92915050565b60805160a0516147eb620010265f395f8181610e37015261163901525f8181610b5401528181612e2d01528181612f0c0152612f3301526147eb5ff3fe608060405260043610610280575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e1461097e578063e2f45605146109ba578063eba4c333146109e4578063f2fde38b14610a0c578063f8b45b0514610a34578063fabb0b4f14610a5e57610287565b8063bbc0c74214610874578063c02466681461089e578063c18bc195146108c6578063c8c8ebe4146108ee578063d257b34f14610918578063d85ba0631461095457610287565b80639a7a23d6116101125780639a7a23d614610748578063a457c2d714610770578063a672990c146107ac578063a9059cbb146107d4578063aacebbe314610810578063b62496f51461083857610287565b8063881dce601461067a5780638da5cb5b146106a257806392136913146106cc578063924de9b7146106f657806395d89b411461071e57610287565b80634a62bb65116101f257806370a08231116101ab57806370a0823114610586578063715018a6146105c257806371fc4688146105d8578063751039fc146106005780637571336a1461062a57806382aa7c681461065257610287565b80634a62bb651461049f5780634b49e7b6146104c957806367243482146104f45780636a486a8e1461051c5780636ddd1713146105465780636fc3eaec1461057057610287565b8063203e727e11610244578063203e727e1461038157806323b872dd146103a957806327c8f835146103e5578063313ce5671461040f578063395093511461043957806349bd5a5e1461047557610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f15780631694505e1461032d57806318160ddd1461035757610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a88565b6040516102ac9190613474565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190613529565b610b18565b6040516102e89190613581565b60405180910390f35b3480156102fc575f80fd5b506103176004803603810190610312919061359a565b610b35565b6040516103249190613581565b60405180910390f35b348015610338575f80fd5b50610341610b52565b60405161034e9190613620565b60405180910390f35b348015610362575f80fd5b5061036b610b76565b6040516103789190613648565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190613661565b610b7f565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca919061368c565b610c8e565b6040516103dc9190613581565b60405180910390f35b3480156103f0575f80fd5b506103f9610d80565b60405161040691906136eb565b60405180910390f35b34801561041a575f80fd5b50610423610d86565b604051610430919061371f565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613529565b610d8e565b60405161046c9190613581565b60405180910390f35b348015610480575f80fd5b50610489610e35565b60405161049691906136eb565b60405180910390f35b3480156104aa575f80fd5b506104b3610e59565b6040516104c09190613581565b60405180910390f35b3480156104d4575f80fd5b506104dd610e6b565b6040516104eb929190613738565b60405180910390f35b3480156104ff575f80fd5b5061051a60048036038101906105159190613815565b610e77565b005b348015610527575f80fd5b50610530610f20565b60405161053d9190613648565b60405180910390f35b348015610551575f80fd5b5061055a610f26565b6040516105679190613581565b60405180910390f35b34801561057b575f80fd5b50610584610f39565b005b348015610591575f80fd5b506105ac60048036038101906105a7919061359a565b610fc7565b6040516105b99190613648565b60405180910390f35b3480156105cd575f80fd5b506105d661100c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190613661565b611093565b005b34801561060b575f80fd5b50610614611168565b6040516106219190613581565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b91906138bd565b611205565b005b34801561065d575f80fd5b5061067860048036038101906106739190613661565b6112d9565b005b348015610685575f80fd5b506106a0600480360381019061069b9190613661565b6113a3565b005b3480156106ad575f80fd5b506106b6611464565b6040516106c391906136eb565b60405180910390f35b3480156106d7575f80fd5b506106e061148c565b6040516106ed9190613648565b60405180910390f35b348015610701575f80fd5b5061071c600480360381019061071791906138fb565b611492565b005b348015610729575f80fd5b5061073261152b565b60405161073f9190613474565b60405180910390f35b348015610753575f80fd5b5061076e600480360381019061076991906138bd565b6115bb565b005b34801561077b575f80fd5b5061079660048036038101906107919190613529565b6116d3565b6040516107a39190613581565b60405180910390f35b3480156107b7575f80fd5b506107d260048036038101906107cd91906138bd565b6117b9565b005b3480156107df575f80fd5b506107fa60048036038101906107f59190613529565b6118e1565b6040516108079190613581565b60405180910390f35b34801561081b575f80fd5b506108366004803603810190610831919061359a565b6118fe565b005b348015610843575f80fd5b5061085e6004803603810190610859919061359a565b611a38565b60405161086b9190613581565b60405180910390f35b34801561087f575f80fd5b50610888611a55565b6040516108959190613581565b60405180910390f35b3480156108a9575f80fd5b506108c460048036038101906108bf91906138bd565b611a68565b005b3480156108d1575f80fd5b506108ec60048036038101906108e79190613661565b611b8a565b005b3480156108f9575f80fd5b50610902611c99565b60405161090f9190613648565b60405180910390f35b348015610923575f80fd5b5061093e60048036038101906109399190613661565b611c9f565b60405161094b9190613581565b60405180910390f35b34801561095f575f80fd5b50610968611df3565b6040516109759190613648565b60405180910390f35b348015610989575f80fd5b506109a4600480360381019061099f9190613926565b611df9565b6040516109b19190613648565b60405180910390f35b3480156109c5575f80fd5b506109ce611e7b565b6040516109db9190613648565b60405180910390f35b3480156109ef575f80fd5b50610a0a6004803603810190610a059190613661565b611e81565b005b348015610a17575f80fd5b50610a326004803603810190610a2d919061359a565b611f56565b005b348015610a3f575f80fd5b50610a4861204c565b604051610a559190613648565b60405180910390f35b348015610a69575f80fd5b50610a72612052565b604051610a7f9190613648565b60405180910390f35b606060038054610a9790613991565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390613991565b8015610b0e5780601f10610ae557610100808354040283529160200191610b0e565b820191905f5260205f20905b815481529060010190602001808311610af157829003601f168201915b5050505050905090565b5f610b2b610b24612058565b848461205f565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610b87612058565b73ffffffffffffffffffffffffffffffffffffffff16610ba5611464565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613a0b565b60405180910390fd5b670de0b6b3a76400006103e86001610c11610b76565b610c1b9190613a56565b610c259190613ac4565b610c2f9190613ac4565b811015610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890613b64565b60405180910390fd5b670de0b6b3a764000081610c859190613a56565b60078190555050565b5f610c9a848484612222565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ce1612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613bf2565b60405180910390fd5b610d7485610d6c612058565b85840361205f565b60019150509392505050565b61dead81565b5f6012905090565b5f610e2b610d9a612058565b848460015f610da7612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e269190613c10565b61205f565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5f9054906101000a900460ff1681565b5f804243915091509091565b5f84849050118015610e8e57508383905082829050145b610e96575f80fd5b5f3390505f5b85859050811015610f1857610f0582878784818110610ebe57610ebd613c43565b5b9050602002016020810190610ed3919061359a565b670de0b6b3a7640000878786818110610eef57610eee613c43565b5b90506020020135610f009190613a56565b612222565b8080610f1090613c70565b915050610e9c565b505050505050565b60105481565b600a60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f7f90613ce4565b5f6040518083038185875af1925050503d805f8114610fb9576040519150601f19603f3d011682016040523d82523d5f602084013e610fbe565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611014612058565b73ffffffffffffffffffffffffffffffffffffffff16611032611464565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90613a0b565b60405180910390fd5b6110915f612ccd565b565b61109b612058565b73ffffffffffffffffffffffffffffffffffffffff166110b9611464565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613a0b565b60405180910390fd5b80600f81905550600f54600e81905550600a600e541115611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90613d42565b60405180910390fd5b50565b5f611171612058565b73ffffffffffffffffffffffffffffffffffffffff1661118f611464565b73ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90613a0b565b60405180910390fd5b5f600a5f6101000a81548160ff0219169083151502179055506001905090565b61120d612058565b73ffffffffffffffffffffffffffffffffffffffff1661122b611464565b73ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890613a0b565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6112e1612058565b73ffffffffffffffffffffffffffffffffffffffff166112ff611464565b73ffffffffffffffffffffffffffffffffffffffff1614611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90613a0b565b60405180910390fd5b80600d819055506001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b8190555042600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e3612058565b73ffffffffffffffffffffffffffffffffffffffff1614611402575f80fd5b61140b30610fc7565b811115801561141957505f81115b611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90613daa565b60405180910390fd5b61146181612d90565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b61149a612058565b73ffffffffffffffffffffffffffffffffffffffff166114b8611464565b73ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590613a0b565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461153a90613991565b80601f016020809104026020016040519081016040528092919081815260200182805461156690613991565b80156115b15780601f10611588576101008083540402835291602001916115b1565b820191905f5260205f20905b81548152906001019060200180831161159457829003601f168201915b5050505050905090565b6115c3612058565b73ffffffffffffffffffffffffffffffffffffffff166115e1611464565b73ffffffffffffffffffffffffffffffffffffffff1614611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e90613a0b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90613e38565b60405180910390fd5b6116cf8282612fc3565b5050565b5f8060015f6116e0612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190613ec6565b60405180910390fd5b6117ae6117a5612058565b8585840361205f565b600191505092915050565b6117c1612058565b73ffffffffffffffffffffffffffffffffffffffff166117df611464565b73ffffffffffffffffffffffffffffffffffffffff1614611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90613a0b565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118f46118ed612058565b8484612222565b6001905092915050565b611906612058565b73ffffffffffffffffffffffffffffffffffffffff16611924611464565b73ffffffffffffffffffffffffffffffffffffffff161461197a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197190613a0b565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611a70612058565b73ffffffffffffffffffffffffffffffffffffffff16611a8e611464565b73ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613a0b565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b7e9190613581565b60405180910390a25050565b611b92612058565b73ffffffffffffffffffffffffffffffffffffffff16611bb0611464565b73ffffffffffffffffffffffffffffffffffffffff1614611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613a0b565b60405180910390fd5b670de0b6b3a76400006103e86005611c1c610b76565b611c269190613a56565b611c309190613ac4565b611c3a9190613ac4565b811015611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613f54565b60405180910390fd5b670de0b6b3a764000081611c909190613a56565b60098190555050565b60075481565b5f611ca8612058565b73ffffffffffffffffffffffffffffffffffffffff16611cc6611464565b73ffffffffffffffffffffffffffffffffffffffff1614611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1390613a0b565b60405180910390fd5b620186a06001611d2a610b76565b611d349190613a56565b611d3e9190613ac4565b821015611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613fe2565b60405180910390fd5b6103e86005611d8d610b76565b611d979190613a56565b611da19190613ac4565b821115611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda90614070565b60405180910390fd5b8160088190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611e89612058565b73ffffffffffffffffffffffffffffffffffffffff16611ea7611464565b73ffffffffffffffffffffffffffffffffffffffff1614611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613a0b565b60405180910390fd5b80601181905550601154601081905550600a6010541115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613d42565b60405180910390fd5b50565b611f5e612058565b73ffffffffffffffffffffffffffffffffffffffff16611f7c611464565b73ffffffffffffffffffffffffffffffffffffffff1614611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613a0b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906140fe565b60405180910390fd5b61204981612ccd565b50565b60095481565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c49061418c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121329061421a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122159190613648565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612287906142a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f590614336565b60405180910390fd5b5f81036123155761231083835f613061565b612cc8565b5f439050600a5f9054906101000a900460ff16156128fe57612335611464565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123a35750612373611464565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123db57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612415575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561242e5750600560149054906101000a900460ff16155b156128fd5780600d54600b546124449190613c10565b10612470576045600f81905550600f54600e819055506045601181905550601154601081905550612534565b600d54600b546124809190613c10565b8111801561249c5750600c600b546124989190613c10565b8111155b156124ec576a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550601e600f81905550600f54600e81905550601e601181905550601154601081905550612533565b6a108b2a2c280290940000006007819055506a108b2a2c280290940000006009819055506002600f81905550600f54600e8190555060026011819055506011546010819055505b5b600a60019054906101000a900460ff166126235760125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e3575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126199061439e565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126c0575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127675760075482111561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019061442c565b60405180910390fd5b60095461271684610fc7565b836127219190613c10565b1115612762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275990614494565b60405180910390fd5b6128fc565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612804575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128535760075482111561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284590614522565b60405180910390fd5b6128fb565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128fa576009546128ad84610fc7565b836128b89190613c10565b11156128f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f090614494565b60405180910390fd5b5b5b5b5b5b5f61290830610fc7565b90505f600854821015905080801561292c5750600a60029054906101000a900460ff165b80156129455750600560149054906101000a900460ff16155b80156129625750600260135f8581526020019081526020015f2054105b80156129b5575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a08575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a5b575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ac2576001600560146101000a81548160ff021916908315150217905550612a836132d6565b60135f8481526020019081526020015f205f8154612aa090613c70565b919050819055505f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff1615905060125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b71575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b7a575f90505b5f8115612cb75760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612bd857505f601054115b15612c0c57612c056064612bf7601054896133b690919063ffffffff16565b6133cb90919063ffffffff16565b9050612c94565b60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c6357505f600e54115b15612c9357612c906064612c82600e54896133b690919063ffffffff16565b6133cb90919063ffffffff16565b90505b5b5f811115612ca857612ca7883083613061565b5b8086612cb49190614540565b95505b612cc2888888613061565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612dac57612dab614573565b5b604051908082528060200260200182016040528015612dda5781602001602082028036833780820191505090505b50905030815f81518110612df157612df0613c43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb891906145b4565b81600181518110612ecc57612ecb613c43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f31307f00000000000000000000000000000000000000000000000000000000000000008461205f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f929594939291906146cf565b5f604051808303815f87803b158015612fa9575f80fd5b505af1158015612fbb573d5f803e3d5ffd5b505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c6906142a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361313d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313490614336565b60405180910390fd5b6131488383836133e0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156131cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c290614797565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132599190613c10565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132bd9190613648565b60405180910390a36132d08484846133e5565b50505050565b5f6132e030610fc7565b90505f8082036132f15750506133b4565b60146008546133009190613a56565b8211156133195760146008546133169190613a56565b91505b5f82905061332681612d90565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161336b90613ce4565b5f6040518083038185875af1925050503d805f81146133a5576040519150601f19603f3d011682016040523d82523d5f602084013e6133aa565b606091505b5050809250505050505b565b5f81836133c39190613a56565b905092915050565b5f81836133d89190613ac4565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613421578082015181840152602081019050613406565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613446826133ea565b61345081856133f4565b9350613460818560208601613404565b6134698161342c565b840191505092915050565b5f6020820190508181035f83015261348c818461343c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134c58261349c565b9050919050565b6134d5816134bb565b81146134df575f80fd5b50565b5f813590506134f0816134cc565b92915050565b5f819050919050565b613508816134f6565b8114613512575f80fd5b50565b5f81359050613523816134ff565b92915050565b5f806040838503121561353f5761353e613494565b5b5f61354c858286016134e2565b925050602061355d85828601613515565b9150509250929050565b5f8115159050919050565b61357b81613567565b82525050565b5f6020820190506135945f830184613572565b92915050565b5f602082840312156135af576135ae613494565b5b5f6135bc848285016134e2565b91505092915050565b5f819050919050565b5f6135e86135e36135de8461349c565b6135c5565b61349c565b9050919050565b5f6135f9826135ce565b9050919050565b5f61360a826135ef565b9050919050565b61361a81613600565b82525050565b5f6020820190506136335f830184613611565b92915050565b613642816134f6565b82525050565b5f60208201905061365b5f830184613639565b92915050565b5f6020828403121561367657613675613494565b5b5f61368384828501613515565b91505092915050565b5f805f606084860312156136a3576136a2613494565b5b5f6136b0868287016134e2565b93505060206136c1868287016134e2565b92505060406136d286828701613515565b9150509250925092565b6136e5816134bb565b82525050565b5f6020820190506136fe5f8301846136dc565b92915050565b5f60ff82169050919050565b61371981613704565b82525050565b5f6020820190506137325f830184613710565b92915050565b5f60408201905061374b5f830185613639565b6137586020830184613639565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137805761377f61375f565b5b8235905067ffffffffffffffff81111561379d5761379c613763565b5b6020830191508360208202830111156137b9576137b8613767565b5b9250929050565b5f8083601f8401126137d5576137d461375f565b5b8235905067ffffffffffffffff8111156137f2576137f1613763565b5b60208301915083602082028301111561380e5761380d613767565b5b9250929050565b5f805f806040858703121561382d5761382c613494565b5b5f85013567ffffffffffffffff81111561384a57613849613498565b5b6138568782880161376b565b9450945050602085013567ffffffffffffffff81111561387957613878613498565b5b613885878288016137c0565b925092505092959194509250565b61389c81613567565b81146138a6575f80fd5b50565b5f813590506138b781613893565b92915050565b5f80604083850312156138d3576138d2613494565b5b5f6138e0858286016134e2565b92505060206138f1858286016138a9565b9150509250929050565b5f602082840312156139105761390f613494565b5b5f61391d848285016138a9565b91505092915050565b5f806040838503121561393c5761393b613494565b5b5f613949858286016134e2565b925050602061395a858286016134e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806139a857607f821691505b6020821081036139bb576139ba613964565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139f56020836133f4565b9150613a00826139c1565b602082019050919050565b5f6020820190508181035f830152613a22816139e9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a60826134f6565b9150613a6b836134f6565b9250828202613a79816134f6565b91508282048414831517613a9057613a8f613a29565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ace826134f6565b9150613ad9836134f6565b925082613ae957613ae8613a97565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b4e602f836133f4565b9150613b5982613af4565b604082019050919050565b5f6020820190508181035f830152613b7b81613b42565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613bdc6028836133f4565b9150613be782613b82565b604082019050919050565b5f6020820190508181035f830152613c0981613bd0565b9050919050565b5f613c1a826134f6565b9150613c25836134f6565b9250828201905080821115613c3d57613c3c613a29565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c7a826134f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cac57613cab613a29565b5b600182019050919050565b5f81905092915050565b50565b5f613ccf5f83613cb7565b9150613cda82613cc1565b5f82019050919050565b5f613cee82613cc4565b9150819050919050565b7f4d757374206b6565702066656573206174203525206f72206c657373000000005f82015250565b5f613d2c601c836133f4565b9150613d3782613cf8565b602082019050919050565b5f6020820190508181035f830152613d5981613d20565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d94600c836133f4565b9150613d9f82613d60565b602082019050919050565b5f6020820190508181035f830152613dc181613d88565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e226039836133f4565b9150613e2d82613dc8565b604082019050919050565b5f6020820190508181035f830152613e4f81613e16565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613eb06025836133f4565b9150613ebb82613e56565b604082019050919050565b5f6020820190508181035f830152613edd81613ea4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613f3e6024836133f4565b9150613f4982613ee4565b604082019050919050565b5f6020820190508181035f830152613f6b81613f32565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613fcc6035836133f4565b9150613fd782613f72565b604082019050919050565b5f6020820190508181035f830152613ff981613fc0565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61405a6034836133f4565b915061406582614000565b604082019050919050565b5f6020820190508181035f8301526140878161404e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6140e86026836133f4565b91506140f38261408e565b604082019050919050565b5f6020820190508181035f830152614115816140dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141766024836133f4565b91506141818261411c565b604082019050919050565b5f6020820190508181035f8301526141a38161416a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142046022836133f4565b915061420f826141aa565b604082019050919050565b5f6020820190508181035f830152614231816141f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142926025836133f4565b915061429d82614238565b604082019050919050565b5f6020820190508181035f8301526142bf81614286565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6143206023836133f4565b915061432b826142c6565b604082019050919050565b5f6020820190508181035f83015261434d81614314565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143886016836133f4565b915061439382614354565b602082019050919050565b5f6020820190508181035f8301526143b58161437c565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6144166035836133f4565b9150614421826143bc565b604082019050919050565b5f6020820190508181035f8301526144438161440a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61447e6013836133f4565b91506144898261444a565b602082019050919050565b5f6020820190508181035f8301526144ab81614472565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61450c6036836133f4565b9150614517826144b2565b604082019050919050565b5f6020820190508181035f83015261453981614500565b9050919050565b5f61454a826134f6565b9150614555836134f6565b925082820390508181111561456d5761456c613a29565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145ae816134cc565b92915050565b5f602082840312156145c9576145c8613494565b5b5f6145d6848285016145a0565b91505092915050565b5f819050919050565b5f6146026145fd6145f8846145df565b6135c5565b6134f6565b9050919050565b614612816145e8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61464a816134bb565b82525050565b5f61465b8383614641565b60208301905092915050565b5f602082019050919050565b5f61467d82614618565b6146878185614622565b935061469283614632565b805f5b838110156146c25781516146a98882614650565b97506146b483614667565b925050600181019050614695565b5085935050505092915050565b5f60a0820190506146e25f830188613639565b6146ef6020830187614609565b81810360408301526147018186614673565b905061471060608301856136dc565b61471d6080830184613639565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6147816026836133f4565b915061478c82614727565b604082019050919050565b5f6020820190508181035f8301526147ae81614775565b905091905056fea264697066735822122037af183108e954d64c23fae45067a7fdf496cb42d150a94bb5e9d86c28e2403264736f6c6343000815003300000000000000000000000082f6a45e46a048876627d214a78750f2a08ea8ce

Deployed Bytecode

0x608060405260043610610280575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e1461097e578063e2f45605146109ba578063eba4c333146109e4578063f2fde38b14610a0c578063f8b45b0514610a34578063fabb0b4f14610a5e57610287565b8063bbc0c74214610874578063c02466681461089e578063c18bc195146108c6578063c8c8ebe4146108ee578063d257b34f14610918578063d85ba0631461095457610287565b80639a7a23d6116101125780639a7a23d614610748578063a457c2d714610770578063a672990c146107ac578063a9059cbb146107d4578063aacebbe314610810578063b62496f51461083857610287565b8063881dce601461067a5780638da5cb5b146106a257806392136913146106cc578063924de9b7146106f657806395d89b411461071e57610287565b80634a62bb65116101f257806370a08231116101ab57806370a0823114610586578063715018a6146105c257806371fc4688146105d8578063751039fc146106005780637571336a1461062a57806382aa7c681461065257610287565b80634a62bb651461049f5780634b49e7b6146104c957806367243482146104f45780636a486a8e1461051c5780636ddd1713146105465780636fc3eaec1461057057610287565b8063203e727e11610244578063203e727e1461038157806323b872dd146103a957806327c8f835146103e5578063313ce5671461040f578063395093511461043957806349bd5a5e1461047557610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f15780631694505e1461032d57806318160ddd1461035757610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a88565b6040516102ac9190613474565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190613529565b610b18565b6040516102e89190613581565b60405180910390f35b3480156102fc575f80fd5b506103176004803603810190610312919061359a565b610b35565b6040516103249190613581565b60405180910390f35b348015610338575f80fd5b50610341610b52565b60405161034e9190613620565b60405180910390f35b348015610362575f80fd5b5061036b610b76565b6040516103789190613648565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190613661565b610b7f565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca919061368c565b610c8e565b6040516103dc9190613581565b60405180910390f35b3480156103f0575f80fd5b506103f9610d80565b60405161040691906136eb565b60405180910390f35b34801561041a575f80fd5b50610423610d86565b604051610430919061371f565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613529565b610d8e565b60405161046c9190613581565b60405180910390f35b348015610480575f80fd5b50610489610e35565b60405161049691906136eb565b60405180910390f35b3480156104aa575f80fd5b506104b3610e59565b6040516104c09190613581565b60405180910390f35b3480156104d4575f80fd5b506104dd610e6b565b6040516104eb929190613738565b60405180910390f35b3480156104ff575f80fd5b5061051a60048036038101906105159190613815565b610e77565b005b348015610527575f80fd5b50610530610f20565b60405161053d9190613648565b60405180910390f35b348015610551575f80fd5b5061055a610f26565b6040516105679190613581565b60405180910390f35b34801561057b575f80fd5b50610584610f39565b005b348015610591575f80fd5b506105ac60048036038101906105a7919061359a565b610fc7565b6040516105b99190613648565b60405180910390f35b3480156105cd575f80fd5b506105d661100c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190613661565b611093565b005b34801561060b575f80fd5b50610614611168565b6040516106219190613581565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b91906138bd565b611205565b005b34801561065d575f80fd5b5061067860048036038101906106739190613661565b6112d9565b005b348015610685575f80fd5b506106a0600480360381019061069b9190613661565b6113a3565b005b3480156106ad575f80fd5b506106b6611464565b6040516106c391906136eb565b60405180910390f35b3480156106d7575f80fd5b506106e061148c565b6040516106ed9190613648565b60405180910390f35b348015610701575f80fd5b5061071c600480360381019061071791906138fb565b611492565b005b348015610729575f80fd5b5061073261152b565b60405161073f9190613474565b60405180910390f35b348015610753575f80fd5b5061076e600480360381019061076991906138bd565b6115bb565b005b34801561077b575f80fd5b5061079660048036038101906107919190613529565b6116d3565b6040516107a39190613581565b60405180910390f35b3480156107b7575f80fd5b506107d260048036038101906107cd91906138bd565b6117b9565b005b3480156107df575f80fd5b506107fa60048036038101906107f59190613529565b6118e1565b6040516108079190613581565b60405180910390f35b34801561081b575f80fd5b506108366004803603810190610831919061359a565b6118fe565b005b348015610843575f80fd5b5061085e6004803603810190610859919061359a565b611a38565b60405161086b9190613581565b60405180910390f35b34801561087f575f80fd5b50610888611a55565b6040516108959190613581565b60405180910390f35b3480156108a9575f80fd5b506108c460048036038101906108bf91906138bd565b611a68565b005b3480156108d1575f80fd5b506108ec60048036038101906108e79190613661565b611b8a565b005b3480156108f9575f80fd5b50610902611c99565b60405161090f9190613648565b60405180910390f35b348015610923575f80fd5b5061093e60048036038101906109399190613661565b611c9f565b60405161094b9190613581565b60405180910390f35b34801561095f575f80fd5b50610968611df3565b6040516109759190613648565b60405180910390f35b348015610989575f80fd5b506109a4600480360381019061099f9190613926565b611df9565b6040516109b19190613648565b60405180910390f35b3480156109c5575f80fd5b506109ce611e7b565b6040516109db9190613648565b60405180910390f35b3480156109ef575f80fd5b50610a0a6004803603810190610a059190613661565b611e81565b005b348015610a17575f80fd5b50610a326004803603810190610a2d919061359a565b611f56565b005b348015610a3f575f80fd5b50610a4861204c565b604051610a559190613648565b60405180910390f35b348015610a69575f80fd5b50610a72612052565b604051610a7f9190613648565b60405180910390f35b606060038054610a9790613991565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390613991565b8015610b0e5780601f10610ae557610100808354040283529160200191610b0e565b820191905f5260205f20905b815481529060010190602001808311610af157829003601f168201915b5050505050905090565b5f610b2b610b24612058565b848461205f565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610b87612058565b73ffffffffffffffffffffffffffffffffffffffff16610ba5611464565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613a0b565b60405180910390fd5b670de0b6b3a76400006103e86001610c11610b76565b610c1b9190613a56565b610c259190613ac4565b610c2f9190613ac4565b811015610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890613b64565b60405180910390fd5b670de0b6b3a764000081610c859190613a56565b60078190555050565b5f610c9a848484612222565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ce1612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613bf2565b60405180910390fd5b610d7485610d6c612058565b85840361205f565b60019150509392505050565b61dead81565b5f6012905090565b5f610e2b610d9a612058565b848460015f610da7612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e269190613c10565b61205f565b6001905092915050565b7f0000000000000000000000004e4d504ca84f722451e9e617cbd656b53d5e19d281565b600a5f9054906101000a900460ff1681565b5f804243915091509091565b5f84849050118015610e8e57508383905082829050145b610e96575f80fd5b5f3390505f5b85859050811015610f1857610f0582878784818110610ebe57610ebd613c43565b5b9050602002016020810190610ed3919061359a565b670de0b6b3a7640000878786818110610eef57610eee613c43565b5b90506020020135610f009190613a56565b612222565b8080610f1090613c70565b915050610e9c565b505050505050565b60105481565b600a60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f7f90613ce4565b5f6040518083038185875af1925050503d805f8114610fb9576040519150601f19603f3d011682016040523d82523d5f602084013e610fbe565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611014612058565b73ffffffffffffffffffffffffffffffffffffffff16611032611464565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90613a0b565b60405180910390fd5b6110915f612ccd565b565b61109b612058565b73ffffffffffffffffffffffffffffffffffffffff166110b9611464565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613a0b565b60405180910390fd5b80600f81905550600f54600e81905550600a600e541115611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90613d42565b60405180910390fd5b50565b5f611171612058565b73ffffffffffffffffffffffffffffffffffffffff1661118f611464565b73ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90613a0b565b60405180910390fd5b5f600a5f6101000a81548160ff0219169083151502179055506001905090565b61120d612058565b73ffffffffffffffffffffffffffffffffffffffff1661122b611464565b73ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890613a0b565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6112e1612058565b73ffffffffffffffffffffffffffffffffffffffff166112ff611464565b73ffffffffffffffffffffffffffffffffffffffff1614611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90613a0b565b60405180910390fd5b80600d819055506001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b8190555042600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e3612058565b73ffffffffffffffffffffffffffffffffffffffff1614611402575f80fd5b61140b30610fc7565b811115801561141957505f81115b611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90613daa565b60405180910390fd5b61146181612d90565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b61149a612058565b73ffffffffffffffffffffffffffffffffffffffff166114b8611464565b73ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590613a0b565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461153a90613991565b80601f016020809104026020016040519081016040528092919081815260200182805461156690613991565b80156115b15780601f10611588576101008083540402835291602001916115b1565b820191905f5260205f20905b81548152906001019060200180831161159457829003601f168201915b5050505050905090565b6115c3612058565b73ffffffffffffffffffffffffffffffffffffffff166115e1611464565b73ffffffffffffffffffffffffffffffffffffffff1614611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e90613a0b565b60405180910390fd5b7f0000000000000000000000004e4d504ca84f722451e9e617cbd656b53d5e19d273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90613e38565b60405180910390fd5b6116cf8282612fc3565b5050565b5f8060015f6116e0612058565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190613ec6565b60405180910390fd5b6117ae6117a5612058565b8585840361205f565b600191505092915050565b6117c1612058565b73ffffffffffffffffffffffffffffffffffffffff166117df611464565b73ffffffffffffffffffffffffffffffffffffffff1614611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90613a0b565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118f46118ed612058565b8484612222565b6001905092915050565b611906612058565b73ffffffffffffffffffffffffffffffffffffffff16611924611464565b73ffffffffffffffffffffffffffffffffffffffff161461197a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197190613a0b565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611a70612058565b73ffffffffffffffffffffffffffffffffffffffff16611a8e611464565b73ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613a0b565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b7e9190613581565b60405180910390a25050565b611b92612058565b73ffffffffffffffffffffffffffffffffffffffff16611bb0611464565b73ffffffffffffffffffffffffffffffffffffffff1614611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613a0b565b60405180910390fd5b670de0b6b3a76400006103e86005611c1c610b76565b611c269190613a56565b611c309190613ac4565b611c3a9190613ac4565b811015611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613f54565b60405180910390fd5b670de0b6b3a764000081611c909190613a56565b60098190555050565b60075481565b5f611ca8612058565b73ffffffffffffffffffffffffffffffffffffffff16611cc6611464565b73ffffffffffffffffffffffffffffffffffffffff1614611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1390613a0b565b60405180910390fd5b620186a06001611d2a610b76565b611d349190613a56565b611d3e9190613ac4565b821015611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613fe2565b60405180910390fd5b6103e86005611d8d610b76565b611d979190613a56565b611da19190613ac4565b821115611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda90614070565b60405180910390fd5b8160088190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611e89612058565b73ffffffffffffffffffffffffffffffffffffffff16611ea7611464565b73ffffffffffffffffffffffffffffffffffffffff1614611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613a0b565b60405180910390fd5b80601181905550601154601081905550600a6010541115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613d42565b60405180910390fd5b50565b611f5e612058565b73ffffffffffffffffffffffffffffffffffffffff16611f7c611464565b73ffffffffffffffffffffffffffffffffffffffff1614611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613a0b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906140fe565b60405180910390fd5b61204981612ccd565b50565b60095481565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c49061418c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121329061421a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122159190613648565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612287906142a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f590614336565b60405180910390fd5b5f81036123155761231083835f613061565b612cc8565b5f439050600a5f9054906101000a900460ff16156128fe57612335611464565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123a35750612373611464565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123db57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612415575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561242e5750600560149054906101000a900460ff16155b156128fd5780600d54600b546124449190613c10565b10612470576045600f81905550600f54600e819055506045601181905550601154601081905550612534565b600d54600b546124809190613c10565b8111801561249c5750600c600b546124989190613c10565b8111155b156124ec576a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550601e600f81905550600f54600e81905550601e601181905550601154601081905550612533565b6a108b2a2c280290940000006007819055506a108b2a2c280290940000006009819055506002600f81905550600f54600e8190555060026011819055506011546010819055505b5b600a60019054906101000a900460ff166126235760125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e3575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126199061439e565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126c0575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127675760075482111561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019061442c565b60405180910390fd5b60095461271684610fc7565b836127219190613c10565b1115612762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275990614494565b60405180910390fd5b6128fc565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612804575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128535760075482111561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284590614522565b60405180910390fd5b6128fb565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128fa576009546128ad84610fc7565b836128b89190613c10565b11156128f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f090614494565b60405180910390fd5b5b5b5b5b5b5f61290830610fc7565b90505f600854821015905080801561292c5750600a60029054906101000a900460ff165b80156129455750600560149054906101000a900460ff16155b80156129625750600260135f8581526020019081526020015f2054105b80156129b5575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a08575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a5b575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ac2576001600560146101000a81548160ff021916908315150217905550612a836132d6565b60135f8481526020019081526020015f205f8154612aa090613c70565b919050819055505f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff1615905060125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b71575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b7a575f90505b5f8115612cb75760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612bd857505f601054115b15612c0c57612c056064612bf7601054896133b690919063ffffffff16565b6133cb90919063ffffffff16565b9050612c94565b60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c6357505f600e54115b15612c9357612c906064612c82600e54896133b690919063ffffffff16565b6133cb90919063ffffffff16565b90505b5b5f811115612ca857612ca7883083613061565b5b8086612cb49190614540565b95505b612cc2888888613061565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612dac57612dab614573565b5b604051908082528060200260200182016040528015612dda5781602001602082028036833780820191505090505b50905030815f81518110612df157612df0613c43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb891906145b4565b81600181518110612ecc57612ecb613c43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f31307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461205f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f929594939291906146cf565b5f604051808303815f87803b158015612fa9575f80fd5b505af1158015612fbb573d5f803e3d5ffd5b505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c6906142a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361313d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313490614336565b60405180910390fd5b6131488383836133e0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156131cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c290614797565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132599190613c10565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132bd9190613648565b60405180910390a36132d08484846133e5565b50505050565b5f6132e030610fc7565b90505f8082036132f15750506133b4565b60146008546133009190613a56565b8211156133195760146008546133169190613a56565b91505b5f82905061332681612d90565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161336b90613ce4565b5f6040518083038185875af1925050503d805f81146133a5576040519150601f19603f3d011682016040523d82523d5f602084013e6133aa565b606091505b5050809250505050505b565b5f81836133c39190613a56565b905092915050565b5f81836133d89190613ac4565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613421578082015181840152602081019050613406565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613446826133ea565b61345081856133f4565b9350613460818560208601613404565b6134698161342c565b840191505092915050565b5f6020820190508181035f83015261348c818461343c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134c58261349c565b9050919050565b6134d5816134bb565b81146134df575f80fd5b50565b5f813590506134f0816134cc565b92915050565b5f819050919050565b613508816134f6565b8114613512575f80fd5b50565b5f81359050613523816134ff565b92915050565b5f806040838503121561353f5761353e613494565b5b5f61354c858286016134e2565b925050602061355d85828601613515565b9150509250929050565b5f8115159050919050565b61357b81613567565b82525050565b5f6020820190506135945f830184613572565b92915050565b5f602082840312156135af576135ae613494565b5b5f6135bc848285016134e2565b91505092915050565b5f819050919050565b5f6135e86135e36135de8461349c565b6135c5565b61349c565b9050919050565b5f6135f9826135ce565b9050919050565b5f61360a826135ef565b9050919050565b61361a81613600565b82525050565b5f6020820190506136335f830184613611565b92915050565b613642816134f6565b82525050565b5f60208201905061365b5f830184613639565b92915050565b5f6020828403121561367657613675613494565b5b5f61368384828501613515565b91505092915050565b5f805f606084860312156136a3576136a2613494565b5b5f6136b0868287016134e2565b93505060206136c1868287016134e2565b92505060406136d286828701613515565b9150509250925092565b6136e5816134bb565b82525050565b5f6020820190506136fe5f8301846136dc565b92915050565b5f60ff82169050919050565b61371981613704565b82525050565b5f6020820190506137325f830184613710565b92915050565b5f60408201905061374b5f830185613639565b6137586020830184613639565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137805761377f61375f565b5b8235905067ffffffffffffffff81111561379d5761379c613763565b5b6020830191508360208202830111156137b9576137b8613767565b5b9250929050565b5f8083601f8401126137d5576137d461375f565b5b8235905067ffffffffffffffff8111156137f2576137f1613763565b5b60208301915083602082028301111561380e5761380d613767565b5b9250929050565b5f805f806040858703121561382d5761382c613494565b5b5f85013567ffffffffffffffff81111561384a57613849613498565b5b6138568782880161376b565b9450945050602085013567ffffffffffffffff81111561387957613878613498565b5b613885878288016137c0565b925092505092959194509250565b61389c81613567565b81146138a6575f80fd5b50565b5f813590506138b781613893565b92915050565b5f80604083850312156138d3576138d2613494565b5b5f6138e0858286016134e2565b92505060206138f1858286016138a9565b9150509250929050565b5f602082840312156139105761390f613494565b5b5f61391d848285016138a9565b91505092915050565b5f806040838503121561393c5761393b613494565b5b5f613949858286016134e2565b925050602061395a858286016134e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806139a857607f821691505b6020821081036139bb576139ba613964565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139f56020836133f4565b9150613a00826139c1565b602082019050919050565b5f6020820190508181035f830152613a22816139e9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a60826134f6565b9150613a6b836134f6565b9250828202613a79816134f6565b91508282048414831517613a9057613a8f613a29565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ace826134f6565b9150613ad9836134f6565b925082613ae957613ae8613a97565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b4e602f836133f4565b9150613b5982613af4565b604082019050919050565b5f6020820190508181035f830152613b7b81613b42565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613bdc6028836133f4565b9150613be782613b82565b604082019050919050565b5f6020820190508181035f830152613c0981613bd0565b9050919050565b5f613c1a826134f6565b9150613c25836134f6565b9250828201905080821115613c3d57613c3c613a29565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c7a826134f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cac57613cab613a29565b5b600182019050919050565b5f81905092915050565b50565b5f613ccf5f83613cb7565b9150613cda82613cc1565b5f82019050919050565b5f613cee82613cc4565b9150819050919050565b7f4d757374206b6565702066656573206174203525206f72206c657373000000005f82015250565b5f613d2c601c836133f4565b9150613d3782613cf8565b602082019050919050565b5f6020820190508181035f830152613d5981613d20565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d94600c836133f4565b9150613d9f82613d60565b602082019050919050565b5f6020820190508181035f830152613dc181613d88565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e226039836133f4565b9150613e2d82613dc8565b604082019050919050565b5f6020820190508181035f830152613e4f81613e16565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613eb06025836133f4565b9150613ebb82613e56565b604082019050919050565b5f6020820190508181035f830152613edd81613ea4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613f3e6024836133f4565b9150613f4982613ee4565b604082019050919050565b5f6020820190508181035f830152613f6b81613f32565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613fcc6035836133f4565b9150613fd782613f72565b604082019050919050565b5f6020820190508181035f830152613ff981613fc0565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61405a6034836133f4565b915061406582614000565b604082019050919050565b5f6020820190508181035f8301526140878161404e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6140e86026836133f4565b91506140f38261408e565b604082019050919050565b5f6020820190508181035f830152614115816140dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141766024836133f4565b91506141818261411c565b604082019050919050565b5f6020820190508181035f8301526141a38161416a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142046022836133f4565b915061420f826141aa565b604082019050919050565b5f6020820190508181035f830152614231816141f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142926025836133f4565b915061429d82614238565b604082019050919050565b5f6020820190508181035f8301526142bf81614286565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6143206023836133f4565b915061432b826142c6565b604082019050919050565b5f6020820190508181035f83015261434d81614314565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143886016836133f4565b915061439382614354565b602082019050919050565b5f6020820190508181035f8301526143b58161437c565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6144166035836133f4565b9150614421826143bc565b604082019050919050565b5f6020820190508181035f8301526144438161440a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61447e6013836133f4565b91506144898261444a565b602082019050919050565b5f6020820190508181035f8301526144ab81614472565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61450c6036836133f4565b9150614517826144b2565b604082019050919050565b5f6020820190508181035f83015261453981614500565b9050919050565b5f61454a826134f6565b9150614555836134f6565b925082820390508181111561456d5761456c613a29565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145ae816134cc565b92915050565b5f602082840312156145c9576145c8613494565b5b5f6145d6848285016145a0565b91505092915050565b5f819050919050565b5f6146026145fd6145f8846145df565b6135c5565b6134f6565b9050919050565b614612816145e8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61464a816134bb565b82525050565b5f61465b8383614641565b60208301905092915050565b5f602082019050919050565b5f61467d82614618565b6146878185614622565b935061469283614632565b805f5b838110156146c25781516146a98882614650565b97506146b483614667565b925050600181019050614695565b5085935050505092915050565b5f60a0820190506146e25f830188613639565b6146ef6020830187614609565b81810360408301526147018186614673565b905061471060608301856136dc565b61471d6080830184613639565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6147816026836133f4565b915061478c82614727565b604082019050919050565b5f6020820190508181035f8301526147ae81614775565b905091905056fea264697066735822122037af183108e954d64c23fae45067a7fdf496cb42d150a94bb5e9d86c28e2403264736f6c63430008150033

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

00000000000000000000000082f6a45e46a048876627d214a78750f2a08ea8ce

-----Decoded View---------------
Arg [0] : _wallet1 (address): 0x82f6a45E46a048876627d214A78750f2a08eA8ce

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000082f6a45e46a048876627d214a78750f2a08ea8ce


Deployed Bytecode Sourcemap

15122:12952:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3733:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16039:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15205:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3140:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18806:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3910:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15308:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3039:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4410:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15263:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15555:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27344:128;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;21796:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15851:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15635:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20358:174;;;;;;;;;;;;;:::i;:::-;;3256:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;937:103;;;;;;;;;;;;;:::i;:::-;;21052:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18172:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19568:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17921:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20129:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;712:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15886:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19831:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2927:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20544:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4633:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19353:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3391:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21557:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16111:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15595:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19939:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19089:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15440:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18301:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15777:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3574:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15482:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21302:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1050:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15522:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15743:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2819:100;2873:13;2906:5;2899:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:100;:::o;3733:169::-;3816:4;3833:39;3842:12;:10;:12::i;:::-;3856:7;3865:6;3833:8;:39::i;:::-;3890:4;3883:11;;3733:169;;;;:::o;16039:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15205:51::-;;;:::o;3140:108::-;3201:7;3228:12;;3221:19;;3140:108;:::o;18806:275::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18943:4:::1;18935;18930:1;18914:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18913:26;;;;:::i;:::-;18912:35;;;;:::i;:::-;18902:6;:45;;18880:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;19066:6;19056;:17;;;;:::i;:::-;19033:20;:40;;;;18806:275:::0;:::o;3910:492::-;4050:4;4067:36;4077:6;4085:9;4096:6;4067:9;:36::i;:::-;4116:24;4143:11;:19;4155:6;4143:19;;;;;;;;;;;;;;;:33;4163:12;:10;:12::i;:::-;4143:33;;;;;;;;;;;;;;;;4116:60;;4215:6;4195:16;:26;;4187:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4302:57;4311:6;4319:12;:10;:12::i;:::-;4352:6;4333:16;:25;4302:8;:57::i;:::-;4390:4;4383:11;;;3910:492;;;;;:::o;15308:53::-;15354:6;15308:53;:::o;3039:93::-;3097:5;3122:2;3115:9;;3039:93;:::o;4410:215::-;4498:4;4515:80;4524:12;:10;:12::i;:::-;4538:7;4584:10;4547:11;:25;4559:12;:10;:12::i;:::-;4547:25;;;;;;;;;;;;;;;:34;4573:7;4547:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4515:8;:80::i;:::-;4613:4;4606:11;;4410:215;;;;:::o;15263:38::-;;;:::o;15555:33::-;;;;;;;;;;;;;:::o;27344:128::-;27390:4;27395;27420:15;27437:12;27412:38;;;;27344:128;;:::o;21796:353::-;21920:1;21901:9;;:16;;:20;:58;;;;;21943:9;;:16;;21925:7;;:14;;:34;21901:58;21893:67;;;;;;21973:12;21988:10;21973:25;;22018:6;22013:129;22034:9;;:16;;22030:1;:20;22013:129;;;22074:52;22084:4;22090:9;;22100:1;22090:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22118:6;22104:7;;22112:1;22104:10;;;;;;;:::i;:::-;;;;;;;;:21;;;;:::i;:::-;22074:9;:52::i;:::-;22052:3;;;;;:::i;:::-;;;;22013:129;;;;21880:269;21796:353;;;;:::o;15851:28::-;;;;:::o;15635:31::-;;;;;;;;;;;;;:::o;20358:174::-;20400:12;20445:15;;;;;;;;;;;20437:29;;20488:21;20437:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20423:101;;;;;20389:143;20358:174::o;3256:127::-;3330:7;3357:9;:18;3367:7;3357:18;;;;;;;;;;;;;;;;3350:25;;3256:127;;;:::o;937:103::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1002:30:::1;1029:1;1002:18;:30::i;:::-;937:103::o:0;21052:242::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21162:13:::1;21144:15;:31;;;;21201:15;;21186:12;:30;;;;21251:2;21235:12;;:18;;21227:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21052:242:::0;:::o;18172:121::-;18224:4;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18258:5:::1;18241:14;;:22;;;;;;;;;;;;;;;;;;18281:4;18274:11;;18172:121:::0;:::o;19568:167::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19723:4:::1;19681:31;:39;19713:6;19681:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;19568:167:::0;;:::o;17921:243::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18008:11:::1;17995:10;:24;;;;18046:4;18030:13;;:20;;;;;;;;;;;;;;;;;;18075:4;18061:11;;:18;;;;;;;;;;;;;;;;;;18103:12;18090:10;:25;;;;18141:15;18126:12;:30;;;;17921:243:::0;:::o;20129:221::-;20207:15;;;;;;;;;;;20191:31;;:12;:10;:12::i;:::-;:31;;;20183:40;;;;;;20252:24;20270:4;20252:9;:24::i;:::-;20242:6;:34;;:48;;;;;20289:1;20280:6;:10;20242:48;20234:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20318:24;20335:6;20318:16;:24::i;:::-;20129:221;:::o;712:87::-;758:7;785:6;;;;;;;;;;;778:13;;712:87;:::o;15886:31::-;;;;:::o;19831:100::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19916:7:::1;19902:11;;:21;;;;;;;;;;;;;;;;;;19831:100:::0;:::o;2927:104::-;2983:13;3016:7;3009:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2927:104;:::o;20544:304::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20688:13:::1;20680:21;;:4;:21;;::::0;20658:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20799:41;20828:4;20834:5;20799:28;:41::i;:::-;20544:304:::0;;:::o;4633:413::-;4726:4;4743:24;4770:11;:25;4782:12;:10;:12::i;:::-;4770:25;;;;;;;;;;;;;;;:34;4796:7;4770:34;;;;;;;;;;;;;;;;4743:61;;4843:15;4823:16;:35;;4815:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4936:67;4945:12;:10;:12::i;:::-;4959:7;4987:15;4968:16;:34;4936:8;:67::i;:::-;5034:4;5027:11;;;4633:413;;;;:::o;19353:207::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19497:4:::1;19451:31;:43;19483:10;19451:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;19546:4;19512:19;:31;19532:10;19512:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19353:207:::0;;:::o;3391:175::-;3477:4;3494:42;3504:12;:10;:12::i;:::-;3518:9;3529:6;3494:9;:42::i;:::-;3554:4;3547:11;;3391:175;;;;:::o;21557:231::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21717:15:::1;;;;;;;;;;;21674:59;;21697:18;21674:59;;;;;;;;;;;;21762:18;21744:15;;:36;;;;;;;;;;;;;;;;;;21557:231:::0;:::o;16111:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;15595:33::-;;;;;;;;;;;;;:::o;19939:182::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20055:8:::1;20024:19;:28;20044:7;20024:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20095:7;20079:34;;;20104:8;20079:34;;;;;;:::i;:::-;;;;;;;;19939:182:::0;;:::o;19089:256::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19229:4:::1;19221;19216:1;19200:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19199:26;;;;:::i;:::-;19198:35;;;;:::i;:::-;19188:6;:45;;19166:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;19330:6;19320;:17;;;;:::i;:::-;19308:9;:29;;;;19089:256:::0;:::o;15440:35::-;;;;:::o;18301:497::-;18409:4;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18488:6:::1;18483:1;18467:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18466:28;;;;:::i;:::-;18453:9;:41;;18431:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;18643:4;18638:1;18622:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18621:26;;;;:::i;:::-;18608:9;:39;;18586:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;18759:9;18738:18;:30;;;;18786:4;18779:11;;18301:497:::0;;;:::o;15777:27::-;;;;:::o;3574:151::-;3663:7;3690:11;:18;3702:5;3690:18;;;;;;;;;;;;;;;:27;3709:7;3690:27;;;;;;;;;;;;;;;;3683:34;;3574:151;;;;:::o;15482:33::-;;;;:::o;21302:247::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21414:13:::1;21395:16;:32;;;;21454:16;;21438:13;:32;;;;21506:2;21489:13;;:19;;21481:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21302:247:::0;:::o;1050:201::-;860:12;:10;:12::i;:::-;849:23;;:7;:5;:7::i;:::-;:23;;;841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1159:1:::1;1139:22;;:8;:22;;::::0;1131:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1215:28;1234:8;1215:18;:28::i;:::-;1050:201:::0;:::o;15522:24::-;;;;:::o;15743:25::-;;;;:::o;252:98::-;305:7;332:10;325:17;;252:98;:::o;6801:380::-;6954:1;6937:19;;:5;:19;;;6929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7035:1;7016:21;;:7;:21;;;7008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7119:6;7089:11;:18;7101:5;7089:18;;;;;;;;;;;;;;;:27;7108:7;7089:27;;;;;;;;;;;;;;;:36;;;;7157:7;7141:32;;7150:5;7141:32;;;7166:6;7141:32;;;;;;:::i;:::-;;;;;;;;6801:380;;;:::o;22157:4631::-;22305:1;22289:18;;:4;:18;;;22281:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22382:1;22368:16;;:2;:16;;;22360:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22451:1;22441:6;:11;22437:93;;22469:28;22485:4;22491:2;22495:1;22469:15;:28::i;:::-;22512:7;;22437:93;22542:16;22561:12;22542:31;;22590:14;;;;;;;;;;;22586:2735;;;22651:7;:5;:7::i;:::-;22643:15;;:4;:15;;;;:49;;;;;22685:7;:5;:7::i;:::-;22679:13;;:2;:13;;;;22643:49;:86;;;;;22727:1;22713:16;;:2;:16;;;;22643:86;:128;;;;;22764:6;22750:21;;:2;:21;;;;22643:128;:158;;;;;22793:8;;;;;;;;;;;22792:9;22643:158;22621:2689;;;22884:8;22869:10;;22856;;:23;;;;:::i;:::-;22855:37;22834:1023;;22946:2;22928:15;:20;;;;22982:15;;22967:12;:30;;;;23037:2;23018:16;:21;;;;23074:16;;23058:13;:32;;;;22834:1023;;;23144:10;;23131;;:23;;;;:::i;:::-;23119:8;:36;:67;;;;;23184:2;23171:10;;:15;;;;:::i;:::-;23159:8;:27;;23119:67;23116:741;;;23246:17;23222:20;:41;;;;23295:17;23282:9;:30;;;;23351:2;23333:15;:20;;;;23387:15;;23372:12;:30;;;;23442:2;23423:16;:21;;;;23479:16;;23463:13;:32;;;;23116:741;;;23592:17;23568:20;:41;;;;23641:17;23628:9;:30;;;;23697:1;23679:15;:19;;;;23732:15;;23717:12;:30;;;;23787:1;23768:16;:20;;;;23823:16;;23807:13;:32;;;;23116:741;22834:1023;23882:13;;;;;;;;;;;23877:223;;23954:19;:25;23974:4;23954:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23983:19;:23;24003:2;23983:23;;;;;;;;;;;;;;;;;;;;;;;;;23954:52;23920:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;23877:223;24174:25;:31;24200:4;24174:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24231:31;:35;24263:2;24231:35;;;;;;;;;;;;;;;;;;;;;;;;;24230:36;24174:92;24148:1147;;;24353:20;;24343:6;:30;;24309:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;24561:9;;24544:13;24554:2;24544:9;:13::i;:::-;24535:6;:22;;;;:::i;:::-;:35;;24501:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24148:1147;;;24739:25;:29;24765:2;24739:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24794:31;:37;24826:4;24794:37;;;;;;;;;;;;;;;;;;;;;;;;;24793:38;24739:92;24713:582;;;24918:20;;24908:6;:30;;24874:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;24713:582;;;25075:31;:35;25107:2;25075:35;;;;;;;;;;;;;;;;;;;;;;;;;25070:225;;25195:9;;25178:13;25188:2;25178:9;:13::i;:::-;25169:6;:22;;;;:::i;:::-;:35;;25135:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;25070:225;24713:582;24148:1147;22621:2689;22586:2735;25333:28;25364:24;25382:4;25364:9;:24::i;:::-;25333:55;;25401:12;25440:18;;25416:20;:42;;25401:57;;25489:7;:35;;;;;25513:11;;;;;;;;;;;25489:35;:61;;;;;25542:8;;;;;;;;;;;25541:9;25489:61;:105;;;;;25592:1;25568:11;:21;25580:8;25568:21;;;;;;;;;;;;:25;25489:105;:154;;;;;25612:25;:31;25638:4;25612:31;;;;;;;;;;;;;;;;;;;;;;;;;25611:32;25489:154;:197;;;;;25661:19;:25;25681:4;25661:25;;;;;;;;;;;;;;;;;;;;;;;;;25660:26;25489:197;:238;;;;;25704:19;:23;25724:2;25704:23;;;;;;;;;;;;;;;;;;;;;;;;;25703:24;25489:238;25471:410;;;25765:4;25754:8;;:15;;;;;;;;;;;;;;;;;;25786:10;:8;:10::i;:::-;25815:11;:21;25827:8;25815:21;;;;;;;;;;;;25813:23;;;;;:::i;:::-;;;;;;;;25864:5;25853:8;;:16;;;;;;;;;;;;;;;;;;25471:410;25893:12;25909:8;;;;;;;;;;;25908:9;25893:24;;26019:19;:25;26039:4;26019:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;26048:19;:23;26068:2;26048:23;;;;;;;;;;;;;;;;;;;;;;;;;26019:52;26015:100;;;26098:5;26088:15;;26015:100;26127:12;26232:7;26228:507;;;26284:25;:29;26310:2;26284:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;26333:1;26317:13;;:17;26284:50;26280:306;;;26362:34;26392:3;26362:25;26373:13;;26362:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;26355:41;;26280:306;;;26458:25;:31;26484:4;26458:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;26508:1;26493:12;;:16;26458:51;26454:132;;;26537:33;26566:3;26537:24;26548:12;;26537:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;26530:40;;26454:132;26280:306;26613:1;26606:4;:8;26602:91;;;26635:42;26651:4;26665;26672;26635:15;:42::i;:::-;26602:91;26719:4;26709:14;;;;;:::i;:::-;;;26228:507;26747:33;26763:4;26769:2;26773:6;26747:15;:33::i;:::-;22270:4518;;;;;22157:4631;;;;:::o;1259:191::-;1333:16;1352:6;;;;;;;;;;;1333:25;;1378:8;1369:6;;:17;;;;;;;;;;;;;;;;;;1433:8;1402:40;;1423:8;1402:40;;;;;;;;;;;;1322:128;1259:191;:::o;27480:589::-;27606:21;27644:1;27630:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27606:40;;27675:4;27657;27662:1;27657:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27701:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27691:4;27696:1;27691:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27736:62;27753:4;27768:15;27786:11;27736:8;:62::i;:::-;27837:15;:66;;;27918:11;27944:1;27988:4;28015;28035:15;27837:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27535:534;27480:589;:::o;20856:188::-;20973:5;20939:25;:31;20965:4;20939:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21030:5;20996:40;;21024:4;20996:40;;;;;;;;;;;;20856:188;;:::o;5054:733::-;5212:1;5194:20;;:6;:20;;;5186:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5296:1;5275:23;;:9;:23;;;5267:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5351:47;5372:6;5380:9;5391:6;5351:20;:47::i;:::-;5411:21;5435:9;:17;5445:6;5435:17;;;;;;;;;;;;;;;;5411:41;;5488:6;5471:13;:23;;5463:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5609:6;5593:13;:22;5573:9;:17;5583:6;5573:17;;;;;;;;;;;;;;;:42;;;;5661:6;5637:9;:20;5647:9;5637:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5702:9;5685:35;;5694:6;5685:35;;;5713:6;5685:35;;;;;;:::i;:::-;;;;;;;;5733:46;5753:6;5761:9;5772:6;5733:19;:46::i;:::-;5175:612;5054:733;;;:::o;26796:540::-;26835:23;26861:24;26879:4;26861:9;:24::i;:::-;26835:50;;26896:12;26944:1;26925:15;:20;26921:59;;26962:7;;;;26921:59;27035:2;27014:18;;:23;;;;:::i;:::-;26996:15;:41;26992:115;;;27093:2;27072:18;;:23;;;;:::i;:::-;27054:41;;26992:115;27121:26;27150:15;27121:44;;27178:36;27195:18;27178:16;:36::i;:::-;27249:15;;;;;;;;;;;27241:29;;27292:21;27241:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27227:101;;;;;26824:512;;;26796:540;:::o;8807:98::-;8865:7;8896:1;8892;:5;;;;:::i;:::-;8885:12;;8807:98;;;;:::o;8913:::-;8971:7;9002:1;8998;:5;;;;:::i;:::-;8991:12;;8913:98;;;;:::o;7189:125::-;;;;:::o;7322:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:329::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:53;5415:7;5406:6;5395:9;5391:22;5370:53;:::i;:::-;5360:63;;5316:117;5111:329;;;;:::o;5446:619::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5940:118;5446:619;;;;;:::o;6071:118::-;6158:24;6176:5;6158:24;:::i;:::-;6153:3;6146:37;6071:118;;:::o;6195:222::-;6288:4;6326:2;6315:9;6311:18;6303:26;;6339:71;6407:1;6396:9;6392:17;6383:6;6339:71;:::i;:::-;6195:222;;;;:::o;6423:86::-;6458:7;6498:4;6491:5;6487:16;6476:27;;6423:86;;;:::o;6515:112::-;6598:22;6614:5;6598:22;:::i;:::-;6593:3;6586:35;6515:112;;:::o;6633:214::-;6722:4;6760:2;6749:9;6745:18;6737:26;;6773:67;6837:1;6826:9;6822:17;6813:6;6773:67;:::i;:::-;6633:214;;;;:::o;6853:332::-;6974:4;7012:2;7001:9;6997:18;6989:26;;7025:71;7093:1;7082:9;7078:17;7069:6;7025:71;:::i;:::-;7106:72;7174:2;7163:9;7159:18;7150:6;7106:72;:::i;:::-;6853:332;;;;;:::o;7191:117::-;7300:1;7297;7290:12;7314:117;7423:1;7420;7413:12;7437:117;7546:1;7543;7536:12;7577:568;7650:8;7660:6;7710:3;7703:4;7695:6;7691:17;7687:27;7677:122;;7718:79;;:::i;:::-;7677:122;7831:6;7818:20;7808:30;;7861:18;7853:6;7850:30;7847:117;;;7883:79;;:::i;:::-;7847:117;7997:4;7989:6;7985:17;7973:29;;8051:3;8043:4;8035:6;8031:17;8021:8;8017:32;8014:41;8011:128;;;8058:79;;:::i;:::-;8011:128;7577:568;;;;;:::o;8168:::-;8241:8;8251:6;8301:3;8294:4;8286:6;8282:17;8278:27;8268:122;;8309:79;;:::i;:::-;8268:122;8422:6;8409:20;8399:30;;8452:18;8444:6;8441:30;8438:117;;;8474:79;;:::i;:::-;8438:117;8588:4;8580:6;8576:17;8564:29;;8642:3;8634:4;8626:6;8622:17;8612:8;8608:32;8605:41;8602:128;;;8649:79;;:::i;:::-;8602:128;8168:568;;;;;:::o;8742:934::-;8864:6;8872;8880;8888;8937:2;8925:9;8916:7;8912:23;8908:32;8905:119;;;8943:79;;:::i;:::-;8905:119;9091:1;9080:9;9076:17;9063:31;9121:18;9113:6;9110:30;9107:117;;;9143:79;;:::i;:::-;9107:117;9256:80;9328:7;9319:6;9308:9;9304:22;9256:80;:::i;:::-;9238:98;;;;9034:312;9413:2;9402:9;9398:18;9385:32;9444:18;9436:6;9433:30;9430:117;;;9466:79;;:::i;:::-;9430:117;9579:80;9651:7;9642:6;9631:9;9627:22;9579:80;:::i;:::-;9561:98;;;;9356:313;8742:934;;;;;;;:::o;9682:116::-;9752:21;9767:5;9752:21;:::i;:::-;9745:5;9742:32;9732:60;;9788:1;9785;9778:12;9732:60;9682:116;:::o;9804:133::-;9847:5;9885:6;9872:20;9863:29;;9901:30;9925:5;9901:30;:::i;:::-;9804:133;;;;:::o;9943:468::-;10008:6;10016;10065:2;10053:9;10044:7;10040:23;10036:32;10033:119;;;10071:79;;:::i;:::-;10033:119;10191:1;10216:53;10261:7;10252:6;10241:9;10237:22;10216:53;:::i;:::-;10206:63;;10162:117;10318:2;10344:50;10386:7;10377:6;10366:9;10362:22;10344:50;:::i;:::-;10334:60;;10289:115;9943:468;;;;;:::o;10417:323::-;10473:6;10522:2;10510:9;10501:7;10497:23;10493:32;10490:119;;;10528:79;;:::i;:::-;10490:119;10648:1;10673:50;10715:7;10706:6;10695:9;10691:22;10673:50;:::i;:::-;10663:60;;10619:114;10417:323;;;;:::o;10746:474::-;10814:6;10822;10871:2;10859:9;10850:7;10846:23;10842:32;10839:119;;;10877:79;;:::i;:::-;10839:119;10997:1;11022:53;11067:7;11058:6;11047:9;11043:22;11022:53;:::i;:::-;11012:63;;10968:117;11124:2;11150:53;11195:7;11186:6;11175:9;11171:22;11150:53;:::i;:::-;11140:63;;11095:118;10746:474;;;;;:::o;11226:180::-;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:320;11456:6;11493:1;11487:4;11483:12;11473:22;;11540:1;11534:4;11530:12;11561:18;11551:81;;11617:4;11609:6;11605:17;11595:27;;11551:81;11679:2;11671:6;11668:14;11648:18;11645:38;11642:84;;11698:18;;:::i;:::-;11642:84;11463:269;11412:320;;;:::o;11738:182::-;11878:34;11874:1;11866:6;11862:14;11855:58;11738:182;:::o;11926:366::-;12068:3;12089:67;12153:2;12148:3;12089:67;:::i;:::-;12082:74;;12165:93;12254:3;12165:93;:::i;:::-;12283:2;12278:3;12274:12;12267:19;;11926:366;;;:::o;12298:419::-;12464:4;12502:2;12491:9;12487:18;12479:26;;12551:9;12545:4;12541:20;12537:1;12526:9;12522:17;12515:47;12579:131;12705:4;12579:131;:::i;:::-;12571:139;;12298:419;;;:::o;12723:180::-;12771:77;12768:1;12761:88;12868:4;12865:1;12858:15;12892:4;12889:1;12882:15;12909:410;12949:7;12972:20;12990:1;12972:20;:::i;:::-;12967:25;;13006:20;13024:1;13006:20;:::i;:::-;13001:25;;13061:1;13058;13054:9;13083:30;13101:11;13083:30;:::i;:::-;13072:41;;13262:1;13253:7;13249:15;13246:1;13243:22;13223:1;13216:9;13196:83;13173:139;;13292:18;;:::i;:::-;13173:139;12957:362;12909:410;;;;:::o;13325:180::-;13373:77;13370:1;13363:88;13470:4;13467:1;13460:15;13494:4;13491:1;13484:15;13511:185;13551:1;13568:20;13586:1;13568:20;:::i;:::-;13563:25;;13602:20;13620:1;13602:20;:::i;:::-;13597:25;;13641:1;13631:35;;13646:18;;:::i;:::-;13631:35;13688:1;13685;13681:9;13676:14;;13511:185;;;;:::o;13702:234::-;13842:34;13838:1;13830:6;13826:14;13819:58;13911:17;13906:2;13898:6;13894:15;13887:42;13702:234;:::o;13942:366::-;14084:3;14105:67;14169:2;14164:3;14105:67;:::i;:::-;14098:74;;14181:93;14270:3;14181:93;:::i;:::-;14299:2;14294:3;14290:12;14283:19;;13942:366;;;:::o;14314:419::-;14480:4;14518:2;14507:9;14503:18;14495:26;;14567:9;14561:4;14557:20;14553:1;14542:9;14538:17;14531:47;14595:131;14721:4;14595:131;:::i;:::-;14587:139;;14314:419;;;:::o;14739:227::-;14879:34;14875:1;14867:6;14863:14;14856:58;14948:10;14943:2;14935:6;14931:15;14924:35;14739:227;:::o;14972:366::-;15114:3;15135:67;15199:2;15194:3;15135:67;:::i;:::-;15128:74;;15211:93;15300:3;15211:93;:::i;:::-;15329:2;15324:3;15320:12;15313:19;;14972:366;;;:::o;15344:419::-;15510:4;15548:2;15537:9;15533:18;15525:26;;15597:9;15591:4;15587:20;15583:1;15572:9;15568:17;15561:47;15625:131;15751:4;15625:131;:::i;:::-;15617:139;;15344:419;;;:::o;15769:191::-;15809:3;15828:20;15846:1;15828:20;:::i;:::-;15823:25;;15862:20;15880:1;15862:20;:::i;:::-;15857:25;;15905:1;15902;15898:9;15891:16;;15926:3;15923:1;15920:10;15917:36;;;15933:18;;:::i;:::-;15917:36;15769:191;;;;:::o;15966:180::-;16014:77;16011:1;16004:88;16111:4;16108:1;16101:15;16135:4;16132:1;16125:15;16152:233;16191:3;16214:24;16232:5;16214:24;:::i;:::-;16205:33;;16260:66;16253:5;16250:77;16247:103;;16330:18;;:::i;:::-;16247:103;16377:1;16370:5;16366:13;16359:20;;16152:233;;;:::o;16391:147::-;16492:11;16529:3;16514:18;;16391:147;;;;:::o;16544:114::-;;:::o;16664:398::-;16823:3;16844:83;16925:1;16920:3;16844:83;:::i;:::-;16837:90;;16936:93;17025:3;16936:93;:::i;:::-;17054:1;17049:3;17045:11;17038:18;;16664:398;;;:::o;17068:379::-;17252:3;17274:147;17417:3;17274:147;:::i;:::-;17267:154;;17438:3;17431:10;;17068:379;;;:::o;17453:178::-;17593:30;17589:1;17581:6;17577:14;17570:54;17453:178;:::o;17637:366::-;17779:3;17800:67;17864:2;17859:3;17800:67;:::i;:::-;17793:74;;17876:93;17965:3;17876:93;:::i;:::-;17994:2;17989:3;17985:12;17978:19;;17637:366;;;:::o;18009:419::-;18175:4;18213:2;18202:9;18198:18;18190:26;;18262:9;18256:4;18252:20;18248:1;18237:9;18233:17;18226:47;18290:131;18416:4;18290:131;:::i;:::-;18282:139;;18009:419;;;:::o;18434:162::-;18574:14;18570:1;18562:6;18558:14;18551:38;18434:162;:::o;18602:366::-;18744:3;18765:67;18829:2;18824:3;18765:67;:::i;:::-;18758:74;;18841:93;18930:3;18841:93;:::i;:::-;18959:2;18954:3;18950:12;18943:19;;18602:366;;;:::o;18974:419::-;19140:4;19178:2;19167:9;19163:18;19155:26;;19227:9;19221:4;19217:20;19213:1;19202:9;19198:17;19191:47;19255:131;19381:4;19255:131;:::i;:::-;19247:139;;18974:419;;;:::o;19399:244::-;19539:34;19535:1;19527:6;19523:14;19516:58;19608:27;19603:2;19595:6;19591:15;19584:52;19399:244;:::o;19649:366::-;19791:3;19812:67;19876:2;19871:3;19812:67;:::i;:::-;19805:74;;19888:93;19977:3;19888:93;:::i;:::-;20006:2;20001:3;19997:12;19990:19;;19649:366;;;:::o;20021:419::-;20187:4;20225:2;20214:9;20210:18;20202:26;;20274:9;20268:4;20264:20;20260:1;20249:9;20245:17;20238:47;20302:131;20428:4;20302:131;:::i;:::-;20294:139;;20021:419;;;:::o;20446:224::-;20586:34;20582:1;20574:6;20570:14;20563:58;20655:7;20650:2;20642:6;20638:15;20631:32;20446:224;:::o;20676:366::-;20818:3;20839:67;20903:2;20898:3;20839:67;:::i;:::-;20832:74;;20915:93;21004:3;20915:93;:::i;:::-;21033:2;21028:3;21024:12;21017:19;;20676:366;;;:::o;21048:419::-;21214:4;21252:2;21241:9;21237:18;21229:26;;21301:9;21295:4;21291:20;21287:1;21276:9;21272:17;21265:47;21329:131;21455:4;21329:131;:::i;:::-;21321:139;;21048:419;;;:::o;21473:223::-;21613:34;21609:1;21601:6;21597:14;21590:58;21682:6;21677:2;21669:6;21665:15;21658:31;21473:223;:::o;21702:366::-;21844:3;21865:67;21929:2;21924:3;21865:67;:::i;:::-;21858:74;;21941:93;22030:3;21941:93;:::i;:::-;22059:2;22054:3;22050:12;22043:19;;21702:366;;;:::o;22074:419::-;22240:4;22278:2;22267:9;22263:18;22255:26;;22327:9;22321:4;22317:20;22313:1;22302:9;22298:17;22291:47;22355:131;22481:4;22355:131;:::i;:::-;22347:139;;22074:419;;;:::o;22499:240::-;22639:34;22635:1;22627:6;22623:14;22616:58;22708:23;22703:2;22695:6;22691:15;22684:48;22499:240;:::o;22745:366::-;22887:3;22908:67;22972:2;22967:3;22908:67;:::i;:::-;22901:74;;22984:93;23073:3;22984:93;:::i;:::-;23102:2;23097:3;23093:12;23086:19;;22745:366;;;:::o;23117:419::-;23283:4;23321:2;23310:9;23306:18;23298:26;;23370:9;23364:4;23360:20;23356:1;23345:9;23341:17;23334:47;23398:131;23524:4;23398:131;:::i;:::-;23390:139;;23117:419;;;:::o;23542:239::-;23682:34;23678:1;23670:6;23666:14;23659:58;23751:22;23746:2;23738:6;23734:15;23727:47;23542:239;:::o;23787:366::-;23929:3;23950:67;24014:2;24009:3;23950:67;:::i;:::-;23943:74;;24026:93;24115:3;24026:93;:::i;:::-;24144:2;24139:3;24135:12;24128:19;;23787:366;;;:::o;24159:419::-;24325:4;24363:2;24352:9;24348:18;24340:26;;24412:9;24406:4;24402:20;24398:1;24387:9;24383:17;24376:47;24440:131;24566:4;24440:131;:::i;:::-;24432:139;;24159:419;;;:::o;24584:225::-;24724:34;24720:1;24712:6;24708:14;24701:58;24793:8;24788:2;24780:6;24776:15;24769:33;24584:225;:::o;24815:366::-;24957:3;24978:67;25042:2;25037:3;24978:67;:::i;:::-;24971:74;;25054:93;25143:3;25054:93;:::i;:::-;25172:2;25167:3;25163:12;25156:19;;24815:366;;;:::o;25187:419::-;25353:4;25391:2;25380:9;25376:18;25368:26;;25440:9;25434:4;25430:20;25426:1;25415:9;25411:17;25404:47;25468:131;25594:4;25468:131;:::i;:::-;25460:139;;25187:419;;;:::o;25612:223::-;25752:34;25748:1;25740:6;25736:14;25729:58;25821:6;25816:2;25808:6;25804:15;25797:31;25612:223;:::o;25841:366::-;25983:3;26004:67;26068:2;26063:3;26004:67;:::i;:::-;25997:74;;26080:93;26169:3;26080:93;:::i;:::-;26198:2;26193:3;26189:12;26182:19;;25841:366;;;:::o;26213:419::-;26379:4;26417:2;26406:9;26402:18;26394:26;;26466:9;26460:4;26456:20;26452:1;26441:9;26437:17;26430:47;26494:131;26620:4;26494:131;:::i;:::-;26486:139;;26213:419;;;:::o;26638:221::-;26778:34;26774:1;26766:6;26762:14;26755:58;26847:4;26842:2;26834:6;26830:15;26823:29;26638:221;:::o;26865:366::-;27007:3;27028:67;27092:2;27087:3;27028:67;:::i;:::-;27021:74;;27104:93;27193:3;27104:93;:::i;:::-;27222:2;27217:3;27213:12;27206:19;;26865:366;;;:::o;27237:419::-;27403:4;27441:2;27430:9;27426:18;27418:26;;27490:9;27484:4;27480:20;27476:1;27465:9;27461:17;27454:47;27518:131;27644:4;27518:131;:::i;:::-;27510:139;;27237:419;;;:::o;27662:224::-;27802:34;27798:1;27790:6;27786:14;27779:58;27871:7;27866:2;27858:6;27854:15;27847:32;27662:224;:::o;27892:366::-;28034:3;28055:67;28119:2;28114:3;28055:67;:::i;:::-;28048:74;;28131:93;28220:3;28131:93;:::i;:::-;28249:2;28244:3;28240:12;28233:19;;27892:366;;;:::o;28264:419::-;28430:4;28468:2;28457:9;28453:18;28445:26;;28517:9;28511:4;28507:20;28503:1;28492:9;28488:17;28481:47;28545:131;28671:4;28545:131;:::i;:::-;28537:139;;28264:419;;;:::o;28689:222::-;28829:34;28825:1;28817:6;28813:14;28806:58;28898:5;28893:2;28885:6;28881:15;28874:30;28689:222;:::o;28917:366::-;29059:3;29080:67;29144:2;29139:3;29080:67;:::i;:::-;29073:74;;29156:93;29245:3;29156:93;:::i;:::-;29274:2;29269:3;29265:12;29258:19;;28917:366;;;:::o;29289:419::-;29455:4;29493:2;29482:9;29478:18;29470:26;;29542:9;29536:4;29532:20;29528:1;29517:9;29513:17;29506:47;29570:131;29696:4;29570:131;:::i;:::-;29562:139;;29289:419;;;:::o;29714:172::-;29854:24;29850:1;29842:6;29838:14;29831:48;29714:172;:::o;29892:366::-;30034:3;30055:67;30119:2;30114:3;30055:67;:::i;:::-;30048:74;;30131:93;30220:3;30131:93;:::i;:::-;30249:2;30244:3;30240:12;30233:19;;29892:366;;;:::o;30264:419::-;30430:4;30468:2;30457:9;30453:18;30445:26;;30517:9;30511:4;30507:20;30503:1;30492:9;30488:17;30481:47;30545:131;30671:4;30545:131;:::i;:::-;30537:139;;30264:419;;;:::o;30689:240::-;30829:34;30825:1;30817:6;30813:14;30806:58;30898:23;30893:2;30885:6;30881:15;30874:48;30689:240;:::o;30935:366::-;31077:3;31098:67;31162:2;31157:3;31098:67;:::i;:::-;31091:74;;31174:93;31263:3;31174:93;:::i;:::-;31292:2;31287:3;31283:12;31276:19;;30935:366;;;:::o;31307:419::-;31473:4;31511:2;31500:9;31496:18;31488:26;;31560:9;31554:4;31550:20;31546:1;31535:9;31531:17;31524:47;31588:131;31714:4;31588:131;:::i;:::-;31580:139;;31307:419;;;:::o;31732:169::-;31872:21;31868:1;31860:6;31856:14;31849:45;31732:169;:::o;31907:366::-;32049:3;32070:67;32134:2;32129:3;32070:67;:::i;:::-;32063:74;;32146:93;32235:3;32146:93;:::i;:::-;32264:2;32259:3;32255:12;32248:19;;31907:366;;;:::o;32279:419::-;32445:4;32483:2;32472:9;32468:18;32460:26;;32532:9;32526:4;32522:20;32518:1;32507:9;32503:17;32496:47;32560:131;32686:4;32560:131;:::i;:::-;32552:139;;32279:419;;;:::o;32704:241::-;32844:34;32840:1;32832:6;32828:14;32821:58;32913:24;32908:2;32900:6;32896:15;32889:49;32704:241;:::o;32951:366::-;33093:3;33114:67;33178:2;33173:3;33114:67;:::i;:::-;33107:74;;33190:93;33279:3;33190:93;:::i;:::-;33308:2;33303:3;33299:12;33292:19;;32951:366;;;:::o;33323:419::-;33489:4;33527:2;33516:9;33512:18;33504:26;;33576:9;33570:4;33566:20;33562:1;33551:9;33547:17;33540:47;33604:131;33730:4;33604:131;:::i;:::-;33596:139;;33323:419;;;:::o;33748:194::-;33788:4;33808:20;33826:1;33808:20;:::i;:::-;33803:25;;33842:20;33860:1;33842:20;:::i;:::-;33837:25;;33886:1;33883;33879:9;33871:17;;33910:1;33904:4;33901:11;33898:37;;;33915:18;;:::i;:::-;33898:37;33748:194;;;;:::o;33948:180::-;33996:77;33993:1;33986:88;34093:4;34090:1;34083:15;34117:4;34114:1;34107:15;34134:143;34191:5;34222:6;34216:13;34207:22;;34238:33;34265:5;34238:33;:::i;:::-;34134:143;;;;:::o;34283:351::-;34353:6;34402:2;34390:9;34381:7;34377:23;34373:32;34370:119;;;34408:79;;:::i;:::-;34370:119;34528:1;34553:64;34609:7;34600:6;34589:9;34585:22;34553:64;:::i;:::-;34543:74;;34499:128;34283:351;;;;:::o;34640:85::-;34685:7;34714:5;34703:16;;34640:85;;;:::o;34731:158::-;34789:9;34822:61;34840:42;34849:32;34875:5;34849:32;:::i;:::-;34840:42;:::i;:::-;34822:61;:::i;:::-;34809:74;;34731:158;;;:::o;34895:147::-;34990:45;35029:5;34990:45;:::i;:::-;34985:3;34978:58;34895:147;;:::o;35048:114::-;35115:6;35149:5;35143:12;35133:22;;35048:114;;;:::o;35168:184::-;35267:11;35301:6;35296:3;35289:19;35341:4;35336:3;35332:14;35317:29;;35168:184;;;;:::o;35358:132::-;35425:4;35448:3;35440:11;;35478:4;35473:3;35469:14;35461:22;;35358:132;;;:::o;35496:108::-;35573:24;35591:5;35573:24;:::i;:::-;35568:3;35561:37;35496:108;;:::o;35610:179::-;35679:10;35700:46;35742:3;35734:6;35700:46;:::i;:::-;35778:4;35773:3;35769:14;35755:28;;35610:179;;;;:::o;35795:113::-;35865:4;35897;35892:3;35888:14;35880:22;;35795:113;;;:::o;35944:732::-;36063:3;36092:54;36140:5;36092:54;:::i;:::-;36162:86;36241:6;36236:3;36162:86;:::i;:::-;36155:93;;36272:56;36322:5;36272:56;:::i;:::-;36351:7;36382:1;36367:284;36392:6;36389:1;36386:13;36367:284;;;36468:6;36462:13;36495:63;36554:3;36539:13;36495:63;:::i;:::-;36488:70;;36581:60;36634:6;36581:60;:::i;:::-;36571:70;;36427:224;36414:1;36411;36407:9;36402:14;;36367:284;;;36371:14;36667:3;36660:10;;36068:608;;;35944:732;;;;:::o;36682:831::-;36945:4;36983:3;36972:9;36968:19;36960:27;;36997:71;37065:1;37054:9;37050:17;37041:6;36997:71;:::i;:::-;37078:80;37154:2;37143:9;37139:18;37130:6;37078:80;:::i;:::-;37205:9;37199:4;37195:20;37190:2;37179:9;37175:18;37168:48;37233:108;37336:4;37327:6;37233:108;:::i;:::-;37225:116;;37351:72;37419:2;37408:9;37404:18;37395:6;37351:72;:::i;:::-;37433:73;37501:3;37490:9;37486:19;37477:6;37433:73;:::i;:::-;36682:831;;;;;;;;:::o;37519:225::-;37659:34;37655:1;37647:6;37643:14;37636:58;37728:8;37723:2;37715:6;37711:15;37704:33;37519:225;:::o;37750:366::-;37892:3;37913:67;37977:2;37972:3;37913:67;:::i;:::-;37906:74;;37989:93;38078:3;37989:93;:::i;:::-;38107:2;38102:3;38098:12;38091:19;;37750:366;;;:::o;38122:419::-;38288:4;38326:2;38315:9;38311:18;38303:26;;38375:9;38369:4;38365:20;38361:1;38350:9;38346:17;38339:47;38403:131;38529:4;38403:131;:::i;:::-;38395:139;;38122:419;;;:::o

Swarm Source

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