ETH Price: $2,966.25 (-1.54%)
Gas: 3 Gwei

Token

Alien Milady (ALIEN)
 

Overview

Max Total Supply

1,000,000,000 ALIEN

Holders

506

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
autom8ed.eth
Balance
195,948.038108551269698312 ALIEN

Value
$0.00
0x2ba34c711fbd3ab880f32c87889191a663152400
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:
AlienToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

}

contract AlienToken is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Alien Milady";
    string private _symbol = "ALIEN";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyMarketingFee = 2;
    uint256 public _sellMarketingFee = 2;

    address public Marketing = address(0xC59585ddF9236e67264944Ea1aFC9394a61e84bf);
    
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);     // 1%
    uint256 public _walletMax = _totalSupply.mul(1).div(100);        // 1%

    uint256 public swapThreshold = 500_000 * 10**_decimals;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;
    bool public normalizeTrade;

    bool tradingActive;

    bool public swapEnabled = true;
    bool public swapbylimit = false;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        address _owner = address(0xe938F21c80D9D344C8e7ebC989113Db63cb26bFd);

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[_owner] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

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

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

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

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

        }

    }

    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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyMarketingFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellMarketingFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function launch() public onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        tradingActive = true;
        swapEnabled = true;
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 2) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 2 && block.number <= launchedAt + 20) {
            dynamicSetter(45,45);
        }
        if (block.number > launchedAt + 20 && block.number <= launchedAt + 100) {
            dynamicSetter(5,5);
        }
        if (block.number > launchedAt + 100) {
            dynamicSetter(2,2);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyMarketingFee = _buy;
        _sellMarketingFee = _Sell;
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

       if(amountReceived > 0) payable(Marketing).transfer(amountReceived);

    }

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

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyOwner {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buyFee, uint _sellFee) external onlyOwner {    
        _buyMarketingFee = _buyFee;
        _sellMarketingFee = _sellFee;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        Marketing = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600c81526020017f416c69656e204d696c6164790000000000000000000000000000000000000000815250600190805190602001906200005192919062000ef8565b506040518060400160405280600581526020017f414c49454e000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000ef8565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506002600455600260055573c59585ddf9236e67264944ea1afc9394a61e84bf600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a620001a7919062001142565b633b9aca00620001b8919062001193565b600e55620001f26064620001de6001600e5462000cee60201b620023011790919060201c565b62000d7260201b6200237c1790919060201c565b600f556200022c6064620002186001600e5462000cee60201b620023011790919060201c565b62000d7260201b6200237c1790919060201c565b601055600360009054906101000a900460ff16600a6200024d919062001142565b6207a1206200025d919062001193565b6011556001601460026101000a81548160ff0219169083151502179055506000601460036101000a81548160ff0219169083151502179055506001601460046101000a81548160ff0219169083151502179055506001601460056101000a81548160ff021916908315150217905550348015620002d957600080fd5b50620002fa620002ee62000dc460201b60201c565b62000dcc60201b60201c565b600073e938f21c80d9d344c8e7ebc989113db63cb26bfd90506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000378573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039e91906200125e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200125e565b6040518363ffffffff1660e01b81526004016200044b929190620012a1565b6020604051808303816000875af11580156200046b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049191906200125e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000cde9190620012df565b60405180910390a3505062001528565b60008083141562000d03576000905062000d6c565b6000828462000d13919062001193565b905082848262000d2491906200132b565b1462000d67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d5e90620013ea565b60405180910390fd5b809150505b92915050565b600062000dbc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e9060201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ed191906200149f565b60405180910390fd5b506000838562000eeb91906200132b565b9050809150509392505050565b82805462000f0690620014f2565b90600052602060002090601f01602090048101928262000f2a576000855562000f76565b82601f1062000f4557805160ff191683800117855562000f76565b8280016001018555821562000f76579182015b8281111562000f7557825182559160200191906001019062000f58565b5b50905062000f85919062000f89565b5090565b5b8082111562000fa457600081600090555060010162000f8a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001036578086048111156200100e576200100d62000fa8565b5b60018516156200101e5780820291505b80810290506200102e8562000fd7565b945062000fee565b94509492505050565b60008262001051576001905062001124565b8162001061576000905062001124565b81600181146200107a57600281146200108557620010bb565b600191505062001124565b60ff8411156200109a576200109962000fa8565b5b8360020a915084821115620010b457620010b362000fa8565b5b5062001124565b5060208310610133831016604e8410600b8410161715620010f55782820a905083811115620010ef57620010ee62000fa8565b5b62001124565b62001104848484600162000fe4565b925090508184048111156200111e576200111d62000fa8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200114f826200112b565b91506200115c8362001135565b92506200118b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200103f565b905092915050565b6000620011a0826200112b565b9150620011ad836200112b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620011e957620011e862000fa8565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200122682620011f9565b9050919050565b620012388162001219565b81146200124457600080fd5b50565b60008151905062001258816200122d565b92915050565b600060208284031215620012775762001276620011f4565b5b6000620012878482850162001247565b91505092915050565b6200129b8162001219565b82525050565b6000604082019050620012b8600083018562001290565b620012c7602083018462001290565b9392505050565b620012d9816200112b565b82525050565b6000602082019050620012f66000830184620012ce565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062001338826200112b565b915062001345836200112b565b925082620013585762001357620012fc565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620013d260218362001363565b9150620013df8262001374565b604082019050919050565b600060208201905081810360008301526200140581620013c3565b9050919050565b600081519050919050565b60005b83811015620014375780820151818401526020810190506200141a565b8381111562001447576000848401525b50505050565b6000601f19601f8301169050919050565b60006200146b826200140c565b62001477818562001363565b93506200148981856020860162001417565b62001494816200144d565b840191505092915050565b60006020820190508181036000830152620014bb81846200145e565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200150b57607f821691505b60208210811415620015225762001521620014c3565b5b50919050565b60805160a0516149ff6200155c60003960008181610e420152610fa7015260008181610f7b0152610fd301526149ff6000f3fe60806040526004361061031e5760003560e01c80637d1db4a5116101ab578063c8607952116100f7578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610bd3578063f2fde38b14610bfe578063f71b9bbf14610c27578063f872858a14610c5057610325565b8063e6b2603b14610b68578063e9fd339414610b7f578063ee828db314610baa57610325565b8063d4e43fb3116100d1578063d4e43fb314610aae578063db886f2314610ad7578063dd62ed3e14610b02578063df8408fe14610b3f57610325565b8063c860795214610a1d578063c867d60b14610a48578063cea9d26f14610a8557610325565b8063a9059cbb11610164578063bf56b3711161013e578063bf56b37114610973578063c16dd4a41461099e578063c5d24189146109c7578063c6d2577d146109f257610325565b8063a9059cbb146108e4578063adc0d09214610921578063ae85ade61461094a57610325565b80637d1db4a5146107be578063807c2d9c146107e95780638b42507f146108145780638da5cb5b1461085157806395d89b411461087c578063a457c2d7146108a757610325565b80633ecad2711161026a5780635d098b38116102235780636ddd1713116101fd5780636ddd17131461071657806370a0823114610741578063715018a61461077e578063728d41c91461079557610325565b80635d098b38146106995780635e42358c146106c2578063651a8987146106ed57610325565b80633ecad2711461057b5780634974d88f146105b857806352f7c988146105e15780635342acb41461060a57806359fac517146106475780635c85974f1461067057610325565b8063111a4651116102d757806327c8f835116102b157806327c8f835146104bd5780632b112e49146104e8578063313ce56714610513578063395093511461053e57610325565b8063111a46511461042a57806318160ddd1461045557806323b872dd1461048057610325565b806301339c211461032a5780630445b6671461034157806306fdde031461036c5780630758d924146103975780630930907b146103c2578063095ea7b3146103ed57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610c7b565b005b34801561034d57600080fd5b50610356610d82565b6040516103639190613883565b60405180910390f35b34801561037857600080fd5b50610381610d88565b60405161038e9190613937565b60405180910390f35b3480156103a357600080fd5b506103ac610e1a565b6040516103b991906139d8565b60405180910390f35b3480156103ce57600080fd5b506103d7610e40565b6040516103e49190613a14565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613a8c565b610e64565b6040516104219190613ae7565b60405180910390f35b34801561043657600080fd5b5061043f610e82565b60405161044c9190613ae7565b60405180910390f35b34801561046157600080fd5b5061046a610e95565b6040516104779190613883565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613b02565b610e9f565b6040516104b49190613ae7565b60405180910390f35b3480156104c957600080fd5b506104d2610f79565b6040516104df9190613a14565b60405180910390f35b3480156104f457600080fd5b506104fd610f9d565b60405161050a9190613883565b60405180910390f35b34801561051f57600080fd5b5061052861101b565b6040516105359190613b71565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613a8c565b611032565b6040516105729190613ae7565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613b8c565b6110e5565b6040516105af9190613ae7565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190613be5565b611105565b005b3480156105ed57600080fd5b5061060860048036038101906106039190613c12565b61119e565b005b34801561061657600080fd5b50610631600480360381019061062c9190613b8c565b61122c565b60405161063e9190613ae7565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190613b8c565b61124c565b005b34801561067c57600080fd5b5061069760048036038101906106929190613c52565b61130c565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190613b8c565b611392565b005b3480156106ce57600080fd5b506106d7611452565b6040516106e49190613ae7565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190613c7f565b611465565b005b34801561072257600080fd5b5061072b61153c565b6040516107389190613ae7565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613b8c565b61154f565b6040516107759190613883565b60405180910390f35b34801561078a57600080fd5b50610793611598565b005b3480156107a157600080fd5b506107bc60048036038101906107b79190613c52565b611620565b005b3480156107ca57600080fd5b506107d36116a6565b6040516107e09190613883565b60405180910390f35b3480156107f557600080fd5b506107fe6116ac565b60405161080b9190613883565b60405180910390f35b34801561082057600080fd5b5061083b60048036038101906108369190613b8c565b6116b2565b6040516108489190613ae7565b60405180910390f35b34801561085d57600080fd5b506108666116d2565b6040516108739190613a14565b60405180910390f35b34801561088857600080fd5b506108916116fb565b60405161089e9190613937565b60405180910390f35b3480156108b357600080fd5b506108ce60048036038101906108c99190613a8c565b61178d565b6040516108db9190613ae7565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a8c565b61185a565b6040516109189190613ae7565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613c52565b611879565b005b34801561095657600080fd5b50610971600480360381019061096c9190613c7f565b6118ff565b005b34801561097f57600080fd5b506109886119d6565b6040516109959190613883565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613c7f565b6119dc565b005b3480156109d357600080fd5b506109dc611b11565b6040516109e99190613883565b60405180910390f35b3480156109fe57600080fd5b50610a07611b17565b604051610a149190613883565b60405180910390f35b348015610a2957600080fd5b50610a32611b1d565b604051610a3f9190613883565b60405180910390f35b348015610a5457600080fd5b50610a6f6004803603810190610a6a9190613b8c565b611b23565b604051610a7c9190613ae7565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa79190613b02565b611b43565b005b348015610aba57600080fd5b50610ad56004803603810190610ad09190613cbf565b611d01565b005b348015610ae357600080fd5b50610aec611db5565b604051610af99190613a14565b60405180910390f35b348015610b0e57600080fd5b50610b296004803603810190610b249190613cff565b611ddb565b604051610b369190613883565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b619190613c7f565b611e62565b005b348015610b7457600080fd5b50610b7d611f39565b005b348015610b8b57600080fd5b50610b94612064565b604051610ba19190613ae7565b60405180910390f35b348015610bb657600080fd5b50610bd16004803603810190610bcc9190613be5565b612077565b005b348015610bdf57600080fd5b50610be8612110565b604051610bf59190613a14565b60405180910390f35b348015610c0a57600080fd5b50610c256004803603810190610c209190613b8c565b612136565b005b348015610c3357600080fd5b50610c4e6004803603810190610c499190613b8c565b61222e565b005b348015610c5c57600080fd5b50610c656122ee565b604051610c729190613ae7565b60405180910390f35b610c836123c6565b73ffffffffffffffffffffffffffffffffffffffff16610ca16116d2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613d8b565b60405180910390fd5b600060125414610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613df7565b60405180910390fd5b43601281905550426013819055506001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550565b60115481565b606060018054610d9790613e46565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc390613e46565b8015610e105780601f10610de557610100808354040283529160200191610e10565b820191906000526020600020905b815481529060010190602001808311610df357829003601f168201915b5050505050905090565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e78610e716123c6565b84846123ce565b6001905092915050565b601460009054906101000a900460ff1681565b6000600e54905090565b6000610eac848484612599565b50610f6e84610eb96123c6565b610f698560405180606001604052806028815260200161497d60289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611016610fcb7f000000000000000000000000000000000000000000000000000000000000000061154f565b611008610ff77f000000000000000000000000000000000000000000000000000000000000000061154f565b600e54612ce490919063ffffffff16565b612ce490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006110db61103f6123c6565b846110d685600960006110506123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b6123ce565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61110d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661112b6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890613d8b565b60405180910390fd5b80601460056101000a81548160ff02191690831515021790555050565b6111a66123c6565b73ffffffffffffffffffffffffffffffffffffffff166111c46116d2565b73ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190613d8b565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112546123c6565b73ffffffffffffffffffffffffffffffffffffffff166112726116d2565b73ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613d8b565b60405180910390fd5b80601460066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113146123c6565b73ffffffffffffffffffffffffffffffffffffffff166113326116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613d8b565b60405180910390fd5b80600f8190555050565b61139a6123c6565b73ffffffffffffffffffffffffffffffffffffffff166113b86116d2565b73ffffffffffffffffffffffffffffffffffffffff161461140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590613d8b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460049054906101000a900460ff1681565b61146d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661148b6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613d8b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115a06123c6565b73ffffffffffffffffffffffffffffffffffffffff166115be6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613d8b565b60405180910390fd5b61161e6000612d8c565b565b6116286123c6565b73ffffffffffffffffffffffffffffffffffffffff166116466116d2565b73ffffffffffffffffffffffffffffffffffffffff161461169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390613d8b565b60405180910390fd5b8060108190555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461170a90613e46565b80601f016020809104026020016040519081016040528092919081815260200182805461173690613e46565b80156117835780601f1061175857610100808354040283529160200191611783565b820191906000526020600020905b81548152906001019060200180831161176657829003601f168201915b5050505050905090565b600061185061179a6123c6565b8461184b856040518060600160405280602581526020016149a560259139600960006117c46123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b6001905092915050565b600061186e6118676123c6565b8484612599565b506001905092915050565b6118816123c6565b73ffffffffffffffffffffffffffffffffffffffff1661189f6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec90613d8b565b60405180910390fd5b8060118190555050565b6119076123c6565b73ffffffffffffffffffffffffffffffffffffffff166119256116d2565b73ffffffffffffffffffffffffffffffffffffffff161461197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613d8b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6119e46123c6565b73ffffffffffffffffffffffffffffffffffffffff16611a026116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613d8b565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611b0d5780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60045481565b60135481565b60055481565b600c6020528060005260406000206000915054906101000a900460ff1681565b611b4b6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611b696116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb690613d8b565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611beb929190613e78565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c759190613ee8565b6000604051808303816000865af19150503d8060008114611cb2576040519150601f19603f3d011682016040523d82523d6000602084013e611cb7565b606091505b5050905080611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290613f4b565b60405180910390fd5b50505050565b611d096123c6565b73ffffffffffffffffffffffffffffffffffffffff16611d276116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613d8b565b60405180910390fd5b81601460026101000a81548160ff02191690831515021790555080601460036101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e6a6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611e886116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613d8b565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611f416123c6565b73ffffffffffffffffffffffffffffffffffffffff16611f5f6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90613d8b565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611fdb90613f91565b60006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b5050905080612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890613ff2565b60405180910390fd5b50565b601460039054906101000a900460ff1681565b61207f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661209d6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613d8b565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61213e6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661215c6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613d8b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614084565b60405180910390fd5b61222b81612d8c565b50565b6122366123c6565b73ffffffffffffffffffffffffffffffffffffffff166122546116d2565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a190613d8b565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460059054906101000a900460ff1681565b6000808314156123145760009050612376565b6000828461232291906140d3565b9050828482612331919061415c565b14612371576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612368906141ff565b60405180910390fd5b809150505b92915050565b60006123be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e50565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561243e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243590614291565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a590614323565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161258c9190613883565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906143b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561267a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267190614447565b60405180910390fd5b600082116126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b4906144d9565b60405180910390fd5b601560149054906101000a900460ff16156126e4576126dd848484612eb3565b9050612c79565b601460019054906101000a900460ff166127d957600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127995750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf90614545565b60405180910390fd5b5b6000601254141580156127f95750601460009054906101000a900460ff16155b1561280757612806613086565b5b60006128123061154f565b9050600060115482101590508080156128385750601560149054906101000a900460ff16155b801561288e5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128a65750601460029054906101000a900460ff165b156128b5576128b48261315e565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129595750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129715750601460049054906101000a900460ff165b156129bc57600f548411156129bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b2906145d7565b60405180910390fd5b5b612a45846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612a94878761324c565b612aa857612aa38787876133b7565b612aaa565b845b9050601460059054906101000a900460ff168015612b125750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b7757601054612b3582612b278961154f565b612d2e90919063ffffffff16565b1115612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90614643565b60405180910390fd5b5b612bc981600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c699190613883565b60405180910390a3600193505050505b9392505050565b6000838311158290612cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cbf9190613937565b60405180910390fd5b5060008385612cd79190614663565b9050809150509392505050565b6000612d2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c80565b905092915050565b6000808284612d3d9190614697565b905083811015612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7990614739565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8e9190613937565b60405180910390fd5b5060008385612ea6919061415c565b9050809150509392505050565b6000612f3e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130739190613883565b60405180910390a3600190509392505050565b60026012546130959190614697565b43116130a7576130a66063806135dc565b5b60026012546130b69190614697565b431180156130d2575060146012546130ce9190614697565b4311155b156130e3576130e2602d806135dc565b5b60146012546130f29190614697565b4311801561310e5750606460125461310a9190614697565b4311155b1561311f5761311e6005806135dc565b5b606460125461312e9190614697565b43111561315c576131406002806135dc565b6001601460006101000a81548160ff0219169083151502179055505b565b6001601560146101000a81548160ff021916908315150217905550601460039054906101000a900460ff16156131945760115490505b60004790506131a2826135ee565b60006131b78247612ce490919063ffffffff16565b9050600081111561322c57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561322a573d6000803e3d6000fd5b505b50506000601560146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132ef5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132fd57600190506133b1565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061339e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156133ac57600090506133b1565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561343c576134356007546134276004548661230190919063ffffffff16565b61237c90919063ffffffff16565b90506134bb565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134ba576134b76007546134a96005548661230190919063ffffffff16565b61237c90919063ffffffff16565b90505b5b60008111156135bf5761351681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135b69190613883565b60405180910390a35b6135d28184612ce490919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff81111561360b5761360a614759565b5b6040519080825280602002602001820160405280156136395781602001602082028036833780820191505090505b509050308160008151811061365157613650614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371c91906147cc565b816001815181106137305761372f614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061379730601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123ce565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137fb9594939291906148f2565b600060405180830381600087803b15801561381557600080fd5b505af1158015613829573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161385e92919061494c565b60405180910390a15050565b6000819050919050565b61387d8161386a565b82525050565b60006020820190506138986000830184613874565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138d85780820151818401526020810190506138bd565b838111156138e7576000848401525b50505050565b6000601f19601f8301169050919050565b60006139098261389e565b61391381856138a9565b93506139238185602086016138ba565b61392c816138ed565b840191505092915050565b6000602082019050818103600083015261395181846138fe565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061399e61399961399484613959565b613979565b613959565b9050919050565b60006139b082613983565b9050919050565b60006139c2826139a5565b9050919050565b6139d2816139b7565b82525050565b60006020820190506139ed60008301846139c9565b92915050565b60006139fe82613959565b9050919050565b613a0e816139f3565b82525050565b6000602082019050613a296000830184613a05565b92915050565b600080fd5b613a3d816139f3565b8114613a4857600080fd5b50565b600081359050613a5a81613a34565b92915050565b613a698161386a565b8114613a7457600080fd5b50565b600081359050613a8681613a60565b92915050565b60008060408385031215613aa357613aa2613a2f565b5b6000613ab185828601613a4b565b9250506020613ac285828601613a77565b9150509250929050565b60008115159050919050565b613ae181613acc565b82525050565b6000602082019050613afc6000830184613ad8565b92915050565b600080600060608486031215613b1b57613b1a613a2f565b5b6000613b2986828701613a4b565b9350506020613b3a86828701613a4b565b9250506040613b4b86828701613a77565b9150509250925092565b600060ff82169050919050565b613b6b81613b55565b82525050565b6000602082019050613b866000830184613b62565b92915050565b600060208284031215613ba257613ba1613a2f565b5b6000613bb084828501613a4b565b91505092915050565b613bc281613acc565b8114613bcd57600080fd5b50565b600081359050613bdf81613bb9565b92915050565b600060208284031215613bfb57613bfa613a2f565b5b6000613c0984828501613bd0565b91505092915050565b60008060408385031215613c2957613c28613a2f565b5b6000613c3785828601613a77565b9250506020613c4885828601613a77565b9150509250929050565b600060208284031215613c6857613c67613a2f565b5b6000613c7684828501613a77565b91505092915050565b60008060408385031215613c9657613c95613a2f565b5b6000613ca485828601613a4b565b9250506020613cb585828601613bd0565b9150509250929050565b60008060408385031215613cd657613cd5613a2f565b5b6000613ce485828601613bd0565b9250506020613cf585828601613bd0565b9150509250929050565b60008060408385031215613d1657613d15613a2f565b5b6000613d2485828601613a4b565b9250506020613d3585828601613a4b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d756020836138a9565b9150613d8082613d3f565b602082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b6000613de16011836138a9565b9150613dec82613dab565b602082019050919050565b60006020820190508181036000830152613e1081613dd4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e5e57607f821691505b60208210811415613e7257613e71613e17565b5b50919050565b6000604082019050613e8d6000830185613a05565b613e9a6020830184613874565b9392505050565b600081519050919050565b600081905092915050565b6000613ec282613ea1565b613ecc8185613eac565b9350613edc8185602086016138ba565b80840191505092915050565b6000613ef48284613eb7565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613f356014836138a9565b9150613f4082613eff565b602082019050919050565b60006020820190508181036000830152613f6481613f28565b9050919050565b50565b6000613f7b600083613eac565b9150613f8682613f6b565b600082019050919050565b6000613f9c82613f6e565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613fdc6014836138a9565b9150613fe782613fa6565b602082019050919050565b6000602082019050818103600083015261400b81613fcf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061406e6026836138a9565b915061407982614012565b604082019050919050565b6000602082019050818103600083015261409d81614061565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140de8261386a565b91506140e98361386a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614122576141216140a4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141678261386a565b91506141728361386a565b9250826141825761418161412d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e96021836138a9565b91506141f48261418d565b604082019050919050565b60006020820190508181036000830152614218816141dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061427b6024836138a9565b91506142868261421f565b604082019050919050565b600060208201905081810360008301526142aa8161426e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061430d6022836138a9565b9150614318826142b1565b604082019050919050565b6000602082019050818103600083015261433c81614300565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061439f6025836138a9565b91506143aa82614343565b604082019050919050565b600060208201905081810360008301526143ce81614392565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144316023836138a9565b915061443c826143d5565b604082019050919050565b6000602082019050818103600083015261446081614424565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144c36029836138a9565b91506144ce82614467565b604082019050919050565b600060208201905081810360008301526144f2816144b6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061452f6016836138a9565b915061453a826144f9565b602082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006145c16028836138a9565b91506145cc82614565565b604082019050919050565b600060208201905081810360008301526145f0816145b4565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b600061462d601b836138a9565b9150614638826145f7565b602082019050919050565b6000602082019050818103600083015261465c81614620565b9050919050565b600061466e8261386a565b91506146798361386a565b92508282101561468c5761468b6140a4565b5b828203905092915050565b60006146a28261386a565b91506146ad8361386a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146e2576146e16140a4565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614723601b836138a9565b915061472e826146ed565b602082019050919050565b6000602082019050818103600083015261475281614716565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506147c681613a34565b92915050565b6000602082840312156147e2576147e1613a2f565b5b60006147f0848285016147b7565b91505092915050565b6000819050919050565b600061481e614819614814846147f9565b613979565b61386a565b9050919050565b61482e81614803565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614869816139f3565b82525050565b600061487b8383614860565b60208301905092915050565b6000602082019050919050565b600061489f82614834565b6148a9818561483f565b93506148b483614850565b8060005b838110156148e55781516148cc888261486f565b97506148d783614887565b9250506001810190506148b8565b5085935050505092915050565b600060a0820190506149076000830188613874565b6149146020830187614825565b81810360408301526149268186614894565b90506149356060830185613a05565b6149426080830184613874565b9695505050505050565b60006040820190506149616000830185613874565b81810360208301526149738184614894565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122054647f91e865ea1e8921489e00e365587ba4a41fdc5ef0f197ef782b0a78719d64736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c80637d1db4a5116101ab578063c8607952116100f7578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610bd3578063f2fde38b14610bfe578063f71b9bbf14610c27578063f872858a14610c5057610325565b8063e6b2603b14610b68578063e9fd339414610b7f578063ee828db314610baa57610325565b8063d4e43fb3116100d1578063d4e43fb314610aae578063db886f2314610ad7578063dd62ed3e14610b02578063df8408fe14610b3f57610325565b8063c860795214610a1d578063c867d60b14610a48578063cea9d26f14610a8557610325565b8063a9059cbb11610164578063bf56b3711161013e578063bf56b37114610973578063c16dd4a41461099e578063c5d24189146109c7578063c6d2577d146109f257610325565b8063a9059cbb146108e4578063adc0d09214610921578063ae85ade61461094a57610325565b80637d1db4a5146107be578063807c2d9c146107e95780638b42507f146108145780638da5cb5b1461085157806395d89b411461087c578063a457c2d7146108a757610325565b80633ecad2711161026a5780635d098b38116102235780636ddd1713116101fd5780636ddd17131461071657806370a0823114610741578063715018a61461077e578063728d41c91461079557610325565b80635d098b38146106995780635e42358c146106c2578063651a8987146106ed57610325565b80633ecad2711461057b5780634974d88f146105b857806352f7c988146105e15780635342acb41461060a57806359fac517146106475780635c85974f1461067057610325565b8063111a4651116102d757806327c8f835116102b157806327c8f835146104bd5780632b112e49146104e8578063313ce56714610513578063395093511461053e57610325565b8063111a46511461042a57806318160ddd1461045557806323b872dd1461048057610325565b806301339c211461032a5780630445b6671461034157806306fdde031461036c5780630758d924146103975780630930907b146103c2578063095ea7b3146103ed57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610c7b565b005b34801561034d57600080fd5b50610356610d82565b6040516103639190613883565b60405180910390f35b34801561037857600080fd5b50610381610d88565b60405161038e9190613937565b60405180910390f35b3480156103a357600080fd5b506103ac610e1a565b6040516103b991906139d8565b60405180910390f35b3480156103ce57600080fd5b506103d7610e40565b6040516103e49190613a14565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613a8c565b610e64565b6040516104219190613ae7565b60405180910390f35b34801561043657600080fd5b5061043f610e82565b60405161044c9190613ae7565b60405180910390f35b34801561046157600080fd5b5061046a610e95565b6040516104779190613883565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613b02565b610e9f565b6040516104b49190613ae7565b60405180910390f35b3480156104c957600080fd5b506104d2610f79565b6040516104df9190613a14565b60405180910390f35b3480156104f457600080fd5b506104fd610f9d565b60405161050a9190613883565b60405180910390f35b34801561051f57600080fd5b5061052861101b565b6040516105359190613b71565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613a8c565b611032565b6040516105729190613ae7565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613b8c565b6110e5565b6040516105af9190613ae7565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190613be5565b611105565b005b3480156105ed57600080fd5b5061060860048036038101906106039190613c12565b61119e565b005b34801561061657600080fd5b50610631600480360381019061062c9190613b8c565b61122c565b60405161063e9190613ae7565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190613b8c565b61124c565b005b34801561067c57600080fd5b5061069760048036038101906106929190613c52565b61130c565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190613b8c565b611392565b005b3480156106ce57600080fd5b506106d7611452565b6040516106e49190613ae7565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190613c7f565b611465565b005b34801561072257600080fd5b5061072b61153c565b6040516107389190613ae7565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613b8c565b61154f565b6040516107759190613883565b60405180910390f35b34801561078a57600080fd5b50610793611598565b005b3480156107a157600080fd5b506107bc60048036038101906107b79190613c52565b611620565b005b3480156107ca57600080fd5b506107d36116a6565b6040516107e09190613883565b60405180910390f35b3480156107f557600080fd5b506107fe6116ac565b60405161080b9190613883565b60405180910390f35b34801561082057600080fd5b5061083b60048036038101906108369190613b8c565b6116b2565b6040516108489190613ae7565b60405180910390f35b34801561085d57600080fd5b506108666116d2565b6040516108739190613a14565b60405180910390f35b34801561088857600080fd5b506108916116fb565b60405161089e9190613937565b60405180910390f35b3480156108b357600080fd5b506108ce60048036038101906108c99190613a8c565b61178d565b6040516108db9190613ae7565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a8c565b61185a565b6040516109189190613ae7565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613c52565b611879565b005b34801561095657600080fd5b50610971600480360381019061096c9190613c7f565b6118ff565b005b34801561097f57600080fd5b506109886119d6565b6040516109959190613883565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613c7f565b6119dc565b005b3480156109d357600080fd5b506109dc611b11565b6040516109e99190613883565b60405180910390f35b3480156109fe57600080fd5b50610a07611b17565b604051610a149190613883565b60405180910390f35b348015610a2957600080fd5b50610a32611b1d565b604051610a3f9190613883565b60405180910390f35b348015610a5457600080fd5b50610a6f6004803603810190610a6a9190613b8c565b611b23565b604051610a7c9190613ae7565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa79190613b02565b611b43565b005b348015610aba57600080fd5b50610ad56004803603810190610ad09190613cbf565b611d01565b005b348015610ae357600080fd5b50610aec611db5565b604051610af99190613a14565b60405180910390f35b348015610b0e57600080fd5b50610b296004803603810190610b249190613cff565b611ddb565b604051610b369190613883565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b619190613c7f565b611e62565b005b348015610b7457600080fd5b50610b7d611f39565b005b348015610b8b57600080fd5b50610b94612064565b604051610ba19190613ae7565b60405180910390f35b348015610bb657600080fd5b50610bd16004803603810190610bcc9190613be5565b612077565b005b348015610bdf57600080fd5b50610be8612110565b604051610bf59190613a14565b60405180910390f35b348015610c0a57600080fd5b50610c256004803603810190610c209190613b8c565b612136565b005b348015610c3357600080fd5b50610c4e6004803603810190610c499190613b8c565b61222e565b005b348015610c5c57600080fd5b50610c656122ee565b604051610c729190613ae7565b60405180910390f35b610c836123c6565b73ffffffffffffffffffffffffffffffffffffffff16610ca16116d2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613d8b565b60405180910390fd5b600060125414610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613df7565b60405180910390fd5b43601281905550426013819055506001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550565b60115481565b606060018054610d9790613e46565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc390613e46565b8015610e105780601f10610de557610100808354040283529160200191610e10565b820191906000526020600020905b815481529060010190602001808311610df357829003601f168201915b5050505050905090565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e78610e716123c6565b84846123ce565b6001905092915050565b601460009054906101000a900460ff1681565b6000600e54905090565b6000610eac848484612599565b50610f6e84610eb96123c6565b610f698560405180606001604052806028815260200161497d60289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000611016610fcb7f000000000000000000000000000000000000000000000000000000000000000061154f565b611008610ff77f000000000000000000000000000000000000000000000000000000000000dead61154f565b600e54612ce490919063ffffffff16565b612ce490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006110db61103f6123c6565b846110d685600960006110506123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b6123ce565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61110d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661112b6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890613d8b565b60405180910390fd5b80601460056101000a81548160ff02191690831515021790555050565b6111a66123c6565b73ffffffffffffffffffffffffffffffffffffffff166111c46116d2565b73ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190613d8b565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112546123c6565b73ffffffffffffffffffffffffffffffffffffffff166112726116d2565b73ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613d8b565b60405180910390fd5b80601460066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113146123c6565b73ffffffffffffffffffffffffffffffffffffffff166113326116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613d8b565b60405180910390fd5b80600f8190555050565b61139a6123c6565b73ffffffffffffffffffffffffffffffffffffffff166113b86116d2565b73ffffffffffffffffffffffffffffffffffffffff161461140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590613d8b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460049054906101000a900460ff1681565b61146d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661148b6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613d8b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115a06123c6565b73ffffffffffffffffffffffffffffffffffffffff166115be6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613d8b565b60405180910390fd5b61161e6000612d8c565b565b6116286123c6565b73ffffffffffffffffffffffffffffffffffffffff166116466116d2565b73ffffffffffffffffffffffffffffffffffffffff161461169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390613d8b565b60405180910390fd5b8060108190555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461170a90613e46565b80601f016020809104026020016040519081016040528092919081815260200182805461173690613e46565b80156117835780601f1061175857610100808354040283529160200191611783565b820191906000526020600020905b81548152906001019060200180831161176657829003601f168201915b5050505050905090565b600061185061179a6123c6565b8461184b856040518060600160405280602581526020016149a560259139600960006117c46123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b6001905092915050565b600061186e6118676123c6565b8484612599565b506001905092915050565b6118816123c6565b73ffffffffffffffffffffffffffffffffffffffff1661189f6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec90613d8b565b60405180910390fd5b8060118190555050565b6119076123c6565b73ffffffffffffffffffffffffffffffffffffffff166119256116d2565b73ffffffffffffffffffffffffffffffffffffffff161461197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613d8b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6119e46123c6565b73ffffffffffffffffffffffffffffffffffffffff16611a026116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613d8b565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611b0d5780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60045481565b60135481565b60055481565b600c6020528060005260406000206000915054906101000a900460ff1681565b611b4b6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611b696116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb690613d8b565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611beb929190613e78565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c759190613ee8565b6000604051808303816000865af19150503d8060008114611cb2576040519150601f19603f3d011682016040523d82523d6000602084013e611cb7565b606091505b5050905080611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290613f4b565b60405180910390fd5b50505050565b611d096123c6565b73ffffffffffffffffffffffffffffffffffffffff16611d276116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613d8b565b60405180910390fd5b81601460026101000a81548160ff02191690831515021790555080601460036101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e6a6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611e886116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613d8b565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611f416123c6565b73ffffffffffffffffffffffffffffffffffffffff16611f5f6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90613d8b565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611fdb90613f91565b60006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b5050905080612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890613ff2565b60405180910390fd5b50565b601460039054906101000a900460ff1681565b61207f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661209d6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613d8b565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61213e6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661215c6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613d8b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614084565b60405180910390fd5b61222b81612d8c565b50565b6122366123c6565b73ffffffffffffffffffffffffffffffffffffffff166122546116d2565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a190613d8b565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460059054906101000a900460ff1681565b6000808314156123145760009050612376565b6000828461232291906140d3565b9050828482612331919061415c565b14612371576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612368906141ff565b60405180910390fd5b809150505b92915050565b60006123be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e50565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561243e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243590614291565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a590614323565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161258c9190613883565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906143b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561267a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267190614447565b60405180910390fd5b600082116126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b4906144d9565b60405180910390fd5b601560149054906101000a900460ff16156126e4576126dd848484612eb3565b9050612c79565b601460019054906101000a900460ff166127d957600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127995750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf90614545565b60405180910390fd5b5b6000601254141580156127f95750601460009054906101000a900460ff16155b1561280757612806613086565b5b60006128123061154f565b9050600060115482101590508080156128385750601560149054906101000a900460ff16155b801561288e5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128a65750601460029054906101000a900460ff165b156128b5576128b48261315e565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129595750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129715750601460049054906101000a900460ff165b156129bc57600f548411156129bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b2906145d7565b60405180910390fd5b5b612a45846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612a94878761324c565b612aa857612aa38787876133b7565b612aaa565b845b9050601460059054906101000a900460ff168015612b125750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b7757601054612b3582612b278961154f565b612d2e90919063ffffffff16565b1115612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90614643565b60405180910390fd5b5b612bc981600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c699190613883565b60405180910390a3600193505050505b9392505050565b6000838311158290612cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cbf9190613937565b60405180910390fd5b5060008385612cd79190614663565b9050809150509392505050565b6000612d2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c80565b905092915050565b6000808284612d3d9190614697565b905083811015612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7990614739565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8e9190613937565b60405180910390fd5b5060008385612ea6919061415c565b9050809150509392505050565b6000612f3e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130739190613883565b60405180910390a3600190509392505050565b60026012546130959190614697565b43116130a7576130a66063806135dc565b5b60026012546130b69190614697565b431180156130d2575060146012546130ce9190614697565b4311155b156130e3576130e2602d806135dc565b5b60146012546130f29190614697565b4311801561310e5750606460125461310a9190614697565b4311155b1561311f5761311e6005806135dc565b5b606460125461312e9190614697565b43111561315c576131406002806135dc565b6001601460006101000a81548160ff0219169083151502179055505b565b6001601560146101000a81548160ff021916908315150217905550601460039054906101000a900460ff16156131945760115490505b60004790506131a2826135ee565b60006131b78247612ce490919063ffffffff16565b9050600081111561322c57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561322a573d6000803e3d6000fd5b505b50506000601560146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132ef5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132fd57600190506133b1565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061339e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156133ac57600090506133b1565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561343c576134356007546134276004548661230190919063ffffffff16565b61237c90919063ffffffff16565b90506134bb565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134ba576134b76007546134a96005548661230190919063ffffffff16565b61237c90919063ffffffff16565b90505b5b60008111156135bf5761351681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135b69190613883565b60405180910390a35b6135d28184612ce490919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff81111561360b5761360a614759565b5b6040519080825280602002602001820160405280156136395781602001602082028036833780820191505090505b509050308160008151811061365157613650614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371c91906147cc565b816001815181106137305761372f614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061379730601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123ce565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137fb9594939291906148f2565b600060405180830381600087803b15801561381557600080fd5b505af1158015613829573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161385e92919061494c565b60405180910390a15050565b6000819050919050565b61387d8161386a565b82525050565b60006020820190506138986000830184613874565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138d85780820151818401526020810190506138bd565b838111156138e7576000848401525b50505050565b6000601f19601f8301169050919050565b60006139098261389e565b61391381856138a9565b93506139238185602086016138ba565b61392c816138ed565b840191505092915050565b6000602082019050818103600083015261395181846138fe565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061399e61399961399484613959565b613979565b613959565b9050919050565b60006139b082613983565b9050919050565b60006139c2826139a5565b9050919050565b6139d2816139b7565b82525050565b60006020820190506139ed60008301846139c9565b92915050565b60006139fe82613959565b9050919050565b613a0e816139f3565b82525050565b6000602082019050613a296000830184613a05565b92915050565b600080fd5b613a3d816139f3565b8114613a4857600080fd5b50565b600081359050613a5a81613a34565b92915050565b613a698161386a565b8114613a7457600080fd5b50565b600081359050613a8681613a60565b92915050565b60008060408385031215613aa357613aa2613a2f565b5b6000613ab185828601613a4b565b9250506020613ac285828601613a77565b9150509250929050565b60008115159050919050565b613ae181613acc565b82525050565b6000602082019050613afc6000830184613ad8565b92915050565b600080600060608486031215613b1b57613b1a613a2f565b5b6000613b2986828701613a4b565b9350506020613b3a86828701613a4b565b9250506040613b4b86828701613a77565b9150509250925092565b600060ff82169050919050565b613b6b81613b55565b82525050565b6000602082019050613b866000830184613b62565b92915050565b600060208284031215613ba257613ba1613a2f565b5b6000613bb084828501613a4b565b91505092915050565b613bc281613acc565b8114613bcd57600080fd5b50565b600081359050613bdf81613bb9565b92915050565b600060208284031215613bfb57613bfa613a2f565b5b6000613c0984828501613bd0565b91505092915050565b60008060408385031215613c2957613c28613a2f565b5b6000613c3785828601613a77565b9250506020613c4885828601613a77565b9150509250929050565b600060208284031215613c6857613c67613a2f565b5b6000613c7684828501613a77565b91505092915050565b60008060408385031215613c9657613c95613a2f565b5b6000613ca485828601613a4b565b9250506020613cb585828601613bd0565b9150509250929050565b60008060408385031215613cd657613cd5613a2f565b5b6000613ce485828601613bd0565b9250506020613cf585828601613bd0565b9150509250929050565b60008060408385031215613d1657613d15613a2f565b5b6000613d2485828601613a4b565b9250506020613d3585828601613a4b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d756020836138a9565b9150613d8082613d3f565b602082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b6000613de16011836138a9565b9150613dec82613dab565b602082019050919050565b60006020820190508181036000830152613e1081613dd4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e5e57607f821691505b60208210811415613e7257613e71613e17565b5b50919050565b6000604082019050613e8d6000830185613a05565b613e9a6020830184613874565b9392505050565b600081519050919050565b600081905092915050565b6000613ec282613ea1565b613ecc8185613eac565b9350613edc8185602086016138ba565b80840191505092915050565b6000613ef48284613eb7565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613f356014836138a9565b9150613f4082613eff565b602082019050919050565b60006020820190508181036000830152613f6481613f28565b9050919050565b50565b6000613f7b600083613eac565b9150613f8682613f6b565b600082019050919050565b6000613f9c82613f6e565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613fdc6014836138a9565b9150613fe782613fa6565b602082019050919050565b6000602082019050818103600083015261400b81613fcf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061406e6026836138a9565b915061407982614012565b604082019050919050565b6000602082019050818103600083015261409d81614061565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140de8261386a565b91506140e98361386a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614122576141216140a4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141678261386a565b91506141728361386a565b9250826141825761418161412d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e96021836138a9565b91506141f48261418d565b604082019050919050565b60006020820190508181036000830152614218816141dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061427b6024836138a9565b91506142868261421f565b604082019050919050565b600060208201905081810360008301526142aa8161426e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061430d6022836138a9565b9150614318826142b1565b604082019050919050565b6000602082019050818103600083015261433c81614300565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061439f6025836138a9565b91506143aa82614343565b604082019050919050565b600060208201905081810360008301526143ce81614392565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144316023836138a9565b915061443c826143d5565b604082019050919050565b6000602082019050818103600083015261446081614424565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144c36029836138a9565b91506144ce82614467565b604082019050919050565b600060208201905081810360008301526144f2816144b6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061452f6016836138a9565b915061453a826144f9565b602082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006145c16028836138a9565b91506145cc82614565565b604082019050919050565b600060208201905081810360008301526145f0816145b4565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b600061462d601b836138a9565b9150614638826145f7565b602082019050919050565b6000602082019050818103600083015261465c81614620565b9050919050565b600061466e8261386a565b91506146798361386a565b92508282101561468c5761468b6140a4565b5b828203905092915050565b60006146a28261386a565b91506146ad8361386a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146e2576146e16140a4565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614723601b836138a9565b915061472e826146ed565b602082019050919050565b6000602082019050818103600083015261475281614716565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506147c681613a34565b92915050565b6000602082840312156147e2576147e1613a2f565b5b60006147f0848285016147b7565b91505092915050565b6000819050919050565b600061481e614819614814846147f9565b613979565b61386a565b9050919050565b61482e81614803565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614869816139f3565b82525050565b600061487b8383614860565b60208301905092915050565b6000602082019050919050565b600061489f82614834565b6148a9818561483f565b93506148b483614850565b8060005b838110156148e55781516148cc888261486f565b97506148d783614887565b9250506001810190506148b8565b5085935050505092915050565b600060a0820190506149076000830188613874565b6149146020830187614825565b81810360408301526149268186614894565b90506149356060830185613a05565b6149426080830184613874565b9695505050505050565b60006040820190506149616000830185613874565b81810360208301526149738184614894565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122054647f91e865ea1e8921489e00e365587ba4a41fdc5ef0f197ef782b0a78719d64736f6c634300080a0033

Deployed Bytecode Sourcemap

7077:13250:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16028:243;;;;;;;;;;;;;:::i;:::-;;8254:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10301:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8610:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7378:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11639:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8390:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10578:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12413:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7290:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10972:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11136:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7863:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18746:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18480:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7806:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20106:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19367:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19480:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8527:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18989:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8452:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10686:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1837:94;;;;;;;;;;;;;:::i;:::-;;19253:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8100:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8176:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7974:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1528:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10392;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11362:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12238:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19991:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19125:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8317:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19596:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7468:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8349:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7510:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7915:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18200:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19808:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7555:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10817:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18859:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18014:178;;;;;;;;;;;;;:::i;:::-;;8489:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18640:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8648:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1939:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20229:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8566:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16028:243;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16096:1:::1;16082:10;;:15;16074:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;16143:12;16130:10;:25;;;;16188:15;16166:19;:37;;;;16230:4;16214:13;;:20;;;;;;;;;;;;;;;;;;16259:4;16245:11;;:18;;;;;;;;;;;;;;;;;;16028:243::o:0;8254:54::-;;;;:::o;10301:83::-;10338:13;10371:5;10364:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10301:83;:::o;8610:31::-;;;;;;;;;;;;;:::o;7378:81::-;;;:::o;11639:161::-;11714:4;11731:39;11740:12;:10;:12::i;:::-;11754:7;11763:6;11731:8;:39::i;:::-;11788:4;11781:11;;11639:161;;;;:::o;8390:26::-;;;;;;;;;;;;;:::o;10578:100::-;10631:7;10658:12;;10651:19;;10578:100;:::o;12413:313::-;12511:4;12528:36;12538:6;12546:9;12557:6;12528:9;:36::i;:::-;;12575:121;12584:6;12592:12;:10;:12::i;:::-;12606:89;12644:6;12606:89;;;;;;;;;;;;;;;;;:11;:19;12618:6;12606:19;;;;;;;;;;;;;;;:33;12626:12;:10;:12::i;:::-;12606:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12575:8;:121::i;:::-;12714:4;12707:11;;12413:313;;;;;:::o;7290:81::-;;;:::o;10972:156::-;11025:7;11052:68;11097:22;11107:11;11097:9;:22::i;:::-;11052:40;11069:22;11079:11;11069:9;:22::i;:::-;11052:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;11045:75;;10972:156;:::o;10487:83::-;10528:5;10553:9;;;;;;;;;;;10546:16;;10487:83;:::o;11136:218::-;11224:4;11241:83;11250:12;:10;:12::i;:::-;11264:7;11273:50;11312:10;11273:11;:25;11285:12;:10;:12::i;:::-;11273:25;;;;;;;;;;;;;;;:34;11299:7;11273:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11241:8;:83::i;:::-;11342:4;11335:11;;11136:218;;;;:::o;7863:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;18746:105::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18836:7:::1;18817:16;;:26;;;;;;;;;;;;;;;;;;18746:105:::0;:::o;18480:152::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18578:7:::1;18559:16;:26;;;;18616:8;18596:17;:28;;;;18480:152:::0;;:::o;7806:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20106:115::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20205:7:::1;20178:9;;:35;;;;;;;;;;;;;;;;;;20106:115:::0;:::o;19367:101::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19452:8:::1;19437:12;:23;;;;19367:101:::0;:::o;19480:108::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19570:10:::1;19558:9;;:22;;;;;;;;;;;;;;;;;;19480:108:::0;:::o;8527:32::-;;;;;;;;;;;;;:::o;18989:128::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19102:7:::1;19074:19;:25;19094:4;19074:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18989:128:::0;;:::o;8452:30::-;;;;;;;;;;;;;:::o;10686:123::-;10752:7;10778:9;:18;10788:7;10778:18;;;;;;;;;;;;;;;;10771:25;;10686:123;;;:::o;1837:94::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1902:21:::1;1920:1;1902:9;:21::i;:::-;1837:94::o:0;19253:106::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19343:8:::1;19330:10;:21;;;;19253:106:::0;:::o;8100:59::-;;;;:::o;8176:56::-;;;;:::o;7974:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1528:87::-;1574:7;1601:6;;;;;;;;;;;1594:13;;1528:87;:::o;10392:::-;10431:13;10464:7;10457:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10392:87;:::o;11362:269::-;11455:4;11472:129;11481:12;:10;:12::i;:::-;11495:7;11504:96;11543:15;11504:96;;;;;;;;;;;;;;;;;:11;:25;11516:12;:10;:12::i;:::-;11504:25;;;;;;;;;;;;;;;:34;11530:7;11504:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11472:8;:129::i;:::-;11619:4;11612:11;;11362:269;;;;:::o;12238:167::-;12316:4;12333:42;12343:12;:10;:12::i;:::-;12357:9;12368:6;12333:9;:42::i;:::-;;12393:4;12386:11;;12238:167;;;;:::o;19991:107::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20080:10:::1;20064:13;:26;;;;19991:107:::0;:::o;19125:120::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19230:7:::1;19206:15;:21;19222:4;19206:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19125:120:::0;;:::o;8317:25::-;;;;:::o;19596:204::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19700:7:::1;19678:12;:19;19691:5;19678:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19721:7;19718:75;;;19774:7;19745:19;:26;19765:5;19745:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19718:75;19596:204:::0;;:::o;7468:35::-;;;;:::o;8349:34::-;;;;:::o;7510:36::-;;;;:::o;7915:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18200:272::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18300:12:::1;18326:6;18318:20;;18393:9;18404:7;18339:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18318:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18299:114;;;18432:7;18424:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;18288:184;18200:272:::0;;;:::o;19808:175::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19934:8:::1;19920:11;;:22;;;;;;;;;;;;;;;;;;19967:8;19953:11;;:22;;;;;;;;;;;;;;;;;;19808:175:::0;;:::o;7555:78::-;;;;;;;;;;;;;:::o;10817:143::-;10898:7;10925:11;:18;10937:5;10925:18;;;;;;;;;;;;;;;:27;10944:7;10925:27;;;;;;;;;;;;;;;;10918:34;;10817:143;;;;:::o;18859:122::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18966:7:::1;18940:17;:23;18958:4;18940:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18859:122:::0;;:::o;18014:178::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18069:7:::1;18089:10;18081:24;;18113:21;18081:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18068:71;;;18158:2;18150:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18056:136;18014:178::o:0;8489:31::-;;;;;;;;;;;;;:::o;18640:98::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18723:7:::1;18707:13;;:23;;;;;;;;;;;;;;;;;;18640:98:::0;:::o;8648:22::-;;;;;;;;;;;;;:::o;1939:229::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2062:1:::1;2042:22;;:8;:22;;;;2020:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:19;2151:8;2141:9;:19::i;:::-;1939:229:::0;:::o;20229:91::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20307:5:::1;20297:7;;:15;;;;;;;;;;;;;;;;;;20229:91:::0;:::o;8566:35::-;;;;;;;;;;;;;:::o;2915:250::-;2973:7;3002:1;2997;:6;2993:47;;;3027:1;3020:8;;;;2993:47;3052:9;3068:1;3064;:5;;;;:::i;:::-;3052:17;;3097:1;3092;3088;:5;;;;:::i;:::-;:10;3080:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3156:1;3149:8;;;2915:250;;;;;:::o;3173:132::-;3231:7;3258:39;3262:1;3265;3258:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3251:46;;3173:132;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;11808:337::-;11918:1;11901:19;;:5;:19;;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11999:1;11980:21;;:7;:21;;;;11972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12083:6;12053:11;:18;12065:5;12053:18;;;;;;;;;;;;;;;:27;12072:7;12053:27;;;;;;;;;;;;;;;:36;;;;12121:7;12105:32;;12114:5;12105:32;;;12130:6;12105:32;;;;;;:::i;:::-;;;;;;;;11808:337;;;:::o;12734:1849::-;12821:4;12866:1;12848:20;;:6;:20;;;;12840:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12950:1;12929:23;;:9;:23;;;;12921:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13020:1;13011:6;:10;13003:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13088:6;;;;;;;;;;;13084:1490;;;13118:41;13133:6;13141:9;13152:6;13118:14;:41::i;:::-;13111:48;;;;13084:1490;13208:13;;;;;;;;;;;13203:146;;13250:17;:25;13268:6;13250:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;13279:17;:28;13297:9;13279:28;;;;;;;;;;;;;;;;;;;;;;;;;13250:57;13242:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13203:146;13383:1;13369:10;;:15;;:34;;;;;13389:14;;;;;;;;;;;13388:15;13369:34;13365:93;;;13424:18;:16;:18::i;:::-;13365:93;13474:28;13505:24;13523:4;13505:9;:24::i;:::-;13474:55;;13544:28;13599:13;;13575:20;:37;;13544:68;;13633:23;:34;;;;;13661:6;;;;;;;;;;;13660:7;13633:34;:59;;;;;13672:12;:20;13685:6;13672:20;;;;;;;;;;;;;;;;;;;;;;;;;13671:21;13633:59;:74;;;;;13696:11;;;;;;;;;;;13633:74;13629:145;;;13728:30;13737:20;13728:8;:30::i;:::-;13629:145;13794:15;:23;13810:6;13794:23;;;;;;;;;;;;;;;;;;;;;;;;;13793:24;:55;;;;;13822:15;:26;13838:9;13822:26;;;;;;;;;;;;;;;;;;;;;;;;;13821:27;13793:55;:72;;;;;13852:13;;;;;;;;;;;13793:72;13790:187;;;13904:12;;13894:6;:22;;13886:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13790:187;14026:53;14048:6;14026:53;;;;;;;;;;;;;;;;;:9;:17;14036:6;14026:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14006:9;:17;14016:6;14006:17;;;;;;;;;;;;;;;:73;;;;14096:19;14118:34;14135:6;14142:9;14118:16;:34::i;:::-;:80;;14164:34;14172:6;14180:9;14191:6;14164:7;:34::i;:::-;14118:80;;;14155:6;14118:80;14096:102;;14218:16;;;;;;;;;;;:51;;;;;14239:19;:30;14259:9;14239:30;;;;;;;;;;;;;;;;;;;;;;;;;14238:31;14218:51;14215:181;;;14339:10;;14298:37;14323:11;14298:20;14308:9;14298;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;14290:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14215:181;14435:37;14460:11;14435:9;:20;14445:9;14435:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14412:9;:20;14422:9;14412:20;;;;;;;;;;;;;;;:60;;;;14511:9;14494:40;;14503:6;14494:40;;;14522:11;14494:40;;;;;;:::i;:::-;;;;;;;;14556:4;14549:11;;;;;12734:1849;;;;;;:::o;2715:192::-;2801:7;2834:1;2829;:6;;2837:12;2821:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2861:9;2877:1;2873;:5;;;;:::i;:::-;2861:17;;2898:1;2891:8;;;2715:192;;;;;:::o;2571:136::-;2629:7;2656:43;2660:1;2663;2656:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2649:50;;2571:136;;;;:::o;2382:181::-;2440:7;2460:9;2476:1;2472;:5;;;;:::i;:::-;2460:17;;2501:1;2496;:6;;2488:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2554:1;2547:8;;;2382:181;;;;:::o;2176:173::-;2232:16;2251:6;;;;;;;;;;;2232:25;;2277:8;2268:6;;:17;;;;;;;;;;;;;;;;;;2332:8;2301:40;;2322:8;2301:40;;;;;;;;;;;;2221:128;2176:173;:::o;3313:278::-;3399:7;3431:1;3427;:5;3434:12;3419:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3458:9;3474:1;3470;:5;;;;:::i;:::-;3458:17;;3582:1;3575:8;;;3313:278;;;;;:::o;14591:330::-;14684:4;14721:53;14743:6;14721:53;;;;;;;;;;;;;;;;;:9;:17;14731:6;14721:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14701:9;:17;14711:6;14701:17;;;;;;;;;;;;;;;:73;;;;14808:32;14833:6;14808:9;:20;14818:9;14808:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14785:9;:20;14795:9;14785:20;;;;;;;;;;;;;;;:55;;;;14873:9;14856:35;;14865:6;14856:35;;;14884:6;14856:35;;;;;;:::i;:::-;;;;;;;;14909:4;14902:11;;14591:330;;;;;:::o;16279:534::-;16360:1;16347:10;;:14;;;;:::i;:::-;16331:12;:30;16327:83;;16378:20;16392:2;16395;16378:13;:20::i;:::-;16327:83;16452:1;16439:10;;:14;;;;:::i;:::-;16424:12;:29;:64;;;;;16486:2;16473:10;;:15;;;;:::i;:::-;16457:12;:31;;16424:64;16420:117;;;16505:20;16519:2;16522;16505:13;:20::i;:::-;16420:117;16579:2;16566:10;;:15;;;;:::i;:::-;16551:12;:30;:66;;;;;16614:3;16601:10;;:16;;;;:::i;:::-;16585:12;:32;;16551:66;16547:117;;;16634:18;16648:1;16650;16634:13;:18::i;:::-;16547:117;16706:3;16693:10;;:16;;;;:::i;:::-;16678:12;:31;16674:118;;;16726:18;16740:1;16742;16726:13;:18::i;:::-;16776:4;16759:14;;:21;;;;;;;;;;;;;;;;;;16674:118;16279:534::o;16964:386::-;8739:4;8730:6;;:13;;;;;;;;;;;;;;;;;;17038:11:::1;;;;;;;;;;;17035:47;;;17069:13;;17051:31;;17035:47;17095:22;17120:21;17095:46;;17152:33;17169:15;17152:16;:33::i;:::-;17196:22;17221:41;17247:14;17221:21;:25;;:41;;;;:::i;:::-;17196:66;;17294:1;17277:14;:18;17274:66;;;17305:9;;;;;;;;;;;17297:27;;:43;17325:14;17297:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17274:66;17022:328;;8775:5:::0;8766:6;;:14;;;;;;;;;;;;;;;;;;16964:386;:::o;14933:369::-;15017:4;15037:17;:25;15055:6;15037:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15066:17;:28;15084:9;15066:28;;;;;;;;;;;;;;;;;;;;;;;;;15037:57;15034:261;;;15118:4;15111:11;;;;15034:261;15153:12;:20;15166:6;15153:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15177:12;:23;15190:9;15177:23;;;;;;;;;;;;;;;;;;;;;;;;;15153:47;15149:146;;;15224:5;15217:12;;;;15149:146;15278:5;15271:12;;14933:369;;;;;:::o;15310:710::-;15396:7;15426:14;15483:12;:20;15496:6;15483:20;;;;;;;;;;;;;;;;;;;;;;;;;15480:266;;;15537:48;15570:14;;15537:28;15548:16;;15537:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;15525:60;;15480:266;;;15624:12;:23;15637:9;15624:23;;;;;;;;;;;;;;;;;;;;;;;;;15621:125;;;15681:49;15715:14;;15681:29;15692:17;;15681:6;:10;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;15669:61;;15621:125;15480:266;15777:1;15765:9;:13;15762:185;;;15826:39;15855:9;15826;:24;15844:4;15826:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15799:9;:24;15817:4;15799:24;;;;;;;;;;;;;;;:66;;;;15914:4;15889:42;;15898:6;15889:42;;;15921:9;15889:42;;;;;;:::i;:::-;;;;;;;;15762:185;15970:21;15981:9;15970:6;:10;;:21;;;;:::i;:::-;15963:28;;;15310:710;;;;;:::o;16821:133::-;16906:4;16887:16;:23;;;;16941:5;16921:17;:25;;;;16821:133;;:::o;17358:648::-;17484:21;17522:1;17508:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17484:40;;17553:4;17535;17540:1;17535:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17579:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17569:4;17574:1;17569:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;17608:56;17625:4;17640:9;;;;;;;;;;;17652:11;17608:8;:56::i;:::-;17703:9;;;;;;;;;;;:60;;;17778:11;17804:1;17848:4;17875;17911:15;17703:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17963:35;17980:11;17993:4;17963:35;;;;;;;:::i;:::-;;;;;;;;17413:593;17358:648;:::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;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:126::-;1869:7;1909:42;1902:5;1898:54;1887:65;;1832:126;;;:::o;1964:60::-;1992:3;2013:5;2006:12;;1964:60;;;:::o;2030:142::-;2080:9;2113:53;2131:34;2140:24;2158:5;2140:24;:::i;:::-;2131:34;:::i;:::-;2113:53;:::i;:::-;2100:66;;2030:142;;;:::o;2178:126::-;2228:9;2261:37;2292:5;2261:37;:::i;:::-;2248:50;;2178:126;;;:::o;2310:148::-;2382:9;2415:37;2446:5;2415:37;:::i;:::-;2402:50;;2310:148;;;:::o;2464:175::-;2573:59;2626:5;2573:59;:::i;:::-;2568:3;2561:72;2464:175;;:::o;2645:266::-;2760:4;2798:2;2787:9;2783:18;2775:26;;2811:93;2901:1;2890:9;2886:17;2877:6;2811:93;:::i;:::-;2645:266;;;;:::o;2917:96::-;2954:7;2983:24;3001:5;2983:24;:::i;:::-;2972:35;;2917:96;;;:::o;3019:118::-;3106:24;3124:5;3106:24;:::i;:::-;3101:3;3094:37;3019:118;;:::o;3143:222::-;3236:4;3274:2;3263:9;3259:18;3251:26;;3287:71;3355:1;3344:9;3340:17;3331:6;3287:71;:::i;:::-;3143:222;;;;:::o;3452:117::-;3561:1;3558;3551:12;3698:122;3771:24;3789:5;3771:24;:::i;:::-;3764:5;3761:35;3751:63;;3810:1;3807;3800:12;3751:63;3698:122;:::o;3826:139::-;3872:5;3910:6;3897:20;3888:29;;3926:33;3953:5;3926:33;:::i;:::-;3826:139;;;;:::o;3971:122::-;4044:24;4062:5;4044:24;:::i;:::-;4037:5;4034:35;4024:63;;4083:1;4080;4073:12;4024:63;3971:122;:::o;4099:139::-;4145:5;4183:6;4170:20;4161:29;;4199:33;4226:5;4199:33;:::i;:::-;4099:139;;;;:::o;4244:474::-;4312:6;4320;4369:2;4357:9;4348:7;4344:23;4340:32;4337:119;;;4375:79;;:::i;:::-;4337:119;4495:1;4520:53;4565:7;4556:6;4545:9;4541:22;4520:53;:::i;:::-;4510:63;;4466:117;4622:2;4648:53;4693:7;4684:6;4673:9;4669:22;4648:53;:::i;:::-;4638:63;;4593:118;4244:474;;;;;:::o;4724:90::-;4758:7;4801:5;4794:13;4787:21;4776:32;;4724:90;;;:::o;4820:109::-;4901:21;4916:5;4901:21;:::i;:::-;4896:3;4889:34;4820:109;;:::o;4935:210::-;5022:4;5060:2;5049:9;5045:18;5037:26;;5073:65;5135:1;5124:9;5120:17;5111:6;5073:65;:::i;:::-;4935:210;;;;:::o;5151:619::-;5228:6;5236;5244;5293:2;5281:9;5272:7;5268:23;5264:32;5261:119;;;5299:79;;:::i;:::-;5261:119;5419:1;5444:53;5489:7;5480:6;5469:9;5465:22;5444:53;:::i;:::-;5434:63;;5390:117;5546:2;5572:53;5617:7;5608:6;5597:9;5593:22;5572:53;:::i;:::-;5562:63;;5517:118;5674:2;5700:53;5745:7;5736:6;5725:9;5721:22;5700:53;:::i;:::-;5690:63;;5645:118;5151:619;;;;;:::o;5776:86::-;5811:7;5851:4;5844:5;5840:16;5829:27;;5776:86;;;:::o;5868:112::-;5951:22;5967:5;5951:22;:::i;:::-;5946:3;5939:35;5868:112;;:::o;5986:214::-;6075:4;6113:2;6102:9;6098:18;6090:26;;6126:67;6190:1;6179:9;6175:17;6166:6;6126:67;:::i;:::-;5986:214;;;;:::o;6206:329::-;6265:6;6314:2;6302:9;6293:7;6289:23;6285:32;6282:119;;;6320:79;;:::i;:::-;6282:119;6440:1;6465:53;6510:7;6501:6;6490:9;6486:22;6465:53;:::i;:::-;6455:63;;6411:117;6206:329;;;;:::o;6541:116::-;6611:21;6626:5;6611:21;:::i;:::-;6604:5;6601:32;6591:60;;6647:1;6644;6637:12;6591:60;6541:116;:::o;6663:133::-;6706:5;6744:6;6731:20;6722:29;;6760:30;6784:5;6760:30;:::i;:::-;6663:133;;;;:::o;6802:323::-;6858:6;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:50;7100:7;7091:6;7080:9;7076:22;7058:50;:::i;:::-;7048:60;;7004:114;6802:323;;;;:::o;7131:474::-;7199:6;7207;7256:2;7244:9;7235:7;7231:23;7227:32;7224:119;;;7262:79;;:::i;:::-;7224:119;7382:1;7407:53;7452:7;7443:6;7432:9;7428:22;7407:53;:::i;:::-;7397:63;;7353:117;7509:2;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7480:118;7131:474;;;;;:::o;7611:329::-;7670:6;7719:2;7707:9;7698:7;7694:23;7690:32;7687:119;;;7725:79;;:::i;:::-;7687:119;7845:1;7870:53;7915:7;7906:6;7895:9;7891:22;7870:53;:::i;:::-;7860:63;;7816:117;7611:329;;;;:::o;7946:468::-;8011:6;8019;8068:2;8056:9;8047:7;8043:23;8039:32;8036:119;;;8074:79;;:::i;:::-;8036:119;8194:1;8219:53;8264:7;8255:6;8244:9;8240:22;8219:53;:::i;:::-;8209:63;;8165:117;8321:2;8347:50;8389:7;8380:6;8369:9;8365:22;8347:50;:::i;:::-;8337:60;;8292:115;7946:468;;;;;:::o;8420:462::-;8482:6;8490;8539:2;8527:9;8518:7;8514:23;8510:32;8507:119;;;8545:79;;:::i;:::-;8507:119;8665:1;8690:50;8732:7;8723:6;8712:9;8708:22;8690:50;:::i;:::-;8680:60;;8636:114;8789:2;8815:50;8857:7;8848:6;8837:9;8833:22;8815:50;:::i;:::-;8805:60;;8760:115;8420:462;;;;;:::o;8888:474::-;8956:6;8964;9013:2;9001:9;8992:7;8988:23;8984:32;8981:119;;;9019:79;;:::i;:::-;8981:119;9139:1;9164:53;9209:7;9200:6;9189:9;9185:22;9164:53;:::i;:::-;9154:63;;9110:117;9266:2;9292:53;9337:7;9328:6;9317:9;9313:22;9292:53;:::i;:::-;9282:63;;9237:118;8888:474;;;;;:::o;9368:182::-;9508:34;9504:1;9496:6;9492:14;9485:58;9368:182;:::o;9556:366::-;9698:3;9719:67;9783:2;9778:3;9719:67;:::i;:::-;9712:74;;9795:93;9884:3;9795:93;:::i;:::-;9913:2;9908:3;9904:12;9897:19;;9556:366;;;:::o;9928:419::-;10094:4;10132:2;10121:9;10117:18;10109:26;;10181:9;10175:4;10171:20;10167:1;10156:9;10152:17;10145:47;10209:131;10335:4;10209:131;:::i;:::-;10201:139;;9928:419;;;:::o;10353:167::-;10493:19;10489:1;10481:6;10477:14;10470:43;10353:167;:::o;10526:366::-;10668:3;10689:67;10753:2;10748:3;10689:67;:::i;:::-;10682:74;;10765:93;10854:3;10765:93;:::i;:::-;10883:2;10878:3;10874:12;10867:19;;10526:366;;;:::o;10898:419::-;11064:4;11102:2;11091:9;11087:18;11079:26;;11151:9;11145:4;11141:20;11137:1;11126:9;11122:17;11115:47;11179:131;11305:4;11179:131;:::i;:::-;11171:139;;10898:419;;;:::o;11323:180::-;11371:77;11368:1;11361:88;11468:4;11465:1;11458:15;11492:4;11489:1;11482:15;11509:320;11553:6;11590:1;11584:4;11580:12;11570:22;;11637:1;11631:4;11627:12;11658:18;11648:81;;11714:4;11706:6;11702:17;11692:27;;11648:81;11776:2;11768:6;11765:14;11745:18;11742:38;11739:84;;;11795:18;;:::i;:::-;11739:84;11560:269;11509:320;;;:::o;11835:332::-;11956:4;11994:2;11983:9;11979:18;11971:26;;12007:71;12075:1;12064:9;12060:17;12051:6;12007:71;:::i;:::-;12088:72;12156:2;12145:9;12141:18;12132:6;12088:72;:::i;:::-;11835:332;;;;;:::o;12173:98::-;12224:6;12258:5;12252:12;12242:22;;12173:98;;;:::o;12277:147::-;12378:11;12415:3;12400:18;;12277:147;;;;:::o;12430:373::-;12534:3;12562:38;12594:5;12562:38;:::i;:::-;12616:88;12697:6;12692:3;12616:88;:::i;:::-;12609:95;;12713:52;12758:6;12753:3;12746:4;12739:5;12735:16;12713:52;:::i;:::-;12790:6;12785:3;12781:16;12774:23;;12538:265;12430:373;;;;:::o;12809:271::-;12939:3;12961:93;13050:3;13041:6;12961:93;:::i;:::-;12954:100;;13071:3;13064:10;;12809:271;;;;:::o;13086:170::-;13226:22;13222:1;13214:6;13210:14;13203:46;13086:170;:::o;13262:366::-;13404:3;13425:67;13489:2;13484:3;13425:67;:::i;:::-;13418:74;;13501:93;13590:3;13501:93;:::i;:::-;13619:2;13614:3;13610:12;13603:19;;13262:366;;;:::o;13634:419::-;13800:4;13838:2;13827:9;13823:18;13815:26;;13887:9;13881:4;13877:20;13873:1;13862:9;13858:17;13851:47;13915:131;14041:4;13915:131;:::i;:::-;13907:139;;13634:419;;;:::o;14059:114::-;;:::o;14179:398::-;14338:3;14359:83;14440:1;14435:3;14359:83;:::i;:::-;14352:90;;14451:93;14540:3;14451:93;:::i;:::-;14569:1;14564:3;14560:11;14553:18;;14179:398;;;:::o;14583:379::-;14767:3;14789:147;14932:3;14789:147;:::i;:::-;14782:154;;14953:3;14946:10;;14583:379;;;:::o;14968:170::-;15108:22;15104:1;15096:6;15092:14;15085:46;14968:170;:::o;15144:366::-;15286:3;15307:67;15371:2;15366:3;15307:67;:::i;:::-;15300:74;;15383:93;15472:3;15383:93;:::i;:::-;15501:2;15496:3;15492:12;15485:19;;15144:366;;;:::o;15516:419::-;15682:4;15720:2;15709:9;15705:18;15697:26;;15769:9;15763:4;15759:20;15755:1;15744:9;15740:17;15733:47;15797:131;15923:4;15797:131;:::i;:::-;15789:139;;15516:419;;;:::o;15941:225::-;16081:34;16077:1;16069:6;16065:14;16058:58;16150:8;16145:2;16137:6;16133:15;16126:33;15941:225;:::o;16172:366::-;16314:3;16335:67;16399:2;16394:3;16335:67;:::i;:::-;16328:74;;16411:93;16500:3;16411:93;:::i;:::-;16529:2;16524:3;16520:12;16513:19;;16172:366;;;:::o;16544:419::-;16710:4;16748:2;16737:9;16733:18;16725:26;;16797:9;16791:4;16787:20;16783:1;16772:9;16768:17;16761:47;16825:131;16951:4;16825:131;:::i;:::-;16817:139;;16544:419;;;:::o;16969:180::-;17017:77;17014:1;17007:88;17114:4;17111:1;17104:15;17138:4;17135:1;17128:15;17155:348;17195:7;17218:20;17236:1;17218:20;:::i;:::-;17213:25;;17252:20;17270:1;17252:20;:::i;:::-;17247:25;;17440:1;17372:66;17368:74;17365:1;17362:81;17357:1;17350:9;17343:17;17339:105;17336:131;;;17447:18;;:::i;:::-;17336:131;17495:1;17492;17488:9;17477:20;;17155:348;;;;:::o;17509:180::-;17557:77;17554:1;17547:88;17654:4;17651:1;17644:15;17678:4;17675:1;17668:15;17695:185;17735:1;17752:20;17770:1;17752:20;:::i;:::-;17747:25;;17786:20;17804:1;17786:20;:::i;:::-;17781:25;;17825:1;17815:35;;17830:18;;:::i;:::-;17815:35;17872:1;17869;17865:9;17860:14;;17695:185;;;;:::o;17886:220::-;18026:34;18022:1;18014:6;18010:14;18003:58;18095:3;18090:2;18082:6;18078:15;18071:28;17886:220;:::o;18112:366::-;18254:3;18275:67;18339:2;18334:3;18275:67;:::i;:::-;18268:74;;18351:93;18440:3;18351:93;:::i;:::-;18469:2;18464:3;18460:12;18453:19;;18112:366;;;:::o;18484:419::-;18650:4;18688:2;18677:9;18673:18;18665:26;;18737:9;18731:4;18727:20;18723:1;18712:9;18708:17;18701:47;18765:131;18891:4;18765:131;:::i;:::-;18757:139;;18484:419;;;:::o;18909:223::-;19049:34;19045:1;19037:6;19033:14;19026:58;19118:6;19113:2;19105:6;19101:15;19094:31;18909:223;:::o;19138:366::-;19280:3;19301:67;19365:2;19360:3;19301:67;:::i;:::-;19294:74;;19377:93;19466:3;19377:93;:::i;:::-;19495:2;19490:3;19486:12;19479:19;;19138:366;;;:::o;19510:419::-;19676:4;19714:2;19703:9;19699:18;19691:26;;19763:9;19757:4;19753:20;19749:1;19738:9;19734:17;19727:47;19791:131;19917:4;19791:131;:::i;:::-;19783:139;;19510:419;;;:::o;19935:221::-;20075:34;20071:1;20063:6;20059:14;20052:58;20144:4;20139:2;20131:6;20127:15;20120:29;19935:221;:::o;20162:366::-;20304:3;20325:67;20389:2;20384:3;20325:67;:::i;:::-;20318:74;;20401:93;20490:3;20401:93;:::i;:::-;20519:2;20514:3;20510:12;20503:19;;20162:366;;;:::o;20534:419::-;20700:4;20738:2;20727:9;20723:18;20715:26;;20787:9;20781:4;20777:20;20773:1;20762:9;20758:17;20751:47;20815:131;20941:4;20815:131;:::i;:::-;20807:139;;20534:419;;;:::o;20959:224::-;21099:34;21095:1;21087:6;21083:14;21076:58;21168:7;21163:2;21155:6;21151:15;21144:32;20959:224;:::o;21189:366::-;21331:3;21352:67;21416:2;21411:3;21352:67;:::i;:::-;21345:74;;21428:93;21517:3;21428:93;:::i;:::-;21546:2;21541:3;21537:12;21530:19;;21189:366;;;:::o;21561:419::-;21727:4;21765:2;21754:9;21750:18;21742:26;;21814:9;21808:4;21804:20;21800:1;21789:9;21785:17;21778:47;21842:131;21968:4;21842:131;:::i;:::-;21834:139;;21561:419;;;:::o;21986:222::-;22126:34;22122:1;22114:6;22110:14;22103:58;22195:5;22190:2;22182:6;22178:15;22171:30;21986:222;:::o;22214:366::-;22356:3;22377:67;22441:2;22436:3;22377:67;:::i;:::-;22370:74;;22453:93;22542:3;22453:93;:::i;:::-;22571:2;22566:3;22562:12;22555:19;;22214:366;;;:::o;22586:419::-;22752:4;22790:2;22779:9;22775:18;22767:26;;22839:9;22833:4;22829:20;22825:1;22814:9;22810:17;22803:47;22867:131;22993:4;22867:131;:::i;:::-;22859:139;;22586:419;;;:::o;23011:228::-;23151:34;23147:1;23139:6;23135:14;23128:58;23220:11;23215:2;23207:6;23203:15;23196:36;23011:228;:::o;23245:366::-;23387:3;23408:67;23472:2;23467:3;23408:67;:::i;:::-;23401:74;;23484:93;23573:3;23484:93;:::i;:::-;23602:2;23597:3;23593:12;23586:19;;23245:366;;;:::o;23617:419::-;23783:4;23821:2;23810:9;23806:18;23798:26;;23870:9;23864:4;23860:20;23856:1;23845:9;23841:17;23834:47;23898:131;24024:4;23898:131;:::i;:::-;23890:139;;23617:419;;;:::o;24042:172::-;24182:24;24178:1;24170:6;24166:14;24159:48;24042:172;:::o;24220:366::-;24362:3;24383:67;24447:2;24442:3;24383:67;:::i;:::-;24376:74;;24459:93;24548:3;24459:93;:::i;:::-;24577:2;24572:3;24568:12;24561:19;;24220:366;;;:::o;24592:419::-;24758:4;24796:2;24785:9;24781:18;24773:26;;24845:9;24839:4;24835:20;24831:1;24820:9;24816:17;24809:47;24873:131;24999:4;24873:131;:::i;:::-;24865:139;;24592:419;;;:::o;25017:227::-;25157:34;25153:1;25145:6;25141:14;25134:58;25226:10;25221:2;25213:6;25209:15;25202:35;25017:227;:::o;25250:366::-;25392:3;25413:67;25477:2;25472:3;25413:67;:::i;:::-;25406:74;;25489:93;25578:3;25489:93;:::i;:::-;25607:2;25602:3;25598:12;25591:19;;25250:366;;;:::o;25622:419::-;25788:4;25826:2;25815:9;25811:18;25803:26;;25875:9;25869:4;25865:20;25861:1;25850:9;25846:17;25839:47;25903:131;26029:4;25903:131;:::i;:::-;25895:139;;25622:419;;;:::o;26047:177::-;26187:29;26183:1;26175:6;26171:14;26164:53;26047:177;:::o;26230:366::-;26372:3;26393:67;26457:2;26452:3;26393:67;:::i;:::-;26386:74;;26469:93;26558:3;26469:93;:::i;:::-;26587:2;26582:3;26578:12;26571:19;;26230:366;;;:::o;26602:419::-;26768:4;26806:2;26795:9;26791:18;26783:26;;26855:9;26849:4;26845:20;26841:1;26830:9;26826:17;26819:47;26883:131;27009:4;26883:131;:::i;:::-;26875:139;;26602:419;;;:::o;27027:191::-;27067:4;27087:20;27105:1;27087:20;:::i;:::-;27082:25;;27121:20;27139:1;27121:20;:::i;:::-;27116:25;;27160:1;27157;27154:8;27151:34;;;27165:18;;:::i;:::-;27151:34;27210:1;27207;27203:9;27195:17;;27027:191;;;;:::o;27224:305::-;27264:3;27283:20;27301:1;27283:20;:::i;:::-;27278:25;;27317:20;27335:1;27317:20;:::i;:::-;27312:25;;27471:1;27403:66;27399:74;27396:1;27393:81;27390:107;;;27477:18;;:::i;:::-;27390:107;27521:1;27518;27514:9;27507:16;;27224:305;;;;:::o;27535:177::-;27675:29;27671:1;27663:6;27659:14;27652:53;27535:177;:::o;27718:366::-;27860:3;27881:67;27945:2;27940:3;27881:67;:::i;:::-;27874:74;;27957:93;28046:3;27957:93;:::i;:::-;28075:2;28070:3;28066:12;28059:19;;27718:366;;;:::o;28090:419::-;28256:4;28294:2;28283:9;28279:18;28271:26;;28343:9;28337:4;28333:20;28329:1;28318:9;28314:17;28307:47;28371:131;28497:4;28371:131;:::i;:::-;28363:139;;28090:419;;;:::o;28515:180::-;28563:77;28560:1;28553:88;28660:4;28657:1;28650:15;28684:4;28681:1;28674:15;28701:180;28749:77;28746:1;28739:88;28846:4;28843:1;28836:15;28870:4;28867:1;28860:15;28887:143;28944:5;28975:6;28969:13;28960:22;;28991:33;29018:5;28991:33;:::i;:::-;28887:143;;;;:::o;29036:351::-;29106:6;29155:2;29143:9;29134:7;29130:23;29126:32;29123:119;;;29161:79;;:::i;:::-;29123:119;29281:1;29306:64;29362:7;29353:6;29342:9;29338:22;29306:64;:::i;:::-;29296:74;;29252:128;29036:351;;;;:::o;29393:85::-;29438:7;29467:5;29456:16;;29393:85;;;:::o;29484:158::-;29542:9;29575:61;29593:42;29602:32;29628:5;29602:32;:::i;:::-;29593:42;:::i;:::-;29575:61;:::i;:::-;29562:74;;29484:158;;;:::o;29648:147::-;29743:45;29782:5;29743:45;:::i;:::-;29738:3;29731:58;29648:147;;:::o;29801:114::-;29868:6;29902:5;29896:12;29886:22;;29801:114;;;:::o;29921:184::-;30020:11;30054:6;30049:3;30042:19;30094:4;30089:3;30085:14;30070:29;;29921:184;;;;:::o;30111:132::-;30178:4;30201:3;30193:11;;30231:4;30226:3;30222:14;30214:22;;30111:132;;;:::o;30249:108::-;30326:24;30344:5;30326:24;:::i;:::-;30321:3;30314:37;30249:108;;:::o;30363:179::-;30432:10;30453:46;30495:3;30487:6;30453:46;:::i;:::-;30531:4;30526:3;30522:14;30508:28;;30363:179;;;;:::o;30548:113::-;30618:4;30650;30645:3;30641:14;30633:22;;30548:113;;;:::o;30697:732::-;30816:3;30845:54;30893:5;30845:54;:::i;:::-;30915:86;30994:6;30989:3;30915:86;:::i;:::-;30908:93;;31025:56;31075:5;31025:56;:::i;:::-;31104:7;31135:1;31120:284;31145:6;31142:1;31139:13;31120:284;;;31221:6;31215:13;31248:63;31307:3;31292:13;31248:63;:::i;:::-;31241:70;;31334:60;31387:6;31334:60;:::i;:::-;31324:70;;31180:224;31167:1;31164;31160:9;31155:14;;31120:284;;;31124:14;31420:3;31413:10;;30821:608;;;30697:732;;;;:::o;31435:831::-;31698:4;31736:3;31725:9;31721:19;31713:27;;31750:71;31818:1;31807:9;31803:17;31794:6;31750:71;:::i;:::-;31831:80;31907:2;31896:9;31892:18;31883:6;31831:80;:::i;:::-;31958:9;31952:4;31948:20;31943:2;31932:9;31928:18;31921:48;31986:108;32089:4;32080:6;31986:108;:::i;:::-;31978:116;;32104:72;32172:2;32161:9;32157:18;32148:6;32104:72;:::i;:::-;32186:73;32254:3;32243:9;32239:19;32230:6;32186:73;:::i;:::-;31435:831;;;;;;;;:::o;32272:483::-;32443:4;32481:2;32470:9;32466:18;32458:26;;32494:71;32562:1;32551:9;32547:17;32538:6;32494:71;:::i;:::-;32612:9;32606:4;32602:20;32597:2;32586:9;32582:18;32575:48;32640:108;32743:4;32734:6;32640:108;:::i;:::-;32632:116;;32272:483;;;;;:::o

Swarm Source

ipfs://54647f91e865ea1e8921489e00e365587ba4a41fdc5ef0f197ef782b0a78719d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.