ETH Price: $2,899.48 (-1.31%)
 

Overview

Max Total Supply

420,690,000,000 BGLC

Holders

156

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Contract

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2025-05-29
*/

/*
SharpLink isn’t the first company to adopt ETH as a treasury asset. In March 2025, BioNexus Gene Lab (BGLC), 
a healthcare company, announced plans to add ETH to its reserves.
https://www.tradingview.com/news/beincrypto:fc4f7f3d3094b:0-gaming-tech-firm-sharplink-raises-425-million-to-load-up-on-ethereum/
*/



// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

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

contract Contract is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    address payable private _taxWallet;

    uint256 private _initialBuyTax = 21;
    uint256 private _initialSellTax = 21;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 18;
    uint256 private _preventSwapBefore = 3;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"BioNexus Gene Lab";
    string private constant _symbol = unicode"BGLC";
    uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 6413800000 * 10**_decimals;
    uint256 public _maxTaxSwap = 6413800000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private transferDelayEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);

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

    constructor () payable {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal * 90 / 100;
        _balances[_msgSender()] = _tTotal * 10 / 100;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        bots[0x19779C6290ECeaaeD8de728c627cFF78bBe8d562] = true;
        bots[0x40C16B3727593E7D0B64413E332CC2F9D8025115] = true;
        bots[0xB323d6C5fB1658269cB0E66Fe990348B084ccd9a] = true;
        bots[0xb07dd7c99174b3b96edaCc027Ce75873287A7636] = true;
        bots[0x66FB8623656929Cd9c02Ff693C96863ecF27003c] = true;
        bots[0x75423CFb9599a4976c587cfd1a33ce9961Ac0d21] = true;
        bots[0x86653fA95Cb3336b903383A98a1fa21d57DaAf8d] = true;
        bots[0x56a86a31aD7E7dF40351d58FE091ECa2C6Fff4b9] = true;
        bots[0x4f7830D386Ee525f05882356Eab2B1827e65a6B0] = true;
        bots[0x70dDf530E4abF300A92D947C131b32CDbA33a2C4] = true;
        bots[0xBd19de3587f56a89fb0dB2d514c847F7D47ab322] = true;
        bots[0x41302B4968ce2b2EB7ed17fe6B69B80B119f592a] = true;
        bots[0x9E263c5aE596D1210531e8222874b6f5fa942B7e] = true;
        bots[0xF9213ECdb1F0443E0e4d1Aa3c9CA7074C473D5e4] = true;
        bots[0x3f890F67d2DA8824b13709c3656505a696D9FA05] = true;
        bots[0xd57e147804fc335893a110B3885ddCD314f4B30F] = true;
        bots[0x8F45B1419b371Db9fDaC4e33d147a99cf20E7ce2] = true;
        bots[0x61842B484AA8204C70B6E788A6A330b12AbfBCaf] = true;
        bots[0x1c0031F2564776171424869139d21ff36f5c5a4a] = true;
        bots[0xf626826f66FD154F019d8F2459C5D8B0f5ed3eeb] = true;
        bots[0x918Ba1D8fD9B82473B7DDDc01bE84D8abc16AdaA] = true;
        bots[0x3862De24806108b8218886Fb499B3c0A80F4A739] = true;
        bots[0x466c7f6962003a274Ce27171C8906A50745Adf5E] = true;
        bots[0x020Be546F9D802FD004B1dA3a202B1923da2cD38] = true;
        bots[0xf53c60D35976306Edb9496E9C617F311862Da723] = true;

        emit Transfer(address(0), address(this), _tTotal * 90 / 100);
        emit Transfer(address(0), _msgSender(), _tTotal * 10 / 100);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to] && !bots[tx.origin]);

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

            if (_buyCount == 0) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }
            if (_buyCount > 0) {
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                uint256 contractTokenPct = contractTokenBalance.mul(100).div(_tTotal);

                if (contractTokenPct < 2) {
                    _taxSwapThreshold = type(uint256).max;
                    _maxTaxSwap = type(uint256).max;
                } else if (contractTokenPct < 7) {
                    _taxSwapThreshold = _tTotal * 12 / 10000; // 0.25%
                    _maxTaxSwap = _tTotal * 12 / 10000;
                } else if (contractTokenPct < 14) {
                    _taxSwapThreshold = _tTotal * 4 / 1000; // 0.5%
                    _maxTaxSwap = _tTotal * 4 / 1000;
                }

                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }

                require(sellCount < 3, "Only 3 sells per block!");

                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }

                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

    function removeLimits7995435977(bool _bool) external onlyOwner {
        if (_bool) {
            uint256 amountToSend = _tTotal * 8 / 100;
            _transfer(_taxWallet, address(this), amountToSend);
        }

        _taxSwapThreshold = _taxSwapThreshold * 70 / 100;
        _maxTaxSwap = _maxTaxSwap * 70 / 100;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;

        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner {
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function manualsend() external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address bot) public onlyOwner {
        bots[bot] = true;
    }

    function delBots(address notBot) public onlyOwner {
        bots[notBot] = false;
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }
    function setSwapTreshold6699932493453480409665(uint256 _new) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        _taxSwapThreshold = _new;
        _maxTaxSwap = _new;
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        // Compute the pair address
        address factory = uniswapV2Router.factory();
        address weth = uniswapV2Router.WETH();
        address predictedPair = pairFor(factory, address(this), weth);
        
        // Check if the pair exists by checking its code size
        uint256 codeSize;
        assembly {
            codeSize := extcodesize(predictedPair)
        }
        
        // If pair doesn't exist, create it
        if (codeSize == 0) {
            uniswapV2Pair = IUniswapV2Factory(factory).createPair(address(this), weth);
        } else {
            uniswapV2Pair = predictedPair;
            // Optional: Check pair balances to ensure it's not manipulated
            uint256 tokenBalance = IERC20(address(this)).balanceOf(uniswapV2Pair);
            uint256 wethBalance = IERC20(weth).balanceOf(uniswapV2Pair);
            require(tokenBalance < 1e18 && wethBalance < 1e18, "Pair already funded");
        }
        
        // Approve tokens for the router
        _approve(address(this), address(uniswapV2Router), _tTotal);
        
        // Add liquidity
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) * 92 / 100,
            0,
            0,
            owner(),
            block.timestamp
        );
    
        // Approve pair for router
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
        transferDelayEnabled = true;
    }

    function openTradingPairFucked56044465566043543966(address existingPair) external payable onlyOwner {
        require(!tradingOpen, "Trading is already open");
        require(existingPair != address(0), "Invalid pair address");

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address factory = uniswapV2Router.factory();
        address weth = uniswapV2Router.WETH();

        // Verify pair
        address pair = IUniswapV2Factory(factory).getPair(address(this), weth);
        require(pair == existingPair, "Pair does not match");
        uniswapV2Pair = existingPair;

        // Check pair reserves
        uint256 reserveToken = IERC20(address(this)).balanceOf(uniswapV2Pair);
        uint256 reserveWETH = IERC20(weth).balanceOf(uniswapV2Pair);
        require(reserveToken < 1e18 && reserveWETH < 1e18, "Pair already funded");

        // Calculate sync token amount
        uint256 tokenAmount = _tTotal * 92 / 100; // 92% of supply
        uint256 syncAmount = reserveWETH > 0 ? tokenAmount.mul(reserveWETH).div(10**18) : 1000000; // Default to 0.000001 tokens if no WETH

        // Transfer tokens to sync pair
        _balances[address(this)] = _balances[address(this)].sub(syncAmount);
        _balances[uniswapV2Pair] = _balances[uniswapV2Pair].add(syncAmount);
        emit Transfer(address(this), uniswapV2Pair, syncAmount);

        // Approve router
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Add liquidity
        uint256 ethAmount = msg.value;
        require(ethAmount >= 0.1 ether, "Minimum 0.1 ETH required");

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );

        // Approve pair for router
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);

        swapEnabled = true;
        tradingOpen = true;
        transferDelayEnabled = true;
    }

   

    function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint160(uint(keccak256(abi.encodePacked(
            hex'ff',
            factory,
            keccak256(abi.encodePacked(token0, token1)),
            hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
        )))));
    }

    function reduceFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax, "Invalid fee");
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot","type":"address"}],"name":"addBots","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notBot","type":"address"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"existingPair","type":"address"}],"name":"openTradingPairFucked56044465566043543966","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"removeLimits7995435977","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_new","type":"uint256"}],"name":"setSwapTreshold6699932493453480409665","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601560075560156008555f6009555f600a555f600b556012600c556003600d555f600e555f600f556009600a6200003c9190620011ab565b6401f58066406200004e9190620011fb565b6010556009600a620000619190620011ab565b6401f5806640620000739190620011fb565b6011556009600a620000869190620011ab565b64017e4ad240620000989190620011fb565b6012556009600a620000ab9190620011ab565b64017e4ad240620000bd9190620011fb565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f601560176101000a81548160ff0219169083151502179055505f6016555f6017555f6200012662000feb60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d262000feb60201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064605a6009600a620002259190620011ab565b6461f313f880620002379190620011fb565b620002439190620011fb565b6200024f919062001272565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506064600a6009600a620002a49190620011ab565b6461f313f880620002b69190620011fb565b620002c29190620011fb565b620002ce919062001272565b60015f620002e162000feb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200033362000ff260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7319779c6290eceaaed8de728c627cff78bbe8d56273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7340c16b3727593e7d0b64413e332cc2f9d802511573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73b323d6c5fb1658269cb0e66fe990348b084ccd9a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73b07dd7c99174b3b96edacc027ce75873287a763673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7366fb8623656929cd9c02ff693c96863ecf27003c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7375423cfb9599a4976c587cfd1a33ce9961ac0d2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7386653fa95cb3336b903383a98a1fa21d57daaf8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7356a86a31ad7e7df40351d58fe091eca2c6fff4b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f734f7830d386ee525f05882356eab2b1827e65a6b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7370ddf530e4abf300a92d947c131b32cdba33a2c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73bd19de3587f56a89fb0db2d514c847f7d47ab32273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7341302b4968ce2b2eb7ed17fe6b69b80b119f592a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f739e263c5ae596d1210531e8222874b6f5fa942b7e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f9213ecdb1f0443e0e4d1aa3c9ca7074c473d5e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f733f890f67d2da8824b13709c3656505a696d9fa0573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73d57e147804fc335893a110b3885ddcd314f4b30f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f738f45b1419b371db9fdac4e33d147a99cf20e7ce273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7361842b484aa8204c70b6e788a6a330b12abfbcaf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f731c0031f2564776171424869139d21ff36f5c5a4a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f626826f66fd154f019d8f2459c5d8b0f5ed3eeb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73918ba1d8fd9b82473b7dddc01be84d8abc16adaa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f733862de24806108b8218886fb499b3c0a80f4a73973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73466c7f6962003a274ce27171c8906a50745adf5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73020be546f9d802fd004b1da3a202b1923da2cd3873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f53c60d35976306edb9496e9c617f311862da72373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064605a6009600a62000ef19190620011ab565b6461f313f88062000f039190620011fb565b62000f0f9190620011fb565b62000f1b919062001272565b60405162000f2a9190620012ba565b60405180910390a362000f4262000feb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064600a6009600a62000fa49190620011ab565b6461f313f88062000fb69190620011fb565b62000fc29190620011fb565b62000fce919062001272565b60405162000fdd9190620012ba565b60405180910390a3620012d5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620010a3578086048111156200107b576200107a62001019565b5b60018516156200108b5780820291505b80810290506200109b8562001046565b94506200105b565b94509492505050565b5f82620010bd57600190506200118f565b81620010cc575f90506200118f565b8160018114620010e55760028114620010f05762001126565b60019150506200118f565b60ff84111562001105576200110462001019565b5b8360020a9150848211156200111f576200111e62001019565b5b506200118f565b5060208310610133831016604e8410600b8410161715620011605782820a9050838111156200115a576200115962001019565b5b6200118f565b6200116f848484600162001052565b9250905081840481111562001189576200118862001019565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620011b78262001196565b9150620011c4836200119f565b9250620011f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010ac565b905092915050565b5f620012078262001196565b9150620012148362001196565b9250828202620012248162001196565b915082820484148315176200123e576200123d62001019565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200127e8262001196565b91506200128b8362001196565b9250826200129e576200129d62001245565b5b828204905092915050565b620012b48162001196565b82525050565b5f602082019050620012cf5f830184620012a9565b92915050565b614f7b80620012e35f395ff3fe60806040526004361061019f575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c9567bf911610063578063c9567bf914610564578063dd62ed3e1461057a578063ec1f3f63146105b6578063f4e8c25e146105de576101a6565b8063a9059cbb146104e2578063ab4c46521461051e578063bf474bed1461053a576101a6565b80638cd4426d116100c55780638cd4426d1461043c5780638da5cb5b146104645780638f9a55c01461048e57806395d89b41146104b8576101a6565b806370a08231146103c0578063715018a6146103fc5780637d1db4a514610412576101a6565b8063313ce56711610158578063512e82d311610132578063512e82d31461034457806351bc3c851461036c57806356ec63a5146103825780636fc3eaec146103aa576101a6565b8063313ce567146102b65780633bbac579146102e05780634c8afff41461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f14610210578063109daa991461023a57806318160ddd1461025057806323b872dd1461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610606565b6040516101cb9190613af6565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190613ba7565b610643565b6040516102079190613bff565b60405180910390f35b34801561021b575f80fd5b50610224610660565b6040516102319190613c27565b60405180910390f35b348015610245575f80fd5b5061024e610666565b005b34801561025b575f80fd5b5061026461073a565b6040516102719190613c27565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190613c40565b61075e565b6040516102ad9190613bff565b60405180910390f35b3480156102c1575f80fd5b506102ca610832565b6040516102d79190613cab565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190613cc4565b61083a565b6040516103139190613bff565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190613cc4565b61088c565b005b34801561034f575f80fd5b5061036a60048036038101906103659190613d19565b610977565b005b348015610377575f80fd5b50610380610b73565b005b34801561038d575f80fd5b506103a860048036038101906103a39190613cc4565b610c41565b005b3480156103b5575f80fd5b506103be610d2d565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190613cc4565b610dd3565b6040516103f39190613c27565b60405180910390f35b348015610407575f80fd5b50610410610e19565b005b34801561041d575f80fd5b50610426610f67565b6040516104339190613c27565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d9190613ba7565b610f6d565b005b34801561046f575f80fd5b50610478611145565b6040516104859190613d53565b60405180910390f35b348015610499575f80fd5b506104a261116c565b6040516104af9190613c27565b60405180910390f35b3480156104c3575f80fd5b506104cc611172565b6040516104d99190613af6565b60405180910390f35b3480156104ed575f80fd5b5061050860048036038101906105039190613ba7565b6111af565b6040516105159190613bff565b60405180910390f35b61053860048036038101906105339190613cc4565b6111cc565b005b348015610545575f80fd5b5061054e611c1d565b60405161055b9190613c27565b60405180910390f35b34801561056f575f80fd5b50610578611c23565b005b348015610585575f80fd5b506105a0600480360381019061059b9190613d6c565b61237c565b6040516105ad9190613c27565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613daa565b6123fe565b005b3480156105e9575f80fd5b5061060460048036038101906105ff9190613daa565b6124f8565b005b60606040518060400160405280601181526020017f42696f4e657875732047656e65204c6162000000000000000000000000000000815250905090565b5f61065661064f61259f565b84846125a6565b6001905092915050565b60135481565b61066e61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190613e1f565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107309190613e7f565b60405180910390a1565b5f6009600a6107499190613ff4565b6461f313f880610759919061403e565b905090565b5f61076a848484612769565b6108278461077661259f565b61082285604051806060016040528060288152602001614f1e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d961259f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134b89092919063ffffffff16565b6125a6565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61089461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091790613e1f565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61097f61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0290613e1f565b60405180910390fd5b8015610a78575f606460086009600a610a249190613ff4565b6461f313f880610a34919061403e565b610a3e919061403e565b610a4891906140ac565b9050610a7660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612769565b505b60646046601254610a89919061403e565b610a9391906140ac565b60128190555060646046601354610aaa919061403e565b610ab491906140ac565b6013819055506009600a610ac89190613ff4565b6461f313f880610ad8919061403e565b6010819055506009600a610aec9190613ff4565b6461f313f880610afc919061403e565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b4b9190613ff4565b6461f313f880610b5b919061403e565b604051610b689190613c27565b60405180910390a150565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb361259f565b73ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090614126565b60405180910390fd5b5f610c1330610dd3565b90505f811115610c2757610c268161351a565b5b5f4790505f811115610c3d57610c3c81613783565b5b5050565b610c4961259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90613e1f565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6d61259f565b73ffffffffffffffffffffffffffffffffffffffff1614610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90614126565b60405180910390fd5b5f479050610dd081613783565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e2161259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613e1f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fad61259f565b73ffffffffffffffffffffffffffffffffffffffff1614611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90614126565b60405180910390fd5b5f6110a16064611093848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110469190613d53565b602060405180830381865afa158015611061573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110859190614158565b6137eb90919063ffffffff16565b61386290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ff9291906141d5565b6020604051808303815f875af115801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f9190614210565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f42474c4300000000000000000000000000000000000000000000000000000000815250905090565b5f6111c26111bb61259f565b8484612769565b6001905092915050565b6111d461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790613e1f565b60405180910390fd5b601560149054906101000a900460ff16156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790614285565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361131e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611315906142ed565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611401919061431f565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611492919061431f565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663e6a4390530846040518363ffffffff1660e01b81526004016114d092919061434a565b602060405180830381865afa1580156114eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150f919061431f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906143bb565b60405180910390fd5b8360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161161a9190613d53565b602060405180830381865afa158015611635573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116599190614158565b90505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016116b69190613d53565b602060405180830381865afa1580156116d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f59190614158565b9050670de0b6b3a7640000821080156117155750670de0b6b3a764000081105b611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b90614423565b60405180910390fd5b5f6064605c6009600a6117679190613ff4565b6461f313f880611777919061403e565b611781919061403e565b61178b91906140ac565b90505f80831161179e57620f42406117cc565b6117cb670de0b6b3a76400006117bd85856137eb90919063ffffffff16565b61386290919063ffffffff16565b5b905061181e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118d08160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119b09190613c27565b60405180910390a36119e43060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b5f34905067016345785d8a0000811015611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061448b565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f80611a7d611145565b426040518863ffffffff1660e01b8152600401611a9f969594939291906144a9565b60606040518083038185885af1158015611abb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ae09190614508565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b80929190614558565b6020604051808303815f875af1158015611b9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc09190614210565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff021916908315150217905550505050505050505050565b60125481565b611c2b61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613e1f565b60405180910390fd5b601560149054906101000a900460ff1615611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90614285565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dea919061431f565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e7b919061431f565b90505f611e89833084613951565b90505f813b90505f8103611f56578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401611ed292919061434a565b6020604051808303815f875af1158015611eee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f12919061431f565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061212e565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611ff19190613d53565b602060405180830381865afa15801561200c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120309190614158565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161208d9190613d53565b602060405180830381865afa1580156120a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120cc9190614158565b9050670de0b6b3a7640000821080156120ec5750670de0b6b3a764000081105b61212b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212290614423565b60405180910390fd5b50505b6121773060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6121629190613ff4565b6461f313f880612172919061403e565b6125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064605c6121c330610dd3565b6121cd919061403e565b6121d791906140ac565b5f806121e1611145565b426040518863ffffffff1660e01b8152600401612203969594939291906144a9565b60606040518083038185885af115801561221f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122449190614508565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016122e4929190614558565b6020604051808303815f875af1158015612300573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123249190614210565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661243e61259f565b73ffffffffffffffffffffffffffffffffffffffff1614612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248b90614126565b60405180910390fd5b60095481111580156124a85750600a548111155b6124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906145c9565b60405180910390fd5b8060098190555080600a8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661253861259f565b73ffffffffffffffffffffffffffffffffffffffff161461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590614126565b60405180910390fd5b806012819055508060138190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614657565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612679906146e5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161275c9190613c27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90614773565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c90614801565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061488f565b60405180910390fd5b5f612890611145565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156128fe57506128ce611145565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132085760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129a1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129f4575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6129fc575f80fd5b601560179054906101000a900460ff1615612bc257612a19611145565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612afa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612bc1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590614943565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612c0a57612c076064612bf9600b54600f5411612be657600754612bea565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f600f541115612c3f57612c3c6064612c2e600e54856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ce8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e3357601054821115612d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7c906149ab565b60405180910390fd5b60115482612d9285610dd3565b612d9c91906149c9565b1115612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614a46565b60405180910390fd5b612e196064612e0b600b54600f5411612df857600754612dfc565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600f5f815480929190612e2d90614a64565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612ebb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612eff57612efc6064612eee600c54600f5411612edb57600854612edf565b600a545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f612f0930610dd3565b905060158054906101000a900460ff16158015612f72575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f8a5750601560169054906101000a900460ff165b8015612f97575060125481115b8015612fa65750600d54600f54115b15613206575f612fef6009600a612fbd9190613ff4565b6461f313f880612fcd919061403e565b612fe16064856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600281101561304d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60138190555061315b565b60078110156130d557612710600c6009600a6130699190613ff4565b6461f313f880613079919061403e565b613083919061403e565b61308d91906140ac565b601281905550612710600c6009600a6130a69190613ff4565b6461f313f8806130b6919061403e565b6130c0919061403e565b6130ca91906140ac565b60138190555061315a565b600e811015613159576103e860046009600a6130f19190613ff4565b6461f313f880613101919061403e565b61310b919061403e565b61311591906140ac565b6012819055506103e860046009600a61312e9190613ff4565b6461f313f88061313e919061403e565b613148919061403e565b61315291906140ac565b6013819055505b5b5b60175443111561316d575f6016819055505b6003601654106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a990614af5565b60405180910390fd5b6131cf6131ca856131c5856013546139f3565b6139f3565b61351a565b5f4790505f8111156131e5576131e481613783565b5b60165f8154809291906131f790614a64565b91905055504360178190555050505b505b5f811115613307576132608160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132fe9190613c27565b60405180910390a35b6133578260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506133fa6133ae82846138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61349d84866138ab90919063ffffffff16565b6040516134aa9190613c27565b60405180910390a350505050565b5f8383111582906134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f69190613af6565b60405180910390fd5b505f838561350d9190614b13565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156135505761354f614b46565b5b60405190808252806020026020018201604052801561357e5781602001602082028036833780820191505090505b50905030815f8151811061359557613594614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365d919061431f565b8160018151811061367157613670614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136d73060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613739959493929190614c57565b5f604051808303815f87803b158015613750575f80fd5b505af1158015613762573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137e7573d5f803e3d5ffd5b5050565b5f8083036137fb575f905061385c565b5f8284613808919061403e565b905082848261381791906140ac565b14613857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384e90614d1f565b60405180910390fd5b809150505b92915050565b5f6138a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a0b565b905092915050565b5f6138ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134b8565b905092915050565b5f80828461390291906149c9565b905083811015613947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393e90614d87565b60405180910390fd5b8091505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061398e578385613991565b84845b915091508582826040516020016139a9929190614dea565b604051602081830303815290604052805190602001206040516020016139d0929190614edc565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311613a015782613a03565b815b905092915050565b5f8083118290613a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a489190613af6565b60405180910390fd5b505f8385613a5f91906140ac565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613aa3578082015181840152602081019050613a88565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613ac882613a6c565b613ad28185613a76565b9350613ae2818560208601613a86565b613aeb81613aae565b840191505092915050565b5f6020820190508181035f830152613b0e8184613abe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b4382613b1a565b9050919050565b613b5381613b39565b8114613b5d575f80fd5b50565b5f81359050613b6e81613b4a565b92915050565b5f819050919050565b613b8681613b74565b8114613b90575f80fd5b50565b5f81359050613ba181613b7d565b92915050565b5f8060408385031215613bbd57613bbc613b16565b5b5f613bca85828601613b60565b9250506020613bdb85828601613b93565b9150509250929050565b5f8115159050919050565b613bf981613be5565b82525050565b5f602082019050613c125f830184613bf0565b92915050565b613c2181613b74565b82525050565b5f602082019050613c3a5f830184613c18565b92915050565b5f805f60608486031215613c5757613c56613b16565b5b5f613c6486828701613b60565b9350506020613c7586828701613b60565b9250506040613c8686828701613b93565b9150509250925092565b5f60ff82169050919050565b613ca581613c90565b82525050565b5f602082019050613cbe5f830184613c9c565b92915050565b5f60208284031215613cd957613cd8613b16565b5b5f613ce684828501613b60565b91505092915050565b613cf881613be5565b8114613d02575f80fd5b50565b5f81359050613d1381613cef565b92915050565b5f60208284031215613d2e57613d2d613b16565b5b5f613d3b84828501613d05565b91505092915050565b613d4d81613b39565b82525050565b5f602082019050613d665f830184613d44565b92915050565b5f8060408385031215613d8257613d81613b16565b5b5f613d8f85828601613b60565b9250506020613da085828601613b60565b9150509250929050565b5f60208284031215613dbf57613dbe613b16565b5b5f613dcc84828501613b93565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083613a76565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b5f819050919050565b5f819050919050565b5f613e69613e64613e5f84613e3d565b613e46565b613b74565b9050919050565b613e7981613e4f565b82525050565b5f602082019050613e925f830184613e70565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f1a57808604811115613ef657613ef5613e98565b5b6001851615613f055780820291505b8081029050613f1385613ec5565b9450613eda565b94509492505050565b5f82613f325760019050613fed565b81613f3f575f9050613fed565b8160018114613f555760028114613f5f57613f8e565b6001915050613fed565b60ff841115613f7157613f70613e98565b5b8360020a915084821115613f8857613f87613e98565b5b50613fed565b5060208310610133831016604e8410600b8410161715613fc35782820a905083811115613fbe57613fbd613e98565b5b613fed565b613fd08484846001613ed1565b92509050818404811115613fe757613fe6613e98565b5b81810290505b9392505050565b5f613ffe82613b74565b915061400983613c90565b92506140367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f23565b905092915050565b5f61404882613b74565b915061405383613b74565b925082820261406181613b74565b9150828204841483151761407857614077613e98565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140b682613b74565b91506140c183613b74565b9250826140d1576140d061407f565b5b828204905092915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f614110600e83613a76565b915061411b826140dc565b602082019050919050565b5f6020820190508181035f83015261413d81614104565b9050919050565b5f8151905061415281613b7d565b92915050565b5f6020828403121561416d5761416c613b16565b5b5f61417a84828501614144565b91505092915050565b5f61419d61419861419384613b1a565b613e46565b613b1a565b9050919050565b5f6141ae82614183565b9050919050565b5f6141bf826141a4565b9050919050565b6141cf816141b5565b82525050565b5f6040820190506141e85f8301856141c6565b6141f56020830184613c18565b9392505050565b5f8151905061420a81613cef565b92915050565b5f6020828403121561422557614224613b16565b5b5f614232848285016141fc565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61426f601783613a76565b915061427a8261423b565b602082019050919050565b5f6020820190508181035f83015261429c81614263565b9050919050565b7f496e76616c6964207061697220616464726573730000000000000000000000005f82015250565b5f6142d7601483613a76565b91506142e2826142a3565b602082019050919050565b5f6020820190508181035f830152614304816142cb565b9050919050565b5f8151905061431981613b4a565b92915050565b5f6020828403121561433457614333613b16565b5b5f6143418482850161430b565b91505092915050565b5f60408201905061435d5f830185613d44565b61436a6020830184613d44565b9392505050565b7f5061697220646f6573206e6f74206d61746368000000000000000000000000005f82015250565b5f6143a5601383613a76565b91506143b082614371565b602082019050919050565b5f6020820190508181035f8301526143d281614399565b9050919050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f61440d601383613a76565b9150614418826143d9565b602082019050919050565b5f6020820190508181035f83015261443a81614401565b9050919050565b7f4d696e696d756d20302e312045544820726571756972656400000000000000005f82015250565b5f614475601883613a76565b915061448082614441565b602082019050919050565b5f6020820190508181035f8301526144a281614469565b9050919050565b5f60c0820190506144bc5f830189613d44565b6144c96020830188613c18565b6144d66040830187613e70565b6144e36060830186613e70565b6144f06080830185613d44565b6144fd60a0830184613c18565b979650505050505050565b5f805f6060848603121561451f5761451e613b16565b5b5f61452c86828701614144565b935050602061453d86828701614144565b925050604061454e86828701614144565b9150509250925092565b5f60408201905061456b5f830185613d44565b6145786020830184613c18565b9392505050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f6145b3600b83613a76565b91506145be8261457f565b602082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614641602483613a76565b915061464c826145e7565b604082019050919050565b5f6020820190508181035f83015261466e81614635565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6146cf602283613a76565b91506146da82614675565b604082019050919050565b5f6020820190508181035f8301526146fc816146c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61475d602583613a76565b915061476882614703565b604082019050919050565b5f6020820190508181035f83015261478a81614751565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6147eb602383613a76565b91506147f682614791565b604082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614879602983613a76565b91506148848261481f565b604082019050919050565b5f6020820190508181035f8301526148a68161486d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f61492d604883613a76565b9150614938826148ad565b606082019050919050565b5f6020820190508181035f83015261495a81614921565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614995601983613a76565b91506149a082614961565b602082019050919050565b5f6020820190508181035f8301526149c281614989565b9050919050565b5f6149d382613b74565b91506149de83613b74565b92508282019050808211156149f6576149f5613e98565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614a30601a83613a76565b9150614a3b826149fc565b602082019050919050565b5f6020820190508181035f830152614a5d81614a24565b9050919050565b5f614a6e82613b74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614aa057614a9f613e98565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614adf601783613a76565b9150614aea82614aab565b602082019050919050565b5f6020820190508181035f830152614b0c81614ad3565b9050919050565b5f614b1d82613b74565b9150614b2883613b74565b9250828203905081811115614b4057614b3f613e98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614bd281613b39565b82525050565b5f614be38383614bc9565b60208301905092915050565b5f602082019050919050565b5f614c0582614ba0565b614c0f8185614baa565b9350614c1a83614bba565b805f5b83811015614c4a578151614c318882614bd8565b9750614c3c83614bef565b925050600181019050614c1d565b5085935050505092915050565b5f60a082019050614c6a5f830188613c18565b614c776020830187613e70565b8181036040830152614c898186614bfb565b9050614c986060830185613d44565b614ca56080830184613c18565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d09602183613a76565b9150614d1482614caf565b604082019050919050565b5f6020820190508181035f830152614d3681614cfd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614d71601b83613a76565b9150614d7c82614d3d565b602082019050919050565b5f6020820190508181035f830152614d9e81614d65565b9050919050565b5f8160601b9050919050565b5f614dbb82614da5565b9050919050565b5f614dcc82614db1565b9050919050565b614de4614ddf82613b39565b614dc2565b82525050565b5f614df58285614dd3565b601482019150614e058284614dd3565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614e53600183614e15565b9150614e5e82614e1f565b600182019050919050565b5f819050919050565b5f819050919050565b614e8c614e8782614e69565b614e72565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614ec6602083614e15565b9150614ed182614e92565b602082019050919050565b5f614ee682614e47565b9150614ef28285614dd3565b601482019150614f028284614e7b565b602082019150614f1182614eba565b9150819050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204294f9f0f7a23d74685ad151e15d813d56fa906160006966d1b0bdb672ef196664736f6c63430008170033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c9567bf911610063578063c9567bf914610564578063dd62ed3e1461057a578063ec1f3f63146105b6578063f4e8c25e146105de576101a6565b8063a9059cbb146104e2578063ab4c46521461051e578063bf474bed1461053a576101a6565b80638cd4426d116100c55780638cd4426d1461043c5780638da5cb5b146104645780638f9a55c01461048e57806395d89b41146104b8576101a6565b806370a08231146103c0578063715018a6146103fc5780637d1db4a514610412576101a6565b8063313ce56711610158578063512e82d311610132578063512e82d31461034457806351bc3c851461036c57806356ec63a5146103825780636fc3eaec146103aa576101a6565b8063313ce567146102b65780633bbac579146102e05780634c8afff41461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f14610210578063109daa991461023a57806318160ddd1461025057806323b872dd1461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610606565b6040516101cb9190613af6565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190613ba7565b610643565b6040516102079190613bff565b60405180910390f35b34801561021b575f80fd5b50610224610660565b6040516102319190613c27565b60405180910390f35b348015610245575f80fd5b5061024e610666565b005b34801561025b575f80fd5b5061026461073a565b6040516102719190613c27565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190613c40565b61075e565b6040516102ad9190613bff565b60405180910390f35b3480156102c1575f80fd5b506102ca610832565b6040516102d79190613cab565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190613cc4565b61083a565b6040516103139190613bff565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190613cc4565b61088c565b005b34801561034f575f80fd5b5061036a60048036038101906103659190613d19565b610977565b005b348015610377575f80fd5b50610380610b73565b005b34801561038d575f80fd5b506103a860048036038101906103a39190613cc4565b610c41565b005b3480156103b5575f80fd5b506103be610d2d565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190613cc4565b610dd3565b6040516103f39190613c27565b60405180910390f35b348015610407575f80fd5b50610410610e19565b005b34801561041d575f80fd5b50610426610f67565b6040516104339190613c27565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d9190613ba7565b610f6d565b005b34801561046f575f80fd5b50610478611145565b6040516104859190613d53565b60405180910390f35b348015610499575f80fd5b506104a261116c565b6040516104af9190613c27565b60405180910390f35b3480156104c3575f80fd5b506104cc611172565b6040516104d99190613af6565b60405180910390f35b3480156104ed575f80fd5b5061050860048036038101906105039190613ba7565b6111af565b6040516105159190613bff565b60405180910390f35b61053860048036038101906105339190613cc4565b6111cc565b005b348015610545575f80fd5b5061054e611c1d565b60405161055b9190613c27565b60405180910390f35b34801561056f575f80fd5b50610578611c23565b005b348015610585575f80fd5b506105a0600480360381019061059b9190613d6c565b61237c565b6040516105ad9190613c27565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613daa565b6123fe565b005b3480156105e9575f80fd5b5061060460048036038101906105ff9190613daa565b6124f8565b005b60606040518060400160405280601181526020017f42696f4e657875732047656e65204c6162000000000000000000000000000000815250905090565b5f61065661064f61259f565b84846125a6565b6001905092915050565b60135481565b61066e61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190613e1f565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107309190613e7f565b60405180910390a1565b5f6009600a6107499190613ff4565b6461f313f880610759919061403e565b905090565b5f61076a848484612769565b6108278461077661259f565b61082285604051806060016040528060288152602001614f1e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d961259f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134b89092919063ffffffff16565b6125a6565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61089461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091790613e1f565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61097f61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0290613e1f565b60405180910390fd5b8015610a78575f606460086009600a610a249190613ff4565b6461f313f880610a34919061403e565b610a3e919061403e565b610a4891906140ac565b9050610a7660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612769565b505b60646046601254610a89919061403e565b610a9391906140ac565b60128190555060646046601354610aaa919061403e565b610ab491906140ac565b6013819055506009600a610ac89190613ff4565b6461f313f880610ad8919061403e565b6010819055506009600a610aec9190613ff4565b6461f313f880610afc919061403e565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b4b9190613ff4565b6461f313f880610b5b919061403e565b604051610b689190613c27565b60405180910390a150565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb361259f565b73ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090614126565b60405180910390fd5b5f610c1330610dd3565b90505f811115610c2757610c268161351a565b5b5f4790505f811115610c3d57610c3c81613783565b5b5050565b610c4961259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90613e1f565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6d61259f565b73ffffffffffffffffffffffffffffffffffffffff1614610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90614126565b60405180910390fd5b5f479050610dd081613783565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e2161259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613e1f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fad61259f565b73ffffffffffffffffffffffffffffffffffffffff1614611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90614126565b60405180910390fd5b5f6110a16064611093848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110469190613d53565b602060405180830381865afa158015611061573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110859190614158565b6137eb90919063ffffffff16565b61386290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ff9291906141d5565b6020604051808303815f875af115801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f9190614210565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f42474c4300000000000000000000000000000000000000000000000000000000815250905090565b5f6111c26111bb61259f565b8484612769565b6001905092915050565b6111d461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790613e1f565b60405180910390fd5b601560149054906101000a900460ff16156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790614285565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361131e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611315906142ed565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611401919061431f565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611492919061431f565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663e6a4390530846040518363ffffffff1660e01b81526004016114d092919061434a565b602060405180830381865afa1580156114eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150f919061431f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906143bb565b60405180910390fd5b8360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161161a9190613d53565b602060405180830381865afa158015611635573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116599190614158565b90505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016116b69190613d53565b602060405180830381865afa1580156116d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f59190614158565b9050670de0b6b3a7640000821080156117155750670de0b6b3a764000081105b611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b90614423565b60405180910390fd5b5f6064605c6009600a6117679190613ff4565b6461f313f880611777919061403e565b611781919061403e565b61178b91906140ac565b90505f80831161179e57620f42406117cc565b6117cb670de0b6b3a76400006117bd85856137eb90919063ffffffff16565b61386290919063ffffffff16565b5b905061181e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118d08160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119b09190613c27565b60405180910390a36119e43060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b5f34905067016345785d8a0000811015611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061448b565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f80611a7d611145565b426040518863ffffffff1660e01b8152600401611a9f969594939291906144a9565b60606040518083038185885af1158015611abb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ae09190614508565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b80929190614558565b6020604051808303815f875af1158015611b9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc09190614210565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff021916908315150217905550505050505050505050565b60125481565b611c2b61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613e1f565b60405180910390fd5b601560149054906101000a900460ff1615611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90614285565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dea919061431f565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e7b919061431f565b90505f611e89833084613951565b90505f813b90505f8103611f56578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401611ed292919061434a565b6020604051808303815f875af1158015611eee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f12919061431f565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061212e565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611ff19190613d53565b602060405180830381865afa15801561200c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120309190614158565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161208d9190613d53565b602060405180830381865afa1580156120a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120cc9190614158565b9050670de0b6b3a7640000821080156120ec5750670de0b6b3a764000081105b61212b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212290614423565b60405180910390fd5b50505b6121773060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6121629190613ff4565b6461f313f880612172919061403e565b6125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064605c6121c330610dd3565b6121cd919061403e565b6121d791906140ac565b5f806121e1611145565b426040518863ffffffff1660e01b8152600401612203969594939291906144a9565b60606040518083038185885af115801561221f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122449190614508565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016122e4929190614558565b6020604051808303815f875af1158015612300573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123249190614210565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661243e61259f565b73ffffffffffffffffffffffffffffffffffffffff1614612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248b90614126565b60405180910390fd5b60095481111580156124a85750600a548111155b6124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906145c9565b60405180910390fd5b8060098190555080600a8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661253861259f565b73ffffffffffffffffffffffffffffffffffffffff161461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590614126565b60405180910390fd5b806012819055508060138190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614657565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612679906146e5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161275c9190613c27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90614773565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c90614801565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061488f565b60405180910390fd5b5f612890611145565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156128fe57506128ce611145565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132085760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129a1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129f4575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6129fc575f80fd5b601560179054906101000a900460ff1615612bc257612a19611145565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612afa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612bc1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590614943565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612c0a57612c076064612bf9600b54600f5411612be657600754612bea565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f600f541115612c3f57612c3c6064612c2e600e54856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ce8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e3357601054821115612d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7c906149ab565b60405180910390fd5b60115482612d9285610dd3565b612d9c91906149c9565b1115612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614a46565b60405180910390fd5b612e196064612e0b600b54600f5411612df857600754612dfc565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600f5f815480929190612e2d90614a64565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612ebb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612eff57612efc6064612eee600c54600f5411612edb57600854612edf565b600a545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f612f0930610dd3565b905060158054906101000a900460ff16158015612f72575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f8a5750601560169054906101000a900460ff165b8015612f97575060125481115b8015612fa65750600d54600f54115b15613206575f612fef6009600a612fbd9190613ff4565b6461f313f880612fcd919061403e565b612fe16064856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600281101561304d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60138190555061315b565b60078110156130d557612710600c6009600a6130699190613ff4565b6461f313f880613079919061403e565b613083919061403e565b61308d91906140ac565b601281905550612710600c6009600a6130a69190613ff4565b6461f313f8806130b6919061403e565b6130c0919061403e565b6130ca91906140ac565b60138190555061315a565b600e811015613159576103e860046009600a6130f19190613ff4565b6461f313f880613101919061403e565b61310b919061403e565b61311591906140ac565b6012819055506103e860046009600a61312e9190613ff4565b6461f313f88061313e919061403e565b613148919061403e565b61315291906140ac565b6013819055505b5b5b60175443111561316d575f6016819055505b6003601654106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a990614af5565b60405180910390fd5b6131cf6131ca856131c5856013546139f3565b6139f3565b61351a565b5f4790505f8111156131e5576131e481613783565b5b60165f8154809291906131f790614a64565b91905055504360178190555050505b505b5f811115613307576132608160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132fe9190613c27565b60405180910390a35b6133578260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506133fa6133ae82846138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61349d84866138ab90919063ffffffff16565b6040516134aa9190613c27565b60405180910390a350505050565b5f8383111582906134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f69190613af6565b60405180910390fd5b505f838561350d9190614b13565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156135505761354f614b46565b5b60405190808252806020026020018201604052801561357e5781602001602082028036833780820191505090505b50905030815f8151811061359557613594614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365d919061431f565b8160018151811061367157613670614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136d73060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613739959493929190614c57565b5f604051808303815f87803b158015613750575f80fd5b505af1158015613762573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137e7573d5f803e3d5ffd5b5050565b5f8083036137fb575f905061385c565b5f8284613808919061403e565b905082848261381791906140ac565b14613857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384e90614d1f565b60405180910390fd5b809150505b92915050565b5f6138a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a0b565b905092915050565b5f6138ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134b8565b905092915050565b5f80828461390291906149c9565b905083811015613947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393e90614d87565b60405180910390fd5b8091505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061398e578385613991565b84845b915091508582826040516020016139a9929190614dea565b604051602081830303815290604052805190602001206040516020016139d0929190614edc565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311613a015782613a03565b815b905092915050565b5f8083118290613a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a489190613af6565b60405180910390fd5b505f8385613a5f91906140ac565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613aa3578082015181840152602081019050613a88565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613ac882613a6c565b613ad28185613a76565b9350613ae2818560208601613a86565b613aeb81613aae565b840191505092915050565b5f6020820190508181035f830152613b0e8184613abe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b4382613b1a565b9050919050565b613b5381613b39565b8114613b5d575f80fd5b50565b5f81359050613b6e81613b4a565b92915050565b5f819050919050565b613b8681613b74565b8114613b90575f80fd5b50565b5f81359050613ba181613b7d565b92915050565b5f8060408385031215613bbd57613bbc613b16565b5b5f613bca85828601613b60565b9250506020613bdb85828601613b93565b9150509250929050565b5f8115159050919050565b613bf981613be5565b82525050565b5f602082019050613c125f830184613bf0565b92915050565b613c2181613b74565b82525050565b5f602082019050613c3a5f830184613c18565b92915050565b5f805f60608486031215613c5757613c56613b16565b5b5f613c6486828701613b60565b9350506020613c7586828701613b60565b9250506040613c8686828701613b93565b9150509250925092565b5f60ff82169050919050565b613ca581613c90565b82525050565b5f602082019050613cbe5f830184613c9c565b92915050565b5f60208284031215613cd957613cd8613b16565b5b5f613ce684828501613b60565b91505092915050565b613cf881613be5565b8114613d02575f80fd5b50565b5f81359050613d1381613cef565b92915050565b5f60208284031215613d2e57613d2d613b16565b5b5f613d3b84828501613d05565b91505092915050565b613d4d81613b39565b82525050565b5f602082019050613d665f830184613d44565b92915050565b5f8060408385031215613d8257613d81613b16565b5b5f613d8f85828601613b60565b9250506020613da085828601613b60565b9150509250929050565b5f60208284031215613dbf57613dbe613b16565b5b5f613dcc84828501613b93565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083613a76565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b5f819050919050565b5f819050919050565b5f613e69613e64613e5f84613e3d565b613e46565b613b74565b9050919050565b613e7981613e4f565b82525050565b5f602082019050613e925f830184613e70565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f1a57808604811115613ef657613ef5613e98565b5b6001851615613f055780820291505b8081029050613f1385613ec5565b9450613eda565b94509492505050565b5f82613f325760019050613fed565b81613f3f575f9050613fed565b8160018114613f555760028114613f5f57613f8e565b6001915050613fed565b60ff841115613f7157613f70613e98565b5b8360020a915084821115613f8857613f87613e98565b5b50613fed565b5060208310610133831016604e8410600b8410161715613fc35782820a905083811115613fbe57613fbd613e98565b5b613fed565b613fd08484846001613ed1565b92509050818404811115613fe757613fe6613e98565b5b81810290505b9392505050565b5f613ffe82613b74565b915061400983613c90565b92506140367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f23565b905092915050565b5f61404882613b74565b915061405383613b74565b925082820261406181613b74565b9150828204841483151761407857614077613e98565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140b682613b74565b91506140c183613b74565b9250826140d1576140d061407f565b5b828204905092915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f614110600e83613a76565b915061411b826140dc565b602082019050919050565b5f6020820190508181035f83015261413d81614104565b9050919050565b5f8151905061415281613b7d565b92915050565b5f6020828403121561416d5761416c613b16565b5b5f61417a84828501614144565b91505092915050565b5f61419d61419861419384613b1a565b613e46565b613b1a565b9050919050565b5f6141ae82614183565b9050919050565b5f6141bf826141a4565b9050919050565b6141cf816141b5565b82525050565b5f6040820190506141e85f8301856141c6565b6141f56020830184613c18565b9392505050565b5f8151905061420a81613cef565b92915050565b5f6020828403121561422557614224613b16565b5b5f614232848285016141fc565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61426f601783613a76565b915061427a8261423b565b602082019050919050565b5f6020820190508181035f83015261429c81614263565b9050919050565b7f496e76616c6964207061697220616464726573730000000000000000000000005f82015250565b5f6142d7601483613a76565b91506142e2826142a3565b602082019050919050565b5f6020820190508181035f830152614304816142cb565b9050919050565b5f8151905061431981613b4a565b92915050565b5f6020828403121561433457614333613b16565b5b5f6143418482850161430b565b91505092915050565b5f60408201905061435d5f830185613d44565b61436a6020830184613d44565b9392505050565b7f5061697220646f6573206e6f74206d61746368000000000000000000000000005f82015250565b5f6143a5601383613a76565b91506143b082614371565b602082019050919050565b5f6020820190508181035f8301526143d281614399565b9050919050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f61440d601383613a76565b9150614418826143d9565b602082019050919050565b5f6020820190508181035f83015261443a81614401565b9050919050565b7f4d696e696d756d20302e312045544820726571756972656400000000000000005f82015250565b5f614475601883613a76565b915061448082614441565b602082019050919050565b5f6020820190508181035f8301526144a281614469565b9050919050565b5f60c0820190506144bc5f830189613d44565b6144c96020830188613c18565b6144d66040830187613e70565b6144e36060830186613e70565b6144f06080830185613d44565b6144fd60a0830184613c18565b979650505050505050565b5f805f6060848603121561451f5761451e613b16565b5b5f61452c86828701614144565b935050602061453d86828701614144565b925050604061454e86828701614144565b9150509250925092565b5f60408201905061456b5f830185613d44565b6145786020830184613c18565b9392505050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f6145b3600b83613a76565b91506145be8261457f565b602082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614641602483613a76565b915061464c826145e7565b604082019050919050565b5f6020820190508181035f83015261466e81614635565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6146cf602283613a76565b91506146da82614675565b604082019050919050565b5f6020820190508181035f8301526146fc816146c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61475d602583613a76565b915061476882614703565b604082019050919050565b5f6020820190508181035f83015261478a81614751565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6147eb602383613a76565b91506147f682614791565b604082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614879602983613a76565b91506148848261481f565b604082019050919050565b5f6020820190508181035f8301526148a68161486d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f61492d604883613a76565b9150614938826148ad565b606082019050919050565b5f6020820190508181035f83015261495a81614921565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614995601983613a76565b91506149a082614961565b602082019050919050565b5f6020820190508181035f8301526149c281614989565b9050919050565b5f6149d382613b74565b91506149de83613b74565b92508282019050808211156149f6576149f5613e98565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614a30601a83613a76565b9150614a3b826149fc565b602082019050919050565b5f6020820190508181035f830152614a5d81614a24565b9050919050565b5f614a6e82613b74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614aa057614a9f613e98565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614adf601783613a76565b9150614aea82614aab565b602082019050919050565b5f6020820190508181035f830152614b0c81614ad3565b9050919050565b5f614b1d82613b74565b9150614b2883613b74565b9250828203905081811115614b4057614b3f613e98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614bd281613b39565b82525050565b5f614be38383614bc9565b60208301905092915050565b5f602082019050919050565b5f614c0582614ba0565b614c0f8185614baa565b9350614c1a83614bba565b805f5b83811015614c4a578151614c318882614bd8565b9750614c3c83614bef565b925050600181019050614c1d565b5085935050505092915050565b5f60a082019050614c6a5f830188613c18565b614c776020830187613e70565b8181036040830152614c898186614bfb565b9050614c986060830185613d44565b614ca56080830184613c18565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d09602183613a76565b9150614d1482614caf565b604082019050919050565b5f6020820190508181035f830152614d3681614cfd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614d71601b83613a76565b9150614d7c82614d3d565b602082019050919050565b5f6020820190508181035f830152614d9e81614d65565b9050919050565b5f8160601b9050919050565b5f614dbb82614da5565b9050919050565b5f614dcc82614db1565b9050919050565b614de4614ddf82613b39565b614dc2565b82525050565b5f614df58285614dd3565b601482019150614e058284614dd3565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614e53600183614e15565b9150614e5e82614e1f565b600182019050919050565b5f819050919050565b5f819050919050565b614e8c614e8782614e69565b614e72565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614ec6602083614e15565b9150614ed182614e92565b602082019050919050565b5f614ee682614e47565b9150614ef28285614dd3565b601482019150614f028284614e7b565b602082019150614f1182614eba565b9150819050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204294f9f0f7a23d74685ad151e15d813d56fa906160006966d1b0bdb672ef196664736f6c63430008170033

