ETH Price: $3,254.79 (-5.42%)
 

Overview

Max Total Supply

1,000,000,000 ARISE

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.337491928658729981 ARISE

Value
$0.00
0x4FD5489586dd378f7C85c9a1Cd34509Ccf7F4cB7
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:
TheGreatReset

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-22
*/

/**
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract TheGreatReset is IERC20, Ownable {
    using Address for address;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "The Great Reset";
    string constant _symbol = "ARISE";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 5) / 500; //1%
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 500; //0.2%
    uint256 _maxWalletSize = (_totalSupply * 10) / 500; //2%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public liquidityCreator;

    uint256 marketingFee = 30;
    uint256 marketingSellFee = 90;
    uint256 liquidityFee = 0;
    uint256 liquiditySellFee = 0;
    uint256 totalBuyFee = marketingFee + liquidityFee;
    uint256 totalSellFee = marketingSellFee + liquiditySellFee;
    uint256 feeDenominator = 100;
    bool public transferTax = false;

    address payable public liquidityFeeReceiver;
    address payable public marketingFeeReceiver;

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address v3RouterAddress =0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    mapping (address => bool) liquidityPools;


    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool tradingEnabled = false;
    bool limitsEnabled = false;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    mapping (address => bool) teamMember;

    modifier onlyTeam() {
        require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
        _;
    }


    constructor () {
        router = IDEXRouter(routerAddress);
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        _allowances[owner()][v3RouterAddress] = type(uint256).max;
        _allowances[address(this)][v3RouterAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        liquidityFeeReceiver = payable(owner());
        marketingFeeReceiver = payable(owner());

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[v3RouterAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function setTeamMember(address _team, bool _enabled) external onlyOwner {
        teamMember[_team] = _enabled;
    }

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
        uint256 amountETH = address(this).balance;

        if(amountETH > 0) {
            (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
            require(sent,"Failed to transfer funds");
        }
    }

    function openTrading() external onlyTeam {
        deadBlocks = 0;
        tradingEnabled = true;
        launchedAt = block.number;
    }



    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
        _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "ERC20: transfer from 0x0");
        require(recipient != address(0), "ERC20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]) {
            require(liquidityCreator[sender], "Liquidity not added yet.");
            launch();
        }
        if(!tradingEnabled){
            require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet.");
        }

        if (limitsEnabled) {
            checkTxLimit(sender, recipient, amount);
            if (!liquidityPools[recipient] && recipient != DEAD) {
                if (!isTxLimitExempt[recipient] && !liquidityCreator[sender]) {
                    checkWalletLimit(recipient, amount);
                }
            }
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = amount;

        if(shouldTakeFee(sender, recipient)) {
            amountReceived = takeFee(recipient, amount);
            if(shouldSwapBack(recipient) && amount > 0) swapBack(amount);
        }

        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return;
        require(amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");

        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender, recipient)) {
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender, address recipient) public view returns (bool) {
        if(!transferTax && !liquidityPools[recipient] && !liquidityPools[sender]) return false;
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
        if (selling) return totalSellFee;
        return totalBuyFee;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;

        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function changeLimitsEnabled(bool _limitsEnabled) external onlyOwner {
        limitsEnabled = _limitsEnabled;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _balances[address(this)] >= swapMinimum
        && totalBuyFee + totalSellFee > 0;
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 totalFee = totalBuyFee + totalSellFee;
        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];

        uint256 totalLiquidityFee = liquidityFee + liquiditySellFee;
        uint256 amountToLiquify = (amountToSwap * totalLiquidityFee / 2) / totalFee;
        amountToSwap -= amountToLiquify;

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance - balanceBefore;
        uint256 totalETHFee = totalFee - (totalLiquidityFee / 2);

        uint256 amountETHLiquidity = (amountETH * totalLiquidityFee / 2) / totalETHFee;
        uint256 amountETHMarketing = amountETH - amountETHLiquidity;

        if (amountETHMarketing > 0) {
            (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
            if(!sentMarketing) {
                //Failed to transfer to marketing wallet
            }
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityFeeReceiver,
                block.timestamp
            );
        }

        emit FundsDistributed(amountETHMarketing, amountETHLiquidity, amountToLiquify);
    }

    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        liquidityPools[lp] = isPool;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
        require(_maxSellTxAmount > (_totalSupply * 1) / 1000, "Max sell must be bigger 0.1%");

    }

    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _liquiditySellFee, uint256 _marketingFee, uint256 _marketingSellFee, uint256 _feeDenominator) external onlyOwner {
        require(((_liquidityFee + _liquiditySellFee) / 2) * 2 == (_liquidityFee + _liquiditySellFee), "Liquidity fee must be an even number due to rounding");
        liquidityFee = _liquidityFee;
        liquiditySellFee = _liquiditySellFee;
        marketingFee = _marketingFee;
        marketingSellFee = _marketingSellFee;
        totalBuyFee = _liquidityFee + _marketingFee;
        totalSellFee = _liquiditySellFee + _marketingSellFee;
        feeDenominator = _feeDenominator;
        require(totalBuyFee + totalSellFee <= feeDenominator / 2, "Fees bigger than 50");
        emit FeesSet(totalBuyFee, totalSellFee, feeDenominator);
    }

    function toggleTransferTax() external onlyOwner {
        transferTax = !transferTax;
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens);
    event FeesSet(uint256 totalBuyFees, uint256 totalSellFees, uint256 denominator);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalBuyFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSellFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"FeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","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"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"bool","name":"_limitsEnabled","type":"bool"}],"name":"changeLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_marketingSellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"shouldTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062000d57565b633b9aca00620000aa919062000da8565b6003556101f46005600354620000c1919062000da8565b620000cd919062000e38565b6004556101f46001600354620000e4919062000da8565b620000f0919062000e38565b6005556101f4600a60035462000107919062000da8565b62000113919062000e38565b600655601e600e55605a600f5560006010556000601155601054600e546200013c919062000e70565b601255601154600f5462000151919062000e70565b60135560646014556000601560006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601e60006101000a81548160ff0219169083151502179055506000601e60016101000a81548160ff0219169083151502179055506002601f556000602060006101000a81548160ff0219169083151502179055506103e860035462000286919062000e38565b6021556127106003546200029b919062000e38565b602255348015620002ab57600080fd5b50620002cc620002c062000ac860201b60201c565b62000ad060201b60201c565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860006200036462000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60086000620004f962000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60006200066f62000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620006d662000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200073762000b9460201b60201c565b601560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200078762000b9460201b60201c565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200083562000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000a0b62000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a5962000b9460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000aba919062000ede565b60405180910390a362000efb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c4b5780860481111562000c235762000c2262000bbd565b5b600185161562000c335780820291505b808102905062000c438562000bec565b945062000c03565b94509492505050565b60008262000c66576001905062000d39565b8162000c76576000905062000d39565b816001811462000c8f576002811462000c9a5762000cd0565b600191505062000d39565b60ff84111562000caf5762000cae62000bbd565b5b8360020a91508482111562000cc95762000cc862000bbd565b5b5062000d39565b5060208310610133831016604e8410600b841016171562000d0a5782820a90508381111562000d045762000d0362000bbd565b5b62000d39565b62000d19848484600162000bf9565b9250905081840481111562000d335762000d3262000bbd565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d648262000d40565b915062000d718362000d4a565b925062000da07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c54565b905092915050565b600062000db58262000d40565b915062000dc28362000d40565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000dfe5762000dfd62000bbd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e458262000d40565b915062000e528362000d40565b92508262000e655762000e6462000e09565b5b828204905092915050565b600062000e7d8262000d40565b915062000e8a8362000d40565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ec25762000ec162000bbd565b5b828201905092915050565b62000ed88162000d40565b82525050565b600060208201905062000ef5600083018462000ecd565b92915050565b6146698062000f0b6000396000f3fe6080604052600436106102cd5760003560e01c8063893d20e811610175578063c9567bf9116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b29578063f8821a6214610b52578063f887ea4014610b7d578063fabb0b4f14610ba8576102d4565b8063e96fada214610a98578063f1f3bca314610ac3578063f2fde38b14610b00576102d4565b8063c9567bf91461099e578063ce657cce146109b5578063d0889358146109de578063d912b2ce14610a07578063dae39f9214610a1e578063dd62ed3e14610a5b576102d4565b8063abe57e701161012e578063abe57e701461088e578063bafe446b146108b7578063bf56b371146108e2578063bfa21d6a1461090d578063c1adf7bc14610938578063c287184e14610975576102d4565b8063893d20e81461076a5780638b42507f146107955780638da5cb5b146107d257806395d89b41146107fd578063a4b45c0014610828578063a9059cbb14610851576102d4565b8063507139351161023457806363a803e1116101ed5780636f4ce428116101c75780636f4ce428146106ae57806370a08231146106eb578063715018a6146107285780638124f7ac1461073f576102d4565b806363a803e11461062f578063658d4b7f1461065a5780636ddd171314610683576102d4565b8063507139351461052157806356a227f21461054a578063571ac8b0146105735780635804f1e4146105b057806360bba03d146105db57806361e08e7214610604576102d4565b806323b872dd1161028657806323b872dd146103eb5780632b112e4914610428578063313ce56714610453578063332402f81461047e5780633f4218e0146104bb578063492a937b146104f8576102d4565b80630445b667146102d957806304a66b481461030457806306fdde031461032d578063095ea7b31461035857806318160ddd14610395578063234e9494146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610bd3565b6040516102fb919061329d565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906132e9565b610bd9565b005b34801561033957600080fd5b50610342610d3f565b60405161034f91906133fd565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061347d565b610d7c565b60405161038c91906134d8565b60405180910390f35b3480156103a157600080fd5b506103aa610e6e565b6040516103b7919061329d565b60405180910390f35b3480156103cc57600080fd5b506103d5610e78565b6040516103e2919061329d565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d91906134f3565b610e9a565b60405161041f91906134d8565b60405180910390f35b34801561043457600080fd5b5061043d61105c565b60405161044a919061329d565b60405180910390f35b34801561045f57600080fd5b506104686110d0565b6040516104759190613562565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a0919061357d565b6110d9565b6040516104b291906134d8565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906135bd565b611253565b6040516104ef91906134d8565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190613616565b611273565b005b34801561052d57600080fd5b5061054860048036038101906105439190613656565b6112d6565b005b34801561055657600080fd5b50610571600480360381019061056c91906136a9565b6113b3565b005b34801561057f57600080fd5b5061059a600480360381019061059591906135bd565b61155b565b6040516105a791906134d8565b60405180910390f35b3480156105bc57600080fd5b506105c561158e565b6040516105d2919061329d565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190613616565b611594565b005b34801561061057600080fd5b506106196115f7565b604051610626919061329d565b60405180910390f35b34801561063b57600080fd5b506106446115fd565b604051610651919061329d565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190613616565b61161f565b005b34801561068f57600080fd5b50610698611682565b6040516106a591906134d8565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d091906135bd565b611695565b6040516106e2919061329d565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906135bd565b6116ad565b60405161071f919061329d565b60405180910390f35b34801561073457600080fd5b5061073d6116f6565b005b34801561074b57600080fd5b5061075461170a565b60405161076191906134d8565b60405180910390f35b34801561077657600080fd5b5061077f61171d565b60405161078c91906136f8565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b791906135bd565b61172c565b6040516107c991906134d8565b60405180910390f35b3480156107de57600080fd5b506107e761174c565b6040516107f491906136f8565b60405180910390f35b34801561080957600080fd5b50610812611775565b60405161081f91906133fd565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a919061357d565b6117b2565b005b34801561085d57600080fd5b506108786004803603810190610873919061347d565b611840565b60405161088591906134d8565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190613713565b611855565b005b3480156108c357600080fd5b506108cc6118a7565b6040516108d9919061329d565b60405180910390f35b3480156108ee57600080fd5b506108f76118c9565b604051610904919061329d565b60405180910390f35b34801561091957600080fd5b506109226118cf565b60405161092f9190613774565b60405180910390f35b34801561094457600080fd5b5061095f600480360381019061095a91906135bd565b6118f5565b60405161096c919061329d565b60405180910390f35b34801561098157600080fd5b5061099c6004803603810190610997919061378f565b61190d565b005b3480156109aa57600080fd5b506109b361192d565b005b3480156109c157600080fd5b506109dc60048036038101906109d791906137bc565b611a29565b005b3480156109ea57600080fd5b50610a056004803603810190610a0091906137e9565b611a4e565b005b348015610a1357600080fd5b50610a1c611ab5565b005b348015610a2a57600080fd5b50610a456004803603810190610a4091906135bd565b611ae9565b604051610a5291906134d8565b60405180910390f35b348015610a6757600080fd5b50610a826004803603810190610a7d919061357d565b611b09565b604051610a8f919061329d565b60405180910390f35b348015610aa457600080fd5b50610aad611b90565b604051610aba9190613774565b60405180910390f35b348015610acf57600080fd5b50610aea6004803603810190610ae591906137bc565b611bb6565b604051610af7919061329d565b60405180910390f35b348015610b0c57600080fd5b50610b276004803603810190610b2291906135bd565b611bff565b005b348015610b3557600080fd5b50610b506004803603810190610b4b9190613616565b611c82565b005b348015610b5e57600080fd5b50610b67611ce5565b604051610b74919061329d565b60405180910390f35b348015610b8957600080fd5b50610b92611ceb565b604051610b9f919061389b565b60405180910390f35b348015610bb457600080fd5b50610bbd611d11565b604051610bca919061329d565b60405180910390f35b60215481565b610be1611d17565b8385610bed91906138e5565b6002808688610bfc91906138e5565b610c06919061396a565b610c10919061399b565b14610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613a67565b60405180910390fd5b846010819055508360118190555082600e8190555081600f819055508285610c7891906138e5565b6012819055508184610c8a91906138e5565b601381905550806014819055506002601454610ca6919061396a565b601354601254610cb691906138e5565b1115610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613ad3565b60405180910390fd5b7f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f45601254601354601454604051610d3093929190613af3565b60405180910390a15050505050565b60606040518060400160405280600f81526020017f5468652047726561742052657365740000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e5c919061329d565b60405180910390a36001905092915050565b6000600354905090565b60006012600a610e889190613c5d565b600554610e95919061396a565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110485781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fc79190613ca8565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611053848484611d95565b90509392505050565b6000611089600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116ad565b6110b4600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116ad565b6110be91906138e5565b6003546110cb9190613ca8565b905090565b60006012905090565b6000601560009054906101000a900460ff161580156111425750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111985750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111a6576000905061124d565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561124a5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90505b92915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61127b611d17565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112de611d17565b6000831180156112ee5750600082115b80156112fa5750600081115b801561130857506127108111155b61131157600080fd5b8083600354611320919061399b565b61132a919061396a565b600481905550808260035461133f919061399b565b611349919061396a565b6005819055506103e86001600354611361919061399b565b61136b919061396a565b600554116113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613d28565b60405180910390fd5b505050565b602460006113bf6124a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611444575061141561174c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613d94565b60405180910390fd5b600047905060008111156115565760008273ffffffffffffffffffffffffffffffffffffffff16606485846114b8919061399b565b6114c2919061396a565b6040516114ce90613de5565b60006040518083038185875af1925050503d806000811461150b576040519150601f19603f3d011682016040523d82523d6000602084013e611510565b606091505b5050905080611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613e46565b60405180910390fd5b505b505050565b6000611587827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d7c565b9050919050565b601c5481565b61159c611d17565b80602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f5481565b60006012600a61160d9190613c5d565b60065461161a919061396a565b905090565b611627611d17565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116fe611d17565b61170860006124ab565b565b601560009054906101000a900460ff1681565b600061172761174c565b905090565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4152495345000000000000000000000000000000000000000000000000000000815250905090565b6117ba611d17565b81601560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061184d338484611d95565b905092915050565b61185d611d17565b60008211801561186d5750600081115b801561187b57506127108111155b61188457600080fd5b8082600354611893919061399b565b61189d919061396a565b6006819055505050565b60006012600a6118b79190613c5d565b6004546118c4919061396a565b905090565b601b5481565b601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611915611d17565b603c81111561192357600080fd5b80601f8190555050565b602460006119396124a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119be575061198f61174c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613d94565b60405180910390fd5b6000601d819055506001601e60006101000a81548160ff02191690831515021790555043601b81905550565b611a31611d17565b80601e60016101000a81548160ff02191690831515021790555050565b611a56611d17565b60008211611a6357600080fd5b82602060006101000a81548160ff02191690831515021790555081600354611a8b919061396a565b6021819055506012600a611a9f9190613c5d565b81611aaa919061399b565b602281905550505050565b611abd611d17565b601560009054906101000a900460ff1615601560006101000a81548160ff021916908315150217905550565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043601d54601b54611bc991906138e5565b10611be4576001601454611bdd9190613ca8565b9050611bfa565b8115611bf4576013549050611bfa565b60125490505b919050565b611c07611d17565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613ed8565b60405180910390fd5b611c7f816124ab565b50565b611c8a611d17565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b611d1f6124a3565b73ffffffffffffffffffffffffffffffffffffffff16611d3d61174c565b73ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a90613f44565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613fb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9061401c565b60405180910390fd5b60008211611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90614088565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f30906140f4565b60405180910390fd5b611f4161256f565b158015611f975750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561203157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90614160565b60405180910390fd5b61203061257c565b5b601e60009054906101000a900460ff1661212657600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e65750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c906141cc565b60405180910390fd5b5b601e60019054906101000a900460ff16156122a95761214684848461258c565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121ee5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a857600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122975750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122a7576122a683836128cd565b5b5b5b602360009054906101000a900460ff16156122d0576122c9848484612966565b905061249c565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231b9190613ca8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061236d85856110d9565b156123a35761237c8484612af4565b905061238784612bd7565b80156123935750600083115b156123a2576123a183612d1c565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ee91906138e5565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161248e919061329d565b60405180910390a360019150505b9392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080601b541415905090565b43601b8190555042601c81905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061262d5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128c857601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661268a5760055461268e565b6004545b8111156126d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c790614238565b60405180910390fd5b43601f54600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271e91906138e5565b111561275f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612756906142a4565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127fa5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c7565b61280483836110d9565b156128c65743600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146128c55743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292091906138e5565b1115612961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295890614336565b60405180910390fd5b505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b39190613ca8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4191906138e5565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae1919061329d565b60405180910390a3600190509392505050565b600080601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601454612b5483611bb6565b85612b5f919061399b565b612b69919061396a565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bba91906138e5565b925050819055508084612bcd9190613ca8565b9250505092915050565b6000601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c405750602360009054906101000a900460ff16155b8015612c585750602060009054906101000a900460ff165b8015612cad5750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612cfa5750602254600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015612d1557506000601354601254612d1391906138e5565b115b9050919050565b6001602360006101000a81548160ff0219169083151502179055506000601354601254612d4991906138e5565b905060006021548310612d5e57602154612d60565b825b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612dec57600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000601154601054612dfe91906138e5565b905060008360028385612e11919061399b565b612e1b919061396a565b612e25919061396a565b90508083612e339190613ca8565b92506000600267ffffffffffffffff811115612e5257612e51614356565b5b604051908082528060200260200182016040528015612e805781602001602082028036833780820191505090505b5090503081600081518110612e9857612e97614385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6391906143c9565b81600181518110612f7757612f76614385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478660008530426040518663ffffffff1660e01b815260040161301a9594939291906144ef565b600060405180830381600087803b15801561303457600080fd5b505af1158015613048573d6000803e3d6000fd5b505050506000814761305a9190613ca8565b9050600060028661306b919061396a565b886130769190613ca8565b905060008160028885613089919061399b565b613093919061396a565b61309d919061396a565b9050600081846130ad9190613ca8565b90506000811115613148576000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161310090613de5565b60006040518083038185875af1925050503d806000811461313d576040519150601f19603f3d011682016040523d82523d6000602084013e613142565b606091505b50509050505b600087111561322157601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131da9695949392919061456a565b60606040518083038185885af11580156131f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061321d91906145e0565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df981838960405161325493929190613af3565b60405180910390a1505050505050505050506000602360006101000a81548160ff02191690831515021790555050565b6000819050919050565b61329781613284565b82525050565b60006020820190506132b2600083018461328e565b92915050565b600080fd5b6132c681613284565b81146132d157600080fd5b50565b6000813590506132e3816132bd565b92915050565b600080600080600060a08688031215613305576133046132b8565b5b6000613313888289016132d4565b9550506020613324888289016132d4565b9450506040613335888289016132d4565b9350506060613346888289016132d4565b9250506080613357888289016132d4565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339e578082015181840152602081019050613383565b838111156133ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006133cf82613364565b6133d9818561336f565b93506133e9818560208601613380565b6133f2816133b3565b840191505092915050565b6000602082019050818103600083015261341781846133c4565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344a8261341f565b9050919050565b61345a8161343f565b811461346557600080fd5b50565b60008135905061347781613451565b92915050565b60008060408385031215613494576134936132b8565b5b60006134a285828601613468565b92505060206134b3858286016132d4565b9150509250929050565b60008115159050919050565b6134d2816134bd565b82525050565b60006020820190506134ed60008301846134c9565b92915050565b60008060006060848603121561350c5761350b6132b8565b5b600061351a86828701613468565b935050602061352b86828701613468565b925050604061353c868287016132d4565b9150509250925092565b600060ff82169050919050565b61355c81613546565b82525050565b60006020820190506135776000830184613553565b92915050565b60008060408385031215613594576135936132b8565b5b60006135a285828601613468565b92505060206135b385828601613468565b9150509250929050565b6000602082840312156135d3576135d26132b8565b5b60006135e184828501613468565b91505092915050565b6135f3816134bd565b81146135fe57600080fd5b50565b600081359050613610816135ea565b92915050565b6000806040838503121561362d5761362c6132b8565b5b600061363b85828601613468565b925050602061364c85828601613601565b9150509250929050565b60008060006060848603121561366f5761366e6132b8565b5b600061367d868287016132d4565b935050602061368e868287016132d4565b925050604061369f868287016132d4565b9150509250925092565b600080604083850312156136c0576136bf6132b8565b5b60006136ce858286016132d4565b92505060206136df85828601613468565b9150509250929050565b6136f28161343f565b82525050565b600060208201905061370d60008301846136e9565b92915050565b6000806040838503121561372a576137296132b8565b5b6000613738858286016132d4565b9250506020613749858286016132d4565b9150509250929050565b600061375e8261341f565b9050919050565b61376e81613753565b82525050565b60006020820190506137896000830184613765565b92915050565b6000602082840312156137a5576137a46132b8565b5b60006137b3848285016132d4565b91505092915050565b6000602082840312156137d2576137d16132b8565b5b60006137e084828501613601565b91505092915050565b600080600060608486031215613802576138016132b8565b5b600061381086828701613601565b9350506020613821868287016132d4565b9250506040613832868287016132d4565b9150509250925092565b6000819050919050565b600061386161385c6138578461341f565b61383c565b61341f565b9050919050565b600061387382613846565b9050919050565b600061388582613868565b9050919050565b6138958161387a565b82525050565b60006020820190506138b0600083018461388c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138f082613284565b91506138fb83613284565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139305761392f6138b6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061397582613284565b915061398083613284565b9250826139905761398f61393b565b5b828204905092915050565b60006139a682613284565b91506139b183613284565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139ea576139e96138b6565b5b828202905092915050565b7f4c697175696469747920666565206d75737420626520616e206576656e206e7560008201527f6d6265722064756520746f20726f756e64696e67000000000000000000000000602082015250565b6000613a5160348361336f565b9150613a5c826139f5565b604082019050919050565b60006020820190508181036000830152613a8081613a44565b9050919050565b7f4665657320626967676572207468616e20353000000000000000000000000000600082015250565b6000613abd60138361336f565b9150613ac882613a87565b602082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b6000606082019050613b08600083018661328e565b613b15602083018561328e565b613b22604083018461328e565b949350505050565b60008160011c9050919050565b6000808291508390505b6001851115613b8157808604811115613b5d57613b5c6138b6565b5b6001851615613b6c5780820291505b8081029050613b7a85613b2a565b9450613b41565b94509492505050565b600082613b9a5760019050613c56565b81613ba85760009050613c56565b8160018114613bbe5760028114613bc857613bf7565b6001915050613c56565b60ff841115613bda57613bd96138b6565b5b8360020a915084821115613bf157613bf06138b6565b5b50613c56565b5060208310610133831016604e8410600b8410161715613c2c5782820a905083811115613c2757613c266138b6565b5b613c56565b613c398484846001613b37565b92509050818404811115613c5057613c4f6138b6565b5b81810290505b9392505050565b6000613c6882613284565b9150613c7383613546565b9250613ca07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b8a565b905092915050565b6000613cb382613284565b9150613cbe83613284565b925082821015613cd157613cd06138b6565b5b828203905092915050565b7f4d61782073656c6c206d7573742062652062696767657220302e312500000000600082015250565b6000613d12601c8361336f565b9150613d1d82613cdc565b602082019050919050565b60006020820190508181036000830152613d4181613d05565b9050919050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613d7e601b8361336f565b9150613d8982613d48565b602082019050919050565b60006020820190508181036000830152613dad81613d71565b9050919050565b600081905092915050565b50565b6000613dcf600083613db4565b9150613dda82613dbf565b600082019050919050565b6000613df082613dc2565b9150819050919050565b7f4661696c656420746f207472616e736665722066756e64730000000000000000600082015250565b6000613e3060188361336f565b9150613e3b82613dfa565b602082019050919050565b60006020820190508181036000830152613e5f81613e23565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ec260268361336f565b9150613ecd82613e66565b604082019050919050565b60006020820190508181036000830152613ef181613eb5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f2e60208361336f565b9150613f3982613ef8565b602082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613f9a60188361336f565b9150613fa582613f64565b602082019050919050565b60006020820190508181036000830152613fc981613f8d565b9050919050565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061400660168361336f565b915061401182613fd0565b602082019050919050565b6000602082019050818103600083015261403581613ff9565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b600061407260158361336f565b915061407d8261403c565b602082019050919050565b600060208201905081810360008301526140a181614065565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006140de60148361336f565b91506140e9826140a8565b602082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061414a60188361336f565b915061415582614114565b602082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141b660158361336f565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061422260118361336f565b915061422d826141ec565b602082019050919050565b6000602082019050818103600083015261425181614215565b9050919050565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b600061428e601d8361336f565b915061429982614258565b602082019050919050565b600060208201905081810360008301526142bd81614281565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061432060258361336f565b915061432b826142c4565b604082019050919050565b6000602082019050818103600083015261434f81614313565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143c381613451565b92915050565b6000602082840312156143df576143de6132b8565b5b60006143ed848285016143b4565b91505092915050565b6000819050919050565b600061441b614416614411846143f6565b61383c565b613284565b9050919050565b61442b81614400565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144668161343f565b82525050565b6000614478838361445d565b60208301905092915050565b6000602082019050919050565b600061449c82614431565b6144a6818561443c565b93506144b18361444d565b8060005b838110156144e25781516144c9888261446c565b97506144d483614484565b9250506001810190506144b5565b5085935050505092915050565b600060a082019050614504600083018861328e565b6145116020830187614422565b81810360408301526145238186614491565b905061453260608301856136e9565b61453f608083018461328e565b9695505050505050565b600061455482613868565b9050919050565b61456481614549565b82525050565b600060c08201905061457f60008301896136e9565b61458c602083018861328e565b6145996040830187614422565b6145a66060830186614422565b6145b3608083018561455b565b6145c060a083018461328e565b979650505050505050565b6000815190506145da816132bd565b92915050565b6000806000606084860312156145f9576145f86132b8565b5b6000614607868287016145cb565b9350506020614618868287016145cb565b9250506040614629868287016145cb565b915050925092509256fea26469706673582212201c26c56935c0da2b3c01efb80efb73c5433c3e62f7848f8c5afed77464fae09a64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c8063893d20e811610175578063c9567bf9116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b29578063f8821a6214610b52578063f887ea4014610b7d578063fabb0b4f14610ba8576102d4565b8063e96fada214610a98578063f1f3bca314610ac3578063f2fde38b14610b00576102d4565b8063c9567bf91461099e578063ce657cce146109b5578063d0889358146109de578063d912b2ce14610a07578063dae39f9214610a1e578063dd62ed3e14610a5b576102d4565b8063abe57e701161012e578063abe57e701461088e578063bafe446b146108b7578063bf56b371146108e2578063bfa21d6a1461090d578063c1adf7bc14610938578063c287184e14610975576102d4565b8063893d20e81461076a5780638b42507f146107955780638da5cb5b146107d257806395d89b41146107fd578063a4b45c0014610828578063a9059cbb14610851576102d4565b8063507139351161023457806363a803e1116101ed5780636f4ce428116101c75780636f4ce428146106ae57806370a08231146106eb578063715018a6146107285780638124f7ac1461073f576102d4565b806363a803e11461062f578063658d4b7f1461065a5780636ddd171314610683576102d4565b8063507139351461052157806356a227f21461054a578063571ac8b0146105735780635804f1e4146105b057806360bba03d146105db57806361e08e7214610604576102d4565b806323b872dd1161028657806323b872dd146103eb5780632b112e4914610428578063313ce56714610453578063332402f81461047e5780633f4218e0146104bb578063492a937b146104f8576102d4565b80630445b667146102d957806304a66b481461030457806306fdde031461032d578063095ea7b31461035857806318160ddd14610395578063234e9494146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610bd3565b6040516102fb919061329d565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906132e9565b610bd9565b005b34801561033957600080fd5b50610342610d3f565b60405161034f91906133fd565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061347d565b610d7c565b60405161038c91906134d8565b60405180910390f35b3480156103a157600080fd5b506103aa610e6e565b6040516103b7919061329d565b60405180910390f35b3480156103cc57600080fd5b506103d5610e78565b6040516103e2919061329d565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d91906134f3565b610e9a565b60405161041f91906134d8565b60405180910390f35b34801561043457600080fd5b5061043d61105c565b60405161044a919061329d565b60405180910390f35b34801561045f57600080fd5b506104686110d0565b6040516104759190613562565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a0919061357d565b6110d9565b6040516104b291906134d8565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906135bd565b611253565b6040516104ef91906134d8565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190613616565b611273565b005b34801561052d57600080fd5b5061054860048036038101906105439190613656565b6112d6565b005b34801561055657600080fd5b50610571600480360381019061056c91906136a9565b6113b3565b005b34801561057f57600080fd5b5061059a600480360381019061059591906135bd565b61155b565b6040516105a791906134d8565b60405180910390f35b3480156105bc57600080fd5b506105c561158e565b6040516105d2919061329d565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190613616565b611594565b005b34801561061057600080fd5b506106196115f7565b604051610626919061329d565b60405180910390f35b34801561063b57600080fd5b506106446115fd565b604051610651919061329d565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190613616565b61161f565b005b34801561068f57600080fd5b50610698611682565b6040516106a591906134d8565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d091906135bd565b611695565b6040516106e2919061329d565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906135bd565b6116ad565b60405161071f919061329d565b60405180910390f35b34801561073457600080fd5b5061073d6116f6565b005b34801561074b57600080fd5b5061075461170a565b60405161076191906134d8565b60405180910390f35b34801561077657600080fd5b5061077f61171d565b60405161078c91906136f8565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b791906135bd565b61172c565b6040516107c991906134d8565b60405180910390f35b3480156107de57600080fd5b506107e761174c565b6040516107f491906136f8565b60405180910390f35b34801561080957600080fd5b50610812611775565b60405161081f91906133fd565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a919061357d565b6117b2565b005b34801561085d57600080fd5b506108786004803603810190610873919061347d565b611840565b60405161088591906134d8565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190613713565b611855565b005b3480156108c357600080fd5b506108cc6118a7565b6040516108d9919061329d565b60405180910390f35b3480156108ee57600080fd5b506108f76118c9565b604051610904919061329d565b60405180910390f35b34801561091957600080fd5b506109226118cf565b60405161092f9190613774565b60405180910390f35b34801561094457600080fd5b5061095f600480360381019061095a91906135bd565b6118f5565b60405161096c919061329d565b60405180910390f35b34801561098157600080fd5b5061099c6004803603810190610997919061378f565b61190d565b005b3480156109aa57600080fd5b506109b361192d565b005b3480156109c157600080fd5b506109dc60048036038101906109d791906137bc565b611a29565b005b3480156109ea57600080fd5b50610a056004803603810190610a0091906137e9565b611a4e565b005b348015610a1357600080fd5b50610a1c611ab5565b005b348015610a2a57600080fd5b50610a456004803603810190610a4091906135bd565b611ae9565b604051610a5291906134d8565b60405180910390f35b348015610a6757600080fd5b50610a826004803603810190610a7d919061357d565b611b09565b604051610a8f919061329d565b60405180910390f35b348015610aa457600080fd5b50610aad611b90565b604051610aba9190613774565b60405180910390f35b348015610acf57600080fd5b50610aea6004803603810190610ae591906137bc565b611bb6565b604051610af7919061329d565b60405180910390f35b348015610b0c57600080fd5b50610b276004803603810190610b2291906135bd565b611bff565b005b348015610b3557600080fd5b50610b506004803603810190610b4b9190613616565b611c82565b005b348015610b5e57600080fd5b50610b67611ce5565b604051610b74919061329d565b60405180910390f35b348015610b8957600080fd5b50610b92611ceb565b604051610b9f919061389b565b60405180910390f35b348015610bb457600080fd5b50610bbd611d11565b604051610bca919061329d565b60405180910390f35b60215481565b610be1611d17565b8385610bed91906138e5565b6002808688610bfc91906138e5565b610c06919061396a565b610c10919061399b565b14610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613a67565b60405180910390fd5b846010819055508360118190555082600e8190555081600f819055508285610c7891906138e5565b6012819055508184610c8a91906138e5565b601381905550806014819055506002601454610ca6919061396a565b601354601254610cb691906138e5565b1115610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613ad3565b60405180910390fd5b7f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f45601254601354601454604051610d3093929190613af3565b60405180910390a15050505050565b60606040518060400160405280600f81526020017f5468652047726561742052657365740000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e5c919061329d565b60405180910390a36001905092915050565b6000600354905090565b60006012600a610e889190613c5d565b600554610e95919061396a565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110485781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fc79190613ca8565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611053848484611d95565b90509392505050565b6000611089600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116ad565b6110b4600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116ad565b6110be91906138e5565b6003546110cb9190613ca8565b905090565b60006012905090565b6000601560009054906101000a900460ff161580156111425750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111985750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111a6576000905061124d565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561124a5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90505b92915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61127b611d17565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112de611d17565b6000831180156112ee5750600082115b80156112fa5750600081115b801561130857506127108111155b61131157600080fd5b8083600354611320919061399b565b61132a919061396a565b600481905550808260035461133f919061399b565b611349919061396a565b6005819055506103e86001600354611361919061399b565b61136b919061396a565b600554116113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613d28565b60405180910390fd5b505050565b602460006113bf6124a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611444575061141561174c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613d94565b60405180910390fd5b600047905060008111156115565760008273ffffffffffffffffffffffffffffffffffffffff16606485846114b8919061399b565b6114c2919061396a565b6040516114ce90613de5565b60006040518083038185875af1925050503d806000811461150b576040519150601f19603f3d011682016040523d82523d6000602084013e611510565b606091505b5050905080611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613e46565b60405180910390fd5b505b505050565b6000611587827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d7c565b9050919050565b601c5481565b61159c611d17565b80602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f5481565b60006012600a61160d9190613c5d565b60065461161a919061396a565b905090565b611627611d17565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116fe611d17565b61170860006124ab565b565b601560009054906101000a900460ff1681565b600061172761174c565b905090565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4152495345000000000000000000000000000000000000000000000000000000815250905090565b6117ba611d17565b81601560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061184d338484611d95565b905092915050565b61185d611d17565b60008211801561186d5750600081115b801561187b57506127108111155b61188457600080fd5b8082600354611893919061399b565b61189d919061396a565b6006819055505050565b60006012600a6118b79190613c5d565b6004546118c4919061396a565b905090565b601b5481565b601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611915611d17565b603c81111561192357600080fd5b80601f8190555050565b602460006119396124a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119be575061198f61174c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613d94565b60405180910390fd5b6000601d819055506001601e60006101000a81548160ff02191690831515021790555043601b81905550565b611a31611d17565b80601e60016101000a81548160ff02191690831515021790555050565b611a56611d17565b60008211611a6357600080fd5b82602060006101000a81548160ff02191690831515021790555081600354611a8b919061396a565b6021819055506012600a611a9f9190613c5d565b81611aaa919061399b565b602281905550505050565b611abd611d17565b601560009054906101000a900460ff1615601560006101000a81548160ff021916908315150217905550565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043601d54601b54611bc991906138e5565b10611be4576001601454611bdd9190613ca8565b9050611bfa565b8115611bf4576013549050611bfa565b60125490505b919050565b611c07611d17565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613ed8565b60405180910390fd5b611c7f816124ab565b50565b611c8a611d17565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b611d1f6124a3565b73ffffffffffffffffffffffffffffffffffffffff16611d3d61174c565b73ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a90613f44565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613fb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9061401c565b60405180910390fd5b60008211611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90614088565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f30906140f4565b60405180910390fd5b611f4161256f565b158015611f975750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561203157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201f90614160565b60405180910390fd5b61203061257c565b5b601e60009054906101000a900460ff1661212657600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e65750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c906141cc565b60405180910390fd5b5b601e60019054906101000a900460ff16156122a95761214684848461258c565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121ee5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a857600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122975750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122a7576122a683836128cd565b5b5b5b602360009054906101000a900460ff16156122d0576122c9848484612966565b905061249c565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231b9190613ca8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061236d85856110d9565b156123a35761237c8484612af4565b905061238784612bd7565b80156123935750600083115b156123a2576123a183612d1c565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ee91906138e5565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161248e919061329d565b60405180910390a360019150505b9392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080601b541415905090565b43601b8190555042601c81905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061262d5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128c857601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661268a5760055461268e565b6004545b8111156126d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c790614238565b60405180910390fd5b43601f54600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271e91906138e5565b111561275f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612756906142a4565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127fa5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c7565b61280483836110d9565b156128c65743600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146128c55743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292091906138e5565b1115612961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295890614336565b60405180910390fd5b505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b39190613ca8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4191906138e5565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae1919061329d565b60405180910390a3600190509392505050565b600080601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601454612b5483611bb6565b85612b5f919061399b565b612b69919061396a565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bba91906138e5565b925050819055508084612bcd9190613ca8565b9250505092915050565b6000601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c405750602360009054906101000a900460ff16155b8015612c585750602060009054906101000a900460ff165b8015612cad5750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612cfa5750602254600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015612d1557506000601354601254612d1391906138e5565b115b9050919050565b6001602360006101000a81548160ff0219169083151502179055506000601354601254612d4991906138e5565b905060006021548310612d5e57602154612d60565b825b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612dec57600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000601154601054612dfe91906138e5565b905060008360028385612e11919061399b565b612e1b919061396a565b612e25919061396a565b90508083612e339190613ca8565b92506000600267ffffffffffffffff811115612e5257612e51614356565b5b604051908082528060200260200182016040528015612e805781602001602082028036833780820191505090505b5090503081600081518110612e9857612e97614385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6391906143c9565b81600181518110612f7757612f76614385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478660008530426040518663ffffffff1660e01b815260040161301a9594939291906144ef565b600060405180830381600087803b15801561303457600080fd5b505af1158015613048573d6000803e3d6000fd5b505050506000814761305a9190613ca8565b9050600060028661306b919061396a565b886130769190613ca8565b905060008160028885613089919061399b565b613093919061396a565b61309d919061396a565b9050600081846130ad9190613ca8565b90506000811115613148576000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161310090613de5565b60006040518083038185875af1925050503d806000811461313d576040519150601f19603f3d011682016040523d82523d6000602084013e613142565b606091505b50509050505b600087111561322157601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131da9695949392919061456a565b60606040518083038185885af11580156131f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061321d91906145e0565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df981838960405161325493929190613af3565b60405180910390a1505050505050505050506000602360006101000a81548160ff02191690831515021790555050565b6000819050919050565b61329781613284565b82525050565b60006020820190506132b2600083018461328e565b92915050565b600080fd5b6132c681613284565b81146132d157600080fd5b50565b6000813590506132e3816132bd565b92915050565b600080600080600060a08688031215613305576133046132b8565b5b6000613313888289016132d4565b9550506020613324888289016132d4565b9450506040613335888289016132d4565b9350506060613346888289016132d4565b9250506080613357888289016132d4565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339e578082015181840152602081019050613383565b838111156133ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006133cf82613364565b6133d9818561336f565b93506133e9818560208601613380565b6133f2816133b3565b840191505092915050565b6000602082019050818103600083015261341781846133c4565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344a8261341f565b9050919050565b61345a8161343f565b811461346557600080fd5b50565b60008135905061347781613451565b92915050565b60008060408385031215613494576134936132b8565b5b60006134a285828601613468565b92505060206134b3858286016132d4565b9150509250929050565b60008115159050919050565b6134d2816134bd565b82525050565b60006020820190506134ed60008301846134c9565b92915050565b60008060006060848603121561350c5761350b6132b8565b5b600061351a86828701613468565b935050602061352b86828701613468565b925050604061353c868287016132d4565b9150509250925092565b600060ff82169050919050565b61355c81613546565b82525050565b60006020820190506135776000830184613553565b92915050565b60008060408385031215613594576135936132b8565b5b60006135a285828601613468565b92505060206135b385828601613468565b9150509250929050565b6000602082840312156135d3576135d26132b8565b5b60006135e184828501613468565b91505092915050565b6135f3816134bd565b81146135fe57600080fd5b50565b600081359050613610816135ea565b92915050565b6000806040838503121561362d5761362c6132b8565b5b600061363b85828601613468565b925050602061364c85828601613601565b9150509250929050565b60008060006060848603121561366f5761366e6132b8565b5b600061367d868287016132d4565b935050602061368e868287016132d4565b925050604061369f868287016132d4565b9150509250925092565b600080604083850312156136c0576136bf6132b8565b5b60006136ce858286016132d4565b92505060206136df85828601613468565b9150509250929050565b6136f28161343f565b82525050565b600060208201905061370d60008301846136e9565b92915050565b6000806040838503121561372a576137296132b8565b5b6000613738858286016132d4565b9250506020613749858286016132d4565b9150509250929050565b600061375e8261341f565b9050919050565b61376e81613753565b82525050565b60006020820190506137896000830184613765565b92915050565b6000602082840312156137a5576137a46132b8565b5b60006137b3848285016132d4565b91505092915050565b6000602082840312156137d2576137d16132b8565b5b60006137e084828501613601565b91505092915050565b600080600060608486031215613802576138016132b8565b5b600061381086828701613601565b9350506020613821868287016132d4565b9250506040613832868287016132d4565b9150509250925092565b6000819050919050565b600061386161385c6138578461341f565b61383c565b61341f565b9050919050565b600061387382613846565b9050919050565b600061388582613868565b9050919050565b6138958161387a565b82525050565b60006020820190506138b0600083018461388c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138f082613284565b91506138fb83613284565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139305761392f6138b6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061397582613284565b915061398083613284565b9250826139905761398f61393b565b5b828204905092915050565b60006139a682613284565b91506139b183613284565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139ea576139e96138b6565b5b828202905092915050565b7f4c697175696469747920666565206d75737420626520616e206576656e206e7560008201527f6d6265722064756520746f20726f756e64696e67000000000000000000000000602082015250565b6000613a5160348361336f565b9150613a5c826139f5565b604082019050919050565b60006020820190508181036000830152613a8081613a44565b9050919050565b7f4665657320626967676572207468616e20353000000000000000000000000000600082015250565b6000613abd60138361336f565b9150613ac882613a87565b602082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b6000606082019050613b08600083018661328e565b613b15602083018561328e565b613b22604083018461328e565b949350505050565b60008160011c9050919050565b6000808291508390505b6001851115613b8157808604811115613b5d57613b5c6138b6565b5b6001851615613b6c5780820291505b8081029050613b7a85613b2a565b9450613b41565b94509492505050565b600082613b9a5760019050613c56565b81613ba85760009050613c56565b8160018114613bbe5760028114613bc857613bf7565b6001915050613c56565b60ff841115613bda57613bd96138b6565b5b8360020a915084821115613bf157613bf06138b6565b5b50613c56565b5060208310610133831016604e8410600b8410161715613c2c5782820a905083811115613c2757613c266138b6565b5b613c56565b613c398484846001613b37565b92509050818404811115613c5057613c4f6138b6565b5b81810290505b9392505050565b6000613c6882613284565b9150613c7383613546565b9250613ca07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b8a565b905092915050565b6000613cb382613284565b9150613cbe83613284565b925082821015613cd157613cd06138b6565b5b828203905092915050565b7f4d61782073656c6c206d7573742062652062696767657220302e312500000000600082015250565b6000613d12601c8361336f565b9150613d1d82613cdc565b602082019050919050565b60006020820190508181036000830152613d4181613d05565b9050919050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613d7e601b8361336f565b9150613d8982613d48565b602082019050919050565b60006020820190508181036000830152613dad81613d71565b9050919050565b600081905092915050565b50565b6000613dcf600083613db4565b9150613dda82613dbf565b600082019050919050565b6000613df082613dc2565b9150819050919050565b7f4661696c656420746f207472616e736665722066756e64730000000000000000600082015250565b6000613e3060188361336f565b9150613e3b82613dfa565b602082019050919050565b60006020820190508181036000830152613e5f81613e23565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ec260268361336f565b9150613ecd82613e66565b604082019050919050565b60006020820190508181036000830152613ef181613eb5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f2e60208361336f565b9150613f3982613ef8565b602082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613f9a60188361336f565b9150613fa582613f64565b602082019050919050565b60006020820190508181036000830152613fc981613f8d565b9050919050565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061400660168361336f565b915061401182613fd0565b602082019050919050565b6000602082019050818103600083015261403581613ff9565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b600061407260158361336f565b915061407d8261403c565b602082019050919050565b600060208201905081810360008301526140a181614065565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006140de60148361336f565b91506140e9826140a8565b602082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061414a60188361336f565b915061415582614114565b602082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141b660158361336f565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061422260118361336f565b915061422d826141ec565b602082019050919050565b6000602082019050818103600083015261425181614215565b9050919050565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b600061428e601d8361336f565b915061429982614258565b602082019050919050565b600060208201905081810360008301526142bd81614281565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061432060258361336f565b915061432b826142c4565b604082019050919050565b6000602082019050818103600083015261434f81614313565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143c381613451565b92915050565b6000602082840312156143df576143de6132b8565b5b60006143ed848285016143b4565b91505092915050565b6000819050919050565b600061441b614416614411846143f6565b61383c565b613284565b9050919050565b61442b81614400565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144668161343f565b82525050565b6000614478838361445d565b60208301905092915050565b6000602082019050919050565b600061449c82614431565b6144a6818561443c565b93506144b18361444d565b8060005b838110156144e25781516144c9888261446c565b97506144d483614484565b9250506001810190506144b5565b5085935050505092915050565b600060a082019050614504600083018861328e565b6145116020830187614422565b81810360408301526145238186614491565b905061453260608301856136e9565b61453f608083018461328e565b9695505050505050565b600061455482613868565b9050919050565b61456481614549565b82525050565b600060c08201905061457f60008301896136e9565b61458c602083018861328e565b6145996040830187614422565b6145a66060830186614422565b6145b3608083018561455b565b6145c060a083018461328e565b979650505050505050565b6000815190506145da816132bd565b92915050565b6000806000606084860312156145f9576145f86132b8565b5b6000614607868287016145cb565b9350506020614618868287016145cb565b9250506040614629868287016145cb565b915050925092509256fea26469706673582212201c26c56935c0da2b3c01efb80efb73c5433c3e62f7848f8c5afed77464fae09a64736f6c634300080f0033

Deployed Bytecode Sourcemap

7029:14740:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8903:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19962:818;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10463:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10211:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10728:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12340:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21442:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10305:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15691:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7838:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18768:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19028:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11685:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11428:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8695:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11558:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8828:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10841:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19700:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8865:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7735:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10952:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6515:103;;;;;;;;;;;;;:::i;:::-;;8292:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10540:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7889:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6284:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10382:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20889:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12176:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19473:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10617:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8663:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8332:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7786;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18892:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12022:142;;;;;;;;;;;;;:::i;:::-;;16503:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21139:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20788:93;;;;;;;;;;;;;:::i;:::-;;7944:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11063:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8382:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15954:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6624:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19827:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8960:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8434:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8729:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8903:50;;;;:::o;19962:818::-;6245:13;:11;:13::i;:::-;20208:17:::1;20192:13;:33;;;;:::i;:::-;20186:1;20181::::0;20160:17:::1;20144:13;:33;;;;:::i;:::-;20143:39;;;;:::i;:::-;20142:45;;;;:::i;:::-;:84;20134:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;20309:13;20294:12;:28;;;;20352:17;20333:16;:36;;;;20395:13;20380:12;:28;;;;20438:17;20419:16;:36;;;;20496:13;20480;:29;;;;:::i;:::-;20466:11;:43;;;;20555:17;20535;:37;;;;:::i;:::-;20520:12;:52;;;;20600:15;20583:14;:32;;;;20681:1;20664:14;;:18;;;;:::i;:::-;20648:12;;20634:11;;:26;;;;:::i;:::-;:48;;20626:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20722:50;20730:11;;20743:12;;20757:14;;20722:50;;;;;;;;:::i;:::-;;;;;;;;19962:818:::0;;;;;:::o;10463:71::-;10502:13;10526:5;;;;;;;;;;;;;;;;;10519:12;;10463:71;:::o;11204:216::-;11279:4;11331:6;11296:11;:23;11308:10;11296:23;;;;;;;;;;;;;;;:32;11320:7;11296:32;;;;;;;;;;;;;;;:41;;;;11374:7;11353:37;;11362:10;11353:37;;;11383:6;11353:37;;;;;;:::i;:::-;;;;;;;;11408:4;11401:11;;11204:216;;;;:::o;10211:88::-;10266:7;10284:12;;10277:19;;10211:88;:::o;10728:107::-;10778:7;7357:2;10816;:15;;;;:::i;:::-;10796:16;;:36;;;;:::i;:::-;10789:43;;10728:107;:::o;12340:337::-;12440:4;12495:17;12460:11;:19;12472:6;12460:19;;;;;;;;;;;;;;;:31;12480:10;12460:31;;;;;;;;;;;;;;;;:52;12457:153;;12592:6;12558:11;:19;12570:6;12558:19;;;;;;;;;;;;;;;:31;12578:10;12558:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;12524:11;:19;12536:6;12524:19;;;;;;;;;;;;;;;:31;12544:10;12524:31;;;;;;;;;;;;;;;:74;;;;12457:153;12629:40;12643:6;12651:9;12662:6;12629:13;:40::i;:::-;12622:47;;12340:337;;;;;:::o;21442:138::-;21495:7;21556:15;21566:4;;;;;;;;;;;21556:9;:15::i;:::-;21538;21548:4;;;;;;;;;;;21538:9;:15::i;:::-;:33;;;;:::i;:::-;21522:12;;:50;;;;:::i;:::-;21515:57;;21442:138;:::o;10305:71::-;10348:5;7357:2;10357:16;;10305:71;:::o;15691:255::-;15770:4;15791:11;;;;;;;;;;;15790:12;:42;;;;;15807:14;:25;15822:9;15807:25;;;;;;;;;;;;;;;;;;;;;;;;;15806:26;15790:42;:69;;;;;15837:14;:22;15852:6;15837:22;;;;;;;;;;;;;;;;;;;;;;;;;15836:23;15790:69;15787:86;;;15868:5;15861:12;;;;15787:86;15892:11;:19;15904:6;15892:19;;;;;;;;;;;;;;;;;;;;;;;;;15891:20;:47;;;;;15916:11;:22;15928:9;15916:22;;;;;;;;;;;;;;;;;;;;;;;;;15915:23;15891:47;15884:54;;15691:255;;;;;:::o;7838:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;18768:116::-;6245:13;:11;:13::i;:::-;18870:6:::1;18849:14;:18;18864:2;18849:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18768:116:::0;;:::o;19028:437::-;6245:13;:11;:13::i;:::-;19163:1:::1;19148:12;:16;:37;;;;;19184:1;19168:13;:17;19148:37;:52;;;;;19199:1;19189:7;:11;19148:52;:72;;;;;19215:5;19204:7;:16;;19148:72;19140:81;;;::::0;::::1;;19282:7;19266:12;19251;;:27;;;;:::i;:::-;19250:39;;;;:::i;:::-;19232:15;:57;;;;19352:7;19335:13;19320:12;;:28;;;;:::i;:::-;19319:40;;;;:::i;:::-;19300:16;:59;;;;19418:4;19413:1;19398:12;;:16;;;;:::i;:::-;19397:25;;;;:::i;:::-;19378:16;;:44;19370:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;19028:437:::0;;;:::o;11685:329::-;9183:10;:24;9194:12;:10;:12::i;:::-;9183:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;9225:7;:5;:7::i;:::-;9211:21;;:10;:21;;;9183:49;9175:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11780:17:::1;11800:21;11780:41;;11849:1;11837:9;:13;11834:173;;;11868:9;11883:3;:8;;11932:3;11912:16;11900:9;:28;;;;:::i;:::-;11899:36;;;;:::i;:::-;11883:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11867:73;;;11963:4;11955:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11852:155;11834:173;11769:245;11685:329:::0;;:::o;11428:122::-;11483:4;11507:35;11515:7;11524:17;11507:7;:35::i;:::-;11500:42;;11428:122;;;:::o;8695:27::-;;;;:::o;11558:119::-;6245:13;:11;:13::i;:::-;11661:8:::1;11641:10;:17;11652:5;11641:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11558:119:::0;;:::o;8828:28::-;;;;:::o;10841:105::-;10891:7;7357:2;10927;:15;;;;:::i;:::-;10909:14;;:34;;;;:::i;:::-;10902:41;;10841:105;:::o;19700:119::-;6245:13;:11;:13::i;:::-;19805:6:::1;19783:11;:19;19795:6;19783:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19700:119:::0;;:::o;8865:31::-;;;;;;;;;;;;;:::o;7735:44::-;;;;;;;;;;;;;;;;;:::o;10952:105::-;11018:7;11036:9;:18;11046:7;11036:18;;;;;;;;;;;;;;;;11029:25;;10952:105;;;:::o;6515:103::-;6245:13;:11;:13::i;:::-;6580:30:::1;6607:1;6580:18;:30::i;:::-;6515:103::o:0;8292:31::-;;;;;;;;;;;;;:::o;10540:71::-;10583:7;10601;:5;:7::i;:::-;10594:14;;10540:71;:::o;7889:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;6284:87::-;6330:7;6357:6;;;;;;;;;;;6350:13;;6284:87;:::o;10382:75::-;10423:13;10447:7;;;;;;;;;;;;;;;;;10440:14;;10382:75;:::o;20889:242::-;6245:13;:11;:13::i;:::-;21037:21:::1;21006:20;;:53;;;;;;;;;;;;;;;;;;21101:21;21070:20;;:53;;;;;;;;;;;;;;;;;;20889:242:::0;;:::o;12176:156::-;12256:4;12280:44;12294:10;12306:9;12317:6;12280:13;:44::i;:::-;12273:51;;12176:156;;;;:::o;19473:219::-;6245:13;:11;:13::i;:::-;19583:1:::1;19571:9;:13;:28;;;;;19598:1;19588:7;:11;19571:28;:48;;;;;19614:5;19603:7;:16;;19571:48;19563:57;;;::::0;::::1;;19677:7;19664:9;19649:12;;:24;;;;:::i;:::-;19648:36;;;;:::i;:::-;19631:14;:53;;;;19473:219:::0;;:::o;10617:105::-;10666:7;7357:2;10703;:15;;;;:::i;:::-;10684;;:35;;;;:::i;:::-;10677:42;;10617:105;:::o;8663:25::-;;;;:::o;8332:43::-;;;;;;;;;;;;;:::o;7786:::-;;;;;;;;;;;;;;;;;:::o;18892:128::-;6245:13;:11;:13::i;:::-;18974:10:::1;18966:4;:18;;18958:27;;;::::0;::::1;;19008:4;18996:9;:16;;;;18892:128:::0;:::o;12022:142::-;9183:10;:24;9194:12;:10;:12::i;:::-;9183:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;9225:7;:5;:7::i;:::-;9211:21;;:10;:21;;;9183:49;9175:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12087:1:::1;12074:10;:14;;;;12116:4;12099:14;;:21;;;;;;;;;;;;;;;;;;12144:12;12131:10;:25;;;;12022:142::o:0;16503:118::-;6245:13;:11;:13::i;:::-;16599:14:::1;16583:13;;:30;;;;;;;;;;;;;;;;;;16503:118:::0;:::o;21139:295::-;6245:13;:11;:13::i;:::-;21280:1:::1;21265:12;:16;21257:25;;;::::0;::::1;;21307:8;21293:11;;:22;;;;;;;;;;;;;;;;;;21357:12;21342;;:27;;;;:::i;:::-;21326:13;:43;;;;7357:2;21410;:15;;;;:::i;:::-;21394:12;:32;;;;:::i;:::-;21380:11;:46;;;;21139:295:::0;;;:::o;20788:93::-;6245:13;:11;:13::i;:::-;20862:11:::1;;;;;;;;;;;20861:12;20847:11;;:26;;;;;;;;;;;;;;;;;;20788:93::o:0;7944:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11063:133::-;11147:7;11165:11;:19;11177:6;11165:19;;;;;;;;;;;;;;;:28;11185:7;11165:28;;;;;;;;;;;;;;;;11158:35;;11063:133;;;;:::o;8382:43::-;;;;;;;;;;;;;:::o;15954:228::-;16010:7;16060:12;16046:10;;16033;;:23;;;;:::i;:::-;:39;16030:73;;16099:1;16082:14;;:18;;;;:::i;:::-;16075:25;;;;16030:73;16117:7;16113:32;;;16133:12;;16126:19;;;;16113:32;16163:11;;16156:18;;15954:228;;;;:::o;6624:201::-;6245:13;:11;:13::i;:::-;6733:1:::1;6713:22;;:8;:22;;::::0;6705:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6789:28;6808:8;6789:18;:28::i;:::-;6624:201:::0;:::o;19827:127::-;6245:13;:11;:13::i;:::-;19940:6:::1;19914:15;:23;19930:6;19914:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19827:127:::0;;:::o;8960:49::-;;;;:::o;8434:24::-;;;;;;;;;;;;;:::o;8729:25::-;;;;:::o;6377:132::-;6452:12;:10;:12::i;:::-;6441:23;;:7;:5;:7::i;:::-;:23;;;6433:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6377:132::o;12685:1546::-;12777:4;12820:1;12802:20;;:6;:20;;;12794:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12891:1;12870:23;;:9;:23;;;12862:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12948:1;12939:6;:10;12931:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;13015:6;12994:9;:17;13004:6;12994:17;;;;;;;;;;;;;;;;:27;;12986:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13061:10;:8;:10::i;:::-;13060:11;:40;;;;;13075:14;:25;13090:9;13075:25;;;;;;;;;;;;;;;;;;;;;;;;;13060:40;13057:156;;;13125:16;:24;13142:6;13125:24;;;;;;;;;;;;;;;;;;;;;;;;;13117:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13193:8;:6;:8::i;:::-;13057:156;13227:14;;;;;;;;;;;13223:135;;13265:16;:24;13282:6;13265:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;13293:16;:27;13310:9;13293:27;;;;;;;;;;;;;;;;;;;;;;;;;13265:55;13257:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13223:135;13374:13;;;;;;;;;;;13370:326;;;13404:39;13417:6;13425:9;13436:6;13404:12;:39::i;:::-;13463:14;:25;13478:9;13463:25;;;;;;;;;;;;;;;;;;;;;;;;;13462:26;:47;;;;;13505:4;;;;;;;;;;;13492:17;;:9;:17;;;;13462:47;13458:227;;;13535:15;:26;13551:9;13535:26;;;;;;;;;;;;;;;;;;;;;;;;;13534:27;:56;;;;;13566:16;:24;13583:6;13566:24;;;;;;;;;;;;;;;;;;;;;;;;;13565:25;13534:56;13530:140;;;13615:35;13632:9;13643:6;13615:16;:35::i;:::-;13530:140;13458:227;13370:326;13711:6;;;;;;;;;;;13708:63;;;13727:41;13742:6;13750:9;13761:6;13727:14;:41::i;:::-;13720:48;;;;13708:63;13823:6;13803:9;:17;13813:6;13803:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13783:9;:17;13793:6;13783:17;;;;;;;;;;;;;;;:46;;;;13842:22;13867:6;13842:31;;13889:32;13903:6;13911:9;13889:13;:32::i;:::-;13886:182;;;13955:26;13963:9;13974:6;13955:7;:26::i;:::-;13938:43;;13999:25;14014:9;13999:14;:25::i;:::-;:39;;;;;14037:1;14028:6;:10;13999:39;13996:60;;;14040:16;14049:6;14040:8;:16::i;:::-;13996:60;13886:182;14126:14;14103:9;:20;14113:9;14103:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;14080:9;:20;14090:9;14080:20;;;;;;;;;;;;;;;:60;;;;14175:9;14158:43;;14167:6;14158:43;;;14186:14;14158:43;;;;;;:::i;:::-;;;;;;;;14219:4;14212:11;;;12685:1546;;;;;;:::o;4334:98::-;4387:7;4414:10;4407:17;;4334:98;:::o;6831:191::-;6905:16;6924:6;;;;;;;;;;;6905:25;;6950:8;6941:6;;:17;;;;;;;;;;;;;;;;;;7005:8;6974:40;;6995:8;6974:40;;;;;;;;;;;;6894:128;6831:191;:::o;14239:90::-;14282:4;14320:1;14306:10;;:15;;14299:22;;14239:90;:::o;14337:112::-;14388:12;14375:10;:25;;;;14426:15;14411:12;:30;;;;14337:112::o;15008:675::-;15105:15;:23;15121:6;15105:23;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;15132:15;:26;15148:9;15132:26;;;;;;;;;;;;;;;;;;;;;;;;;15105:53;15160:7;15101:66;15196:14;:22;15211:6;15196:22;;;;;;;;;;;;;;;;;;;;;;;;;:59;;15239:16;;15196:59;;;15221:15;;15196:59;15185:6;:71;;15177:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;15331:12;15318:9;;15297:7;:18;15305:9;15297:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:46;;15289:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;15394:14;:25;15409:9;15394:25;;;;;;;;;;;;;;;;;;;;;;;;;15390:286;;;15455:12;15436:8;:16;15445:6;15436:16;;;;;;;;;;;;;;;:31;;;;15390:286;;;15489:32;15503:6;15511:9;15489:13;:32::i;:::-;15485:191;;;15559:12;15538:7;:18;15546:9;15538:18;;;;;;;;;;;;;;;:33;;;;15603:9;15590:22;;:9;:22;;;15586:78;;15652:12;15631:7;:18;15639:9;15631:18;;;;;;;;;;;;;;;:33;;;;15586:78;15485:191;15390:286;15008:675;;;;:::o;14765:235::-;14851:19;14873:14;;14851:36;;14939:11;14929:6;14906:9;:20;14916:9;14906:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:44;;14898:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14840:160;14765:235;;:::o;14457:300::-;14550:4;14607:6;14587:9;:17;14597:6;14587:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14567:9;:17;14577:6;14567:17;;;;;;;;;;;;;;;:46;;;;14670:6;14647:9;:20;14657:9;14647:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;14624:9;:20;14634:9;14624:20;;;;;;;;;;;;;;;:52;;;;14709:9;14692:35;;14701:6;14692:35;;;14720:6;14692:35;;;;;;:::i;:::-;;;;;;;;14745:4;14738:11;;14457:300;;;;;:::o;16190:305::-;16260:7;16280:12;16295:14;:25;16310:9;16295:25;;;;;;;;;;;;;;;;;;;;;;;;;16280:40;;16331:17;16385:14;;16361:20;16373:7;16361:11;:20::i;:::-;16352:6;:29;;;;:::i;:::-;16351:48;;;;:::i;:::-;16331:68;;16440:9;16412;:24;16430:4;16412:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;16478:9;16469:6;:18;;;;:::i;:::-;16462:25;;;;16190:305;;;;:::o;16629:302::-;16695:4;16720:14;:26;16735:10;16720:26;;;;;;;;;;;;;;;;;;;;;;;;;16719:27;:47;;;;;16760:6;;;;;;;;;;;16759:7;16719:47;:71;;;;;16779:11;;;;;;;;;;;16719:71;:109;;;;;16803:14;:25;16818:9;16803:25;;;;;;;;;;;;;;;;;;;;;;;;;16719:109;:161;;;;;16869:11;;16841:9;:24;16859:4;16841:24;;;;;;;;;;;;;;;;:39;;16719:161;:204;;;;;16922:1;16907:12;;16893:11;;:26;;;;:::i;:::-;:30;16719:204;16712:211;;16629:302;;;:::o;16939:1821::-;9065:4;9056:6;;:13;;;;;;;;;;;;;;;;;;17002:16:::1;17035:12;;17021:11;;:26;;;;:::i;:::-;17002:45;;17058:20;17090:13;;17081:6;:22;:47;;17115:13;;17081:47;;;17106:6;17081:47;17058:70;;17170:12;17143:9;:24;17161:4;17143:24;;;;;;;;;;;;;;;;:39;17139:84;;;17199:9;:24;17217:4;17199:24;;;;;;;;;;;;;;;;17184:39;;17139:84;17236:25;17279:16;;17264:12;;:31;;;;:::i;:::-;17236:59;;17306:23;17373:8;17368:1;17348:17;17333:12;:32;;;;:::i;:::-;:36;;;;:::i;:::-;17332:49;;;;:::i;:::-;17306:75;;17408:15;17392:31;;;;;:::i;:::-;;;17436:21;17474:1;17460:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17436:40;;17505:4;17487;17492:1;17487:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17531:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17521:4;17526:1;17521:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17557:21;17581;17557:45;;17615:6;;;;;;;;;;;:57;;;17687:12;17714:1;17730:4;17757;17777:15;17615:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17816:17;17860:13;17836:21;:37;;;;:::i;:::-;17816:57;;17884:19;17938:1;17918:17;:21;;;;:::i;:::-;17906:8;:34;;;;:::i;:::-;17884:56;;17953:26;18020:11;18015:1;17995:17;17983:9;:29;;;;:::i;:::-;:33;;;;:::i;:::-;17982:49;;;;:::i;:::-;17953:78;;18042:26;18083:18;18071:9;:30;;;;:::i;:::-;18042:59;;18139:1;18118:18;:22;18114:243;;;18158:18;18182:20;;;;;;;;;;;:25;;18215:18;18182:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18157:81;;;18142:215;18114:243;18390:1;18372:15;:19;18369:293;;;18407:6;;;;;;;;;;;:22;;;18437:18;18483:4;18507:15;18541:1;18561::::0;18581:20:::1;;;;;;;;;;;18620:15;18407:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18369:293;18679:73;18696:18;18716;18736:15;18679:73;;;;;;;;:::i;:::-;;;;;;;;16991:1769;;;;;;;;;;9083:5:::0;9074:6;;:14;;;;;;;;;;;;;;;;;;16939:1821;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:911::-;1137:6;1145;1153;1161;1169;1218:3;1206:9;1197:7;1193:23;1189:33;1186:120;;;1225:79;;:::i;:::-;1186:120;1345:1;1370:53;1415:7;1406:6;1395:9;1391:22;1370:53;:::i;:::-;1360:63;;1316:117;1472:2;1498:53;1543:7;1534:6;1523:9;1519:22;1498:53;:::i;:::-;1488:63;;1443:118;1600:2;1626:53;1671:7;1662:6;1651:9;1647:22;1626:53;:::i;:::-;1616:63;;1571:118;1728:2;1754:53;1799:7;1790:6;1779:9;1775:22;1754:53;:::i;:::-;1744:63;;1699:118;1856:3;1883:53;1928:7;1919:6;1908:9;1904:22;1883:53;:::i;:::-;1873:63;;1827:119;1042:911;;;;;;;;:::o;1959:99::-;2011:6;2045:5;2039:12;2029:22;;1959:99;;;:::o;2064:169::-;2148:11;2182:6;2177:3;2170:19;2222:4;2217:3;2213:14;2198:29;;2064:169;;;;:::o;2239:307::-;2307:1;2317:113;2331:6;2328:1;2325:13;2317:113;;;2416:1;2411:3;2407:11;2401:18;2397:1;2392:3;2388:11;2381:39;2353:2;2350:1;2346:10;2341:15;;2317:113;;;2448:6;2445:1;2442:13;2439:101;;;2528:1;2519:6;2514:3;2510:16;2503:27;2439:101;2288:258;2239:307;;;:::o;2552:102::-;2593:6;2644:2;2640:7;2635:2;2628:5;2624:14;2620:28;2610:38;;2552:102;;;:::o;2660:364::-;2748:3;2776:39;2809:5;2776:39;:::i;:::-;2831:71;2895:6;2890:3;2831:71;:::i;:::-;2824:78;;2911:52;2956:6;2951:3;2944:4;2937:5;2933:16;2911:52;:::i;:::-;2988:29;3010:6;2988:29;:::i;:::-;2983:3;2979:39;2972:46;;2752:272;2660:364;;;;:::o;3030:313::-;3143:4;3181:2;3170:9;3166:18;3158:26;;3230:9;3224:4;3220:20;3216:1;3205:9;3201:17;3194:47;3258:78;3331:4;3322:6;3258:78;:::i;:::-;3250:86;;3030:313;;;;:::o;3349:126::-;3386:7;3426:42;3419:5;3415:54;3404:65;;3349:126;;;:::o;3481:96::-;3518:7;3547:24;3565:5;3547:24;:::i;:::-;3536:35;;3481:96;;;:::o;3583:122::-;3656:24;3674:5;3656:24;:::i;:::-;3649:5;3646:35;3636:63;;3695:1;3692;3685:12;3636:63;3583:122;:::o;3711:139::-;3757:5;3795:6;3782:20;3773:29;;3811:33;3838:5;3811:33;:::i;:::-;3711:139;;;;:::o;3856:474::-;3924:6;3932;3981:2;3969:9;3960:7;3956:23;3952:32;3949:119;;;3987:79;;:::i;:::-;3949:119;4107:1;4132:53;4177:7;4168:6;4157:9;4153:22;4132:53;:::i;:::-;4122:63;;4078:117;4234:2;4260:53;4305:7;4296:6;4285:9;4281:22;4260:53;:::i;:::-;4250:63;;4205:118;3856:474;;;;;:::o;4336:90::-;4370:7;4413:5;4406:13;4399:21;4388:32;;4336:90;;;:::o;4432:109::-;4513:21;4528:5;4513:21;:::i;:::-;4508:3;4501:34;4432:109;;:::o;4547:210::-;4634:4;4672:2;4661:9;4657:18;4649:26;;4685:65;4747:1;4736:9;4732:17;4723:6;4685:65;:::i;:::-;4547:210;;;;:::o;4763:619::-;4840:6;4848;4856;4905:2;4893:9;4884:7;4880:23;4876:32;4873:119;;;4911:79;;:::i;:::-;4873:119;5031:1;5056:53;5101:7;5092:6;5081:9;5077:22;5056:53;:::i;:::-;5046:63;;5002:117;5158:2;5184:53;5229:7;5220:6;5209:9;5205:22;5184:53;:::i;:::-;5174:63;;5129:118;5286:2;5312:53;5357:7;5348:6;5337:9;5333:22;5312:53;:::i;:::-;5302:63;;5257:118;4763:619;;;;;:::o;5388:86::-;5423:7;5463:4;5456:5;5452:16;5441:27;;5388:86;;;:::o;5480:112::-;5563:22;5579:5;5563:22;:::i;:::-;5558:3;5551:35;5480:112;;:::o;5598:214::-;5687:4;5725:2;5714:9;5710:18;5702:26;;5738:67;5802:1;5791:9;5787:17;5778:6;5738:67;:::i;:::-;5598:214;;;;:::o;5818:474::-;5886:6;5894;5943:2;5931:9;5922:7;5918:23;5914:32;5911:119;;;5949:79;;:::i;:::-;5911:119;6069:1;6094:53;6139:7;6130:6;6119:9;6115:22;6094:53;:::i;:::-;6084:63;;6040:117;6196:2;6222:53;6267:7;6258:6;6247:9;6243:22;6222:53;:::i;:::-;6212:63;;6167:118;5818:474;;;;;:::o;6298:329::-;6357:6;6406:2;6394:9;6385:7;6381:23;6377:32;6374:119;;;6412:79;;:::i;:::-;6374:119;6532:1;6557:53;6602:7;6593:6;6582:9;6578:22;6557:53;:::i;:::-;6547:63;;6503:117;6298:329;;;;:::o;6633:116::-;6703:21;6718:5;6703:21;:::i;:::-;6696:5;6693:32;6683:60;;6739:1;6736;6729:12;6683:60;6633:116;:::o;6755:133::-;6798:5;6836:6;6823:20;6814:29;;6852:30;6876:5;6852:30;:::i;:::-;6755:133;;;;:::o;6894:468::-;6959:6;6967;7016:2;7004:9;6995:7;6991:23;6987:32;6984:119;;;7022:79;;:::i;:::-;6984:119;7142:1;7167:53;7212:7;7203:6;7192:9;7188:22;7167:53;:::i;:::-;7157:63;;7113:117;7269:2;7295:50;7337:7;7328:6;7317:9;7313:22;7295:50;:::i;:::-;7285:60;;7240:115;6894:468;;;;;:::o;7368:619::-;7445:6;7453;7461;7510:2;7498:9;7489:7;7485:23;7481:32;7478:119;;;7516:79;;:::i;:::-;7478:119;7636:1;7661:53;7706:7;7697:6;7686:9;7682:22;7661:53;:::i;:::-;7651:63;;7607:117;7763:2;7789:53;7834:7;7825:6;7814:9;7810:22;7789:53;:::i;:::-;7779:63;;7734:118;7891:2;7917:53;7962:7;7953:6;7942:9;7938:22;7917:53;:::i;:::-;7907:63;;7862:118;7368:619;;;;;:::o;7993:474::-;8061:6;8069;8118:2;8106:9;8097:7;8093:23;8089:32;8086:119;;;8124:79;;:::i;:::-;8086:119;8244:1;8269:53;8314:7;8305:6;8294:9;8290:22;8269:53;:::i;:::-;8259:63;;8215:117;8371:2;8397:53;8442:7;8433:6;8422:9;8418:22;8397:53;:::i;:::-;8387:63;;8342:118;7993:474;;;;;:::o;8473:118::-;8560:24;8578:5;8560:24;:::i;:::-;8555:3;8548:37;8473:118;;:::o;8597:222::-;8690:4;8728:2;8717:9;8713:18;8705:26;;8741:71;8809:1;8798:9;8794:17;8785:6;8741:71;:::i;:::-;8597:222;;;;:::o;8825:474::-;8893:6;8901;8950:2;8938:9;8929:7;8925:23;8921:32;8918:119;;;8956:79;;:::i;:::-;8918:119;9076:1;9101:53;9146:7;9137:6;9126:9;9122:22;9101:53;:::i;:::-;9091:63;;9047:117;9203:2;9229:53;9274:7;9265:6;9254:9;9250:22;9229:53;:::i;:::-;9219:63;;9174:118;8825:474;;;;;:::o;9305:104::-;9350:7;9379:24;9397:5;9379:24;:::i;:::-;9368:35;;9305:104;;;:::o;9415:142::-;9518:32;9544:5;9518:32;:::i;:::-;9513:3;9506:45;9415:142;;:::o;9563:254::-;9672:4;9710:2;9699:9;9695:18;9687:26;;9723:87;9807:1;9796:9;9792:17;9783:6;9723:87;:::i;:::-;9563:254;;;;:::o;9823:329::-;9882:6;9931:2;9919:9;9910:7;9906:23;9902:32;9899:119;;;9937:79;;:::i;:::-;9899:119;10057:1;10082:53;10127:7;10118:6;10107:9;10103:22;10082:53;:::i;:::-;10072:63;;10028:117;9823:329;;;;:::o;10158:323::-;10214:6;10263:2;10251:9;10242:7;10238:23;10234:32;10231:119;;;10269:79;;:::i;:::-;10231:119;10389:1;10414:50;10456:7;10447:6;10436:9;10432:22;10414:50;:::i;:::-;10404:60;;10360:114;10158:323;;;;:::o;10487:613::-;10561:6;10569;10577;10626:2;10614:9;10605:7;10601:23;10597:32;10594:119;;;10632:79;;:::i;:::-;10594:119;10752:1;10777:50;10819:7;10810:6;10799:9;10795:22;10777:50;:::i;:::-;10767:60;;10723:114;10876:2;10902:53;10947:7;10938:6;10927:9;10923:22;10902:53;:::i;:::-;10892:63;;10847:118;11004:2;11030:53;11075:7;11066:6;11055:9;11051:22;11030:53;:::i;:::-;11020:63;;10975:118;10487:613;;;;;:::o;11106:60::-;11134:3;11155:5;11148:12;;11106:60;;;:::o;11172:142::-;11222:9;11255:53;11273:34;11282:24;11300:5;11282:24;:::i;:::-;11273:34;:::i;:::-;11255:53;:::i;:::-;11242:66;;11172:142;;;:::o;11320:126::-;11370:9;11403:37;11434:5;11403:37;:::i;:::-;11390:50;;11320:126;;;:::o;11452:144::-;11520:9;11553:37;11584:5;11553:37;:::i;:::-;11540:50;;11452:144;;;:::o;11602:167::-;11707:55;11756:5;11707:55;:::i;:::-;11702:3;11695:68;11602:167;;:::o;11775:258::-;11886:4;11924:2;11913:9;11909:18;11901:26;;11937:89;12023:1;12012:9;12008:17;11999:6;11937:89;:::i;:::-;11775:258;;;;:::o;12039:180::-;12087:77;12084:1;12077:88;12184:4;12181:1;12174:15;12208:4;12205:1;12198:15;12225:305;12265:3;12284:20;12302:1;12284:20;:::i;:::-;12279:25;;12318:20;12336:1;12318:20;:::i;:::-;12313:25;;12472:1;12404:66;12400:74;12397:1;12394:81;12391:107;;;12478:18;;:::i;:::-;12391:107;12522:1;12519;12515:9;12508:16;;12225:305;;;;:::o;12536:180::-;12584:77;12581:1;12574:88;12681:4;12678:1;12671:15;12705:4;12702:1;12695:15;12722:185;12762:1;12779:20;12797:1;12779:20;:::i;:::-;12774:25;;12813:20;12831:1;12813:20;:::i;:::-;12808:25;;12852:1;12842:35;;12857:18;;:::i;:::-;12842:35;12899:1;12896;12892:9;12887:14;;12722:185;;;;:::o;12913:348::-;12953:7;12976:20;12994:1;12976:20;:::i;:::-;12971:25;;13010:20;13028:1;13010:20;:::i;:::-;13005:25;;13198:1;13130:66;13126:74;13123:1;13120:81;13115:1;13108:9;13101:17;13097:105;13094:131;;;13205:18;;:::i;:::-;13094:131;13253:1;13250;13246:9;13235:20;;12913:348;;;;:::o;13267:239::-;13407:34;13403:1;13395:6;13391:14;13384:58;13476:22;13471:2;13463:6;13459:15;13452:47;13267:239;:::o;13512:366::-;13654:3;13675:67;13739:2;13734:3;13675:67;:::i;:::-;13668:74;;13751:93;13840:3;13751:93;:::i;:::-;13869:2;13864:3;13860:12;13853:19;;13512:366;;;:::o;13884:419::-;14050:4;14088:2;14077:9;14073:18;14065:26;;14137:9;14131:4;14127:20;14123:1;14112:9;14108:17;14101:47;14165:131;14291:4;14165:131;:::i;:::-;14157:139;;13884:419;;;:::o;14309:169::-;14449:21;14445:1;14437:6;14433:14;14426:45;14309:169;:::o;14484:366::-;14626:3;14647:67;14711:2;14706:3;14647:67;:::i;:::-;14640:74;;14723:93;14812:3;14723:93;:::i;:::-;14841:2;14836:3;14832:12;14825:19;;14484:366;;;:::o;14856:419::-;15022:4;15060:2;15049:9;15045:18;15037:26;;15109:9;15103:4;15099:20;15095:1;15084:9;15080:17;15073:47;15137:131;15263:4;15137:131;:::i;:::-;15129:139;;14856:419;;;:::o;15281:442::-;15430:4;15468:2;15457:9;15453:18;15445:26;;15481:71;15549:1;15538:9;15534:17;15525:6;15481:71;:::i;:::-;15562:72;15630:2;15619:9;15615:18;15606:6;15562:72;:::i;:::-;15644;15712:2;15701:9;15697:18;15688:6;15644:72;:::i;:::-;15281:442;;;;;;:::o;15729:102::-;15771:8;15818:5;15815:1;15811:13;15790:34;;15729:102;;;:::o;15837:848::-;15898:5;15905:4;15929:6;15920:15;;15953:5;15944:14;;15967:712;15988:1;15978:8;15975:15;15967:712;;;16083:4;16078:3;16074:14;16068:4;16065:24;16062:50;;;16092:18;;:::i;:::-;16062:50;16142:1;16132:8;16128:16;16125:451;;;16557:4;16550:5;16546:16;16537:25;;16125:451;16607:4;16601;16597:15;16589:23;;16637:32;16660:8;16637:32;:::i;:::-;16625:44;;15967:712;;;15837:848;;;;;;;:::o;16691:1073::-;16745:5;16936:8;16926:40;;16957:1;16948:10;;16959:5;;16926:40;16985:4;16975:36;;17002:1;16993:10;;17004:5;;16975:36;17071:4;17119:1;17114:27;;;;17155:1;17150:191;;;;17064:277;;17114:27;17132:1;17123:10;;17134:5;;;17150:191;17195:3;17185:8;17182:17;17179:43;;;17202:18;;:::i;:::-;17179:43;17251:8;17248:1;17244:16;17235:25;;17286:3;17279:5;17276:14;17273:40;;;17293:18;;:::i;:::-;17273:40;17326:5;;;17064:277;;17450:2;17440:8;17437:16;17431:3;17425:4;17422:13;17418:36;17400:2;17390:8;17387:16;17382:2;17376:4;17373:12;17369:35;17353:111;17350:246;;;17506:8;17500:4;17496:19;17487:28;;17541:3;17534:5;17531:14;17528:40;;;17548:18;;:::i;:::-;17528:40;17581:5;;17350:246;17621:42;17659:3;17649:8;17643:4;17640:1;17621:42;:::i;:::-;17606:57;;;;17695:4;17690:3;17686:14;17679:5;17676:25;17673:51;;;17704:18;;:::i;:::-;17673:51;17753:4;17746:5;17742:16;17733:25;;16691:1073;;;;;;:::o;17770:281::-;17828:5;17852:23;17870:4;17852:23;:::i;:::-;17844:31;;17896:25;17912:8;17896:25;:::i;:::-;17884:37;;17940:104;17977:66;17967:8;17961:4;17940:104;:::i;:::-;17931:113;;17770:281;;;;:::o;18057:191::-;18097:4;18117:20;18135:1;18117:20;:::i;:::-;18112:25;;18151:20;18169:1;18151:20;:::i;:::-;18146:25;;18190:1;18187;18184:8;18181:34;;;18195:18;;:::i;:::-;18181:34;18240:1;18237;18233:9;18225:17;;18057:191;;;;:::o;18254:178::-;18394:30;18390:1;18382:6;18378:14;18371:54;18254:178;:::o;18438:366::-;18580:3;18601:67;18665:2;18660:3;18601:67;:::i;:::-;18594:74;;18677:93;18766:3;18677:93;:::i;:::-;18795:2;18790:3;18786:12;18779:19;;18438:366;;;:::o;18810:419::-;18976:4;19014:2;19003:9;18999:18;18991:26;;19063:9;19057:4;19053:20;19049:1;19038:9;19034:17;19027:47;19091:131;19217:4;19091:131;:::i;:::-;19083:139;;18810:419;;;:::o;19235:177::-;19375:29;19371:1;19363:6;19359:14;19352:53;19235:177;:::o;19418:366::-;19560:3;19581:67;19645:2;19640:3;19581:67;:::i;:::-;19574:74;;19657:93;19746:3;19657:93;:::i;:::-;19775:2;19770:3;19766:12;19759:19;;19418:366;;;:::o;19790:419::-;19956:4;19994:2;19983:9;19979:18;19971:26;;20043:9;20037:4;20033:20;20029:1;20018:9;20014:17;20007:47;20071:131;20197:4;20071:131;:::i;:::-;20063:139;;19790:419;;;:::o;20215:147::-;20316:11;20353:3;20338:18;;20215:147;;;;:::o;20368:114::-;;:::o;20488:398::-;20647:3;20668:83;20749:1;20744:3;20668:83;:::i;:::-;20661:90;;20760:93;20849:3;20760:93;:::i;:::-;20878:1;20873:3;20869:11;20862:18;;20488:398;;;:::o;20892:379::-;21076:3;21098:147;21241:3;21098:147;:::i;:::-;21091:154;;21262:3;21255:10;;20892:379;;;:::o;21277:174::-;21417:26;21413:1;21405:6;21401:14;21394:50;21277:174;:::o;21457:366::-;21599:3;21620:67;21684:2;21679:3;21620:67;:::i;:::-;21613:74;;21696:93;21785:3;21696:93;:::i;:::-;21814:2;21809:3;21805:12;21798:19;;21457:366;;;:::o;21829:419::-;21995:4;22033:2;22022:9;22018:18;22010:26;;22082:9;22076:4;22072:20;22068:1;22057:9;22053:17;22046:47;22110:131;22236:4;22110:131;:::i;:::-;22102:139;;21829:419;;;:::o;22254:225::-;22394:34;22390:1;22382:6;22378:14;22371:58;22463:8;22458:2;22450:6;22446:15;22439:33;22254:225;:::o;22485:366::-;22627:3;22648:67;22712:2;22707:3;22648:67;:::i;:::-;22641:74;;22724:93;22813:3;22724:93;:::i;:::-;22842:2;22837:3;22833:12;22826:19;;22485:366;;;:::o;22857:419::-;23023:4;23061:2;23050:9;23046:18;23038:26;;23110:9;23104:4;23100:20;23096:1;23085:9;23081:17;23074:47;23138:131;23264:4;23138:131;:::i;:::-;23130:139;;22857:419;;;:::o;23282:182::-;23422:34;23418:1;23410:6;23406:14;23399:58;23282:182;:::o;23470:366::-;23612:3;23633:67;23697:2;23692:3;23633:67;:::i;:::-;23626:74;;23709:93;23798:3;23709:93;:::i;:::-;23827:2;23822:3;23818:12;23811:19;;23470:366;;;:::o;23842:419::-;24008:4;24046:2;24035:9;24031:18;24023:26;;24095:9;24089:4;24085:20;24081:1;24070:9;24066:17;24059:47;24123:131;24249:4;24123:131;:::i;:::-;24115:139;;23842:419;;;:::o;24267:174::-;24407:26;24403:1;24395:6;24391:14;24384:50;24267:174;:::o;24447:366::-;24589:3;24610:67;24674:2;24669:3;24610:67;:::i;:::-;24603:74;;24686:93;24775:3;24686:93;:::i;:::-;24804:2;24799:3;24795:12;24788:19;;24447:366;;;:::o;24819:419::-;24985:4;25023:2;25012:9;25008:18;25000:26;;25072:9;25066:4;25062:20;25058:1;25047:9;25043:17;25036:47;25100:131;25226:4;25100:131;:::i;:::-;25092:139;;24819:419;;;:::o;25244:172::-;25384:24;25380:1;25372:6;25368:14;25361:48;25244:172;:::o;25422:366::-;25564:3;25585:67;25649:2;25644:3;25585:67;:::i;:::-;25578:74;;25661:93;25750:3;25661:93;:::i;:::-;25779:2;25774:3;25770:12;25763:19;;25422:366;;;:::o;25794:419::-;25960:4;25998:2;25987:9;25983:18;25975:26;;26047:9;26041:4;26037:20;26033:1;26022:9;26018:17;26011:47;26075:131;26201:4;26075:131;:::i;:::-;26067:139;;25794:419;;;:::o;26219:171::-;26359:23;26355:1;26347:6;26343:14;26336:47;26219:171;:::o;26396:366::-;26538:3;26559:67;26623:2;26618:3;26559:67;:::i;:::-;26552:74;;26635:93;26724:3;26635:93;:::i;:::-;26753:2;26748:3;26744:12;26737:19;;26396:366;;;:::o;26768:419::-;26934:4;26972:2;26961:9;26957:18;26949:26;;27021:9;27015:4;27011:20;27007:1;26996:9;26992:17;26985:47;27049:131;27175:4;27049:131;:::i;:::-;27041:139;;26768:419;;;:::o;27193:170::-;27333:22;27329:1;27321:6;27317:14;27310:46;27193:170;:::o;27369:366::-;27511:3;27532:67;27596:2;27591:3;27532:67;:::i;:::-;27525:74;;27608:93;27697:3;27608:93;:::i;:::-;27726:2;27721:3;27717:12;27710:19;;27369:366;;;:::o;27741:419::-;27907:4;27945:2;27934:9;27930:18;27922:26;;27994:9;27988:4;27984:20;27980:1;27969:9;27965:17;27958:47;28022:131;28148:4;28022:131;:::i;:::-;28014:139;;27741:419;;;:::o;28166:174::-;28306:26;28302:1;28294:6;28290:14;28283:50;28166:174;:::o;28346:366::-;28488:3;28509:67;28573:2;28568:3;28509:67;:::i;:::-;28502:74;;28585:93;28674:3;28585:93;:::i;:::-;28703:2;28698:3;28694:12;28687:19;;28346:366;;;:::o;28718:419::-;28884:4;28922:2;28911:9;28907:18;28899:26;;28971:9;28965:4;28961:20;28957:1;28946:9;28942:17;28935:47;28999:131;29125:4;28999:131;:::i;:::-;28991:139;;28718:419;;;:::o;29143:171::-;29283:23;29279:1;29271:6;29267:14;29260:47;29143:171;:::o;29320:366::-;29462:3;29483:67;29547:2;29542:3;29483:67;:::i;:::-;29476:74;;29559:93;29648:3;29559:93;:::i;:::-;29677:2;29672:3;29668:12;29661:19;;29320:366;;;:::o;29692:419::-;29858:4;29896:2;29885:9;29881:18;29873:26;;29945:9;29939:4;29935:20;29931:1;29920:9;29916:17;29909:47;29973:131;30099:4;29973:131;:::i;:::-;29965:139;;29692:419;;;:::o;30117:167::-;30257:19;30253:1;30245:6;30241:14;30234:43;30117:167;:::o;30290:366::-;30432:3;30453:67;30517:2;30512:3;30453:67;:::i;:::-;30446:74;;30529:93;30618:3;30529:93;:::i;:::-;30647:2;30642:3;30638:12;30631:19;;30290:366;;;:::o;30662:419::-;30828:4;30866:2;30855:9;30851:18;30843:26;;30915:9;30909:4;30905:20;30901:1;30890:9;30886:17;30879:47;30943:131;31069:4;30943:131;:::i;:::-;30935:139;;30662:419;;;:::o;31087:179::-;31227:31;31223:1;31215:6;31211:14;31204:55;31087:179;:::o;31272:366::-;31414:3;31435:67;31499:2;31494:3;31435:67;:::i;:::-;31428:74;;31511:93;31600:3;31511:93;:::i;:::-;31629:2;31624:3;31620:12;31613:19;;31272:366;;;:::o;31644:419::-;31810:4;31848:2;31837:9;31833:18;31825:26;;31897:9;31891:4;31887:20;31883:1;31872:9;31868:17;31861:47;31925:131;32051:4;31925:131;:::i;:::-;31917:139;;31644:419;;;:::o;32069:224::-;32209:34;32205:1;32197:6;32193:14;32186:58;32278:7;32273:2;32265:6;32261:15;32254:32;32069:224;:::o;32299:366::-;32441:3;32462:67;32526:2;32521:3;32462:67;:::i;:::-;32455:74;;32538:93;32627:3;32538:93;:::i;:::-;32656:2;32651:3;32647:12;32640:19;;32299:366;;;:::o;32671:419::-;32837:4;32875:2;32864:9;32860:18;32852:26;;32924:9;32918:4;32914:20;32910:1;32899:9;32895:17;32888:47;32952:131;33078:4;32952:131;:::i;:::-;32944:139;;32671:419;;;:::o;33096:180::-;33144:77;33141:1;33134:88;33241:4;33238:1;33231:15;33265:4;33262:1;33255:15;33282:180;33330:77;33327:1;33320:88;33427:4;33424:1;33417:15;33451:4;33448:1;33441:15;33468:143;33525:5;33556:6;33550:13;33541:22;;33572:33;33599:5;33572:33;:::i;:::-;33468:143;;;;:::o;33617:351::-;33687:6;33736:2;33724:9;33715:7;33711:23;33707:32;33704:119;;;33742:79;;:::i;:::-;33704:119;33862:1;33887:64;33943:7;33934:6;33923:9;33919:22;33887:64;:::i;:::-;33877:74;;33833:128;33617:351;;;;:::o;33974:85::-;34019:7;34048:5;34037:16;;33974:85;;;:::o;34065:158::-;34123:9;34156:61;34174:42;34183:32;34209:5;34183:32;:::i;:::-;34174:42;:::i;:::-;34156:61;:::i;:::-;34143:74;;34065:158;;;:::o;34229:147::-;34324:45;34363:5;34324:45;:::i;:::-;34319:3;34312:58;34229:147;;:::o;34382:114::-;34449:6;34483:5;34477:12;34467:22;;34382:114;;;:::o;34502:184::-;34601:11;34635:6;34630:3;34623:19;34675:4;34670:3;34666:14;34651:29;;34502:184;;;;:::o;34692:132::-;34759:4;34782:3;34774:11;;34812:4;34807:3;34803:14;34795:22;;34692:132;;;:::o;34830:108::-;34907:24;34925:5;34907:24;:::i;:::-;34902:3;34895:37;34830:108;;:::o;34944:179::-;35013:10;35034:46;35076:3;35068:6;35034:46;:::i;:::-;35112:4;35107:3;35103:14;35089:28;;34944:179;;;;:::o;35129:113::-;35199:4;35231;35226:3;35222:14;35214:22;;35129:113;;;:::o;35278:732::-;35397:3;35426:54;35474:5;35426:54;:::i;:::-;35496:86;35575:6;35570:3;35496:86;:::i;:::-;35489:93;;35606:56;35656:5;35606:56;:::i;:::-;35685:7;35716:1;35701:284;35726:6;35723:1;35720:13;35701:284;;;35802:6;35796:13;35829:63;35888:3;35873:13;35829:63;:::i;:::-;35822:70;;35915:60;35968:6;35915:60;:::i;:::-;35905:70;;35761:224;35748:1;35745;35741:9;35736:14;;35701:284;;;35705:14;36001:3;35994:10;;35402:608;;;35278:732;;;;:::o;36016:831::-;36279:4;36317:3;36306:9;36302:19;36294:27;;36331:71;36399:1;36388:9;36384:17;36375:6;36331:71;:::i;:::-;36412:80;36488:2;36477:9;36473:18;36464:6;36412:80;:::i;:::-;36539:9;36533:4;36529:20;36524:2;36513:9;36509:18;36502:48;36567:108;36670:4;36661:6;36567:108;:::i;:::-;36559:116;;36685:72;36753:2;36742:9;36738:18;36729:6;36685:72;:::i;:::-;36767:73;36835:3;36824:9;36820:19;36811:6;36767:73;:::i;:::-;36016:831;;;;;;;;:::o;36853:134::-;36911:9;36944:37;36975:5;36944:37;:::i;:::-;36931:50;;36853:134;;;:::o;36993:147::-;37088:45;37127:5;37088:45;:::i;:::-;37083:3;37076:58;36993:147;;:::o;37146:823::-;37403:4;37441:3;37430:9;37426:19;37418:27;;37455:71;37523:1;37512:9;37508:17;37499:6;37455:71;:::i;:::-;37536:72;37604:2;37593:9;37589:18;37580:6;37536:72;:::i;:::-;37618:80;37694:2;37683:9;37679:18;37670:6;37618:80;:::i;:::-;37708;37784:2;37773:9;37769:18;37760:6;37708:80;:::i;:::-;37798:81;37874:3;37863:9;37859:19;37850:6;37798:81;:::i;:::-;37889:73;37957:3;37946:9;37942:19;37933:6;37889:73;:::i;:::-;37146:823;;;;;;;;;:::o;37975:143::-;38032:5;38063:6;38057:13;38048:22;;38079:33;38106:5;38079:33;:::i;:::-;37975:143;;;;:::o;38124:663::-;38212:6;38220;38228;38277:2;38265:9;38256:7;38252:23;38248:32;38245:119;;;38283:79;;:::i;:::-;38245:119;38403:1;38428:64;38484:7;38475:6;38464:9;38460:22;38428:64;:::i;:::-;38418:74;;38374:128;38541:2;38567:64;38623:7;38614:6;38603:9;38599:22;38567:64;:::i;:::-;38557:74;;38512:129;38680:2;38706:64;38762:7;38753:6;38742:9;38738:22;38706:64;:::i;:::-;38696:74;;38651:129;38124:663;;;;;:::o

Swarm Source

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