ETH Price: $3,459.06 (+1.80%)
Gas: 11 Gwei

Token

Death to the Bear Market, Halloween is Here ($DOT)
 

Overview

Max Total Supply

100,000,000 $DOT

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 $DOT

Value
$0.00
0x90f1b8a98ceab965b8b4c7157de8610a64894311
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:
$HalloWeen

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// Telegram: t.me/hallowenszn
// Twitter: https://x.com/Halloweenzhere

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.16;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    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 DexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

library SafeMath {

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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


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

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

contract $HalloWeen is Ownable, IERC20 {
    using SafeMath for uint256;

    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 10 / 1000;
    uint256 public _walletMax = _totalSupply * 10 / 1000;

    address private constant DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ;

    string constant private _name = unicode"Death to the Bear  Market, Halloween is Here";
    string constant private _symbol = "$DOT";

    bool public restrictWhales = true;

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

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

    uint256 private liquidityFee = 0;
    uint256 private buybackFee = 2;
    uint256 private marketingFee = 4;
    uint256 private blaFee = 0;
    uint256 public rewardFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private autoLiquidityReceiver;
    address private marketingWallet;
    address private buybackWallet;
    address private blaWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;


    uint256 public launchedAt;
    bool public tradingOpen = false;
    bool public blacklistMode = true;
    bool public canUseBlacklist = true;
    mapping(address => bool) public isBlacklisted;

    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 4 / 2000;

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

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


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;
        isFeeExempt[nativeWallet] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = msg.sender;
        marketingWallet = 0x3Aface3D15a7947446571f5a39270057fb9529eC;
        buybackWallet = 0x0fb00D210eF5af5F8352a60a85a3cCBB441A5981;
        blaWallet = 0x3Aface3D15a7947446571f5a39270057fb9529eC;
        nativeWallet = 0x3Aface3D15a7947446571f5a39270057fb9529eC;

        isFeeExempt[marketingWallet] = true;
        totalFee = liquidityFee.add(marketingFee).add(blaFee).add(rewardFee).add(buybackFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {return owner();}

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    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].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender],"Blacklisted");
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(rewardFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(rewardFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(rewardFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && rewardFee >0){
            nativeAmount = amount.mul(rewardFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(rewardFee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee.sub(rewardFee).sub(liquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBbla = amountBNB.mul(blaFee).div(totalBNBFee);
        uint256 amountBNBbuyback = amountBNB.mul(buybackFee).div(totalBNBFee);
        
        (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountBNBMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(blaWallet).call{value : amountBNBbla, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(buybackWallet).call{value : amountBNBbuyback, gas : 30000}("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = _totalSupply * newLimit / 1000;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = _totalSupply * newLimit / 1000;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        require(canUseBlacklist, "Can no longer pause trading");
        tradingOpen = newStatus;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

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

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

    function fullWhitelist(address target) public onlyOwner{
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
    }

    function setFees(uint256 newLiqFee, uint256 newMarketingFee,  uint256 newblaFee, uint256 newrewardFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        blaFee = newblaFee;
        rewardFee = newrewardFee;

        totalFee = liquidityFee.add(marketingFee).add(buybackFee).add(blaFee).add(rewardFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling + totalFee < 45);
    }

    function enable_blacklist(bool _status) public onlyOwner {
        require(canUseBlacklist, "Can no longer add blacklists");
        blacklistMode = _status;
    }

    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        require(canUseBlacklist, "Can no longer add blacklists");
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

    function isAuth(address _address, bool status) public onlyOwner{
        authorizations[_address] = status;
    }

    function setPair(address _address, bool status) public onlyOwner{
        isPair[_address] = status;
    }

    function renounceBlacklist() public onlyOwner{
        canUseBlacklist = false;
    }

    function disableBlacklistDONTUSETHIS() public onlyOwner{
        blacklistMode = false;
    }

    function setTakeBuyfee(bool status) public onlyOwner{
        takeBuyFee = status;
    }

    function setTakeSellfee(bool status) public onlyOwner{
        takeSellFee = status;
    }

    function setTakeTransferfee(bool status) public onlyOwner{
        takeTransferFee = status;
    }

    function setSwapbackSettings(bool status, uint256 newAmount) public onlyOwner{
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function setFeeReceivers(address newMktWallet, address newblaWallet, address newLpWallet, address newNativeWallet) public onlyOwner{
        autoLiquidityReceiver = newLpWallet;
        marketingWallet = newMktWallet;
        
        blaWallet = newblaWallet;
        nativeWallet = newNativeWallet;
    }

    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canUseBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableBlacklistDONTUSETHIS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"fullWhitelist","outputs":[],"stateMutability":"nonpayable","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isPair","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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMktWallet","type":"address"},{"internalType":"address","name":"newblaWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"},{"internalType":"address","name":"newNativeWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newblaFee","type":"uint256"},{"internalType":"uint256","name":"newrewardFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000ff0565b6305f5e10062000025919062001041565b6002556103e8600a6002546200003c919062001041565b620000489190620010d1565b6003556103e8600a6002546200005f919062001041565b6200006b9190620010d1565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff0219169083151502179055506000600a556002600b556004600c556000600d556000600e556000600f5560006010556001601160006101000a81548160ff0219169083151502179055506001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff0219169083151502179055506000601a60006101000a81548160ff0219169083151502179055506001601a60016101000a81548160ff0219169083151502179055506001601a60026101000a81548160ff0219169083151502179055506001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff0219169083151502179055506107d06004600254620001ed919062001041565b620001f99190620010d1565b601d553480156200020957600080fd5b5060006200021c62000deb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000403573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000429919062001173565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d8919062001173565b306040518363ffffffff1660e01b8152600401620004f8929190620011b6565b6020604051808303816000875af115801562000518573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053e919062001173565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160186000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733aface3d15a7947446571f5a39270057fb9529ec601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730fb00d210ef5af5f8352a60a85a3ccbb441a5981601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733aface3d15a7947446571f5a39270057fb9529ec601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733aface3d15a7947446571f5a39270057fb9529ec601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d26600b5462000d12600e5462000cfe600d5462000cea600c54600a5462000df360201b62002c781790919060201c565b62000df360201b62002c781790919060201c565b62000df360201b62002c781790919060201c565b62000df360201b62002c781790919060201c565b600f81905550600f54601081905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000ddd9190620011f4565b60405180910390a3620012cf565b600033905090565b600080828462000e04919062001211565b90508381101562000e4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e4390620012ad565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ee45780860481111562000ebc5762000ebb62000e56565b5b600185161562000ecc5780820291505b808102905062000edc8562000e85565b945062000e9c565b94509492505050565b60008262000eff576001905062000fd2565b8162000f0f576000905062000fd2565b816001811462000f28576002811462000f335762000f69565b600191505062000fd2565b60ff84111562000f485762000f4762000e56565b5b8360020a91508482111562000f625762000f6162000e56565b5b5062000fd2565b5060208310610133831016604e8410600b841016171562000fa35782820a90508381111562000f9d5762000f9c62000e56565b5b62000fd2565b62000fb2848484600162000e92565b9250905081840481111562000fcc5762000fcb62000e56565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ffd8262000fd9565b91506200100a8362000fe3565b9250620010397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eed565b905092915050565b60006200104e8262000fd9565b91506200105b8362000fd9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001097576200109662000e56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010de8262000fd9565b9150620010eb8362000fd9565b925082620010fe57620010fd620010a2565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200113b826200110e565b9050919050565b6200114d816200112e565b81146200115957600080fd5b50565b6000815190506200116d8162001142565b92915050565b6000602082840312156200118c576200118b62001109565b5b60006200119c848285016200115c565b91505092915050565b620011b0816200112e565b82525050565b6000604082019050620011cd6000830185620011a5565b620011dc6020830184620011a5565b9392505050565b620011ee8162000fd9565b82525050565b60006020820190506200120b6000830184620011e3565b92915050565b60006200121e8262000fd9565b91506200122b8362000fd9565b925082820190508082111562001246576200124562000e56565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001295601b836200124c565b9150620012a2826200125d565b602082019050919050565b60006020820190508181036000830152620012c88162001286565b9050919050565b6155d680620012df6000396000f3fe6080604052600436106103855760003560e01c8063807c2d9c116101d1578063bf56b37111610102578063f1d5f517116100a0578063fb32b5c21161006f578063fb32b5c214610ce5578063fbdec15314610d10578063fe575a8714610d39578063ffb54a9914610d765761038c565b8063f1d5f51714610c3f578063f2fde38b14610c68578063f84ba65d14610c91578063f887ea4014610cba5761038c565b8063da00097d116100dc578063da00097d14610b6f578063dd62ed3e14610b9a578063e5e31b1314610bd7578063f0ef821f14610c145761038c565b8063bf56b37114610b02578063c9567bf914610b2d578063ca987b0e14610b445761038c565b80638e2eee841161016f578063a535598911610149578063a535598914610a46578063a8aa1b3114610a71578063a9059cbb14610a9c578063aba1193d14610ad95761038c565b80638e2eee84146109c95780639153eb6c146109f257806395d89b4114610a1b5761038c565b8063896648c1116101ab578063896648c11461090b5780638b424267146109365780638b42507f146109615780638da5cb5b1461099e5761038c565b8063807c2d9c1461088c57806386a22eff146108b7578063893d20e8146108e05761038c565b80633f4218e0116102b6578063658d4b7f116102545780637cc5d7eb116102235780637cc5d7eb146107f85780637d1db4a5146108215780637df4d7441461084c5780637fa442ff146108635761038c565b8063658d4b7f14610750578063705409331461077957806370a08231146107a4578063715018a6146107e15761038c565b8063571ac8b011610290578063571ac8b0146106aa5780635c85974f146106e75780635e562f3b146107105780635f189361146107395761038c565b80633f4218e01461061757806344de2e4c146106545780634a74bb021461067f5761038c565b80631df4ccfc116103235780632b112e49116102fd5780632b112e491461055b578063313ce5671461058657806333f3d628146105b15780633c8e556d146105ee5761038c565b80631df4ccfc146104ca57806323b872dd146104f557806329977491146105325761038c565b8063095ea7b31161035f578063095ea7b3146104105780630d2959801461044d57806318160ddd146104765780631da1db5e146104a15761038c565b80630445b6671461039157806304a66b48146103bc57806306fdde03146103e55761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da1565b6040516103b39190614438565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190614489565b610da7565b005b3480156103f157600080fd5b506103fa610ee8565b6040516104079190614594565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190614614565b610f08565b604051610444919061466f565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906146b6565b610ffa565b005b34801561048257600080fd5b5061048b6110fb565b6040516104989190614438565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906146e3565b611105565b005b3480156104d657600080fd5b506104df611201565b6040516104ec9190614438565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190614710565b611207565b604051610529919061466f565b60405180910390f35b34801561053e57600080fd5b50610559600480360381019061055491906146b6565b611407565b005b34801561056757600080fd5b506105706114b9565b60405161057d9190614438565b60405180910390f35b34801561059257600080fd5b5061059b6114fa565b6040516105a8919061477f565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190614614565b611503565b6040516105e5919061466f565b60405180910390f35b3480156105fa57600080fd5b506106156004803603810190610610919061479a565b61168e565b005b34801561062357600080fd5b5061063e60048036038101906106399190614801565b61182d565b60405161064b919061466f565b60405180910390f35b34801561066057600080fd5b5061066961184d565b604051610676919061466f565b60405180910390f35b34801561068b57600080fd5b50610694611860565b6040516106a1919061466f565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190614801565b611873565b6040516106de919061466f565b60405180910390f35b3480156106f357600080fd5b5061070e600480360381019061070991906146e3565b6118a6565b005b34801561071c57600080fd5b50610737600480360381019061073291906146b6565b6119a3565b005b34801561074557600080fd5b5061074e611aa4565b005b34801561075c57600080fd5b506107776004803603810190610772919061482e565b611b56565b005b34801561078557600080fd5b5061078e611c46565b60405161079b919061466f565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190614801565b611c59565b6040516107d89190614438565b60405180910390f35b3480156107ed57600080fd5b506107f6611ca2565b005b34801561080457600080fd5b5061081f600480360381019061081a919061482e565b611df5565b005b34801561082d57600080fd5b50610836611ee5565b6040516108439190614438565b60405180910390f35b34801561085857600080fd5b50610861611eeb565b005b34801561086f57600080fd5b5061088a600480360381019061088591906146b6565b611f9d565b005b34801561089857600080fd5b506108a161204f565b6040516108ae9190614438565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d9919061482e565b612055565b005b3480156108ec57600080fd5b506108f5612145565b604051610902919061487d565b60405180910390f35b34801561091757600080fd5b50610920612154565b60405161092d919061466f565b60405180910390f35b34801561094257600080fd5b5061094b612167565b6040516109589190614438565b60405180910390f35b34801561096d57600080fd5b5061098860048036038101906109839190614801565b61216d565b604051610995919061466f565b60405180910390f35b3480156109aa57600080fd5b506109b361218d565b6040516109c0919061487d565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb91906148fd565b6121b6565b005b3480156109fe57600080fd5b50610a196004803603810190610a149190614801565b61233d565b005b348015610a2757600080fd5b50610a306124dc565b604051610a3d9190614594565b60405180910390f35b348015610a5257600080fd5b50610a5b612519565b604051610a68919061466f565b60405180910390f35b348015610a7d57600080fd5b50610a8661252c565b604051610a93919061487d565b60405180910390f35b348015610aa857600080fd5b50610ac36004803603810190610abe9190614614565b612552565b604051610ad0919061466f565b60405180910390f35b348015610ae557600080fd5b50610b006004803603810190610afb919061495d565b612567565b005b348015610b0e57600080fd5b50610b17612621565b604051610b249190614438565b60405180910390f35b348015610b3957600080fd5b50610b42612627565b005b348015610b5057600080fd5b50610b596126d9565b604051610b669190614438565b60405180910390f35b348015610b7b57600080fd5b50610b846126df565b604051610b91919061466f565b60405180910390f35b348015610ba657600080fd5b50610bc16004803603810190610bbc919061499d565b6126f2565b604051610bce9190614438565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190614801565b612779565b604051610c0b919061466f565b60405180910390f35b348015610c2057600080fd5b50610c29612799565b604051610c36919061466f565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c6191906146e3565b6127ac565b005b348015610c7457600080fd5b50610c8f6004803603810190610c8a9190614801565b6128a9565b005b348015610c9d57600080fd5b50610cb86004803603810190610cb3919061482e565b612a6a565b005b348015610cc657600080fd5b50610ccf612b5a565b604051610cdc9190614a3c565b60405180910390f35b348015610cf157600080fd5b50610cfa612b80565b604051610d07919061466f565b60405180910390f35b348015610d1c57600080fd5b50610d376004803603810190610d3291906146b6565b612b93565b005b348015610d4557600080fd5b50610d606004803603810190610d5b9190614801565b612c45565b604051610d6d919061466f565b60405180910390f35b348015610d8257600080fd5b50610d8b612c65565b604051610d98919061466f565b60405180910390f35b601d5481565b610daf612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390614aa3565b60405180910390fd5b84600a8190555083600c8190555082600d8190555081600e81905550610eab600e54610e9d600d54610e8f600b54610e81600c54600a54612c7890919063ffffffff16565b612c7890919063ffffffff16565b612c7890919063ffffffff16565b612c7890919063ffffffff16565b600f8190555080600f54610ebf9190614af2565b601081905550602d600f54601054610ed79190614af2565b10610ee157600080fd5b5050505050565b60606040518060600160405280602c8152602001615575602c9139905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fe89190614438565b60405180910390a36001905092915050565b611002612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690614aa3565b60405180910390fd5b601a60029054906101000a900460ff166110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d590614b72565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600254905090565b61110d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190614aa3565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111c79190614b92565b6111d19190614c1b565b9081150290604051600060405180830381858888f193505050501580156111fc573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113f357611372826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113fe848484612d42565b90509392505050565b61140f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390614aa3565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006114f56114c86000611c59565b6114e76114d661dead611c59565b6002546134fa90919063ffffffff16565b6134fa90919063ffffffff16565b905090565b60006012905090565b600061150d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614aa3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90614c98565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611643929190614cb8565b6020604051808303816000875af1158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190614cf6565b905092915050565b611696612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90614aa3565b60405180910390fd5b81601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061189f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f08565b9050919050565b6118ae612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290614aa3565b60405180910390fd5b600581101561197f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197690614d95565b60405180910390fd5b6103e8816002546119909190614b92565b61199a9190614c1b565b60038190555050565b6119ab612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90614aa3565b60405180910390fd5b601a60029054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90614e01565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b611aac612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3090614aa3565b60405180910390fd5b6000601a60026101000a81548160ff021916908315150217905550565b611b5e612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be290614aa3565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611caa612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e90614aa3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611dfd612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190614aa3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611ef3612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7790614aa3565b60405180910390fd5b6000601a60016101000a81548160ff021916908315150217905550565b611fa5612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202990614aa3565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b61205d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e190614aa3565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061214f61218d565b905090565b601a60019054906101000a900460ff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121be612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224290614aa3565b60405180910390fd5b601a60029054906101000a900460ff1661229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614e01565b60405180910390fd5b60005b838390508110156123375781601b60008686858181106122c0576122bf614e21565b5b90506020020160208101906122d59190614801565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061233090614e50565b905061229d565b50505050565b612345612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990614aa3565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f24444f5400000000000000000000000000000000000000000000000000000000815250905090565b601160029054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061255f338484612d42565b905092915050565b61256f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f390614aa3565b60405180910390fd5b81601c60016101000a81548160ff02191690831515021790555080601d819055505050565b60195481565b61262f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b390614aa3565b60405180910390fd5b6001601a60006101000a81548160ff021916908315150217905550565b60105481565b601c60029054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b6127b4612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614aa3565b60405180910390fd5b6005811015612885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287c90614d95565b60405180910390fd5b6103e8816002546128969190614b92565b6128a09190614c1b565b60048190555050565b6128b1612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461293e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293590614aa3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a490614f0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a72612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af690614aa3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60029054906101000a900460ff1681565b612b9b612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f90614aa3565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900460ff1681565b6000808284612c879190614af2565b905083811015612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390614f76565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1d9190614594565b60405180910390fd5b5060008385612d359190614f96565b9050809150509392505050565b6000601c60009054906101000a900460ff1615612d6b57612d64848484613544565b90506134f3565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e0f5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e6457601a60009054906101000a900460ff16612e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5a90615016565b60405180910390fd5b5b60035482111580612ebe5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef490615082565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f635750601c60009054906101000a900460ff16155b8015612f7b5750601c60019054906101000a900460ff165b8015612fc85750601d54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612fd657612fd5613717565b5b612fde613df8565b1580156130345750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130c4576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116130bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b2906150ee565b60405180910390fd5b6130c3613e05565b5b601a60019054906101000a900460ff161561316757601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315d9061515a565b60405180910390fd5b5b6131f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132995750600560149054906101000a900460ff165b15613335576004546132f383600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b1115613334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332b906151c6565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133db5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6133e557826133f1565b6133f0858585613e0e565b5b905061344581600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e59190614438565b60405180910390a360019150505b9392505050565b600061353c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cde565b905092915050565b60006135cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061366482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137049190614438565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006137c860026137ba613797600e54600f546134fa90919063ffffffff16565b6137ac600a54876142f890919063ffffffff16565b61437290919063ffffffff16565b61437290919063ffffffff16565b905060006137df82846134fa90919063ffffffff16565b90506000600267ffffffffffffffff8111156137fe576137fd6151e6565b5b60405190808252806020026020018201604052801561382c5781602001602082028036833780820191505090505b509050308160008151811061384457613843614e21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061390f919061522a565b8160018151811061392357613922614e21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139c1959493929190615350565b600060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b5050505060004790506000613a38613a136002600a5461437290919063ffffffff16565b613a2a600e54600f546134fa90919063ffffffff16565b6134fa90919063ffffffff16565b90506000613a766002613a6884613a5a600a54886142f890919063ffffffff16565b61437290919063ffffffff16565b61437290919063ffffffff16565b90506000613aa183613a93600c54876142f890919063ffffffff16565b61437290919063ffffffff16565b90506000613acc84613abe600d54886142f890919063ffffffff16565b61437290919063ffffffff16565b90506000613af785613ae9600b54896142f890919063ffffffff16565b61437290919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613b45906153db565b600060405180830381858888f193505050503d8060008114613b83576040519150601f19603f3d011682016040523d82523d6000602084013e613b88565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613bda906153db565b600060405180830381858888f193505050503d8060008114613c18576040519150601f19603f3d011682016040523d82523d6000602084013e613c1d565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613c71906153db565b600060405180830381858888f193505050503d8060008114613caf576040519150601f19603f3d011682016040523d82523d6000602084013e613cb4565b606091505b5050809150506000905060008a1115613dd057601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613d50969594939291906153f0565b60606040518083038185885af1158015613d6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613d939190615466565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613dc79291906154b9565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080600090506000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e7c5750601160019054906101000a900460ff165b15613e9b57613e98600e546010546134fa90919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f005750601160009054906101000a900460ff165b15613f1f57613f1c600e54600f546134fa90919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fc35750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561400157601160029054906101000a900460ff1615613ffb57613ff4600e546010546134fa90919063ffffffff16565b9150614000565b600091505b5b60008211801561401357506000600e54115b156141a3576140406064614032600e54876142f890919063ffffffff16565b61437290919063ffffffff16565b90506140b68160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b60066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161419a9190614438565b60405180910390a35b60006141cb60646141bd85886142f890919063ffffffff16565b61437290919063ffffffff16565b905061421f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142bf9190614438565b60405180910390a36142ec826142de83886134fa90919063ffffffff16565b6134fa90919063ffffffff16565b93505050509392505050565b600080830361430a576000905061436c565b600082846143189190614b92565b90508284826143279190614c1b565b14614367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161435e90615554565b60405180910390fd5b809150505b92915050565b60006143b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506143bc565b905092915050565b60008083118290614403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143fa9190614594565b60405180910390fd5b50600083856144129190614c1b565b9050809150509392505050565b6000819050919050565b6144328161441f565b82525050565b600060208201905061444d6000830184614429565b92915050565b600080fd5b600080fd5b6144668161441f565b811461447157600080fd5b50565b6000813590506144838161445d565b92915050565b600080600080600060a086880312156144a5576144a4614453565b5b60006144b388828901614474565b95505060206144c488828901614474565b94505060406144d588828901614474565b93505060606144e688828901614474565b92505060806144f788828901614474565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561453e578082015181840152602081019050614523565b60008484015250505050565b6000601f19601f8301169050919050565b600061456682614504565b614570818561450f565b9350614580818560208601614520565b6145898161454a565b840191505092915050565b600060208201905081810360008301526145ae818461455b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006145e1826145b6565b9050919050565b6145f1816145d6565b81146145fc57600080fd5b50565b60008135905061460e816145e8565b92915050565b6000806040838503121561462b5761462a614453565b5b6000614639858286016145ff565b925050602061464a85828601614474565b9150509250929050565b60008115159050919050565b61466981614654565b82525050565b60006020820190506146846000830184614660565b92915050565b61469381614654565b811461469e57600080fd5b50565b6000813590506146b08161468a565b92915050565b6000602082840312156146cc576146cb614453565b5b60006146da848285016146a1565b91505092915050565b6000602082840312156146f9576146f8614453565b5b600061470784828501614474565b91505092915050565b60008060006060848603121561472957614728614453565b5b6000614737868287016145ff565b9350506020614748868287016145ff565b925050604061475986828701614474565b9150509250925092565b600060ff82169050919050565b61477981614763565b82525050565b60006020820190506147946000830184614770565b92915050565b600080600080608085870312156147b4576147b3614453565b5b60006147c2878288016145ff565b94505060206147d3878288016145ff565b93505060406147e4878288016145ff565b92505060606147f5878288016145ff565b91505092959194509250565b60006020828403121561481757614816614453565b5b6000614825848285016145ff565b91505092915050565b6000806040838503121561484557614844614453565b5b6000614853858286016145ff565b9250506020614864858286016146a1565b9150509250929050565b614877816145d6565b82525050565b6000602082019050614892600083018461486e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126148bd576148bc614898565b5b8235905067ffffffffffffffff8111156148da576148d961489d565b5b6020830191508360208202830111156148f6576148f56148a2565b5b9250929050565b60008060006040848603121561491657614915614453565b5b600084013567ffffffffffffffff81111561493457614933614458565b5b614940868287016148a7565b93509350506020614953868287016146a1565b9150509250925092565b6000806040838503121561497457614973614453565b5b6000614982858286016146a1565b925050602061499385828601614474565b9150509250929050565b600080604083850312156149b4576149b3614453565b5b60006149c2858286016145ff565b92505060206149d3858286016145ff565b9150509250929050565b6000819050919050565b6000614a026149fd6149f8846145b6565b6149dd565b6145b6565b9050919050565b6000614a14826149e7565b9050919050565b6000614a2682614a09565b9050919050565b614a3681614a1b565b82525050565b6000602082019050614a516000830184614a2d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614a8d60208361450f565b9150614a9882614a57565b602082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614afd8261441f565b9150614b088361441f565b9250828201905080821115614b2057614b1f614ac3565b5b92915050565b7f43616e206e6f206c6f6e6765722070617573652074726164696e670000000000600082015250565b6000614b5c601b8361450f565b9150614b6782614b26565b602082019050919050565b60006020820190508181036000830152614b8b81614b4f565b9050919050565b6000614b9d8261441f565b9150614ba88361441f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614be157614be0614ac3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614c268261441f565b9150614c318361441f565b925082614c4157614c40614bec565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b6000614c82601c8361450f565b9150614c8d82614c4c565b602082019050919050565b60006020820190508181036000830152614cb181614c75565b9050919050565b6000604082019050614ccd600083018561486e565b614cda6020830184614429565b9392505050565b600081519050614cf08161468a565b92915050565b600060208284031215614d0c57614d0b614453565b5b6000614d1a84828501614ce1565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614d7f60268361450f565b9150614d8a82614d23565b604082019050919050565b60006020820190508181036000830152614dae81614d72565b9050919050565b7f43616e206e6f206c6f6e6765722061646420626c61636b6c6973747300000000600082015250565b6000614deb601c8361450f565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e5b8261441f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e8d57614e8c614ac3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ef460268361450f565b9150614eff82614e98565b604082019050919050565b60006020820190508181036000830152614f2381614ee7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f60601b8361450f565b9150614f6b82614f2a565b602082019050919050565b60006020820190508181036000830152614f8f81614f53565b9050919050565b6000614fa18261441f565b9150614fac8361441f565b9250828203905081811115614fc457614fc3614ac3565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061500060148361450f565b915061500b82614fca565b602082019050919050565b6000602082019050818103600083015261502f81614ff3565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061506c60118361450f565b915061507782615036565b602082019050919050565b6000602082019050818103600083015261509b8161505f565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b60006150d860168361450f565b91506150e3826150a2565b602082019050919050565b60006020820190508181036000830152615107816150cb565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615144600b8361450f565b915061514f8261510e565b602082019050919050565b6000602082019050818103600083015261517381615137565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b60006151b060148361450f565b91506151bb8261517a565b602082019050919050565b600060208201905081810360008301526151df816151a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050615224816145e8565b92915050565b6000602082840312156152405761523f614453565b5b600061524e84828501615215565b91505092915050565b6000819050919050565b600061527c61527761527284615257565b6149dd565b61441f565b9050919050565b61528c81615261565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6152c7816145d6565b82525050565b60006152d983836152be565b60208301905092915050565b6000602082019050919050565b60006152fd82615292565b615307818561529d565b9350615312836152ae565b8060005b8381101561534357815161532a88826152cd565b9750615335836152e5565b925050600181019050615316565b5085935050505092915050565b600060a0820190506153656000830188614429565b6153726020830187615283565b818103604083015261538481866152f2565b9050615393606083018561486e565b6153a06080830184614429565b9695505050505050565b600081905092915050565b50565b60006153c56000836153aa565b91506153d0826153b5565b600082019050919050565b60006153e6826153b8565b9150819050919050565b600060c082019050615405600083018961486e565b6154126020830188614429565b61541f6040830187615283565b61542c6060830186615283565b615439608083018561486e565b61544660a0830184614429565b979650505050505050565b6000815190506154608161445d565b92915050565b60008060006060848603121561547f5761547e614453565b5b600061548d86828701615451565b935050602061549e86828701615451565b92505060406154af86828701615451565b9150509250925092565b60006040820190506154ce6000830185614429565b6154db6020830184614429565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061553e60218361450f565b9150615549826154e2565b604082019050919050565b6000602082019050818103600083015261556d81615531565b905091905056fe446561746820746f20746865204265617220204d61726b65742c2048616c6c6f7765656e2069732048657265a2646970667358221220a1db4e09e1700f7ce93bfcb2022bebe07772a75e4e42d849480f89960007456864736f6c63430008100033

Deployed Bytecode

0x6080604052600436106103855760003560e01c8063807c2d9c116101d1578063bf56b37111610102578063f1d5f517116100a0578063fb32b5c21161006f578063fb32b5c214610ce5578063fbdec15314610d10578063fe575a8714610d39578063ffb54a9914610d765761038c565b8063f1d5f51714610c3f578063f2fde38b14610c68578063f84ba65d14610c91578063f887ea4014610cba5761038c565b8063da00097d116100dc578063da00097d14610b6f578063dd62ed3e14610b9a578063e5e31b1314610bd7578063f0ef821f14610c145761038c565b8063bf56b37114610b02578063c9567bf914610b2d578063ca987b0e14610b445761038c565b80638e2eee841161016f578063a535598911610149578063a535598914610a46578063a8aa1b3114610a71578063a9059cbb14610a9c578063aba1193d14610ad95761038c565b80638e2eee84146109c95780639153eb6c146109f257806395d89b4114610a1b5761038c565b8063896648c1116101ab578063896648c11461090b5780638b424267146109365780638b42507f146109615780638da5cb5b1461099e5761038c565b8063807c2d9c1461088c57806386a22eff146108b7578063893d20e8146108e05761038c565b80633f4218e0116102b6578063658d4b7f116102545780637cc5d7eb116102235780637cc5d7eb146107f85780637d1db4a5146108215780637df4d7441461084c5780637fa442ff146108635761038c565b8063658d4b7f14610750578063705409331461077957806370a08231146107a4578063715018a6146107e15761038c565b8063571ac8b011610290578063571ac8b0146106aa5780635c85974f146106e75780635e562f3b146107105780635f189361146107395761038c565b80633f4218e01461061757806344de2e4c146106545780634a74bb021461067f5761038c565b80631df4ccfc116103235780632b112e49116102fd5780632b112e491461055b578063313ce5671461058657806333f3d628146105b15780633c8e556d146105ee5761038c565b80631df4ccfc146104ca57806323b872dd146104f557806329977491146105325761038c565b8063095ea7b31161035f578063095ea7b3146104105780630d2959801461044d57806318160ddd146104765780631da1db5e146104a15761038c565b80630445b6671461039157806304a66b48146103bc57806306fdde03146103e55761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da1565b6040516103b39190614438565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190614489565b610da7565b005b3480156103f157600080fd5b506103fa610ee8565b6040516104079190614594565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190614614565b610f08565b604051610444919061466f565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906146b6565b610ffa565b005b34801561048257600080fd5b5061048b6110fb565b6040516104989190614438565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906146e3565b611105565b005b3480156104d657600080fd5b506104df611201565b6040516104ec9190614438565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190614710565b611207565b604051610529919061466f565b60405180910390f35b34801561053e57600080fd5b50610559600480360381019061055491906146b6565b611407565b005b34801561056757600080fd5b506105706114b9565b60405161057d9190614438565b60405180910390f35b34801561059257600080fd5b5061059b6114fa565b6040516105a8919061477f565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190614614565b611503565b6040516105e5919061466f565b60405180910390f35b3480156105fa57600080fd5b506106156004803603810190610610919061479a565b61168e565b005b34801561062357600080fd5b5061063e60048036038101906106399190614801565b61182d565b60405161064b919061466f565b60405180910390f35b34801561066057600080fd5b5061066961184d565b604051610676919061466f565b60405180910390f35b34801561068b57600080fd5b50610694611860565b6040516106a1919061466f565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190614801565b611873565b6040516106de919061466f565b60405180910390f35b3480156106f357600080fd5b5061070e600480360381019061070991906146e3565b6118a6565b005b34801561071c57600080fd5b50610737600480360381019061073291906146b6565b6119a3565b005b34801561074557600080fd5b5061074e611aa4565b005b34801561075c57600080fd5b506107776004803603810190610772919061482e565b611b56565b005b34801561078557600080fd5b5061078e611c46565b60405161079b919061466f565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190614801565b611c59565b6040516107d89190614438565b60405180910390f35b3480156107ed57600080fd5b506107f6611ca2565b005b34801561080457600080fd5b5061081f600480360381019061081a919061482e565b611df5565b005b34801561082d57600080fd5b50610836611ee5565b6040516108439190614438565b60405180910390f35b34801561085857600080fd5b50610861611eeb565b005b34801561086f57600080fd5b5061088a600480360381019061088591906146b6565b611f9d565b005b34801561089857600080fd5b506108a161204f565b6040516108ae9190614438565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d9919061482e565b612055565b005b3480156108ec57600080fd5b506108f5612145565b604051610902919061487d565b60405180910390f35b34801561091757600080fd5b50610920612154565b60405161092d919061466f565b60405180910390f35b34801561094257600080fd5b5061094b612167565b6040516109589190614438565b60405180910390f35b34801561096d57600080fd5b5061098860048036038101906109839190614801565b61216d565b604051610995919061466f565b60405180910390f35b3480156109aa57600080fd5b506109b361218d565b6040516109c0919061487d565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb91906148fd565b6121b6565b005b3480156109fe57600080fd5b50610a196004803603810190610a149190614801565b61233d565b005b348015610a2757600080fd5b50610a306124dc565b604051610a3d9190614594565b60405180910390f35b348015610a5257600080fd5b50610a5b612519565b604051610a68919061466f565b60405180910390f35b348015610a7d57600080fd5b50610a8661252c565b604051610a93919061487d565b60405180910390f35b348015610aa857600080fd5b50610ac36004803603810190610abe9190614614565b612552565b604051610ad0919061466f565b60405180910390f35b348015610ae557600080fd5b50610b006004803603810190610afb919061495d565b612567565b005b348015610b0e57600080fd5b50610b17612621565b604051610b249190614438565b60405180910390f35b348015610b3957600080fd5b50610b42612627565b005b348015610b5057600080fd5b50610b596126d9565b604051610b669190614438565b60405180910390f35b348015610b7b57600080fd5b50610b846126df565b604051610b91919061466f565b60405180910390f35b348015610ba657600080fd5b50610bc16004803603810190610bbc919061499d565b6126f2565b604051610bce9190614438565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190614801565b612779565b604051610c0b919061466f565b60405180910390f35b348015610c2057600080fd5b50610c29612799565b604051610c36919061466f565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c6191906146e3565b6127ac565b005b348015610c7457600080fd5b50610c8f6004803603810190610c8a9190614801565b6128a9565b005b348015610c9d57600080fd5b50610cb86004803603810190610cb3919061482e565b612a6a565b005b348015610cc657600080fd5b50610ccf612b5a565b604051610cdc9190614a3c565b60405180910390f35b348015610cf157600080fd5b50610cfa612b80565b604051610d07919061466f565b60405180910390f35b348015610d1c57600080fd5b50610d376004803603810190610d3291906146b6565b612b93565b005b348015610d4557600080fd5b50610d606004803603810190610d5b9190614801565b612c45565b604051610d6d919061466f565b60405180910390f35b348015610d8257600080fd5b50610d8b612c65565b604051610d98919061466f565b60405180910390f35b601d5481565b610daf612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390614aa3565b60405180910390fd5b84600a8190555083600c8190555082600d8190555081600e81905550610eab600e54610e9d600d54610e8f600b54610e81600c54600a54612c7890919063ffffffff16565b612c7890919063ffffffff16565b612c7890919063ffffffff16565b612c7890919063ffffffff16565b600f8190555080600f54610ebf9190614af2565b601081905550602d600f54601054610ed79190614af2565b10610ee157600080fd5b5050505050565b60606040518060600160405280602c8152602001615575602c9139905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fe89190614438565b60405180910390a36001905092915050565b611002612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690614aa3565b60405180910390fd5b601a60029054906101000a900460ff166110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d590614b72565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600254905090565b61110d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190614aa3565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111c79190614b92565b6111d19190614c1b565b9081150290604051600060405180830381858888f193505050501580156111fc573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113f357611372826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113fe848484612d42565b90509392505050565b61140f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390614aa3565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006114f56114c86000611c59565b6114e76114d661dead611c59565b6002546134fa90919063ffffffff16565b6134fa90919063ffffffff16565b905090565b60006012905090565b600061150d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614aa3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90614c98565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611643929190614cb8565b6020604051808303816000875af1158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190614cf6565b905092915050565b611696612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90614aa3565b60405180910390fd5b81601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061189f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f08565b9050919050565b6118ae612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290614aa3565b60405180910390fd5b600581101561197f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197690614d95565b60405180910390fd5b6103e8816002546119909190614b92565b61199a9190614c1b565b60038190555050565b6119ab612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90614aa3565b60405180910390fd5b601a60029054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90614e01565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b611aac612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3090614aa3565b60405180910390fd5b6000601a60026101000a81548160ff021916908315150217905550565b611b5e612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be290614aa3565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611caa612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e90614aa3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611dfd612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190614aa3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611ef3612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7790614aa3565b60405180910390fd5b6000601a60016101000a81548160ff021916908315150217905550565b611fa5612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202990614aa3565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b61205d612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e190614aa3565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061214f61218d565b905090565b601a60019054906101000a900460ff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121be612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224290614aa3565b60405180910390fd5b601a60029054906101000a900460ff1661229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614e01565b60405180910390fd5b60005b838390508110156123375781601b60008686858181106122c0576122bf614e21565b5b90506020020160208101906122d59190614801565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061233090614e50565b905061229d565b50505050565b612345612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990614aa3565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f24444f5400000000000000000000000000000000000000000000000000000000815250905090565b601160029054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061255f338484612d42565b905092915050565b61256f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f390614aa3565b60405180910390fd5b81601c60016101000a81548160ff02191690831515021790555080601d819055505050565b60195481565b61262f612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b390614aa3565b60405180910390fd5b6001601a60006101000a81548160ff021916908315150217905550565b60105481565b601c60029054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b6127b4612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614aa3565b60405180910390fd5b6005811015612885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287c90614d95565b60405180910390fd5b6103e8816002546128969190614b92565b6128a09190614c1b565b60048190555050565b6128b1612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461293e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293590614aa3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a490614f0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a72612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af690614aa3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60029054906101000a900460ff1681565b612b9b612cd6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f90614aa3565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900460ff1681565b6000808284612c879190614af2565b905083811015612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390614f76565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1d9190614594565b60405180910390fd5b5060008385612d359190614f96565b9050809150509392505050565b6000601c60009054906101000a900460ff1615612d6b57612d64848484613544565b90506134f3565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e0f5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e6457601a60009054906101000a900460ff16612e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5a90615016565b60405180910390fd5b5b60035482111580612ebe5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef490615082565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f635750601c60009054906101000a900460ff16155b8015612f7b5750601c60019054906101000a900460ff165b8015612fc85750601d54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612fd657612fd5613717565b5b612fde613df8565b1580156130345750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130c4576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116130bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b2906150ee565b60405180910390fd5b6130c3613e05565b5b601a60019054906101000a900460ff161561316757601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315d9061515a565b60405180910390fd5b5b6131f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132995750600560149054906101000a900460ff165b15613335576004546132f383600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b1115613334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332b906151c6565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133db5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6133e557826133f1565b6133f0858585613e0e565b5b905061344581600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e59190614438565b60405180910390a360019150505b9392505050565b600061353c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cde565b905092915050565b60006135cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cde9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061366482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137049190614438565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006137c860026137ba613797600e54600f546134fa90919063ffffffff16565b6137ac600a54876142f890919063ffffffff16565b61437290919063ffffffff16565b61437290919063ffffffff16565b905060006137df82846134fa90919063ffffffff16565b90506000600267ffffffffffffffff8111156137fe576137fd6151e6565b5b60405190808252806020026020018201604052801561382c5781602001602082028036833780820191505090505b509050308160008151811061384457613843614e21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061390f919061522a565b8160018151811061392357613922614e21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139c1959493929190615350565b600060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b5050505060004790506000613a38613a136002600a5461437290919063ffffffff16565b613a2a600e54600f546134fa90919063ffffffff16565b6134fa90919063ffffffff16565b90506000613a766002613a6884613a5a600a54886142f890919063ffffffff16565b61437290919063ffffffff16565b61437290919063ffffffff16565b90506000613aa183613a93600c54876142f890919063ffffffff16565b61437290919063ffffffff16565b90506000613acc84613abe600d54886142f890919063ffffffff16565b61437290919063ffffffff16565b90506000613af785613ae9600b54896142f890919063ffffffff16565b61437290919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613b45906153db565b600060405180830381858888f193505050503d8060008114613b83576040519150601f19603f3d011682016040523d82523d6000602084013e613b88565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613bda906153db565b600060405180830381858888f193505050503d8060008114613c18576040519150601f19603f3d011682016040523d82523d6000602084013e613c1d565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613c71906153db565b600060405180830381858888f193505050503d8060008114613caf576040519150601f19603f3d011682016040523d82523d6000602084013e613cb4565b606091505b5050809150506000905060008a1115613dd057601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613d50969594939291906153f0565b60606040518083038185885af1158015613d6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613d939190615466565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613dc79291906154b9565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080600090506000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e7c5750601160019054906101000a900460ff165b15613e9b57613e98600e546010546134fa90919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f005750601160009054906101000a900460ff165b15613f1f57613f1c600e54600f546134fa90919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fc35750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561400157601160029054906101000a900460ff1615613ffb57613ff4600e546010546134fa90919063ffffffff16565b9150614000565b600091505b5b60008211801561401357506000600e54115b156141a3576140406064614032600e54876142f890919063ffffffff16565b61437290919063ffffffff16565b90506140b68160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b60066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161419a9190614438565b60405180910390a35b60006141cb60646141bd85886142f890919063ffffffff16565b61437290919063ffffffff16565b905061421f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142bf9190614438565b60405180910390a36142ec826142de83886134fa90919063ffffffff16565b6134fa90919063ffffffff16565b93505050509392505050565b600080830361430a576000905061436c565b600082846143189190614b92565b90508284826143279190614c1b565b14614367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161435e90615554565b60405180910390fd5b809150505b92915050565b60006143b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506143bc565b905092915050565b60008083118290614403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143fa9190614594565b60405180910390fd5b50600083856144129190614c1b565b9050809150509392505050565b6000819050919050565b6144328161441f565b82525050565b600060208201905061444d6000830184614429565b92915050565b600080fd5b600080fd5b6144668161441f565b811461447157600080fd5b50565b6000813590506144838161445d565b92915050565b600080600080600060a086880312156144a5576144a4614453565b5b60006144b388828901614474565b95505060206144c488828901614474565b94505060406144d588828901614474565b93505060606144e688828901614474565b92505060806144f788828901614474565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561453e578082015181840152602081019050614523565b60008484015250505050565b6000601f19601f8301169050919050565b600061456682614504565b614570818561450f565b9350614580818560208601614520565b6145898161454a565b840191505092915050565b600060208201905081810360008301526145ae818461455b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006145e1826145b6565b9050919050565b6145f1816145d6565b81146145fc57600080fd5b50565b60008135905061460e816145e8565b92915050565b6000806040838503121561462b5761462a614453565b5b6000614639858286016145ff565b925050602061464a85828601614474565b9150509250929050565b60008115159050919050565b61466981614654565b82525050565b60006020820190506146846000830184614660565b92915050565b61469381614654565b811461469e57600080fd5b50565b6000813590506146b08161468a565b92915050565b6000602082840312156146cc576146cb614453565b5b60006146da848285016146a1565b91505092915050565b6000602082840312156146f9576146f8614453565b5b600061470784828501614474565b91505092915050565b60008060006060848603121561472957614728614453565b5b6000614737868287016145ff565b9350506020614748868287016145ff565b925050604061475986828701614474565b9150509250925092565b600060ff82169050919050565b61477981614763565b82525050565b60006020820190506147946000830184614770565b92915050565b600080600080608085870312156147b4576147b3614453565b5b60006147c2878288016145ff565b94505060206147d3878288016145ff565b93505060406147e4878288016145ff565b92505060606147f5878288016145ff565b91505092959194509250565b60006020828403121561481757614816614453565b5b6000614825848285016145ff565b91505092915050565b6000806040838503121561484557614844614453565b5b6000614853858286016145ff565b9250506020614864858286016146a1565b9150509250929050565b614877816145d6565b82525050565b6000602082019050614892600083018461486e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126148bd576148bc614898565b5b8235905067ffffffffffffffff8111156148da576148d961489d565b5b6020830191508360208202830111156148f6576148f56148a2565b5b9250929050565b60008060006040848603121561491657614915614453565b5b600084013567ffffffffffffffff81111561493457614933614458565b5b614940868287016148a7565b93509350506020614953868287016146a1565b9150509250925092565b6000806040838503121561497457614973614453565b5b6000614982858286016146a1565b925050602061499385828601614474565b9150509250929050565b600080604083850312156149b4576149b3614453565b5b60006149c2858286016145ff565b92505060206149d3858286016145ff565b9150509250929050565b6000819050919050565b6000614a026149fd6149f8846145b6565b6149dd565b6145b6565b9050919050565b6000614a14826149e7565b9050919050565b6000614a2682614a09565b9050919050565b614a3681614a1b565b82525050565b6000602082019050614a516000830184614a2d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614a8d60208361450f565b9150614a9882614a57565b602082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614afd8261441f565b9150614b088361441f565b9250828201905080821115614b2057614b1f614ac3565b5b92915050565b7f43616e206e6f206c6f6e6765722070617573652074726164696e670000000000600082015250565b6000614b5c601b8361450f565b9150614b6782614b26565b602082019050919050565b60006020820190508181036000830152614b8b81614b4f565b9050919050565b6000614b9d8261441f565b9150614ba88361441f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614be157614be0614ac3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614c268261441f565b9150614c318361441f565b925082614c4157614c40614bec565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b6000614c82601c8361450f565b9150614c8d82614c4c565b602082019050919050565b60006020820190508181036000830152614cb181614c75565b9050919050565b6000604082019050614ccd600083018561486e565b614cda6020830184614429565b9392505050565b600081519050614cf08161468a565b92915050565b600060208284031215614d0c57614d0b614453565b5b6000614d1a84828501614ce1565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614d7f60268361450f565b9150614d8a82614d23565b604082019050919050565b60006020820190508181036000830152614dae81614d72565b9050919050565b7f43616e206e6f206c6f6e6765722061646420626c61636b6c6973747300000000600082015250565b6000614deb601c8361450f565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e5b8261441f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e8d57614e8c614ac3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ef460268361450f565b9150614eff82614e98565b604082019050919050565b60006020820190508181036000830152614f2381614ee7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f60601b8361450f565b9150614f6b82614f2a565b602082019050919050565b60006020820190508181036000830152614f8f81614f53565b9050919050565b6000614fa18261441f565b9150614fac8361441f565b9250828203905081811115614fc457614fc3614ac3565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061500060148361450f565b915061500b82614fca565b602082019050919050565b6000602082019050818103600083015261502f81614ff3565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061506c60118361450f565b915061507782615036565b602082019050919050565b6000602082019050818103600083015261509b8161505f565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b60006150d860168361450f565b91506150e3826150a2565b602082019050919050565b60006020820190508181036000830152615107816150cb565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615144600b8361450f565b915061514f8261510e565b602082019050919050565b6000602082019050818103600083015261517381615137565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b60006151b060148361450f565b91506151bb8261517a565b602082019050919050565b600060208201905081810360008301526151df816151a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050615224816145e8565b92915050565b6000602082840312156152405761523f614453565b5b600061524e84828501615215565b91505092915050565b6000819050919050565b600061527c61527761527284615257565b6149dd565b61441f565b9050919050565b61528c81615261565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6152c7816145d6565b82525050565b60006152d983836152be565b60208301905092915050565b6000602082019050919050565b60006152fd82615292565b615307818561529d565b9350615312836152ae565b8060005b8381101561534357815161532a88826152cd565b9750615335836152e5565b925050600181019050615316565b5085935050505092915050565b600060a0820190506153656000830188614429565b6153726020830187615283565b818103604083015261538481866152f2565b9050615393606083018561486e565b6153a06080830184614429565b9695505050505050565b600081905092915050565b50565b60006153c56000836153aa565b91506153d0826153b5565b600082019050919050565b60006153e6826153b8565b9150819050919050565b600060c082019050615405600083018961486e565b6154126020830188614429565b61541f6040830187615283565b61542c6060830186615283565b615439608083018561486e565b61544660a0830184614429565b979650505050505050565b6000815190506154608161445d565b92915050565b60008060006060848603121561547f5761547e614453565b5b600061548d86828701615451565b935050602061549e86828701615451565b92505060406154af86828701615451565b9150509250925092565b60006040820190506154ce6000830185614429565b6154db6020830184614429565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061553e60218361450f565b9150615549826154e2565b604082019050919050565b6000602082019050818103600083015261556d81615531565b905091905056fe446561746820746f20746865204265617220204d61726b65742c2048616c6c6f7765656e2069732048657265a2646970667358221220a1db4e09e1700f7ce93bfcb2022bebe07772a75e4e42d849480f89960007456864736f6c63430008100033

Deployed Bytecode Sourcemap

4989:14326:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6997:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16643:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8582:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9438:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15935:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19103:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6169:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10645:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18142:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9274:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8758:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18840:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18520:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5878:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5708:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6896:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9662:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15731:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17148:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17846:87;;;;;;;;;;;;;:::i;:::-;;16192:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6284:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9024:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4582:148;;;;;;;;;;;;;:::i;:::-;;17607:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5183:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17941:95;;;;;;;;;;;;;:::i;:::-;;18242:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5244:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17730:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8938:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6726:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6132:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5928:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4366:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17322:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16454:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8668:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6321:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6581:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10143:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18350:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6656:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16107:77;;;;;;;;;;;;;:::i;:::-;;6203:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6943:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6607:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6248:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15525:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4738:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16319:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6551:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18044:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6806:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6688:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6997:54;;;;:::o;16643:497::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16813:9:::1;16798:12;:24;;;;16848:15;16833:12;:30;;;;16883:9;16874:6;:18;;;;16915:12;16903:9;:24;;;;16951:73;17014:9;;16951:58;17002:6;;16951:46;16986:10;;16951:30;16968:12;;16951;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;:50;;:58;;;;:::i;:::-;:62;;:73;;;;:::i;:::-;16940:8;:84;;;;17066:12;17055:8;;:23;;;;:::i;:::-;17035:17;:43;;;;17129:2;17118:8;;17098:17;;:28;;;;:::i;:::-;:33;17089:43;;;::::0;::::1;;16643:497:::0;;;;;:::o;8582:78::-;8630:13;8653:5;;;;;;;;;;;;;;;;;8646:12;;8582:78;:::o;9438:216::-;9513:4;9565:6;9530:11;:23;9542:10;9530:23;;;;;;;;;;;;;;;:32;9554:7;9530:32;;;;;;;;;;;;;;;:41;;;;9608:7;9587:37;;9596:10;9587:37;;;9617:6;9587:37;;;;;;:::i;:::-;;;;;;;;9642:4;9635:11;;9438:216;;;;:::o;15935:164::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16010:15:::1;;;;;;;;;;;16002:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16082:9;16068:11;;:23;;;;;;;;;;;;;;;;;;15935:164:::0;:::o;8844:86::-;8899:7;8916:12;;8909:19;;8844:86;:::o;19103:207::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19186:17:::1;19206:21;19186:41;;19246:10;19238:28;;:64;19298:3;19279:16;19267:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;19238:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19175:135;19103:207:::0;:::o;6169:27::-;;;;:::o;10645:370::-;10745:4;10801:17;10766:11;:19;10778:6;10766:19;;;;;;;;;;;;;;;:31;10786:10;10766:31;;;;;;;;;;;;;;;;:52;10762:188;;10869:69;10905:6;10869:69;;;;;;;;;;;;;;;;;:11;:19;10881:6;10869:19;;;;;;;;;;;;;;;:31;10889:10;10869:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10835:11;:19;10847:6;10835:19;;;;;;;;;;;;;;;:31;10855:10;10835:31;;;;;;;;;;;;;;;:103;;;;10762:188;10967:40;10981:6;10989:9;11000:6;10967:13;:40::i;:::-;10960:47;;10645:370;;;;;:::o;18142:92::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18220:6:::1;18206:11;;:20;;;;;;;;;;;;;;;;;;18142:92:::0;:::o;9274:156::-;9327:7;9354:68;9399:22;5432:42;9399:9;:22::i;:::-;9354:40;9371:22;5344:42;9371:9;:22::i;:::-;9354:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9347:75;;9274:156;:::o;8758:78::-;8810:5;5105:2;8818:16;;8758:78;:::o;18840:255::-;18925:12;4503;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18982:4:::1;18958:29;;:12;:29;;::::0;18950:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19045:12;19038:29;;;19068:10;19080:6;19038:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19031:56;;18840:255:::0;;;;:::o;18520:312::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18686:11:::1;18662:21;;:35;;;;;;;;;;;;;;;;;;18726:12;18708:15;;:30;;;;;;;;;;;;;;;;;;18771:12;18759:9;;:24;;;;;;;;;;;;;;;;;;18809:15;18794:12;;:30;;;;;;;;;;;;;;;;;;18520:312:::0;;;;:::o;5878:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5708:33::-;;;;;;;;;;;;;:::o;6896:40::-;;;;;;;;;;;;;:::o;9662:122::-;9717:4;9741:35;9749:7;9758:17;9741:7;:35::i;:::-;9734:42;;9662:122;;;:::o;15731:196::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15819:1:::1;15807:8;:13;;15799:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15915:4;15904:8;15889:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15874:12;:45;;;;15731:196:::0;:::o;17148:166::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17224:15:::1;;;;;;;;;;;17216:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17299:7;17283:13;;:23;;;;;;;;;;;;;;;;;;17148:166:::0;:::o;17846:87::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17920:5:::1;17902:15;;:23;;;;;;;;;;;;;;;;;;17846:87::o:0;16192:119::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16297:6:::1;16275:11;:19;16287:6;16275:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16192:119:::0;;:::o;6284:30::-;;;;;;;;;;;;;:::o;9024:103::-;9090:7;9107:9;:18;9117:7;9107:18;;;;;;;;;;;;;;;;9100:25;;9024:103;;;:::o;4582:148::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4689:1:::1;4652:40;;4673:6;::::0;::::1;;;;;;;;4652:40;;;;;;;;;;;;4720:1;4703:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4582:148::o:0;17607:115::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17708:6:::1;17681:14;:24;17696:8;17681:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17607:115:::0;;:::o;5183:54::-;;;;:::o;17941:95::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18023:5:::1;18007:13;;:21;;;;;;;;;;;;;;;;;;17941:95::o:0;18242:100::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18328:6:::1;18310:15;;:24;;;;;;;;;;;;;;;;;;18242:100:::0;:::o;5244:52::-;;;;:::o;17730:108::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17824:6:::1;17805;:16;17812:8;17805:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17730:108:::0;;:::o;8938:78::-;8990:7;9007;:5;:7::i;:::-;9000:14;;8938:78;:::o;6726:32::-;;;;;;;;;;;;;:::o;6132:28::-;;;;:::o;5928:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4366:79::-;4404:7;4431:6;;;;;;;;;;;4424:13;;4366:79;:::o;17322:277::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17427:15:::1;;;;;;;;;;;17419:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17491:9;17486:106;17506:9;;:16;;17502:1;:20;17486:106;;;17574:6;17544:13;:27;17558:9;;17568:1;17558:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17544:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17524:3;;;;:::i;:::-;;;17486:106;;;;17322:277:::0;;;:::o;16454:181::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16545:4:::1;16520:14:::0;:22:::1;16535:6;16520:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16582:4;16560:11;:19;16572:6;16560:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16623:4;16597:15;:23;16613:6;16597:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16454:181:::0;:::o;8668:82::-;8718:13;8741:7;;;;;;;;;;;;;;;;;8734:14;;8668:82;:::o;6321:34::-;;;;;;;;;;;;;:::o;6581:19::-;;;;;;;;;;;;;:::o;10143:156::-;10223:4;10247:44;10261:10;10273:9;10284:6;10247:13;:44::i;:::-;10240:51;;10143:156;;;;:::o;18350:162::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18462:6:::1;18438:21;;:30;;;;;;;;;;;;;;;;;;18495:9;18479:13;:25;;;;18350:162:::0;;:::o;6656:25::-;;;;:::o;16107:77::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16172:4:::1;16158:11;;:18;;;;;;;;;;;;;;;;;;16107:77::o:0;6203:36::-;;;;:::o;6943:45::-;;;;;;;;;;;;;:::o;9135:131::-;9219:7;9236:11;:19;9248:6;9236:19;;;;;;;;;;;;;;;:28;9256:7;9236:28;;;;;;;;;;;;;;;;9229:35;;9135:131;;;;:::o;6607:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6248:29::-;;;;;;;;;;;;;:::o;15525:198::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15617:1:::1;15605:8;:13;;15597:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15711:4;15700:8;15685:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15672:10;:43;;;;15525:198:::0;:::o;4738:244::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4847:1:::1;4827:22;;:8;:22;;::::0;4819:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4937:8;4908:38;;4929:6;::::0;::::1;;;;;;;;4908:38;;;;;;;;;;;;4966:8;4957:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4738:244:::0;:::o;16319:127::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16432:6:::1;16406:15;:23;16422:6;16406:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16319:127:::0;;:::o;6551:23::-;;;;;;;;;;;;;:::o;6765:34::-;;;;;;;;;;;;;:::o;18044:90::-;4503:12;:10;:12::i;:::-;4493:22;;:6;;;;;;;;;;:22;;;4485:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18120:6:::1;18107:10;;:19;;;;;;;;;;;;;;;;;;18044:90:::0;:::o;6806:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6688:31::-;;;;;;;;;;;;;:::o;2578:179::-;2636:7;2656:9;2672:1;2668;:5;;;;:::i;:::-;2656:17;;2697:1;2692;:6;;2684:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2748:1;2741:8;;;2578:179;;;;:::o;3706:115::-;3759:15;3802:10;3787:26;;3706:115;:::o;2909:190::-;2995:7;3028:1;3023;:6;;3031:12;3015:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3055:9;3071:1;3067;:5;;;;:::i;:::-;3055:17;;3090:1;3083:8;;;2909:190;;;;;:::o;11023:1417::-;11115:4;11136:16;;;;;;;;;;;11132:73;;;11162:41;11177:6;11185:9;11196:6;11162:14;:41::i;:::-;11155:48;;;;11132:73;11219:14;:22;11234:6;11219:22;;;;;;;;;;;;;;;;;;;;;;;;;11218:23;:53;;;;;11246:14;:25;11261:9;11246:25;;;;;;;;;;;;;;;;;;;;;;;;;11245:26;11218:53;11215:128;;;11295:11;;;;;;;;;;;11287:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11215:128;11373:12;;11363:6;:22;;:49;;;;11389:15;:23;11405:6;11389:23;;;;;;;;;;;;;;;;;;;;;;;;;11363:49;11355:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11449:6;:17;11456:9;11449:17;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;11471:16;;;;;;;;;;;11470:17;11449:38;:63;;;;;11491:21;;;;;;;;;;;11449:63;:108;;;;;11544:13;;11516:9;:24;11534:4;11516:24;;;;;;;;;;;;;;;;:41;;11449:108;11445:140;;;11560:23;:21;:23::i;:::-;11445:140;11600:10;:8;:10::i;:::-;11599:11;:32;;;;;11614:6;:17;11621:9;11614:17;;;;;;;;;;;;;;;;;;;;;;;;;11599:32;11595:144;;;11676:1;11656:9;:17;11666:6;11656:17;;;;;;;;;;;;;;;;:21;11648:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11719:8;:6;:8::i;:::-;11595:144;11781:13;;;;;;;;;;;11777:91;;;11820:13;:21;11834:6;11820:21;;;;;;;;;;;;;;;;;;;;;;;;;11819:22;11811:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11777:91;11928:53;11950:6;11928:53;;;;;;;;;;;;;;;;;:9;:17;11938:6;11928:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11908:9;:17;11918:6;11908:17;;;;;;;;;;;;;;;:73;;;;11999:15;:26;12015:9;11999:26;;;;;;;;;;;;;;;;;;;;;;;;;11998:27;:45;;;;;12029:14;;;;;;;;;;;11998:45;11994:157;;;12104:10;;12068:32;12093:6;12068:9;:20;12078:9;12068:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;12060:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11994:157;12163:19;12186:11;:19;12198:6;12186:19;;;;;;;;;;;;;;;;;;;;;;;;;12185:20;:47;;;;;12210:11;:22;12222:9;12210:22;;;;;;;;;;;;;;;;;;;;;;;;;12209:23;12185:47;:96;;12275:6;12185:96;;;12235:37;12246:6;12254:9;12265:6;12235:10;:37::i;:::-;12185:96;12163:118;;12315:37;12340:11;12315:9;:20;12325:9;12315:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12292:9;:20;12302:9;12292:20;;;;;;;;;;;;;;;:60;;;;12387:9;12370:40;;12379:6;12370:40;;;12398:11;12370:40;;;;;;:::i;:::-;;;;;;;;12428:4;12421:11;;;11023:1417;;;;;;:::o;2765:136::-;2823:7;2850:43;2854:1;2857;2850:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2843:50;;2765:136;;;;:::o;10307:330::-;10400:4;10437:53;10459:6;10437:53;;;;;;;;;;;;;;;;;:9;:17;10447:6;10437:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10417:9;:17;10427:6;10417:17;;;;;;;;;;;;;;;:73;;;;10524:32;10549:6;10524:9;:20;10534:9;10524:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10501:9;:20;10511:9;10501:20;;;;;;;;;;;;;;;:55;;;;10589:9;10572:35;;10581:6;10572:35;;;10600:6;10572:35;;;;;;:::i;:::-;;;;;;;;10625:4;10618:11;;10307:330;;;;;:::o;13654:1863::-;7175:4;7156:16;;:23;;;;;;;;;;;;;;;;;;13719::::1;13745:9;:24;13763:4;13745:24;;;;;;;;;;;;;;;;13719:50;;13780:23;13806:69;13873:1;13806:62;13844:23;13857:9;;13844:8;;:12;;:23;;;;:::i;:::-;13806:33;13826:12;;13806:15;:19;;:33;;;;:::i;:::-;:37;;:62;;;;:::i;:::-;:66;;:69;;;;:::i;:::-;13780:95;;13886:20;13909:36;13929:15;13909;:19;;:36;;;;:::i;:::-;13886:59;;13958:21;13996:1;13982:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13958:40;;14027:4;14009;14014:1;14009:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14053:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14043:4;14048:1;14043:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14079:6;;;;;;;;;;;:57;;;14151:12;14178:1;14194:4;14221;14241:15;14079:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14280:17;14300:21;14280:41;;14334:19;14356:48;14384:19;14401:1;14384:12;;:16;;:19;;;;:::i;:::-;14356:23;14369:9;;14356:8;;:12;;:23;;;;:::i;:::-;:27;;:48;;;;:::i;:::-;14334:70;;14417:26;14446:51;14495:1;14446:44;14478:11;14446:27;14460:12;;14446:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;14417:80;;14508:26;14537:44;14569:11;14537:27;14551:12;;14537:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;14508:73;;14592:20;14615:38;14641:11;14615:21;14629:6;;14615:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;14592:61;;14664:24;14691:42;14721:11;14691:25;14705:10;;14691:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;14664:69;;14755:16;14784:15;;;;;;;;;;;14776:29;;14814:18;14840:5;14776:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14754:96;;;14875:5;14861:19;;14918:9;;;;;;;;;;;14910:23;;14942:12;14962:5;14910:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14893:79;;;;;14997:5;14983:19;;15040:13;;;;;;;;;;;15032:27;;15068:16;15092:5;15032:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15015:87;;;;;15127:5;15113:19;;15167:1;15149:15;:19;15145:365;;;15185:6;;;;;;;;;;;:22;;;15216:18;15262:4;15286:15;15320:1;15340::::0;15360:21:::1;;;;;;;;;;;15400:15;15185:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15450:48;15462:18;15482:15;15450:48;;;;;;;:::i;:::-;;;;;;;;15145:365;13708:1809;;;;;;;;;;;7221:5:::0;7202:16;;:24;;;;;;;;;;;;;;;;;;13654:1863::o;9792:90::-;9835:4;9873:1;9859:10;;:15;;9852:22;;9792:90;:::o;9890:71::-;9941:12;9928:10;:25;;;;9890:71::o;12448:1198::-;12537:7;12557:18;12578:1;12557:22;;12590:17;12626:6;:17;12633:9;12626:17;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;12647:11;;;;;;;;;;;12626:32;12622:121;;;12691:32;12713:9;;12691:17;;:21;;:32;;;;:::i;:::-;12675:48;;12622:121;12757:6;:14;12764:6;12757:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;12775:10;;;;;;;;;;;12757:28;12753:108;;;12818:23;12831:9;;12818:8;;:12;;:23;;;;:::i;:::-;12802:39;;12753:108;12876:6;:14;12883:6;12876:14;;;;;;;;;;;;;;;;;;;;;;;;;12875:15;:37;;;;;12895:6;:17;12902:9;12895:17;;;;;;;;;;;;;;;;;;;;;;;;;12894:18;12875:37;12871:242;;;12932:15;;;;;;;;;;;12928:174;;;12983:32;13005:9;;12983:17;;:21;;:32;;;;:::i;:::-;12967:48;;12928:174;;;13085:1;13069:17;;12928:174;12871:242;13142:1;13126:13;:17;:33;;;;;13158:1;13147:9;;:12;13126:33;13123:255;;;13190:30;13216:3;13190:21;13201:9;;13190:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13175:45;;13261:41;13289:12;13261:9;:23;13271:12;;;;;;;;;;;13261:23;;;;;;;;;;;;;;;;:27;;:41;;;;:::i;:::-;13235:9;:23;13245:12;;;;;;;;;;;13235:23;;;;;;;;;;;;;;;:67;;;;13339:12;;;;;;;;;;;13322:44;;13331:6;13322:44;;;13353:12;13322:44;;;;;;:::i;:::-;;;;;;;;13123:255;13388:17;13408:34;13438:3;13408:25;13419:13;13408:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;13388:54;;13482:39;13511:9;13482;:24;13500:4;13482:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13455:9;:24;13473:4;13455:24;;;;;;;;;;;;;;;:66;;;;13562:4;13537:42;;13546:6;13537:42;;;13569:9;13537:42;;;;;;:::i;:::-;;;;;;;;13599:39;13625:12;13599:21;13610:9;13599:6;:10;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;13592:46;;;;;12448:1198;;;;;:::o;3107:222::-;3165:7;3194:1;3189;:6;3185:23;;3205:1;3198:8;;;;3185:23;3218:9;3234:1;3230;:5;;;;:::i;:::-;3218:17;;3263:1;3258;3254;:5;;;;:::i;:::-;:10;3246:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3320:1;3313:8;;;3107:222;;;;;:::o;3337:132::-;3395:7;3422:39;3426:1;3429;3422:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3415:46;;3337:132;;;;:::o;3477:189::-;3563:7;3595:1;3591;:5;3598:12;3583:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3622:9;3638:1;3634;:5;;;;:::i;:::-;3622:17;;3657:1;3650:8;;;3477:189;;;;;:::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;646:117;755:1;752;745: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:246::-;2320:1;2330:113;2344:6;2341:1;2338:13;2330:113;;;2429:1;2424:3;2420:11;2414:18;2410:1;2405:3;2401:11;2394:39;2366:2;2363:1;2359:10;2354:15;;2330:113;;;2477:1;2468:6;2463:3;2459:16;2452:27;2301:184;2239:246;;;:::o;2491:102::-;2532:6;2583:2;2579:7;2574:2;2567:5;2563:14;2559:28;2549:38;;2491:102;;;:::o;2599:377::-;2687:3;2715:39;2748:5;2715:39;:::i;:::-;2770:71;2834:6;2829:3;2770:71;:::i;:::-;2763:78;;2850:65;2908:6;2903:3;2896:4;2889:5;2885:16;2850:65;:::i;:::-;2940:29;2962:6;2940:29;:::i;:::-;2935:3;2931:39;2924:46;;2691:285;2599:377;;;;:::o;2982:313::-;3095:4;3133:2;3122:9;3118:18;3110:26;;3182:9;3176:4;3172:20;3168:1;3157:9;3153:17;3146:47;3210:78;3283:4;3274:6;3210:78;:::i;:::-;3202:86;;2982:313;;;;:::o;3301:126::-;3338:7;3378:42;3371:5;3367:54;3356:65;;3301:126;;;:::o;3433:96::-;3470:7;3499:24;3517:5;3499:24;:::i;:::-;3488:35;;3433:96;;;:::o;3535:122::-;3608:24;3626:5;3608:24;:::i;:::-;3601:5;3598:35;3588:63;;3647:1;3644;3637:12;3588:63;3535:122;:::o;3663:139::-;3709:5;3747:6;3734:20;3725:29;;3763:33;3790:5;3763:33;:::i;:::-;3663:139;;;;:::o;3808:474::-;3876:6;3884;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;4186:2;4212:53;4257:7;4248:6;4237:9;4233:22;4212:53;:::i;:::-;4202:63;;4157:118;3808:474;;;;;:::o;4288:90::-;4322:7;4365:5;4358:13;4351:21;4340:32;;4288:90;;;:::o;4384:109::-;4465:21;4480:5;4465:21;:::i;:::-;4460:3;4453:34;4384:109;;:::o;4499:210::-;4586:4;4624:2;4613:9;4609:18;4601:26;;4637:65;4699:1;4688:9;4684:17;4675:6;4637:65;:::i;:::-;4499:210;;;;:::o;4715:116::-;4785:21;4800:5;4785:21;:::i;:::-;4778:5;4775:32;4765:60;;4821:1;4818;4811:12;4765:60;4715:116;:::o;4837:133::-;4880:5;4918:6;4905:20;4896:29;;4934:30;4958:5;4934:30;:::i;:::-;4837:133;;;;:::o;4976:323::-;5032:6;5081:2;5069:9;5060:7;5056:23;5052:32;5049:119;;;5087:79;;:::i;:::-;5049:119;5207:1;5232:50;5274:7;5265:6;5254:9;5250:22;5232:50;:::i;:::-;5222:60;;5178:114;4976:323;;;;:::o;5305:329::-;5364:6;5413:2;5401:9;5392:7;5388:23;5384:32;5381:119;;;5419:79;;:::i;:::-;5381:119;5539:1;5564:53;5609:7;5600:6;5589:9;5585:22;5564:53;:::i;:::-;5554:63;;5510:117;5305:329;;;;:::o;5640:619::-;5717:6;5725;5733;5782:2;5770:9;5761:7;5757:23;5753:32;5750:119;;;5788:79;;:::i;:::-;5750:119;5908:1;5933:53;5978:7;5969:6;5958:9;5954:22;5933:53;:::i;:::-;5923:63;;5879:117;6035:2;6061:53;6106:7;6097:6;6086:9;6082:22;6061:53;:::i;:::-;6051:63;;6006:118;6163:2;6189:53;6234:7;6225:6;6214:9;6210:22;6189:53;:::i;:::-;6179:63;;6134:118;5640:619;;;;;:::o;6265:86::-;6300:7;6340:4;6333:5;6329:16;6318:27;;6265:86;;;:::o;6357:112::-;6440:22;6456:5;6440:22;:::i;:::-;6435:3;6428:35;6357:112;;:::o;6475:214::-;6564:4;6602:2;6591:9;6587:18;6579:26;;6615:67;6679:1;6668:9;6664:17;6655:6;6615:67;:::i;:::-;6475:214;;;;:::o;6695:765::-;6781:6;6789;6797;6805;6854:3;6842:9;6833:7;6829:23;6825:33;6822:120;;;6861:79;;:::i;:::-;6822:120;6981:1;7006:53;7051:7;7042:6;7031:9;7027:22;7006:53;:::i;:::-;6996:63;;6952:117;7108:2;7134:53;7179:7;7170:6;7159:9;7155:22;7134:53;:::i;:::-;7124:63;;7079:118;7236:2;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7207:118;7364:2;7390:53;7435:7;7426:6;7415:9;7411:22;7390:53;:::i;:::-;7380:63;;7335:118;6695:765;;;;;;;:::o;7466:329::-;7525:6;7574:2;7562:9;7553:7;7549:23;7545:32;7542:119;;;7580:79;;:::i;:::-;7542:119;7700:1;7725:53;7770:7;7761:6;7750:9;7746:22;7725:53;:::i;:::-;7715:63;;7671:117;7466:329;;;;:::o;7801:468::-;7866:6;7874;7923:2;7911:9;7902:7;7898:23;7894:32;7891:119;;;7929:79;;:::i;:::-;7891:119;8049:1;8074:53;8119:7;8110:6;8099:9;8095:22;8074:53;:::i;:::-;8064:63;;8020:117;8176:2;8202:50;8244:7;8235:6;8224:9;8220:22;8202:50;:::i;:::-;8192:60;;8147:115;7801:468;;;;;:::o;8275:118::-;8362:24;8380:5;8362:24;:::i;:::-;8357:3;8350:37;8275:118;;:::o;8399:222::-;8492:4;8530:2;8519:9;8515:18;8507:26;;8543:71;8611:1;8600:9;8596:17;8587:6;8543:71;:::i;:::-;8399:222;;;;:::o;8627:117::-;8736:1;8733;8726:12;8750:117;8859:1;8856;8849:12;8873:117;8982:1;8979;8972:12;9013:568;9086:8;9096:6;9146:3;9139:4;9131:6;9127:17;9123:27;9113:122;;9154:79;;:::i;:::-;9113:122;9267:6;9254:20;9244:30;;9297:18;9289:6;9286:30;9283:117;;;9319:79;;:::i;:::-;9283:117;9433:4;9425:6;9421:17;9409:29;;9487:3;9479:4;9471:6;9467:17;9457:8;9453:32;9450:41;9447:128;;;9494:79;;:::i;:::-;9447:128;9013:568;;;;;:::o;9587:698::-;9679:6;9687;9695;9744:2;9732:9;9723:7;9719:23;9715:32;9712:119;;;9750:79;;:::i;:::-;9712:119;9898:1;9887:9;9883:17;9870:31;9928:18;9920:6;9917:30;9914:117;;;9950:79;;:::i;:::-;9914:117;10063:80;10135:7;10126:6;10115:9;10111:22;10063:80;:::i;:::-;10045:98;;;;9841:312;10192:2;10218:50;10260:7;10251:6;10240:9;10236:22;10218:50;:::i;:::-;10208:60;;10163:115;9587:698;;;;;:::o;10291:468::-;10356:6;10364;10413:2;10401:9;10392:7;10388:23;10384:32;10381:119;;;10419:79;;:::i;:::-;10381:119;10539:1;10564:50;10606:7;10597:6;10586:9;10582:22;10564:50;:::i;:::-;10554:60;;10510:114;10663:2;10689:53;10734:7;10725:6;10714:9;10710:22;10689:53;:::i;:::-;10679:63;;10634:118;10291:468;;;;;:::o;10765:474::-;10833:6;10841;10890:2;10878:9;10869:7;10865:23;10861:32;10858:119;;;10896:79;;:::i;:::-;10858:119;11016:1;11041:53;11086:7;11077:6;11066:9;11062:22;11041:53;:::i;:::-;11031:63;;10987:117;11143:2;11169:53;11214:7;11205:6;11194:9;11190:22;11169:53;:::i;:::-;11159:63;;11114:118;10765:474;;;;;:::o;11245:60::-;11273:3;11294:5;11287:12;;11245:60;;;:::o;11311:142::-;11361:9;11394:53;11412:34;11421:24;11439:5;11421:24;:::i;:::-;11412:34;:::i;:::-;11394:53;:::i;:::-;11381:66;;11311:142;;;:::o;11459:126::-;11509:9;11542:37;11573:5;11542:37;:::i;:::-;11529:50;;11459:126;;;:::o;11591:143::-;11658:9;11691:37;11722:5;11691:37;:::i;:::-;11678:50;;11591:143;;;:::o;11740:165::-;11844:54;11892:5;11844:54;:::i;:::-;11839:3;11832:67;11740:165;;:::o;11911:256::-;12021:4;12059:2;12048:9;12044:18;12036:26;;12072:88;12157:1;12146:9;12142:17;12133:6;12072:88;:::i;:::-;11911:256;;;;:::o;12173:182::-;12313:34;12309:1;12301:6;12297:14;12290:58;12173:182;:::o;12361:366::-;12503:3;12524:67;12588:2;12583:3;12524:67;:::i;:::-;12517:74;;12600:93;12689:3;12600:93;:::i;:::-;12718:2;12713:3;12709:12;12702:19;;12361:366;;;:::o;12733:419::-;12899:4;12937:2;12926:9;12922:18;12914:26;;12986:9;12980:4;12976:20;12972:1;12961:9;12957:17;12950:47;13014:131;13140:4;13014:131;:::i;:::-;13006:139;;12733:419;;;:::o;13158:180::-;13206:77;13203:1;13196:88;13303:4;13300:1;13293:15;13327:4;13324:1;13317:15;13344:191;13384:3;13403:20;13421:1;13403:20;:::i;:::-;13398:25;;13437:20;13455:1;13437:20;:::i;:::-;13432:25;;13480:1;13477;13473:9;13466:16;;13501:3;13498:1;13495:10;13492:36;;;13508:18;;:::i;:::-;13492:36;13344:191;;;;:::o;13541:177::-;13681:29;13677:1;13669:6;13665:14;13658:53;13541:177;:::o;13724:366::-;13866:3;13887:67;13951:2;13946:3;13887:67;:::i;:::-;13880:74;;13963:93;14052:3;13963:93;:::i;:::-;14081:2;14076:3;14072:12;14065:19;;13724:366;;;:::o;14096:419::-;14262:4;14300:2;14289:9;14285:18;14277:26;;14349:9;14343:4;14339:20;14335:1;14324:9;14320:17;14313:47;14377:131;14503:4;14377:131;:::i;:::-;14369:139;;14096:419;;;:::o;14521:348::-;14561:7;14584:20;14602:1;14584:20;:::i;:::-;14579:25;;14618:20;14636:1;14618:20;:::i;:::-;14613:25;;14806:1;14738:66;14734:74;14731:1;14728:81;14723:1;14716:9;14709:17;14705:105;14702:131;;;14813:18;;:::i;:::-;14702:131;14861:1;14858;14854:9;14843:20;;14521:348;;;;:::o;14875:180::-;14923:77;14920:1;14913:88;15020:4;15017:1;15010:15;15044:4;15041:1;15034:15;15061:185;15101:1;15118:20;15136:1;15118:20;:::i;:::-;15113:25;;15152:20;15170:1;15152:20;:::i;:::-;15147:25;;15191:1;15181:35;;15196:18;;:::i;:::-;15181:35;15238:1;15235;15231:9;15226:14;;15061:185;;;;:::o;15252:178::-;15392:30;15388:1;15380:6;15376:14;15369:54;15252:178;:::o;15436:366::-;15578:3;15599:67;15663:2;15658:3;15599:67;:::i;:::-;15592:74;;15675:93;15764:3;15675:93;:::i;:::-;15793:2;15788:3;15784:12;15777:19;;15436:366;;;:::o;15808:419::-;15974:4;16012:2;16001:9;15997:18;15989:26;;16061:9;16055:4;16051:20;16047:1;16036:9;16032:17;16025:47;16089:131;16215:4;16089:131;:::i;:::-;16081:139;;15808:419;;;:::o;16233:332::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16405:71;16473:1;16462:9;16458:17;16449:6;16405:71;:::i;:::-;16486:72;16554:2;16543:9;16539:18;16530:6;16486:72;:::i;:::-;16233:332;;;;;:::o;16571:137::-;16625:5;16656:6;16650:13;16641:22;;16672:30;16696:5;16672:30;:::i;:::-;16571:137;;;;:::o;16714:345::-;16781:6;16830:2;16818:9;16809:7;16805:23;16801:32;16798:119;;;16836:79;;:::i;:::-;16798:119;16956:1;16981:61;17034:7;17025:6;17014:9;17010:22;16981:61;:::i;:::-;16971:71;;16927:125;16714:345;;;;:::o;17065:225::-;17205:34;17201:1;17193:6;17189:14;17182:58;17274:8;17269:2;17261:6;17257:15;17250:33;17065:225;:::o;17296:366::-;17438:3;17459:67;17523:2;17518:3;17459:67;:::i;:::-;17452:74;;17535:93;17624:3;17535:93;:::i;:::-;17653:2;17648:3;17644:12;17637:19;;17296:366;;;:::o;17668:419::-;17834:4;17872:2;17861:9;17857:18;17849:26;;17921:9;17915:4;17911:20;17907:1;17896:9;17892:17;17885:47;17949:131;18075:4;17949:131;:::i;:::-;17941:139;;17668:419;;;:::o;18093:178::-;18233:30;18229:1;18221:6;18217:14;18210:54;18093:178;:::o;18277:366::-;18419:3;18440:67;18504:2;18499:3;18440:67;:::i;:::-;18433:74;;18516:93;18605:3;18516:93;:::i;:::-;18634:2;18629:3;18625:12;18618:19;;18277:366;;;:::o;18649:419::-;18815:4;18853:2;18842:9;18838:18;18830:26;;18902:9;18896:4;18892:20;18888:1;18877:9;18873:17;18866:47;18930:131;19056:4;18930:131;:::i;:::-;18922:139;;18649:419;;;:::o;19074:180::-;19122:77;19119:1;19112:88;19219:4;19216:1;19209:15;19243:4;19240:1;19233:15;19260:233;19299:3;19322:24;19340:5;19322:24;:::i;:::-;19313:33;;19368:66;19361:5;19358:77;19355:103;;19438:18;;:::i;:::-;19355:103;19485:1;19478:5;19474:13;19467:20;;19260:233;;;:::o;19499:225::-;19639:34;19635:1;19627:6;19623:14;19616:58;19708:8;19703:2;19695:6;19691:15;19684:33;19499:225;:::o;19730:366::-;19872:3;19893:67;19957:2;19952:3;19893:67;:::i;:::-;19886:74;;19969:93;20058:3;19969:93;:::i;:::-;20087:2;20082:3;20078:12;20071:19;;19730:366;;;:::o;20102:419::-;20268:4;20306:2;20295:9;20291:18;20283:26;;20355:9;20349:4;20345:20;20341:1;20330:9;20326:17;20319:47;20383:131;20509:4;20383:131;:::i;:::-;20375:139;;20102:419;;;:::o;20527:177::-;20667:29;20663:1;20655:6;20651:14;20644:53;20527:177;:::o;20710:366::-;20852:3;20873:67;20937:2;20932:3;20873:67;:::i;:::-;20866:74;;20949:93;21038:3;20949:93;:::i;:::-;21067:2;21062:3;21058:12;21051:19;;20710:366;;;:::o;21082:419::-;21248:4;21286:2;21275:9;21271:18;21263:26;;21335:9;21329:4;21325:20;21321:1;21310:9;21306:17;21299:47;21363:131;21489:4;21363:131;:::i;:::-;21355:139;;21082:419;;;:::o;21507:194::-;21547:4;21567:20;21585:1;21567:20;:::i;:::-;21562:25;;21601:20;21619:1;21601:20;:::i;:::-;21596:25;;21645:1;21642;21638:9;21630:17;;21669:1;21663:4;21660:11;21657:37;;;21674:18;;:::i;:::-;21657:37;21507:194;;;;:::o;21707:170::-;21847:22;21843:1;21835:6;21831:14;21824:46;21707:170;:::o;21883:366::-;22025:3;22046:67;22110:2;22105:3;22046:67;:::i;:::-;22039:74;;22122:93;22211:3;22122:93;:::i;:::-;22240:2;22235:3;22231:12;22224:19;;21883:366;;;:::o;22255:419::-;22421:4;22459:2;22448:9;22444:18;22436:26;;22508:9;22502:4;22498:20;22494:1;22483:9;22479:17;22472:47;22536:131;22662:4;22536:131;:::i;:::-;22528:139;;22255:419;;;:::o;22680:167::-;22820:19;22816:1;22808:6;22804:14;22797:43;22680:167;:::o;22853:366::-;22995:3;23016:67;23080:2;23075:3;23016:67;:::i;:::-;23009:74;;23092:93;23181:3;23092:93;:::i;:::-;23210:2;23205:3;23201:12;23194:19;;22853:366;;;:::o;23225:419::-;23391:4;23429:2;23418:9;23414:18;23406:26;;23478:9;23472:4;23468:20;23464:1;23453:9;23449:17;23442:47;23506:131;23632:4;23506:131;:::i;:::-;23498:139;;23225:419;;;:::o;23650:172::-;23790:24;23786:1;23778:6;23774:14;23767:48;23650:172;:::o;23828:366::-;23970:3;23991:67;24055:2;24050:3;23991:67;:::i;:::-;23984:74;;24067:93;24156:3;24067:93;:::i;:::-;24185:2;24180:3;24176:12;24169:19;;23828:366;;;:::o;24200:419::-;24366:4;24404:2;24393:9;24389:18;24381:26;;24453:9;24447:4;24443:20;24439:1;24428:9;24424:17;24417:47;24481:131;24607:4;24481:131;:::i;:::-;24473:139;;24200:419;;;:::o;24625:161::-;24765:13;24761:1;24753:6;24749:14;24742:37;24625:161;:::o;24792:366::-;24934:3;24955:67;25019:2;25014:3;24955:67;:::i;:::-;24948:74;;25031:93;25120:3;25031:93;:::i;:::-;25149:2;25144:3;25140:12;25133:19;;24792:366;;;:::o;25164:419::-;25330:4;25368:2;25357:9;25353:18;25345:26;;25417:9;25411:4;25407:20;25403:1;25392:9;25388:17;25381:47;25445:131;25571:4;25445:131;:::i;:::-;25437:139;;25164:419;;;:::o;25589:170::-;25729:22;25725:1;25717:6;25713:14;25706:46;25589:170;:::o;25765:366::-;25907:3;25928:67;25992:2;25987:3;25928:67;:::i;:::-;25921:74;;26004:93;26093:3;26004:93;:::i;:::-;26122:2;26117:3;26113:12;26106:19;;25765:366;;;:::o;26137:419::-;26303:4;26341:2;26330:9;26326:18;26318:26;;26390:9;26384:4;26380:20;26376:1;26365:9;26361:17;26354:47;26418:131;26544:4;26418:131;:::i;:::-;26410:139;;26137:419;;;:::o;26562:180::-;26610:77;26607:1;26600:88;26707:4;26704:1;26697:15;26731:4;26728:1;26721:15;26748:143;26805:5;26836:6;26830:13;26821:22;;26852:33;26879:5;26852:33;:::i;:::-;26748:143;;;;:::o;26897:351::-;26967:6;27016:2;27004:9;26995:7;26991:23;26987:32;26984:119;;;27022:79;;:::i;:::-;26984:119;27142:1;27167:64;27223:7;27214:6;27203:9;27199:22;27167:64;:::i;:::-;27157:74;;27113:128;26897:351;;;;:::o;27254:85::-;27299:7;27328:5;27317:16;;27254:85;;;:::o;27345:158::-;27403:9;27436:61;27454:42;27463:32;27489:5;27463:32;:::i;:::-;27454:42;:::i;:::-;27436:61;:::i;:::-;27423:74;;27345:158;;;:::o;27509:147::-;27604:45;27643:5;27604:45;:::i;:::-;27599:3;27592:58;27509:147;;:::o;27662:114::-;27729:6;27763:5;27757:12;27747:22;;27662:114;;;:::o;27782:184::-;27881:11;27915:6;27910:3;27903:19;27955:4;27950:3;27946:14;27931:29;;27782:184;;;;:::o;27972:132::-;28039:4;28062:3;28054:11;;28092:4;28087:3;28083:14;28075:22;;27972:132;;;:::o;28110:108::-;28187:24;28205:5;28187:24;:::i;:::-;28182:3;28175:37;28110:108;;:::o;28224:179::-;28293:10;28314:46;28356:3;28348:6;28314:46;:::i;:::-;28392:4;28387:3;28383:14;28369:28;;28224:179;;;;:::o;28409:113::-;28479:4;28511;28506:3;28502:14;28494:22;;28409:113;;;:::o;28558:732::-;28677:3;28706:54;28754:5;28706:54;:::i;:::-;28776:86;28855:6;28850:3;28776:86;:::i;:::-;28769:93;;28886:56;28936:5;28886:56;:::i;:::-;28965:7;28996:1;28981:284;29006:6;29003:1;29000:13;28981:284;;;29082:6;29076:13;29109:63;29168:3;29153:13;29109:63;:::i;:::-;29102:70;;29195:60;29248:6;29195:60;:::i;:::-;29185:70;;29041:224;29028:1;29025;29021:9;29016:14;;28981:284;;;28985:14;29281:3;29274:10;;28682:608;;;28558:732;;;;:::o;29296:831::-;29559:4;29597:3;29586:9;29582:19;29574:27;;29611:71;29679:1;29668:9;29664:17;29655:6;29611:71;:::i;:::-;29692:80;29768:2;29757:9;29753:18;29744:6;29692:80;:::i;:::-;29819:9;29813:4;29809:20;29804:2;29793:9;29789:18;29782:48;29847:108;29950:4;29941:6;29847:108;:::i;:::-;29839:116;;29965:72;30033:2;30022:9;30018:18;30009:6;29965:72;:::i;:::-;30047:73;30115:3;30104:9;30100:19;30091:6;30047:73;:::i;:::-;29296:831;;;;;;;;:::o;30133:147::-;30234:11;30271:3;30256:18;;30133:147;;;;:::o;30286:114::-;;:::o;30406:398::-;30565:3;30586:83;30667:1;30662:3;30586:83;:::i;:::-;30579:90;;30678:93;30767:3;30678:93;:::i;:::-;30796:1;30791:3;30787:11;30780:18;;30406:398;;;:::o;30810:379::-;30994:3;31016:147;31159:3;31016:147;:::i;:::-;31009:154;;31180:3;31173:10;;30810:379;;;:::o;31195:807::-;31444:4;31482:3;31471:9;31467:19;31459:27;;31496:71;31564:1;31553:9;31549:17;31540:6;31496:71;:::i;:::-;31577:72;31645:2;31634:9;31630:18;31621:6;31577:72;:::i;:::-;31659:80;31735:2;31724:9;31720:18;31711:6;31659:80;:::i;:::-;31749;31825:2;31814:9;31810:18;31801:6;31749:80;:::i;:::-;31839:73;31907:3;31896:9;31892:19;31883:6;31839:73;:::i;:::-;31922;31990:3;31979:9;31975:19;31966:6;31922:73;:::i;:::-;31195:807;;;;;;;;;:::o;32008:143::-;32065:5;32096:6;32090:13;32081:22;;32112:33;32139:5;32112:33;:::i;:::-;32008:143;;;;:::o;32157:663::-;32245:6;32253;32261;32310:2;32298:9;32289:7;32285:23;32281:32;32278:119;;;32316:79;;:::i;:::-;32278:119;32436:1;32461:64;32517:7;32508:6;32497:9;32493:22;32461:64;:::i;:::-;32451:74;;32407:128;32574:2;32600:64;32656:7;32647:6;32636:9;32632:22;32600:64;:::i;:::-;32590:74;;32545:129;32713:2;32739:64;32795:7;32786:6;32775:9;32771:22;32739:64;:::i;:::-;32729:74;;32684:129;32157:663;;;;;:::o;32826:332::-;32947:4;32985:2;32974:9;32970:18;32962:26;;32998:71;33066:1;33055:9;33051:17;33042:6;32998:71;:::i;:::-;33079:72;33147:2;33136:9;33132:18;33123:6;33079:72;:::i;:::-;32826:332;;;;;:::o;33164:220::-;33304:34;33300:1;33292:6;33288:14;33281:58;33373:3;33368:2;33360:6;33356:15;33349:28;33164:220;:::o;33390:366::-;33532:3;33553:67;33617:2;33612:3;33553:67;:::i;:::-;33546:74;;33629:93;33718:3;33629:93;:::i;:::-;33747:2;33742:3;33738:12;33731:19;;33390:366;;;:::o;33762:419::-;33928:4;33966:2;33955:9;33951:18;33943:26;;34015:9;34009:4;34005:20;34001:1;33990:9;33986:17;33979:47;34043:131;34169:4;34043:131;:::i;:::-;34035:139;;33762:419;;;:::o

Swarm Source

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