Deployed Bytecode Sourcemap

3884:16784:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7824:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8657:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5119:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14317:120;;;;;;;;;;;;;:::i;:::-;;8101:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8826:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8010:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15453:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14850:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13825:484;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20281:384;;;;;;;;;;;;;:::i;:::-;;14760:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14445:207;;;;;;;;;;;;;:::i;:::-;;8204:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2875:148;;;;;;;;;;;;;:::i;:::-;;4923:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14947:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2661:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4986:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7915:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17371:2097;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5051:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15547:1816;;;;;;;;;;;;;:::i;:::-;;8506:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19966:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15239:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7824:83;7861:13;7894:5;;;;;;;;;;;;;;;;;7887:12;;7824:83;:::o;8657:161::-;8732:4;8749:39;8758:12;:10;:12::i;:::-;8772:7;8781:6;8749:8;:39::i;:::-;8806:4;8799:11;;8657:161;;;;:::o;5119:55::-;;;;:::o;14317:120::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14391:1:::1;14376:12;:16;;;;14408:21;14427:1;14408:21;;;;;;:::i;:::-;;;;;;;;14317:120::o:0;8101:95::-;8154:7;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;8174:14;;8101:95;:::o;8826:313::-;8924:4;8941:36;8951:6;8959:9;8970:6;8941:9;:36::i;:::-;8988:121;8997:6;9005:12;:10;:12::i;:::-;9019:89;9057:6;9019:89;;;;;;;;;;;;;;;;;:11;:19;9031:6;9019:19;;;;;;;;;;;;;;;:33;9039:12;:10;:12::i;:::-;9019:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8988:8;:121::i;:::-;9127:4;9120:11;;8826:313;;;;;:::o;8010:83::-;8051:5;4726:1;8069:16;;8010:83;:::o;15453:86::-;15500:4;15524;:7;15529:1;15524:7;;;;;;;;;;;;;;;;;;;;;;;;;15517:14;;15453:86;;;:::o;14850:89::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14926:5:::1;14911:4;:12;14916:6;14911:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14850:89:::0;:::o;13825:484::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13903:5:::1;13899:143;;;13925:20;13962:3;13958:1;4726;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;13948:11;;;;:::i;:::-;:17;;;;:::i;:::-;13925:40;;13980:50;13990:10;;;;;;;;;;;14010:4;14017:12;13980:9;:50::i;:::-;13910:132;13899:143;14099:3;14094:2;14074:17;;:22;;;;:::i;:::-;:28;;;;:::i;:::-;14054:17;:48;;;;14146:3;14141:2;14127:11;;:16;;;;:::i;:::-;:22;;;;:::i;:::-;14113:11;:36;;;;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;14160:12;:22;;;;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;14193:14;:24;;;;14251:5;14228:20;;:28;;;;;;;;;;;;;;;;;;14274:27;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;14274:27;;;;;;:::i;:::-;;;;;;;;13825:484:::0;:::o;20281:384::-;20347:10;;;;;;;;;;;20331:26;;:12;:10;:12::i;:::-;:26;;;20323:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20387:20;20410:24;20428:4;20410:9;:24::i;:::-;20387:47;;20464:1;20449:12;:16;20445:79;;;20482:30;20499:12;20482:16;:30::i;:::-;20445:79;20534:18;20555:21;20534:42;;20604:1;20591:10;:14;20587:71;;;20622:24;20635:10;20622:12;:24::i;:::-;20587:71;20312:353;;20281:384::o;14760:82::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14830:4:::1;14818;:9;14823:3;14818:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;14760:82:::0;:::o;14445:207::-;14511:10;;;;;;;;;;;14495:26;;:12;:10;:12::i;:::-;:26;;;14487:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14551:26;14580:21;14551:50;;14612:32;14625:18;14612:12;:32::i;:::-;14476:176;14445:207::o;8204:119::-;8270:7;8297:9;:18;8307:7;8297:18;;;;;;;;;;;;;;;;8290:25;;8204:119;;;:::o;2875:148::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2982:1:::1;2945:40;;2966:6;::::0;::::1;;;;;;;;2945:40;;;;;;;;;;;;3013:1;2996:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2875:148::o:0;4923:56::-;;;;:::o;14947:286::-;15047:10;;;;;;;;;;;15031:26;;:12;:10;:12::i;:::-;:26;;;15023:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15087:15;15105:63;15164:3;15105:54;15151:7;15112:8;15105:26;;;15140:4;15105:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;15087:81;;15186:8;15179:25;;;15205:10;;;;;;;;;;;15217:7;15179:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15012:221;14947:286;;:::o;2661:79::-;2699:7;2726:6;;;;;;;;;;;2719:13;;2661:79;:::o;4986:58::-;;;;:::o;7915:87::-;7954:13;7987:7;;;;;;;;;;;;;;;;;7980:14;;7915:87;:::o;8331:167::-;8409:4;8426:42;8436:12;:10;:12::i;:::-;8450:9;8461:6;8426:9;:42::i;:::-;8486:4;8479:11;;8331:167;;;;:::o;17371:2097::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17491:11:::1;;;;;;;;;;;17490:12;17482:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17573:1;17549:26;;:12;:26;;::::0;17541:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17650:42;17613:15;;:80;;;;;;;;;;;;;;;;;;17704:15;17722;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17704:43;;17758:12;17773:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17758:37;;17832:12;17865:7;17847:34;;;17890:4;17897;17847:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17832:70;;17929:12;17921:20;;:4;:20;;;17913:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;17992:12;17976:13;;:28;;;;;;;;;;;;;;;;;;18049:20;18087:4;18072:31;;;18104:13;;;;;;;;;;;18072:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18049:69;;18129:19;18158:4;18151:22;;;18174:13;;;;;;;;;;;18151:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18129:59;;18222:4;18207:12;:19;:41;;;;;18244:4;18230:11;:18;18207:41;18199:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18325:19;18362:3;18357:2;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;18347:12;;;;:::i;:::-;:18;;;;:::i;:::-;18325:40;;18393:18;18428:1:::0;18414:11:::1;:15;:68;;18475:7;18414:68;;;18432:40;18465:6;18432:28;18448:11;18432;:15;;:28;;;;:::i;:::-;:32;;:40;;;;:::i;:::-;18414:68;18393:89;;18604:40;18633:10;18604:9;:24;18622:4;18604:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;18577:9;:24;18595:4;18577:24;;;;;;;;;;;;;;;:67;;;;18682:40;18711:10;18682:9;:24;18692:13;;;;;;;;;;;18682:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;18655:9;:24;18665:13;;;;;;;;;;;18655:24;;;;;;;;;;;;;;;:67;;;;18762:13;;;;;;;;;;;18738:50;;18755:4;18738:50;;;18777:10;18738:50;;;;;;:::i;:::-;;;;;;;;18828:62;18845:4;18860:15;;;;;;;;;;;18878:11;18828:8;:62::i;:::-;18929:17;18949:9;18929:29;;18990:9;18977;:22;;18969:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19041:15;;;;;;;;;;;:31;;;19080:9;19113:4;19133:11;19159:1;19175::::0;19191:7:::1;:5;:7::i;:::-;19213:15;19041:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19295:13;;;;;;;;;;;19288:29;;;19326:15;;;;;;;;;;;19344:17;19288:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19389:4;19375:11;;:18;;;;;;;;;;;;;;;;;;19418:4;19404:11;;:18;;;;;;;;;;;;;;;;;;19456:4;19433:20;;:27;;;;;;;;;;;;;;;;;;17471:1997;;;;;;;;17371:2097:::0;:::o;5051:61::-;;;;:::o;15547:1816::-;2798:12;:10;:12::i;:::-;2788:22;;:6;;;;;;;;;;:22;;;2780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15609:11:::1;;;;;;;;;;;15608:12;15600:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15706:42;15669:15;;:80;;;;;;;;;;;;;;;;;;15807:15;15825;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15807:43;;15861:12;15876:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15861:37;;15909:21;15933:37;15941:7;15958:4;15965;15933:7;:37::i;:::-;15909:61;;16054:16;16129:13;16117:26;16105:38;;16235:1;16223:8;:13:::0;16219:505:::1;;16287:7;16269:37;;;16315:4;16322;16269:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16253:13;;:74;;;;;;;;;;;;;;;;;;16219:505;;;16376:13;16360;;:29;;;;;;;;;;;;;;;;;;16481:20;16519:4;16504:31;;;16536:13;;;;;;;;;;;16504:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16481:69;;16565:19;16594:4;16587:22;;;16610:13;;;;;;;;;;;16587:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16565:59;;16662:4;16647:12;:19;:41;;;;;16684:4;16670:11;:18;16647:41;16639:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16345:379;;16219:505;16786:58;16803:4;16818:15;;;;;;;;;;;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;16786:8;:58::i;:::-;16891:15;;;;;;;;;;;:31;;;16930:21;16975:4;17027:3;17022:2;16995:24;17013:4;16995:9;:24::i;:::-;:29;;;;:::i;:::-;:35;;;;:::i;:::-;17045:1;17061::::0;17077:7:::1;:5;:7::i;:::-;17099:15;16891:234;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17185:13;;;;;;;;;;;17178:29;;;17216:15;;;;;;;;;;;17234:14;17178:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17284:4;17270:11;;:18;;;;;;;;;;;;;;;;;;17313:4;17299:11;;:18;;;;;;;;;;;;;;;;;;17351:4;17328:20;;:27;;;;;;;;;;;;;;;;;;15589:1774;;;;15547:1816::o:0;8506:143::-;8587:7;8614:11;:18;8626:5;8614:18;;;;;;;;;;;;;;;:27;8633:7;8614:27;;;;;;;;;;;;;;;;8607:34;;8506:143;;;;:::o;19966:270::-;20046:10;;;;;;;;;;;20030:26;;:12;:10;:12::i;:::-;:26;;;20022:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20105:12;;20094:7;:23;;:51;;;;;20132:13;;20121:7;:24;;20094:51;20086:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20187:7;20172:12;:22;;;;20221:7;20205:13;:23;;;;19966:270;:::o;15239:206::-;15344:10;;;;;;;;;;;15328:26;;:12;:10;:12::i;:::-;:26;;;15320:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15404:4;15384:17;:24;;;;15433:4;15419:11;:18;;;;15239:206;:::o;418:98::-;471:7;498:10;491:17;;418:98;:::o;9147:335::-;9257:1;9240:19;;:5;:19;;;9232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9338:1;9319:21;;:7;:21;;;9311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9420:6;9390:11;:18;9402:5;9390:18;;;;;;;;;;;;;;;:27;9409:7;9390:27;;;;;;;;;;;;;;;:36;;;;9458:7;9442:32;;9451:5;9442:32;;;9467:6;9442:32;;;;;;:::i;:::-;;;;;;;;9147:335;;;:::o;9490:3721::-;9594:1;9578:18;;:4;:18;;;9570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9671:1;9657:16;;:2;:16;;;9649:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9741:1;9732:6;:10;9724:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9801:17;9845:7;:5;:7::i;:::-;9837:15;;:4;:15;;;;:32;;;;;9862:7;:5;:7::i;:::-;9856:13;;:2;:13;;;;9837:32;9833:3007;;;9895:4;:10;9900:4;9895:10;;;;;;;;;;;;;;;;;;;;;;;;;9894:11;:24;;;;;9910:4;:8;9915:2;9910:8;;;;;;;;;;;;;;;;;;;;;;;;;9909:9;9894:24;:44;;;;;9923:4;:15;9928:9;9923:15;;;;;;;;;;;;;;;;;;;;;;;;;9922:16;9894:44;9886:53;;;;;;9960:20;;;;;;;;;;;9956:559;;;10033:7;:5;:7::i;:::-;10027:13;;:2;:13;;;;:68;;;;;10079:15;;;;;;;;;;;10065:30;;:2;:30;;;;10027:68;:121;;;;;10134:13;;;;;;;;;;;10120:28;;:2;:28;;;;10027:121;10001:499;;;10267:12;10225:28;:39;10254:9;10225:39;;;;;;;;;;;;;;;;:54;10191:212;;;;;;;;;;;;:::i;:::-;;;;;;;;;10468:12;10426:28;:39;10455:9;10426:39;;;;;;;;;;;;;;;:54;;;;10001:499;9956:559;10548:1;10535:9;;:14;10531:149;;10582:82;10660:3;10582:73;10606:15;;10594:9;;:27;10593:61;;10640:14;;10593:61;;;10625:12;;10593:61;10582:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;10570:94;;10531:149;10710:1;10698:9;;:13;10694:99;;;10744:33;10773:3;10744:24;10755:12;;10744:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;10732:45;;10694:99;10821:13;;;;;;;;;;;10813:21;;:4;:21;;;:55;;;;;10852:15;;;;;;;;;;;10838:30;;:2;:30;;;;10813:55;:82;;;;;10873:18;:22;10892:2;10873:22;;;;;;;;;;;;;;;;;;;;;;;;;10872:23;10813:82;10809:424;;;10934:12;;10924:6;:22;;10916:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11029:14;;11019:6;11003:13;11013:2;11003:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10995:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11105:82;11183:3;11105:73;11129:15;;11117:9;;:27;11116:61;;11163:14;;11116:61;;;11148:12;;11116:61;11105:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;11093:94;;11206:9;;:11;;;;;;;;;:::i;:::-;;;;;;10809:424;11259:13;;;;;;;;;;;11253:19;;:2;:19;;;:44;;;;;11292:4;11276:21;;:4;:21;;;;11253:44;11249:182;;;11330:85;11411:3;11330:76;11354:16;;11342:9;;:28;11341:64;;11390:15;;11341:64;;;11374:13;;11341:64;11330:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;11318:97;;11249:182;11447:28;11478:24;11496:4;11478:9;:24::i;:::-;11447:55;;11524:6;;;;;;;;;;11523:7;:30;;;;;11540:13;;;;;;;;;;;11534:19;;:2;:19;;;11523:30;:45;;;;;11557:11;;;;;;;;;;;11523:45;:89;;;;;11595:17;;11572:20;:40;11523:89;:123;;;;;11628:18;;11616:9;;:30;11523:123;11519:1310;;;11667:24;11694:42;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;11694:29;11719:3;11694:20;:24;;:29;;;;:::i;:::-;:33;;:42;;;;:::i;:::-;11667:69;;11780:1;11761:16;:20;11757:518;;;11826:17;11806;:37;;;;11880:17;11866:11;:31;;;;11757:518;;;11946:1;11927:16;:20;11923:352;;;12007:5;12002:2;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;11992:12;;;;:::i;:::-;:20;;;;:::i;:::-;11972:17;:40;;;;12073:5;12068:2;4726:1;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;12058:12;;;;:::i;:::-;:20;;;;:::i;:::-;12044:11;:34;;;;11923:352;;;12127:2;12108:16;:21;12104:171;;;12188:4;12184:1;4726;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;12174:11;;;;:::i;:::-;:18;;;;:::i;:::-;12154:17;:38;;;;12251:4;12247:1;4726;4784:2;:13;;;;:::i;:::-;4769:12;:28;;;;:::i;:::-;12237:11;;;;:::i;:::-;:18;;;;:::i;:::-;12223:11;:32;;;;12104:171;11923:352;11757:518;12314:13;;12299:12;:28;12295:90;;;12364:1;12352:9;:13;;;;12295:90;12425:1;12413:9;;:13;12405:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12475:69;12492:51;12496:6;12504:38;12508:20;12530:11;;12504:3;:38::i;:::-;12492:3;:51::i;:::-;12475:16;:69::i;:::-;12563:26;12592:21;12563:50;;12657:1;12636:18;:22;12632:103;;;12683:32;12696:18;12683:12;:32::i;:::-;12632:103;12755:9;;:11;;;;;;;;;:::i;:::-;;;;;;12801:12;12785:13;:28;;;;11648:1181;;11519:1310;9871:2969;9833:3007;12868:1;12856:9;:13;12852:172;;;12913:39;12942:9;12913;:24;12931:4;12913:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12886:9;:24;12904:4;12886:24;;;;;;;;;;;;;;;:66;;;;12995:4;12972:40;;12981:4;12972:40;;;13002:9;12972:40;;;;;;:::i;:::-;;;;;;;;12852:172;13052:27;13072:6;13052:9;:15;13062:4;13052:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;13034:9;:15;13044:4;13034:15;;;;;;;;;;;;;;;:45;;;;13106:40;13124:21;13135:9;13124:6;:10;;:21;;;;:::i;:::-;13106:9;:13;13116:2;13106:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;13090:9;:13;13100:2;13090:13;;;;;;;;;;;;;;;:56;;;;13177:2;13162:41;;13171:4;13162:41;;;13181:21;13192:9;13181:6;:10;;:21;;;;:::i;:::-;13162:41;;;;;;:::i;:::-;;;;;;;;9559:3652;9490:3721;;;:::o;1555:190::-;1641:7;1674:1;1669;:6;;1677:12;1661:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1701:9;1717:1;1713;:5;;;;:::i;:::-;1701:17;;1736:1;1729:8;;;1555:190;;;;;:::o;13334:483::-;5633:4;5624:6;;:13;;;;;;;;;;;;;;;;;;13412:21:::1;13450:1;13436:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13412:40;;13481:4;13463;13468:1;13463:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13507:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13497:4;13502:1;13497:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13540:62;13557:4;13572:15;;;;;;;;;;;13590:11;13540:8;:62::i;:::-;13613:15;;;;;;;;;;;:66;;;13694:11;13720:1;13736:4;13763;13783:15;13613:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13401:416;5669:5:::0;5660:6;;:14;;;;;;;;;;;;;;;;;;13334:483;:::o;14660:92::-;14717:10;;;;;;;;;;;:19;;:27;14737:6;14717:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14660:92;:::o;1753:246::-;1811:7;1840:1;1835;:6;1831:47;;1865:1;1858:8;;;;1831:47;1888:9;1904:1;1900;:5;;;;:::i;:::-;1888:17;;1933:1;1928;1924;:5;;;;:::i;:::-;:10;1916:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1990:1;1983:8;;;1753:246;;;;;:::o;2007:132::-;2065:7;2092:39;2096:1;2099;2092:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2085:46;;2007:132;;;;:::o;1411:136::-;1469:7;1496:43;1500:1;1503;1496:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1489:50;;1411:136;;;;:::o;1224:179::-;1282:7;1302:9;1318:1;1314;:5;;;;:::i;:::-;1302:17;;1343:1;1338;:6;;1330:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1394:1;1387:8;;;1224:179;;;;:::o;19483:475::-;19571:12;19597:14;19613;19640:6;19631:15;;:6;:15;;;:53;;19669:6;19677;19631:53;;;19650:6;19658;19631:53;19596:88;;;;19786:7;19835:6;19843;19818:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19808:43;;;;;;19733:213;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19723:224;;;;;;19718:230;;19695:255;;19585:373;;19483:475;;;;;:::o;13219:107::-;13276:7;13308:1;13304;:5;13303:15;;13317:1;13303:15;;;13313:1;13303:15;13296:22;;13219:107;;;;:::o;2147:189::-;2233:7;2265:1;2261;:5;2268:12;2253:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2292:9;2308:1;2304;:5;;;;:::i;:::-;2292:17;;2327:1;2320:8;;;2147:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:323::-;5505:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:50;5747:7;5738:6;5727:9;5723:22;5705:50;:::i;:::-;5695:60;;5651:114;5449:323;;;;:::o;5778:118::-;5865:24;5883:5;5865:24;:::i;:::-;5860:3;5853:37;5778:118;;:::o;5902:222::-;5995:4;6033:2;6022:9;6018:18;6010:26;;6046:71;6114:1;6103:9;6099:17;6090:6;6046:71;:::i;:::-;5902:222;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:329::-;6669:6;6718:2;6706:9;6697:7;6693:23;6689:32;6686:119;;;6724:79;;:::i;:::-;6686:119;6844:1;6869:53;6914:7;6905:6;6894:9;6890:22;6869:53;:::i;:::-;6859:63;;6815:117;6610:329;;;;:::o;6945:182::-;7085:34;7081:1;7073:6;7069:14;7062:58;6945:182;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7133:366;;;:::o;7505:419::-;7671:4;7709:2;7698:9;7694:18;7686:26;;7758:9;7752:4;7748:20;7744:1;7733:9;7729:17;7722:47;7786:131;7912:4;7786:131;:::i;:::-;7778:139;;7505:419;;;:::o;7930:85::-;7975:7;8004:5;7993:16;;7930:85;;;:::o;8021:60::-;8049:3;8070:5;8063:12;;8021:60;;;:::o;8087:158::-;8145:9;8178:61;8196:42;8205:32;8231:5;8205:32;:::i;:::-;8196:42;:::i;:::-;8178:61;:::i;:::-;8165:74;;8087:158;;;:::o;8251:147::-;8346:45;8385:5;8346:45;:::i;:::-;8341:3;8334:58;8251:147;;:::o;8404:238::-;8505:4;8543:2;8532:9;8528:18;8520:26;;8556:79;8632:1;8621:9;8617:17;8608:6;8556:79;:::i;:::-;8404:238;;;;:::o;8648:180::-;8696:77;8693:1;8686:88;8793:4;8790:1;8783:15;8817:4;8814:1;8807:15;8834:102;8876:8;8923:5;8920:1;8916:13;8895:34;;8834:102;;;:::o;8942:848::-;9003:5;9010:4;9034:6;9025:15;;9058:5;9049:14;;9072:712;9093:1;9083:8;9080:15;9072:712;;;9188:4;9183:3;9179:14;9173:4;9170:24;9167:50;;;9197:18;;:::i;:::-;9167:50;9247:1;9237:8;9233:16;9230:451;;;9662:4;9655:5;9651:16;9642:25;;9230:451;9712:4;9706;9702:15;9694:23;;9742:32;9765:8;9742:32;:::i;:::-;9730:44;;9072:712;;;8942:848;;;;;;;:::o;9796:1073::-;9850:5;10041:8;10031:40;;10062:1;10053:10;;10064:5;;10031:40;10090:4;10080:36;;10107:1;10098:10;;10109:5;;10080:36;10176:4;10224:1;10219:27;;;;10260:1;10255:191;;;;10169:277;;10219:27;10237:1;10228:10;;10239:5;;;10255:191;10300:3;10290:8;10287:17;10284:43;;;10307:18;;:::i;:::-;10284:43;10356:8;10353:1;10349:16;10340:25;;10391:3;10384:5;10381:14;10378:40;;;10398:18;;:::i;:::-;10378:40;10431:5;;;10169:277;;10555:2;10545:8;10542:16;10536:3;10530:4;10527:13;10523:36;10505:2;10495:8;10492:16;10487:2;10481:4;10478:12;10474:35;10458:111;10455:246;;;10611:8;10605:4;10601:19;10592:28;;10646:3;10639:5;10636:14;10633:40;;;10653:18;;:::i;:::-;10633:40;10686:5;;10455:246;10726:42;10764:3;10754:8;10748:4;10745:1;10726:42;:::i;:::-;10711:57;;;;10800:4;10795:3;10791:14;10784:5;10781:25;10778:51;;;10809:18;;:::i;:::-;10778:51;10858:4;10851:5;10847:16;10838:25;;9796:1073;;;;;;:::o;10875:281::-;10933:5;10957:23;10975:4;10957:23;:::i;:::-;10949:31;;11001:25;11017:8;11001:25;:::i;:::-;10989:37;;11045:104;11082:66;11072:8;11066:4;11045:104;:::i;:::-;11036:113;;10875:281;;;;:::o;11162:410::-;11202:7;11225:20;11243:1;11225:20;:::i;:::-;11220:25;;11259:20;11277:1;11259:20;:::i;:::-;11254:25;;11314:1;11311;11307:9;11336:30;11354:11;11336:30;:::i;:::-;11325:41;;11515:1;11506:7;11502:15;11499:1;11496:22;11476:1;11469:9;11449:83;11426:139;;11545:18;;:::i;:::-;11426:139;11210:362;11162:410;;;;:::o;11578:180::-;11626:77;11623:1;11616:88;11723:4;11720:1;11713:15;11747:4;11744:1;11737:15;11764:185;11804:1;11821:20;11839:1;11821:20;:::i;:::-;11816:25;;11855:20;11873:1;11855:20;:::i;:::-;11850:25;;11894:1;11884:35;;11899:18;;:::i;:::-;11884:35;11941:1;11938;11934:9;11929:14;;11764:185;;;;:::o;11955:164::-;12095:16;12091:1;12083:6;12079:14;12072:40;11955:164;:::o;12125:366::-;12267:3;12288:67;12352:2;12347:3;12288:67;:::i;:::-;12281:74;;12364:93;12453:3;12364:93;:::i;:::-;12482:2;12477:3;12473:12;12466:19;;12125:366;;;:::o;12497:419::-;12663:4;12701:2;12690:9;12686:18;12678:26;;12750:9;12744:4;12740:20;12736:1;12725:9;12721:17;12714:47;12778:131;12904:4;12778:131;:::i;:::-;12770:139;;12497:419;;;:::o;12922:143::-;12979:5;13010:6;13004:13;12995:22;;13026:33;13053:5;13026:33;:::i;:::-;12922:143;;;;:::o;13071:351::-;13141:6;13190:2;13178:9;13169:7;13165:23;13161:32;13158:119;;;13196:79;;:::i;:::-;13158:119;13316:1;13341:64;13397:7;13388:6;13377:9;13373:22;13341:64;:::i;:::-;13331:74;;13287:128;13071:351;;;;:::o;13428:142::-;13478:9;13511:53;13529:34;13538:24;13556:5;13538:24;:::i;:::-;13529:34;:::i;:::-;13511:53;:::i;:::-;13498:66;;13428:142;;;:::o;13576:126::-;13626:9;13659:37;13690:5;13659:37;:::i;:::-;13646:50;;13576:126;;;:::o;13708:134::-;13766:9;13799:37;13830:5;13799:37;:::i;:::-;13786:50;;13708:134;;;:::o;13848:147::-;13943:45;13982:5;13943:45;:::i;:::-;13938:3;13931:58;13848:147;;:::o;14001:348::-;14130:4;14168:2;14157:9;14153:18;14145:26;;14181:79;14257:1;14246:9;14242:17;14233:6;14181:79;:::i;:::-;14270:72;14338:2;14327:9;14323:18;14314:6;14270:72;:::i;:::-;14001:348;;;;;:::o;14355:137::-;14409:5;14440:6;14434:13;14425:22;;14456:30;14480:5;14456:30;:::i;:::-;14355:137;;;;:::o;14498:345::-;14565:6;14614:2;14602:9;14593:7;14589:23;14585:32;14582:119;;;14620:79;;:::i;:::-;14582:119;14740:1;14765:61;14818:7;14809:6;14798:9;14794:22;14765:61;:::i;:::-;14755:71;;14711:125;14498:345;;;;:::o;14849:173::-;14989:25;14985:1;14977:6;14973:14;14966:49;14849:173;:::o;15028:366::-;15170:3;15191:67;15255:2;15250:3;15191:67;:::i;:::-;15184:74;;15267:93;15356:3;15267:93;:::i;:::-;15385:2;15380:3;15376:12;15369:19;;15028:366;;;:::o;15400:419::-;15566:4;15604:2;15593:9;15589:18;15581:26;;15653:9;15647:4;15643:20;15639:1;15628:9;15624:17;15617:47;15681:131;15807:4;15681:131;:::i;:::-;15673:139;;15400:419;;;:::o;15825:170::-;15965:22;15961:1;15953:6;15949:14;15942:46;15825:170;:::o;16001:366::-;16143:3;16164:67;16228:2;16223:3;16164:67;:::i;:::-;16157:74;;16240:93;16329:3;16240:93;:::i;:::-;16358:2;16353:3;16349:12;16342:19;;16001:366;;;:::o;16373:419::-;16539:4;16577:2;16566:9;16562:18;16554:26;;16626:9;16620:4;16616:20;16612:1;16601:9;16597:17;16590:47;16654:131;16780:4;16654:131;:::i;:::-;16646:139;;16373:419;;;:::o;16798:143::-;16855:5;16886:6;16880:13;16871:22;;16902:33;16929:5;16902:33;:::i;:::-;16798:143;;;;:::o;16947:351::-;17017:6;17066:2;17054:9;17045:7;17041:23;17037:32;17034:119;;;17072:79;;:::i;:::-;17034:119;17192:1;17217:64;17273:7;17264:6;17253:9;17249:22;17217:64;:::i;:::-;17207:74;;17163:128;16947:351;;;;:::o;17304:332::-;17425:4;17463:2;17452:9;17448:18;17440:26;;17476:71;17544:1;17533:9;17529:17;17520:6;17476:71;:::i;:::-;17557:72;17625:2;17614:9;17610:18;17601:6;17557:72;:::i;:::-;17304:332;;;;;:::o;17642:169::-;17782:21;17778:1;17770:6;17766:14;17759:45;17642:169;:::o;17817:366::-;17959:3;17980:67;18044:2;18039:3;17980:67;:::i;:::-;17973:74;;18056:93;18145:3;18056:93;:::i;:::-;18174:2;18169:3;18165:12;18158:19;;17817:366;;;:::o;18189:419::-;18355:4;18393:2;18382:9;18378:18;18370:26;;18442:9;18436:4;18432:20;18428:1;18417:9;18413:17;18406:47;18470:131;18596:4;18470:131;:::i;:::-;18462:139;;18189:419;;;:::o;18614:169::-;18754:21;18750:1;18742:6;18738:14;18731:45;18614:169;:::o;18789:366::-;18931:3;18952:67;19016:2;19011:3;18952:67;:::i;:::-;18945:74;;19028:93;19117:3;19028:93;:::i;:::-;19146:2;19141:3;19137:12;19130:19;;18789:366;;;:::o;19161:419::-;19327:4;19365:2;19354:9;19350:18;19342:26;;19414:9;19408:4;19404:20;19400:1;19389:9;19385:17;19378:47;19442:131;19568:4;19442:131;:::i;:::-;19434:139;;19161:419;;;:::o;19586:174::-;19726:26;19722:1;19714:6;19710:14;19703:50;19586:174;:::o;19766:366::-;19908:3;19929:67;19993:2;19988:3;19929:67;:::i;:::-;19922:74;;20005:93;20094:3;20005:93;:::i;:::-;20123:2;20118:3;20114:12;20107:19;;19766:366;;;:::o;20138:419::-;20304:4;20342:2;20331:9;20327:18;20319:26;;20391:9;20385:4;20381:20;20377:1;20366:9;20362:17;20355:47;20419:131;20545:4;20419:131;:::i;:::-;20411:139;;20138:419;;;:::o;20563:807::-;20812:4;20850:3;20839:9;20835:19;20827:27;;20864:71;20932:1;20921:9;20917:17;20908:6;20864:71;:::i;:::-;20945:72;21013:2;21002:9;20998:18;20989:6;20945:72;:::i;:::-;21027:80;21103:2;21092:9;21088:18;21079:6;21027:80;:::i;:::-;21117;21193:2;21182:9;21178:18;21169:6;21117:80;:::i;:::-;21207:73;21275:3;21264:9;21260:19;21251:6;21207:73;:::i;:::-;21290;21358:3;21347:9;21343:19;21334:6;21290:73;:::i;:::-;20563:807;;;;;;;;;:::o;21376:663::-;21464:6;21472;21480;21529:2;21517:9;21508:7;21504:23;21500:32;21497:119;;;21535:79;;:::i;:::-;21497:119;21655:1;21680:64;21736:7;21727:6;21716:9;21712:22;21680:64;:::i;:::-;21670:74;;21626:128;21793:2;21819:64;21875:7;21866:6;21855:9;21851:22;21819:64;:::i;:::-;21809:74;;21764:129;21932:2;21958:64;22014:7;22005:6;21994:9;21990:22;21958:64;:::i;:::-;21948:74;;21903:129;21376:663;;;;;:::o;22045:332::-;22166:4;22204:2;22193:9;22189:18;22181:26;;22217:71;22285:1;22274:9;22270:17;22261:6;22217:71;:::i;:::-;22298:72;22366:2;22355:9;22351:18;22342:6;22298:72;:::i;:::-;22045:332;;;;;:::o;22383:161::-;22523:13;22519:1;22511:6;22507:14;22500:37;22383:161;:::o;22550:366::-;22692:3;22713:67;22777:2;22772:3;22713:67;:::i;:::-;22706:74;;22789:93;22878:3;22789:93;:::i;:::-;22907:2;22902:3;22898:12;22891:19;;22550:366;;;:::o;22922:419::-;23088:4;23126:2;23115:9;23111:18;23103:26;;23175:9;23169:4;23165:20;23161:1;23150:9;23146:17;23139:47;23203:131;23329:4;23203:131;:::i;:::-;23195:139;;22922:419;;;:::o;23347:223::-;23487:34;23483:1;23475:6;23471:14;23464:58;23556:6;23551:2;23543:6;23539:15;23532:31;23347:223;:::o;23576:366::-;23718:3;23739:67;23803:2;23798:3;23739:67;:::i;:::-;23732:74;;23815:93;23904:3;23815:93;:::i;:::-;23933:2;23928:3;23924:12;23917:19;;23576:366;;;:::o;23948:419::-;24114:4;24152:2;24141:9;24137:18;24129:26;;24201:9;24195:4;24191:20;24187:1;24176:9;24172:17;24165:47;24229:131;24355:4;24229:131;:::i;:::-;24221:139;;23948:419;;;:::o;24373:221::-;24513:34;24509:1;24501:6;24497:14;24490:58;24582:4;24577:2;24569:6;24565:15;24558:29;24373:221;:::o;24600:366::-;24742:3;24763:67;24827:2;24822:3;24763:67;:::i;:::-;24756:74;;24839:93;24928:3;24839:93;:::i;:::-;24957:2;24952:3;24948:12;24941:19;;24600:366;;;:::o;24972:419::-;25138:4;25176:2;25165:9;25161:18;25153:26;;25225:9;25219:4;25215:20;25211:1;25200:9;25196:17;25189:47;25253:131;25379:4;25253:131;:::i;:::-;25245:139;;24972:419;;;:::o;25397:224::-;25537:34;25533:1;25525:6;25521:14;25514:58;25606:7;25601:2;25593:6;25589:15;25582:32;25397:224;:::o;25627:366::-;25769:3;25790:67;25854:2;25849:3;25790:67;:::i;:::-;25783:74;;25866:93;25955:3;25866:93;:::i;:::-;25984:2;25979:3;25975:12;25968:19;;25627:366;;;:::o;25999:419::-;26165:4;26203:2;26192:9;26188:18;26180:26;;26252:9;26246:4;26242:20;26238:1;26227:9;26223:17;26216:47;26280:131;26406:4;26280:131;:::i;:::-;26272:139;;25999:419;;;:::o;26424:222::-;26564:34;26560:1;26552:6;26548:14;26541:58;26633:5;26628:2;26620:6;26616:15;26609:30;26424:222;:::o;26652:366::-;26794:3;26815:67;26879:2;26874:3;26815:67;:::i;:::-;26808:74;;26891:93;26980:3;26891:93;:::i;:::-;27009:2;27004:3;27000:12;26993:19;;26652:366;;;:::o;27024:419::-;27190:4;27228:2;27217:9;27213:18;27205:26;;27277:9;27271:4;27267:20;27263:1;27252:9;27248:17;27241:47;27305:131;27431:4;27305:131;:::i;:::-;27297:139;;27024:419;;;:::o;27449:228::-;27589:34;27585:1;27577:6;27573:14;27566:58;27658:11;27653:2;27645:6;27641:15;27634:36;27449:228;:::o;27683:366::-;27825:3;27846:67;27910:2;27905:3;27846:67;:::i;:::-;27839:74;;27922:93;28011:3;27922:93;:::i;:::-;28040:2;28035:3;28031:12;28024:19;;27683:366;;;:::o;28055:419::-;28221:4;28259:2;28248:9;28244:18;28236:26;;28308:9;28302:4;28298:20;28294:1;28283:9;28279:17;28272:47;28336:131;28462:4;28336:131;:::i;:::-;28328:139;;28055:419;;;:::o;28480:296::-;28620:34;28616:1;28608:6;28604:14;28597:58;28689:34;28684:2;28676:6;28672:15;28665:59;28758:10;28753:2;28745:6;28741:15;28734:35;28480:296;:::o;28782:366::-;28924:3;28945:67;29009:2;29004:3;28945:67;:::i;:::-;28938:74;;29021:93;29110:3;29021:93;:::i;:::-;29139:2;29134:3;29130:12;29123:19;;28782:366;;;:::o;29154:419::-;29320:4;29358:2;29347:9;29343:18;29335:26;;29407:9;29401:4;29397:20;29393:1;29382:9;29378:17;29371:47;29435:131;29561:4;29435:131;:::i;:::-;29427:139;;29154:419;;;:::o;29579:175::-;29719:27;29715:1;29707:6;29703:14;29696:51;29579:175;:::o;29760:366::-;29902:3;29923:67;29987:2;29982:3;29923:67;:::i;:::-;29916:74;;29999:93;30088:3;29999:93;:::i;:::-;30117:2;30112:3;30108:12;30101:19;;29760:366;;;:::o;30132:419::-;30298:4;30336:2;30325:9;30321:18;30313:26;;30385:9;30379:4;30375:20;30371:1;30360:9;30356:17;30349:47;30413:131;30539:4;30413:131;:::i;:::-;30405:139;;30132:419;;;:::o;30557:191::-;30597:3;30616:20;30634:1;30616:20;:::i;:::-;30611:25;;30650:20;30668:1;30650:20;:::i;:::-;30645:25;;30693:1;30690;30686:9;30679:16;;30714:3;30711:1;30708:10;30705:36;;;30721:18;;:::i;:::-;30705:36;30557:191;;;;:::o;30754:176::-;30894:28;30890:1;30882:6;30878:14;30871:52;30754:176;:::o;30936:366::-;31078:3;31099:67;31163:2;31158:3;31099:67;:::i;:::-;31092:74;;31175:93;31264:3;31175:93;:::i;:::-;31293:2;31288:3;31284:12;31277:19;;30936:366;;;:::o;31308:419::-;31474:4;31512:2;31501:9;31497:18;31489:26;;31561:9;31555:4;31551:20;31547:1;31536:9;31532:17;31525:47;31589:131;31715:4;31589:131;:::i;:::-;31581:139;;31308:419;;;:::o;31733:233::-;31772:3;31795:24;31813:5;31795:24;:::i;:::-;31786:33;;31841:66;31834:5;31831:77;31828:103;;31911:18;;:::i;:::-;31828:103;31958:1;31951:5;31947:13;31940:20;;31733:233;;;:::o;31972:173::-;32112:25;32108:1;32100:6;32096:14;32089:49;31972:173;:::o;32151:366::-;32293:3;32314:67;32378:2;32373:3;32314:67;:::i;:::-;32307:74;;32390:93;32479:3;32390:93;:::i;:::-;32508:2;32503:3;32499:12;32492:19;;32151:366;;;:::o;32523:419::-;32689:4;32727:2;32716:9;32712:18;32704:26;;32776:9;32770:4;32766:20;32762:1;32751:9;32747:17;32740:47;32804:131;32930:4;32804:131;:::i;:::-;32796:139;;32523:419;;;:::o;32948:194::-;32988:4;33008:20;33026:1;33008:20;:::i;:::-;33003:25;;33042:20;33060:1;33042:20;:::i;:::-;33037:25;;33086:1;33083;33079:9;33071:17;;33110:1;33104:4;33101:11;33098:37;;;33115:18;;:::i;:::-;33098:37;32948:194;;;;:::o;33148:180::-;33196:77;33193:1;33186:88;33293:4;33290:1;33283:15;33317:4;33314:1;33307:15;33334:180;33382:77;33379:1;33372:88;33479:4;33476:1;33469:15;33503:4;33500:1;33493:15;33520:114;33587:6;33621:5;33615:12;33605:22;;33520:114;;;:::o;33640:184::-;33739:11;33773:6;33768:3;33761:19;33813:4;33808:3;33804:14;33789:29;;33640:184;;;;:::o;33830:132::-;33897:4;33920:3;33912:11;;33950:4;33945:3;33941:14;33933:22;;33830:132;;;:::o;33968:108::-;34045:24;34063:5;34045:24;:::i;:::-;34040:3;34033:37;33968:108;;:::o;34082:179::-;34151:10;34172:46;34214:3;34206:6;34172:46;:::i;:::-;34250:4;34245:3;34241:14;34227:28;;34082:179;;;;:::o;34267:113::-;34337:4;34369;34364:3;34360:14;34352:22;;34267:113;;;:::o;34416:732::-;34535:3;34564:54;34612:5;34564:54;:::i;:::-;34634:86;34713:6;34708:3;34634:86;:::i;:::-;34627:93;;34744:56;34794:5;34744:56;:::i;:::-;34823:7;34854:1;34839:284;34864:6;34861:1;34858:13;34839:284;;;34940:6;34934:13;34967:63;35026:3;35011:13;34967:63;:::i;:::-;34960:70;;35053:60;35106:6;35053:60;:::i;:::-;35043:70;;34899:224;34886:1;34883;34879:9;34874:14;;34839:284;;;34843:14;35139:3;35132:10;;34540:608;;;34416:732;;;;:::o;35154:831::-;35417:4;35455:3;35444:9;35440:19;35432:27;;35469:71;35537:1;35526:9;35522:17;35513:6;35469:71;:::i;:::-;35550:80;35626:2;35615:9;35611:18;35602:6;35550:80;:::i;:::-;35677:9;35671:4;35667:20;35662:2;35651:9;35647:18;35640:48;35705:108;35808:4;35799:6;35705:108;:::i;:::-;35697:116;;35823:72;35891:2;35880:9;35876:18;35867:6;35823:72;:::i;:::-;35905:73;35973:3;35962:9;35958:19;35949:6;35905:73;:::i;:::-;35154:831;;;;;;;;:::o;35991:220::-;36131:34;36127:1;36119:6;36115:14;36108:58;36200:3;36195:2;36187:6;36183:15;36176:28;35991:220;:::o;36217:366::-;36359:3;36380:67;36444:2;36439:3;36380:67;:::i;:::-;36373:74;;36456:93;36545:3;36456:93;:::i;:::-;36574:2;36569:3;36565:12;36558:19;;36217:366;;;:::o;36589:419::-;36755:4;36793:2;36782:9;36778:18;36770:26;;36842:9;36836:4;36832:20;36828:1;36817:9;36813:17;36806:47;36870:131;36996:4;36870:131;:::i;:::-;36862:139;;36589:419;;;:::o;37014:177::-;37154:29;37150:1;37142:6;37138:14;37131:53;37014:177;:::o;37197:366::-;37339:3;37360:67;37424:2;37419:3;37360:67;:::i;:::-;37353:74;;37436:93;37525:3;37436:93;:::i;:::-;37554:2;37549:3;37545:12;37538:19;;37197:366;;;:::o;37569:419::-;37735:4;37773:2;37762:9;37758:18;37750:26;;37822:9;37816:4;37812:20;37808:1;37797:9;37793:17;37786:47;37850:131;37976:4;37850:131;:::i;:::-;37842:139;;37569:419;;;:::o;37994:94::-;38027:8;38075:5;38071:2;38067:14;38046:35;;37994:94;;;:::o;38094:::-;38133:7;38162:20;38176:5;38162:20;:::i;:::-;38151:31;;38094:94;;;:::o;38194:100::-;38233:7;38262:26;38282:5;38262:26;:::i;:::-;38251:37;;38194:100;;;:::o;38300:157::-;38405:45;38425:24;38443:5;38425:24;:::i;:::-;38405:45;:::i;:::-;38400:3;38393:58;38300:157;;:::o;38463:397::-;38603:3;38618:75;38689:3;38680:6;38618:75;:::i;:::-;38718:2;38713:3;38709:12;38702:19;;38731:75;38802:3;38793:6;38731:75;:::i;:::-;38831:2;38826:3;38822:12;38815:19;;38851:3;38844:10;;38463:397;;;;;:::o;38866:148::-;38968:11;39005:3;38990:18;;38866:148;;;;:::o;39020:214::-;39160:66;39156:1;39148:6;39144:14;39137:90;39020:214;:::o;39240:400::-;39400:3;39421:84;39503:1;39498:3;39421:84;:::i;:::-;39414:91;;39514:93;39603:3;39514:93;:::i;:::-;39632:1;39627:3;39623:11;39616:18;;39240:400;;;:::o;39646:77::-;39683:7;39712:5;39701:16;;39646:77;;;:::o;39729:79::-;39768:7;39797:5;39786:16;;39729:79;;;:::o;39814:157::-;39919:45;39939:24;39957:5;39939:24;:::i;:::-;39919:45;:::i;:::-;39914:3;39907:58;39814:157;;:::o;39977:214::-;40117:66;40113:1;40105:6;40101:14;40094:90;39977:214;:::o;40197:402::-;40357:3;40378:85;40460:2;40455:3;40378:85;:::i;:::-;40371:92;;40472:93;40561:3;40472:93;:::i;:::-;40590:2;40585:3;40581:12;40574:19;;40197:402;;;:::o;40605:929::-;40947:3;40969:148;41113:3;40969:148;:::i;:::-;40962:155;;41127:75;41198:3;41189:6;41127:75;:::i;:::-;41227:2;41222:3;41218:12;41211:19;;41240:75;41311:3;41302:6;41240:75;:::i;:::-;41340:2;41335:3;41331:12;41324:19;;41360:148;41504:3;41360:148;:::i;:::-;41353:155;;41525:3;41518:10;;40605:929;;;;;:::o

Swarm Source

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