ETH Price: $3,062.61 (+1.94%)
Gas: 4 Gwei

Token

PepeNightClub (PEPECLUB)
 

Overview

Max Total Supply

100,000,000 PEPECLUB

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
164.43355665 PEPECLUB

Value
$0.00
0x244f5ee0A22B65F59863f51456AB8eD89231b722
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:
PEPECLUB

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*   
    
    ██████  ███████ ██████  ███████     ███    ██ ██  ██████  ██   ██ ████████      ██████ ██      ██    ██ ██████  
    ██   ██ ██      ██   ██ ██          ████   ██ ██ ██       ██   ██    ██        ██      ██      ██    ██ ██   ██ 
    ██████  █████   ██████  █████       ██ ██  ██ ██ ██   ███ ███████    ██        ██      ██      ██    ██ ██████  
    ██      ██      ██      ██          ██  ██ ██ ██ ██    ██ ██   ██    ██        ██      ██      ██    ██ ██   ██ 
    ██      ███████ ██      ███████     ██   ████ ██  ██████  ██   ██    ██         ██████ ███████  ██████  ██████                 
                                
-> Telegram: https://t.me/pepenightclub
-> Twitter: https://twitter.com/pepenightclub
-> Website: https://www.pepenightclub.name/

*/

// 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 getPair(address tokenA, address tokenB) external view returns (address pair);
    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 PEPECLUB is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "PepeNightClub";
    string private _symbol = "PEPECLUB";
    uint8 private _decimals = 8; 

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

    uint public _buyTax = 3;     
    uint public _sellTax = 3;     

    address public developmentWallet = address(0x92Bc39Cd65C352cf46d8D334AF8C8972988BFFe6);

    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 = 100_000_000 * 10**_decimals;

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

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

    uint256 public launchedAt;
    bool public normalizeTrade;

    bool tradingActive;

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

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

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

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

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

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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: Exceeds allowance"));
        return true;
    }

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

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        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 &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds 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,"Exceeds Wallet");
            }

            _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(_buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTax).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 payable onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        tradingActive = true;

        uint tokenForLp = _balances[address(this)];

        dexRouter.addLiquidityETH{ value: msg.value }(
            address(this),
            tokenForLp,
            0,
            0,
            owner(),
            block.timestamp
        );

        IDexSwapFactory factory = IDexSwapFactory(dexRouter.factory());

        IDexSwapPair pair = IDexSwapPair(factory.getPair(address(this), dexRouter.WETH()));

        dexPair = address(pair);

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        swapEnabled = true;
        EnableTxLimit = true;
        checkWalletLimit =  true;
    }

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

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyTax = _buy;
        _sellTax = _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(developmentWallet).transfer(amountReceived);

    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(dexRouter), tokenAmount);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            developmentWallet,
            block.timestamp
        );
    }

    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 onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

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

    function setFees(uint _buy, uint _Sell) external onlyOwner {
        _buyTax = _buy;
        _sellTax = _Sell;
    }

    function ToggleLimits() external onlyGuard {
        EnableTxLimit = !EnableTxLimit;
        checkWalletLimit =  !checkWalletLimit;
    }

    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 setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

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

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        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":"ToggleLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyTax","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":"_sellTax","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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"payable","type":"function"},{"inputs":[],"name":"launchedAt","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":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_Sell","type":"uint256"}],"name":"setFees","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":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","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"}]

60c06040526040518060400160405280600d81526020017f506570654e69676874436c756200000000000000000000000000000000000000815250600190816200004a919062000e84565b506040518060400160405280600881526020017f50455045434c55420000000000000000000000000000000000000000000000008152506002908162000091919062000e84565b506008600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250600360045560036005557392bc39cd65c352cf46d8d334af8c8972988bffe6600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a620001999190620010fb565b6305f5e100620001aa91906200114c565b600e55620001e46064620001d06003600e5462000a0160201b620027ff1790919060201c565b62000a8460201b620028791790919060201c565b600f556200021e60646200020a6003600e5462000a0160201b620027ff1790919060201c565b62000a8460201b620028791790919060201c565b601055600360009054906101000a900460ff16600a6200023f9190620010fb565b61c3506200024e91906200114c565b6011556000601360026101000a81548160ff0219169083151502179055506000601360036101000a81548160ff0219169083151502179055506000601360046101000a81548160ff0219169083151502179055506000601360056101000a81548160ff021916908315150217905550348015620002ca57600080fd5b50620002eb620002df62000ad660201b60201c565b62000ade60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051620009f29190620011be565b60405180910390a3506200138d565b600080830362000a15576000905062000a7e565b6000828462000a2591906200114c565b905082848262000a3691906200120a565b1462000a79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7090620012c9565b60405180910390fd5b809150505b92915050565b600062000ace83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ba260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000be3919062001369565b60405180910390fd5b506000838562000bfd91906200120a565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c8c57607f821691505b60208210810362000ca25762000ca162000c44565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ccd565b62000d18868362000ccd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d6562000d5f62000d598462000d30565b62000d3a565b62000d30565b9050919050565b6000819050919050565b62000d818362000d44565b62000d9962000d908262000d6c565b84845462000cda565b825550505050565b600090565b62000db062000da1565b62000dbd81848462000d76565b505050565b5b8181101562000de55762000dd960008262000da6565b60018101905062000dc3565b5050565b601f82111562000e345762000dfe8162000ca8565b62000e098462000cbd565b8101602085101562000e19578190505b62000e3162000e288562000cbd565b83018262000dc2565b50505b505050565b600082821c905092915050565b600062000e596000198460080262000e39565b1980831691505092915050565b600062000e74838362000e46565b9150826002028217905092915050565b62000e8f8262000c0a565b67ffffffffffffffff81111562000eab5762000eaa62000c15565b5b62000eb7825462000c73565b62000ec482828562000de9565b600060209050601f83116001811462000efc576000841562000ee7578287015190505b62000ef3858262000e66565b86555062000f63565b601f19841662000f0c8662000ca8565b60005b8281101562000f365784890151825560018201915060208501945060208101905062000f0f565b8683101562000f56578489015162000f52601f89168262000e46565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ff95780860481111562000fd15762000fd062000f6b565b5b600185161562000fe15780820291505b808102905062000ff18562000f9a565b945062000fb1565b94509492505050565b600082620010145760019050620010e7565b81620010245760009050620010e7565b81600181146200103d576002811462001048576200107e565b6001915050620010e7565b60ff8411156200105d576200105c62000f6b565b5b8360020a91508482111562001077576200107662000f6b565b5b50620010e7565b5060208310610133831016604e8410600b8410161715620010b85782820a905083811115620010b257620010b162000f6b565b5b620010e7565b620010c7848484600162000fa7565b92509050818404811115620010e157620010e062000f6b565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011088262000d30565b91506200111583620010ee565b9250620011447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001002565b905092915050565b6000620011598262000d30565b9150620011668362000d30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620011a257620011a162000f6b565b5b828202905092915050565b620011b88162000d30565b82525050565b6000602082019050620011d56000830184620011ad565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012178262000d30565b9150620012248362000d30565b925082620012375762001236620011db565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620012b160218362001242565b9150620012be8262001253565b604082019050919050565b60006020820190508181036000830152620012e481620012a2565b9050919050565b60005b838110156200130b578082015181840152602081019050620012ee565b60008484015250505050565b6000601f19601f8301169050919050565b6000620013358262000c0a565b62001341818562001242565b935062001353818560208601620012eb565b6200135e8162001317565b840191505092915050565b6000602082019050818103600083015262001385818462001328565b905092915050565b60805160a051614e01620013c160003960008181611286015261149601526000818161146a01526114c20152614e016000f3fe6080604052600436106103035760003560e01c806372ac248611610190578063c16dd4a4116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610b6e578063f2fde38b14610b99578063f71b9bbf14610bc2578063f872858a14610beb5761030a565b8063e6b2603b14610b03578063e9fd339414610b1a578063ee828db314610b455761030a565b8063c16dd4a4146109e3578063c867d60b14610a0c578063ca9ec19914610a49578063cea9d26f14610a74578063dd62ed3e14610a9d578063df8408fe14610ada5761030a565b806395d89b4111610149578063ae85ade611610123578063ae85ade61461093b578063b94b0aef14610964578063bf56b3711461098d578063c04a5414146109b85761030a565b806395d89b4114610896578063a457c2d7146108c1578063a9059cbb146108fe5761030a565b806372ac2486146107985780637ac71126146107c15780637d1db4a5146107d8578063807c2d9c146108035780638b42507f1461082e5780638da5cb5b1461086b5761030a565b8063395093511161024f5780635c85974f116102085780636ddd1713116101e25780636ddd1713146106f057806370a082311461071b578063715018a614610758578063728d41c91461076f5761030a565b80635c85974f146106735780635e42358c1461069c578063651a8987146106c75761030a565b8063395093511461053f5780633ecad2711461057c57806342a11095146105b95780634974d88f146105e45780635342acb41461060d57806359fac5171461064a5761030a565b80630b78f9c0116102bc57806323b872dd1161029657806323b872dd1461048157806327c8f835146104be5780632b112e49146104e9578063313ce567146105145761030a565b80630b78f9c014610402578063111a46511461042b57806318160ddd146104565761030a565b806301339c211461030f5780630445b6671461031957806306fdde03146103445780630758d9241461036f5780630930907b1461039a578063095ea7b3146103c55761030a565b3661030a57005b600080fd5b610317610c16565b005b34801561032557600080fd5b5061032e6111c6565b60405161033b9190613d44565b60405180910390f35b34801561035057600080fd5b506103596111cc565b6040516103669190613def565b60405180910390f35b34801561037b57600080fd5b5061038461125e565b6040516103919190613e90565b60405180910390f35b3480156103a657600080fd5b506103af611284565b6040516103bc9190613ecc565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190613f44565b6112a8565b6040516103f99190613f9f565b60405180910390f35b34801561040e57600080fd5b5061042960048036038101906104249190613fba565b6112c6565b005b34801561043757600080fd5b50610440611354565b60405161044d9190613f9f565b60405180910390f35b34801561046257600080fd5b5061046b611367565b6040516104789190613d44565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190613ffa565b611371565b6040516104b59190613f9f565b60405180910390f35b3480156104ca57600080fd5b506104d3611468565b6040516104e09190613ecc565b60405180910390f35b3480156104f557600080fd5b506104fe61148c565b60405161050b9190613d44565b60405180910390f35b34801561052057600080fd5b5061052961150a565b6040516105369190614069565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190613f44565b611521565b6040516105739190613f9f565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190614084565b6115d4565b6040516105b09190613f9f565b60405180910390f35b3480156105c557600080fd5b506105ce6115f4565b6040516105db9190613d44565b60405180910390f35b3480156105f057600080fd5b5061060b600480360381019061060691906140dd565b6115fa565b005b34801561061957600080fd5b50610634600480360381019061062f9190614084565b611693565b6040516106419190613f9f565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190614084565b6116b3565b005b34801561067f57600080fd5b5061069a6004803603810190610695919061410a565b611773565b005b3480156106a857600080fd5b506106b16117f9565b6040516106be9190613f9f565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190614137565b61180c565b005b3480156106fc57600080fd5b506107056118e3565b6040516107129190613f9f565b60405180910390f35b34801561072757600080fd5b50610742600480360381019061073d9190614084565b6118f6565b60405161074f9190613d44565b60405180910390f35b34801561076457600080fd5b5061076d61193f565b005b34801561077b57600080fd5b506107966004803603810190610791919061410a565b6119c7565b005b3480156107a457600080fd5b506107bf60048036038101906107ba9190614084565b611a4d565b005b3480156107cd57600080fd5b506107d6611b0d565b005b3480156107e457600080fd5b506107ed611bf3565b6040516107fa9190613d44565b60405180910390f35b34801561080f57600080fd5b50610818611bf9565b6040516108259190613d44565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190614084565b611bff565b6040516108629190613f9f565b60405180910390f35b34801561087757600080fd5b50610880611c1f565b60405161088d9190613ecc565b60405180910390f35b3480156108a257600080fd5b506108ab611c48565b6040516108b89190613def565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613f44565b611cda565b6040516108f59190613f9f565b60405180910390f35b34801561090a57600080fd5b5061092560048036038101906109209190613f44565b611da7565b6040516109329190613f9f565b60405180910390f35b34801561094757600080fd5b50610962600480360381019061095d9190614137565b611dc6565b005b34801561097057600080fd5b5061098b60048036038101906109869190614177565b611e9d565b005b34801561099957600080fd5b506109a2611f6d565b6040516109af9190613d44565b60405180910390f35b3480156109c457600080fd5b506109cd611f73565b6040516109da9190613ecc565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a059190614137565b611f99565b005b348015610a1857600080fd5b50610a336004803603810190610a2e9190614084565b6120ce565b604051610a409190613f9f565b60405180910390f35b348015610a5557600080fd5b50610a5e6120ee565b604051610a6b9190613d44565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613ffa565b6120f4565b005b348015610aa957600080fd5b50610ac46004803603810190610abf91906141ca565b6122c6565b604051610ad19190613d44565b60405180910390f35b348015610ae657600080fd5b50610b016004803603810190610afc9190614137565b61234d565b005b348015610b0f57600080fd5b50610b18612424565b005b348015610b2657600080fd5b50610b2f612563565b604051610b3c9190613f9f565b60405180910390f35b348015610b5157600080fd5b50610b6c6004803603810190610b6791906140dd565b612576565b005b348015610b7a57600080fd5b50610b8361260f565b604051610b909190613ecc565b60405180910390f35b348015610ba557600080fd5b50610bc06004803603810190610bbb9190614084565b612635565b005b348015610bce57600080fd5b50610be96004803603810190610be49190614084565b61272c565b005b348015610bf757600080fd5b50610c006127ec565b604051610c0d9190613f9f565b60405180910390f35b610c1e6128c3565b73ffffffffffffffffffffffffffffffffffffffff16610c3c611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990614256565b60405180910390fd5b600060125414610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce906142c2565b60405180910390fd5b436012819055506001601360016101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610d89611c1f565b426040518863ffffffff1660e01b8152600401610dab9695949392919061431d565b60606040518083038185885af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee9190614393565b5050506000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8491906143fb565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3691906143fb565b6040518363ffffffff1660e01b8152600401610f53929190614428565b602060405180830381865afa158015610f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9491906143fb565b905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601360026101000a81548160ff0219169083151502179055506001601360046101000a81548160ff0219169083151502179055506001601360056101000a81548160ff021916908315150217905550505050565b60115481565b6060600180546111db90614480565b80601f016020809104026020016040519081016040528092919081815260200182805461120790614480565b80156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b5050505050905090565b601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112bc6112b56128c3565b84846128cb565b6001905092915050565b6112ce6128c3565b73ffffffffffffffffffffffffffffffffffffffff166112ec611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990614256565b60405180910390fd5b81600481905550806005819055505050565b601360009054906101000a900460ff1681565b6000600e54905090565b600061137e848484612a94565b5061145d8461138b6128c3565b611458856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061140e6128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b6128cb565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115056114ba7f00000000000000000000000000000000000000000000000000000000000000006118f6565b6114f76114e67f00000000000000000000000000000000000000000000000000000000000000006118f6565b600e546131e390919063ffffffff16565b6131e390919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006115ca61152e6128c3565b846115c5856009600061153f6128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b6128cb565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60045481565b6116026128c3565b73ffffffffffffffffffffffffffffffffffffffff16611620611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90614256565b60405180910390fd5b80601360056101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6116bb6128c3565b73ffffffffffffffffffffffffffffffffffffffff166116d9611c1f565b73ffffffffffffffffffffffffffffffffffffffff161461172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690614256565b60405180910390fd5b80601360066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61177b6128c3565b73ffffffffffffffffffffffffffffffffffffffff16611799611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690614256565b60405180910390fd5b80600f8190555050565b601360049054906101000a900460ff1681565b6118146128c3565b73ffffffffffffffffffffffffffffffffffffffff16611832611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f90614256565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119476128c3565b73ffffffffffffffffffffffffffffffffffffffff16611965611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b290614256565b60405180910390fd5b6119c5600061328b565b565b6119cf6128c3565b73ffffffffffffffffffffffffffffffffffffffff166119ed611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90614256565b60405180910390fd5b8060108190555050565b611a556128c3565b73ffffffffffffffffffffffffffffffffffffffff16611a73611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090614256565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906144fd565b60405180910390fd5b601360049054906101000a900460ff1615601360046101000a81548160ff021916908315150217905550601360059054906101000a900460ff1615601360056101000a81548160ff021916908315150217905550565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611c5790614480565b80601f0160208091040260200160405190810160405280929190818152602001828054611c8390614480565b8015611cd05780601f10611ca557610100808354040283529160200191611cd0565b820191906000526020600020905b815481529060010190602001808311611cb357829003601f168201915b5050505050905090565b6000611d9d611ce76128c3565b84611d9885604051806060016040528060258152602001614da76025913960096000611d116128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b6128cb565b6001905092915050565b6000611dbb611db46128c3565b8484612a94565b506001905092915050565b611dce6128c3565b73ffffffffffffffffffffffffffffffffffffffff16611dec611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990614256565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906144fd565b60405180910390fd5b81601360026101000a81548160ff02191690831515021790555080601360036101000a81548160ff02191690831515021790555082601181905550505050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fa16128c3565b73ffffffffffffffffffffffffffffffffffffffff16611fbf611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90614256565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156120ca5780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60055481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b906144fd565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016121b092919061451d565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161223a919061458d565b6000604051808303816000865af19150503d8060008114612277576040519150601f19603f3d011682016040523d82523d6000602084013e61227c565b606091505b50509050806122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b7906145f0565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123556128c3565b73ffffffffffffffffffffffffffffffffffffffff16612373611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090614256565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab906144fd565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124da90614636565b60006040518083038185875af1925050503d8060008114612517576040519150601f19603f3d011682016040523d82523d6000602084013e61251c565b606091505b5050905080612560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255790614697565b60405180910390fd5b50565b601360039054906101000a900460ff1681565b61257e6128c3565b73ffffffffffffffffffffffffffffffffffffffff1661259c611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e990614256565b60405180910390fd5b80601360046101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61263d6128c3565b73ffffffffffffffffffffffffffffffffffffffff1661265b611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890614256565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271790614729565b60405180910390fd5b6127298161328b565b50565b6127346128c3565b73ffffffffffffffffffffffffffffffffffffffff16612752611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f90614256565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360059054906101000a900460ff1681565b60008083036128115760009050612873565b6000828461281f9190614778565b905082848261282e9190614801565b1461286e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612865906148a4565b60405180910390fd5b809150505b92915050565b60006128bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361293a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293190614936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a0906149c8565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a879190613d44565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ace57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b0757600080fd5b60008211612b1457600080fd5b60148054906101000a900460ff1615612b3957612b328484846133b2565b9050613178565b601360019054906101000a900460ff16612c2e57600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bee5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a34565b60405180910390fd5b5b600060125414158015612c4e5750601360009054906101000a900460ff16155b15612c5c57612c5b613585565b5b6000612c67306118f6565b905060006011548210159050808015612c8b575060148054906101000a900460ff16155b8015612ce15750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf95750601360029054906101000a900460ff165b8015612d4f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612da55750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612db457612db382613621565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e585750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e705750601360049054906101000a900460ff165b15612ebb57600f54841115612eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb190614aa0565b60405180910390fd5b5b612f44846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612f93878761370d565b612fa757612fa2878787613878565b612fa9565b845b9050601360059054906101000a900460ff1680156130115750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156130765760105461303482613026896118f6565b61322d90919063ffffffff16565b1115613075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306c90614b0c565b60405180910390fd5b5b6130c881600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131689190613d44565b60405180910390a3600193505050505b9392505050565b60008383111582906131c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131be9190613def565b60405180910390fd5b50600083856131d69190614b2c565b9050809150509392505050565b600061322583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061317f565b905092915050565b600080828461323c9190614b60565b905083811015613281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327890614be0565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d9190613def565b60405180910390fd5b50600083856133a59190614801565b9050809150509392505050565b600061343d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134d282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135729190613d44565b60405180910390a3600190509392505050565b60036012546135949190614b60565b43116135a6576135a5606380613a9d565b5b60036012546135b59190614b60565b431180156135d1575060166012546135cd9190614b60565b4311155b156135e2576135e1602d80613a9d565b5b60166012546135f19190614b60565b43111561361f57613603600380613a9d565b6001601360006101000a81548160ff0219169083151502179055505b565b60016014806101000a81548160ff021916908315150217905550601360039054906101000a900460ff16156136565760115490505b600047905061366482613aaf565b600061367982476131e390919063ffffffff16565b905060008111156136ee57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136ec573d6000803e3d6000fd5b505b505060006014806101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137b05750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137be5760019050613872565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061385f5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561386d5760009050613872565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138fd576138f66007546138e8600454866127ff90919063ffffffff16565b61287990919063ffffffff16565b905061397c565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561397b5761397860075461396a600554866127ff90919063ffffffff16565b61287990919063ffffffff16565b90505b5b6000811115613a80576139d781600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a779190613d44565b60405180910390a35b613a9381846131e390919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff811115613acc57613acb614c00565b5b604051908082528060200260200182016040528015613afa5781602001602082028036833780820191505090505b5090503081600081518110613b1257613b11614c2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bdd91906143fb565b81600181518110613bf157613bf0614c2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c5830601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128cb565b601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cbc959493929190614d1c565b600060405180830381600087803b158015613cd657600080fd5b505af1158015613cea573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d1f929190614d76565b60405180910390a15050565b6000819050919050565b613d3e81613d2b565b82525050565b6000602082019050613d596000830184613d35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d99578082015181840152602081019050613d7e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dc182613d5f565b613dcb8185613d6a565b9350613ddb818560208601613d7b565b613de481613da5565b840191505092915050565b60006020820190508181036000830152613e098184613db6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613e56613e51613e4c84613e11565b613e31565b613e11565b9050919050565b6000613e6882613e3b565b9050919050565b6000613e7a82613e5d565b9050919050565b613e8a81613e6f565b82525050565b6000602082019050613ea56000830184613e81565b92915050565b6000613eb682613e11565b9050919050565b613ec681613eab565b82525050565b6000602082019050613ee16000830184613ebd565b92915050565b600080fd5b613ef581613eab565b8114613f0057600080fd5b50565b600081359050613f1281613eec565b92915050565b613f2181613d2b565b8114613f2c57600080fd5b50565b600081359050613f3e81613f18565b92915050565b60008060408385031215613f5b57613f5a613ee7565b5b6000613f6985828601613f03565b9250506020613f7a85828601613f2f565b9150509250929050565b60008115159050919050565b613f9981613f84565b82525050565b6000602082019050613fb46000830184613f90565b92915050565b60008060408385031215613fd157613fd0613ee7565b5b6000613fdf85828601613f2f565b9250506020613ff085828601613f2f565b9150509250929050565b60008060006060848603121561401357614012613ee7565b5b600061402186828701613f03565b935050602061403286828701613f03565b925050604061404386828701613f2f565b9150509250925092565b600060ff82169050919050565b6140638161404d565b82525050565b600060208201905061407e600083018461405a565b92915050565b60006020828403121561409a57614099613ee7565b5b60006140a884828501613f03565b91505092915050565b6140ba81613f84565b81146140c557600080fd5b50565b6000813590506140d7816140b1565b92915050565b6000602082840312156140f3576140f2613ee7565b5b6000614101848285016140c8565b91505092915050565b6000602082840312156141205761411f613ee7565b5b600061412e84828501613f2f565b91505092915050565b6000806040838503121561414e5761414d613ee7565b5b600061415c85828601613f03565b925050602061416d858286016140c8565b9150509250929050565b6000806000606084860312156141905761418f613ee7565b5b600061419e86828701613f2f565b93505060206141af868287016140c8565b92505060406141c0868287016140c8565b9150509250925092565b600080604083850312156141e1576141e0613ee7565b5b60006141ef85828601613f03565b925050602061420085828601613f03565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614240602083613d6a565b915061424b8261420a565b602082019050919050565b6000602082019050818103600083015261426f81614233565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b60006142ac601183613d6a565b91506142b782614276565b602082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b6000819050919050565b60006143076143026142fd846142e2565b613e31565b613d2b565b9050919050565b614317816142ec565b82525050565b600060c0820190506143326000830189613ebd565b61433f6020830188613d35565b61434c604083018761430e565b614359606083018661430e565b6143666080830185613ebd565b61437360a0830184613d35565b979650505050505050565b60008151905061438d81613f18565b92915050565b6000806000606084860312156143ac576143ab613ee7565b5b60006143ba8682870161437e565b93505060206143cb8682870161437e565b92505060406143dc8682870161437e565b9150509250925092565b6000815190506143f581613eec565b92915050565b60006020828403121561441157614410613ee7565b5b600061441f848285016143e6565b91505092915050565b600060408201905061443d6000830185613ebd565b61444a6020830184613ebd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061449857607f821691505b6020821081036144ab576144aa614451565b5b50919050565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b60006144e7600e83613d6a565b91506144f2826144b1565b602082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b60006040820190506145326000830185613ebd565b61453f6020830184613d35565b9392505050565b600081519050919050565b600081905092915050565b600061456782614546565b6145718185614551565b9350614581818560208601613d7b565b80840191505092915050565b6000614599828461455c565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b60006145da601483613d6a565b91506145e5826145a4565b602082019050919050565b60006020820190508181036000830152614609816145cd565b9050919050565b50565b6000614620600083614551565b915061462b82614610565b600082019050919050565b600061464182614613565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614681601483613d6a565b915061468c8261464b565b602082019050919050565b600060208201905081810360008301526146b081614674565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614713602683613d6a565b915061471e826146b7565b604082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061478382613d2b565b915061478e83613d2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147c7576147c6614749565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061480c82613d2b565b915061481783613d2b565b925082614827576148266147d2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061488e602183613d6a565b915061489982614832565b604082019050919050565b600060208201905081810360008301526148bd81614881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614920602483613d6a565b915061492b826148c4565b604082019050919050565b6000602082019050818103600083015261494f81614913565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149b2602283613d6a565b91506149bd82614956565b604082019050919050565b600060208201905081810360008301526149e1816149a5565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614a1e601683613d6a565b9150614a29826149e8565b602082019050919050565b60006020820190508181036000830152614a4d81614a11565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b6000614a8a601383613d6a565b9150614a9582614a54565b602082019050919050565b60006020820190508181036000830152614ab981614a7d565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000614af6600e83613d6a565b9150614b0182614ac0565b602082019050919050565b60006020820190508181036000830152614b2581614ae9565b9050919050565b6000614b3782613d2b565b9150614b4283613d2b565b9250828203905081811115614b5a57614b59614749565b5b92915050565b6000614b6b82613d2b565b9150614b7683613d2b565b9250828201905080821115614b8e57614b8d614749565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614bca601b83613d6a565b9150614bd582614b94565b602082019050919050565b60006020820190508181036000830152614bf981614bbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c9381613eab565b82525050565b6000614ca58383614c8a565b60208301905092915050565b6000602082019050919050565b6000614cc982614c5e565b614cd38185614c69565b9350614cde83614c7a565b8060005b83811015614d0f578151614cf68882614c99565b9750614d0183614cb1565b925050600181019050614ce2565b5085935050505092915050565b600060a082019050614d316000830188613d35565b614d3e602083018761430e565b8181036040830152614d508186614cbe565b9050614d5f6060830185613ebd565b614d6c6080830184613d35565b9695505050505050565b6000604082019050614d8b6000830185613d35565b8181036020830152614d9d8184614cbe565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e4c196d12e809d4ec503b60f4cec0bcde5115dac344f77ab052707e96cbb295964736f6c63430008100033

Deployed Bytecode

0x6080604052600436106103035760003560e01c806372ac248611610190578063c16dd4a4116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610b6e578063f2fde38b14610b99578063f71b9bbf14610bc2578063f872858a14610beb5761030a565b8063e6b2603b14610b03578063e9fd339414610b1a578063ee828db314610b455761030a565b8063c16dd4a4146109e3578063c867d60b14610a0c578063ca9ec19914610a49578063cea9d26f14610a74578063dd62ed3e14610a9d578063df8408fe14610ada5761030a565b806395d89b4111610149578063ae85ade611610123578063ae85ade61461093b578063b94b0aef14610964578063bf56b3711461098d578063c04a5414146109b85761030a565b806395d89b4114610896578063a457c2d7146108c1578063a9059cbb146108fe5761030a565b806372ac2486146107985780637ac71126146107c15780637d1db4a5146107d8578063807c2d9c146108035780638b42507f1461082e5780638da5cb5b1461086b5761030a565b8063395093511161024f5780635c85974f116102085780636ddd1713116101e25780636ddd1713146106f057806370a082311461071b578063715018a614610758578063728d41c91461076f5761030a565b80635c85974f146106735780635e42358c1461069c578063651a8987146106c75761030a565b8063395093511461053f5780633ecad2711461057c57806342a11095146105b95780634974d88f146105e45780635342acb41461060d57806359fac5171461064a5761030a565b80630b78f9c0116102bc57806323b872dd1161029657806323b872dd1461048157806327c8f835146104be5780632b112e49146104e9578063313ce567146105145761030a565b80630b78f9c014610402578063111a46511461042b57806318160ddd146104565761030a565b806301339c211461030f5780630445b6671461031957806306fdde03146103445780630758d9241461036f5780630930907b1461039a578063095ea7b3146103c55761030a565b3661030a57005b600080fd5b610317610c16565b005b34801561032557600080fd5b5061032e6111c6565b60405161033b9190613d44565b60405180910390f35b34801561035057600080fd5b506103596111cc565b6040516103669190613def565b60405180910390f35b34801561037b57600080fd5b5061038461125e565b6040516103919190613e90565b60405180910390f35b3480156103a657600080fd5b506103af611284565b6040516103bc9190613ecc565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190613f44565b6112a8565b6040516103f99190613f9f565b60405180910390f35b34801561040e57600080fd5b5061042960048036038101906104249190613fba565b6112c6565b005b34801561043757600080fd5b50610440611354565b60405161044d9190613f9f565b60405180910390f35b34801561046257600080fd5b5061046b611367565b6040516104789190613d44565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190613ffa565b611371565b6040516104b59190613f9f565b60405180910390f35b3480156104ca57600080fd5b506104d3611468565b6040516104e09190613ecc565b60405180910390f35b3480156104f557600080fd5b506104fe61148c565b60405161050b9190613d44565b60405180910390f35b34801561052057600080fd5b5061052961150a565b6040516105369190614069565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190613f44565b611521565b6040516105739190613f9f565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190614084565b6115d4565b6040516105b09190613f9f565b60405180910390f35b3480156105c557600080fd5b506105ce6115f4565b6040516105db9190613d44565b60405180910390f35b3480156105f057600080fd5b5061060b600480360381019061060691906140dd565b6115fa565b005b34801561061957600080fd5b50610634600480360381019061062f9190614084565b611693565b6040516106419190613f9f565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190614084565b6116b3565b005b34801561067f57600080fd5b5061069a6004803603810190610695919061410a565b611773565b005b3480156106a857600080fd5b506106b16117f9565b6040516106be9190613f9f565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190614137565b61180c565b005b3480156106fc57600080fd5b506107056118e3565b6040516107129190613f9f565b60405180910390f35b34801561072757600080fd5b50610742600480360381019061073d9190614084565b6118f6565b60405161074f9190613d44565b60405180910390f35b34801561076457600080fd5b5061076d61193f565b005b34801561077b57600080fd5b506107966004803603810190610791919061410a565b6119c7565b005b3480156107a457600080fd5b506107bf60048036038101906107ba9190614084565b611a4d565b005b3480156107cd57600080fd5b506107d6611b0d565b005b3480156107e457600080fd5b506107ed611bf3565b6040516107fa9190613d44565b60405180910390f35b34801561080f57600080fd5b50610818611bf9565b6040516108259190613d44565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190614084565b611bff565b6040516108629190613f9f565b60405180910390f35b34801561087757600080fd5b50610880611c1f565b60405161088d9190613ecc565b60405180910390f35b3480156108a257600080fd5b506108ab611c48565b6040516108b89190613def565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613f44565b611cda565b6040516108f59190613f9f565b60405180910390f35b34801561090a57600080fd5b5061092560048036038101906109209190613f44565b611da7565b6040516109329190613f9f565b60405180910390f35b34801561094757600080fd5b50610962600480360381019061095d9190614137565b611dc6565b005b34801561097057600080fd5b5061098b60048036038101906109869190614177565b611e9d565b005b34801561099957600080fd5b506109a2611f6d565b6040516109af9190613d44565b60405180910390f35b3480156109c457600080fd5b506109cd611f73565b6040516109da9190613ecc565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a059190614137565b611f99565b005b348015610a1857600080fd5b50610a336004803603810190610a2e9190614084565b6120ce565b604051610a409190613f9f565b60405180910390f35b348015610a5557600080fd5b50610a5e6120ee565b604051610a6b9190613d44565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613ffa565b6120f4565b005b348015610aa957600080fd5b50610ac46004803603810190610abf91906141ca565b6122c6565b604051610ad19190613d44565b60405180910390f35b348015610ae657600080fd5b50610b016004803603810190610afc9190614137565b61234d565b005b348015610b0f57600080fd5b50610b18612424565b005b348015610b2657600080fd5b50610b2f612563565b604051610b3c9190613f9f565b60405180910390f35b348015610b5157600080fd5b50610b6c6004803603810190610b6791906140dd565b612576565b005b348015610b7a57600080fd5b50610b8361260f565b604051610b909190613ecc565b60405180910390f35b348015610ba557600080fd5b50610bc06004803603810190610bbb9190614084565b612635565b005b348015610bce57600080fd5b50610be96004803603810190610be49190614084565b61272c565b005b348015610bf757600080fd5b50610c006127ec565b604051610c0d9190613f9f565b60405180910390f35b610c1e6128c3565b73ffffffffffffffffffffffffffffffffffffffff16610c3c611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990614256565b60405180910390fd5b600060125414610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cce906142c2565b60405180910390fd5b436012819055506001601360016101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610d89611c1f565b426040518863ffffffff1660e01b8152600401610dab9695949392919061431d565b60606040518083038185885af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee9190614393565b5050506000601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8491906143fb565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3691906143fb565b6040518363ffffffff1660e01b8152600401610f53929190614428565b602060405180830381865afa158015610f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9491906143fb565b905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601360026101000a81548160ff0219169083151502179055506001601360046101000a81548160ff0219169083151502179055506001601360056101000a81548160ff021916908315150217905550505050565b60115481565b6060600180546111db90614480565b80601f016020809104026020016040519081016040528092919081815260200182805461120790614480565b80156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b5050505050905090565b601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112bc6112b56128c3565b84846128cb565b6001905092915050565b6112ce6128c3565b73ffffffffffffffffffffffffffffffffffffffff166112ec611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990614256565b60405180910390fd5b81600481905550806005819055505050565b601360009054906101000a900460ff1681565b6000600e54905090565b600061137e848484612a94565b5061145d8461138b6128c3565b611458856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061140e6128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b6128cb565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006115056114ba7f00000000000000000000000000000000000000000000000000000000000000006118f6565b6114f76114e67f000000000000000000000000000000000000000000000000000000000000dead6118f6565b600e546131e390919063ffffffff16565b6131e390919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006115ca61152e6128c3565b846115c5856009600061153f6128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b6128cb565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60045481565b6116026128c3565b73ffffffffffffffffffffffffffffffffffffffff16611620611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90614256565b60405180910390fd5b80601360056101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6116bb6128c3565b73ffffffffffffffffffffffffffffffffffffffff166116d9611c1f565b73ffffffffffffffffffffffffffffffffffffffff161461172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690614256565b60405180910390fd5b80601360066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61177b6128c3565b73ffffffffffffffffffffffffffffffffffffffff16611799611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690614256565b60405180910390fd5b80600f8190555050565b601360049054906101000a900460ff1681565b6118146128c3565b73ffffffffffffffffffffffffffffffffffffffff16611832611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187f90614256565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119476128c3565b73ffffffffffffffffffffffffffffffffffffffff16611965611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b290614256565b60405180910390fd5b6119c5600061328b565b565b6119cf6128c3565b73ffffffffffffffffffffffffffffffffffffffff166119ed611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90614256565b60405180910390fd5b8060108190555050565b611a556128c3565b73ffffffffffffffffffffffffffffffffffffffff16611a73611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090614256565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906144fd565b60405180910390fd5b601360049054906101000a900460ff1615601360046101000a81548160ff021916908315150217905550601360059054906101000a900460ff1615601360056101000a81548160ff021916908315150217905550565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611c5790614480565b80601f0160208091040260200160405190810160405280929190818152602001828054611c8390614480565b8015611cd05780601f10611ca557610100808354040283529160200191611cd0565b820191906000526020600020905b815481529060010190602001808311611cb357829003601f168201915b5050505050905090565b6000611d9d611ce76128c3565b84611d9885604051806060016040528060258152602001614da76025913960096000611d116128c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b6128cb565b6001905092915050565b6000611dbb611db46128c3565b8484612a94565b506001905092915050565b611dce6128c3565b73ffffffffffffffffffffffffffffffffffffffff16611dec611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990614256565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906144fd565b60405180910390fd5b81601360026101000a81548160ff02191690831515021790555080601360036101000a81548160ff02191690831515021790555082601181905550505050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fa16128c3565b73ffffffffffffffffffffffffffffffffffffffff16611fbf611c1f565b73ffffffffffffffffffffffffffffffffffffffff1614612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90614256565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156120ca5780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60055481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b906144fd565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016121b092919061451d565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161223a919061458d565b6000604051808303816000865af19150503d8060008114612277576040519150601f19603f3d011682016040523d82523d6000602084013e61227c565b606091505b50509050806122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b7906145f0565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123556128c3565b73ffffffffffffffffffffffffffffffffffffffff16612373611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090614256565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab906144fd565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124da90614636565b60006040518083038185875af1925050503d8060008114612517576040519150601f19603f3d011682016040523d82523d6000602084013e61251c565b606091505b5050905080612560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255790614697565b60405180910390fd5b50565b601360039054906101000a900460ff1681565b61257e6128c3565b73ffffffffffffffffffffffffffffffffffffffff1661259c611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e990614256565b60405180910390fd5b80601360046101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61263d6128c3565b73ffffffffffffffffffffffffffffffffffffffff1661265b611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890614256565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271790614729565b60405180910390fd5b6127298161328b565b50565b6127346128c3565b73ffffffffffffffffffffffffffffffffffffffff16612752611c1f565b73ffffffffffffffffffffffffffffffffffffffff16146127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f90614256565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360059054906101000a900460ff1681565b60008083036128115760009050612873565b6000828461281f9190614778565b905082848261282e9190614801565b1461286e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612865906148a4565b60405180910390fd5b809150505b92915050565b60006128bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361293a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293190614936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a0906149c8565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a879190613d44565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ace57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b0757600080fd5b60008211612b1457600080fd5b60148054906101000a900460ff1615612b3957612b328484846133b2565b9050613178565b601360019054906101000a900460ff16612c2e57600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bee5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a34565b60405180910390fd5b5b600060125414158015612c4e5750601360009054906101000a900460ff16155b15612c5c57612c5b613585565b5b6000612c67306118f6565b905060006011548210159050808015612c8b575060148054906101000a900460ff16155b8015612ce15750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf95750601360029054906101000a900460ff165b8015612d4f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612da55750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612db457612db382613621565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e585750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e705750601360049054906101000a900460ff165b15612ebb57600f54841115612eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb190614aa0565b60405180910390fd5b5b612f44846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612f93878761370d565b612fa757612fa2878787613878565b612fa9565b845b9050601360059054906101000a900460ff1680156130115750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156130765760105461303482613026896118f6565b61322d90919063ffffffff16565b1115613075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306c90614b0c565b60405180910390fd5b5b6130c881600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131689190613d44565b60405180910390a3600193505050505b9392505050565b60008383111582906131c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131be9190613def565b60405180910390fd5b50600083856131d69190614b2c565b9050809150509392505050565b600061322583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061317f565b905092915050565b600080828461323c9190614b60565b905083811015613281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327890614be0565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d9190613def565b60405180910390fd5b50600083856133a59190614801565b9050809150509392505050565b600061343d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134d282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135729190613d44565b60405180910390a3600190509392505050565b60036012546135949190614b60565b43116135a6576135a5606380613a9d565b5b60036012546135b59190614b60565b431180156135d1575060166012546135cd9190614b60565b4311155b156135e2576135e1602d80613a9d565b5b60166012546135f19190614b60565b43111561361f57613603600380613a9d565b6001601360006101000a81548160ff0219169083151502179055505b565b60016014806101000a81548160ff021916908315150217905550601360039054906101000a900460ff16156136565760115490505b600047905061366482613aaf565b600061367982476131e390919063ffffffff16565b905060008111156136ee57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136ec573d6000803e3d6000fd5b505b505060006014806101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137b05750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137be5760019050613872565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061385f5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561386d5760009050613872565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138fd576138f66007546138e8600454866127ff90919063ffffffff16565b61287990919063ffffffff16565b905061397c565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561397b5761397860075461396a600554866127ff90919063ffffffff16565b61287990919063ffffffff16565b90505b5b6000811115613a80576139d781600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322d90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a779190613d44565b60405180910390a35b613a9381846131e390919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff811115613acc57613acb614c00565b5b604051908082528060200260200182016040528015613afa5781602001602082028036833780820191505090505b5090503081600081518110613b1257613b11614c2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bdd91906143fb565b81600181518110613bf157613bf0614c2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c5830601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128cb565b601360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cbc959493929190614d1c565b600060405180830381600087803b158015613cd657600080fd5b505af1158015613cea573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d1f929190614d76565b60405180910390a15050565b6000819050919050565b613d3e81613d2b565b82525050565b6000602082019050613d596000830184613d35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d99578082015181840152602081019050613d7e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dc182613d5f565b613dcb8185613d6a565b9350613ddb818560208601613d7b565b613de481613da5565b840191505092915050565b60006020820190508181036000830152613e098184613db6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613e56613e51613e4c84613e11565b613e31565b613e11565b9050919050565b6000613e6882613e3b565b9050919050565b6000613e7a82613e5d565b9050919050565b613e8a81613e6f565b82525050565b6000602082019050613ea56000830184613e81565b92915050565b6000613eb682613e11565b9050919050565b613ec681613eab565b82525050565b6000602082019050613ee16000830184613ebd565b92915050565b600080fd5b613ef581613eab565b8114613f0057600080fd5b50565b600081359050613f1281613eec565b92915050565b613f2181613d2b565b8114613f2c57600080fd5b50565b600081359050613f3e81613f18565b92915050565b60008060408385031215613f5b57613f5a613ee7565b5b6000613f6985828601613f03565b9250506020613f7a85828601613f2f565b9150509250929050565b60008115159050919050565b613f9981613f84565b82525050565b6000602082019050613fb46000830184613f90565b92915050565b60008060408385031215613fd157613fd0613ee7565b5b6000613fdf85828601613f2f565b9250506020613ff085828601613f2f565b9150509250929050565b60008060006060848603121561401357614012613ee7565b5b600061402186828701613f03565b935050602061403286828701613f03565b925050604061404386828701613f2f565b9150509250925092565b600060ff82169050919050565b6140638161404d565b82525050565b600060208201905061407e600083018461405a565b92915050565b60006020828403121561409a57614099613ee7565b5b60006140a884828501613f03565b91505092915050565b6140ba81613f84565b81146140c557600080fd5b50565b6000813590506140d7816140b1565b92915050565b6000602082840312156140f3576140f2613ee7565b5b6000614101848285016140c8565b91505092915050565b6000602082840312156141205761411f613ee7565b5b600061412e84828501613f2f565b91505092915050565b6000806040838503121561414e5761414d613ee7565b5b600061415c85828601613f03565b925050602061416d858286016140c8565b9150509250929050565b6000806000606084860312156141905761418f613ee7565b5b600061419e86828701613f2f565b93505060206141af868287016140c8565b92505060406141c0868287016140c8565b9150509250925092565b600080604083850312156141e1576141e0613ee7565b5b60006141ef85828601613f03565b925050602061420085828601613f03565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614240602083613d6a565b915061424b8261420a565b602082019050919050565b6000602082019050818103600083015261426f81614233565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b60006142ac601183613d6a565b91506142b782614276565b602082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b6000819050919050565b60006143076143026142fd846142e2565b613e31565b613d2b565b9050919050565b614317816142ec565b82525050565b600060c0820190506143326000830189613ebd565b61433f6020830188613d35565b61434c604083018761430e565b614359606083018661430e565b6143666080830185613ebd565b61437360a0830184613d35565b979650505050505050565b60008151905061438d81613f18565b92915050565b6000806000606084860312156143ac576143ab613ee7565b5b60006143ba8682870161437e565b93505060206143cb8682870161437e565b92505060406143dc8682870161437e565b9150509250925092565b6000815190506143f581613eec565b92915050565b60006020828403121561441157614410613ee7565b5b600061441f848285016143e6565b91505092915050565b600060408201905061443d6000830185613ebd565b61444a6020830184613ebd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061449857607f821691505b6020821081036144ab576144aa614451565b5b50919050565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b60006144e7600e83613d6a565b91506144f2826144b1565b602082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b60006040820190506145326000830185613ebd565b61453f6020830184613d35565b9392505050565b600081519050919050565b600081905092915050565b600061456782614546565b6145718185614551565b9350614581818560208601613d7b565b80840191505092915050565b6000614599828461455c565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b60006145da601483613d6a565b91506145e5826145a4565b602082019050919050565b60006020820190508181036000830152614609816145cd565b9050919050565b50565b6000614620600083614551565b915061462b82614610565b600082019050919050565b600061464182614613565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614681601483613d6a565b915061468c8261464b565b602082019050919050565b600060208201905081810360008301526146b081614674565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614713602683613d6a565b915061471e826146b7565b604082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061478382613d2b565b915061478e83613d2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147c7576147c6614749565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061480c82613d2b565b915061481783613d2b565b925082614827576148266147d2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061488e602183613d6a565b915061489982614832565b604082019050919050565b600060208201905081810360008301526148bd81614881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614920602483613d6a565b915061492b826148c4565b604082019050919050565b6000602082019050818103600083015261494f81614913565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149b2602283613d6a565b91506149bd82614956565b604082019050919050565b600060208201905081810360008301526149e1816149a5565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614a1e601683613d6a565b9150614a29826149e8565b602082019050919050565b60006020820190508181036000830152614a4d81614a11565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b6000614a8a601383613d6a565b9150614a9582614a54565b602082019050919050565b60006020820190508181036000830152614ab981614a7d565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000614af6600e83613d6a565b9150614b0182614ac0565b602082019050919050565b60006020820190508181036000830152614b2581614ae9565b9050919050565b6000614b3782613d2b565b9150614b4283613d2b565b9250828203905081811115614b5a57614b59614749565b5b92915050565b6000614b6b82613d2b565b9150614b7683613d2b565b9250828201905080821115614b8e57614b8d614749565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614bca601b83613d6a565b9150614bd582614b94565b602082019050919050565b60006020820190508181036000830152614bf981614bbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c9381613eab565b82525050565b6000614ca58383614c8a565b60208301905092915050565b6000602082019050919050565b6000614cc982614c5e565b614cd38185614c69565b9350614cde83614c7a565b8060005b83811015614d0f578151614cf68882614c99565b9750614d0183614cb1565b925050600181019050614ce2565b5085935050505092915050565b600060a082019050614d316000830188613d35565b614d3e602083018761430e565b8181036040830152614d508186614cbe565b9050614d5f6060830185613ebd565b614d6c6080830184613d35565b9695505050505050565b6000604082019050614d8b6000830185613d35565b8181036020830152614d9d8184614cbe565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e4c196d12e809d4ec503b60f4cec0bcde5115dac344f77ab052707e96cbb295964736f6c63430008100033

Deployed Bytecode Sourcemap

8500:14104:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17189:912;;;:::i;:::-;;9666:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11464:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9983:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8802:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12802:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20693:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9760:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11741:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13576:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8714:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12135:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11650:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12299:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9277:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8892:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21074:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9220:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22383:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21695:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9898:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21317:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9822:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11849:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3166:94;;;;;;;;;;;;;:::i;:::-;;21581:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21808:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20820:140;;;;;;;;;;;;;:::i;:::-;;9512:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9588:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9388:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2857:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11555;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13401:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21453:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22146:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9728:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8965:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21934:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9329:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8927:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20413:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11980:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21187:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20227:178;;;;;;;;;;;;;:::i;:::-;;9860:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20968:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10021:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3268:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22506:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9938:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17189:912;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17265:1:::1;17251:10;;:15;17243:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;17312:12;17299:10;:25;;;;17351:4;17335:13;;:20;;;;;;;;;;;;;;;;;;17368:15;17386:9;:24;17404:4;17386:24;;;;;;;;;;;;;;;;17368:42;;17423:9;;;;;;;;;;;:25;;;17457:9;17491:4;17511:10;17536:1;17552::::0;17568:7:::1;:5;:7::i;:::-;17590:15;17423:193;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17629:23;17671:9;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17629:62;;17704:17;17737:7;:15;;;17761:4;17768:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17737:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17704:82;;17817:4;17799:7;;:23;;;;;;;;;;;;;;;;;;17868:4;17835:12;:30;17856:7;;;;;;;;;;;17835:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17923:4;17883:19;:37;17911:7;;;;;;;;;;;17883:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;17994:1;17985:11;17938;:26;17958:4;17938:26;;;;;;;;;;;;;;;:44;17973:7;;;;;;;;;;;17938:44;;;;;;;;;;;;;;;:58;;;;18023:4;18009:11;;:18;;;;;;;;;;;;;;;;;;18054:4;18038:13;;:20;;;;;;;;;;;;;;;;;;18089:4;18069:16;;:24;;;;;;;;;;;;;;;;;;17232:869;;;17189:912::o:0;9666:53::-;;;;:::o;11464:83::-;11501:13;11534:5;11527:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11464:83;:::o;9983:31::-;;;;;;;;;;;;;:::o;8802:81::-;;;:::o;12802:161::-;12877:4;12894:39;12903:12;:10;:12::i;:::-;12917:7;12926:6;12894:8;:39::i;:::-;12951:4;12944:11;;12802:161;;;;:::o;20693:119::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20773:4:::1;20763:7;:14;;;;20799:5;20788:8;:16;;;;20693:119:::0;;:::o;9760:26::-;;;;;;;;;;;;;:::o;11741:100::-;11794:7;11821:12;;11814:19;;11741:100;:::o;13576:297::-;13674:4;13691:36;13701:6;13709:9;13720:6;13691:9;:36::i;:::-;;13738:105;13747:6;13755:12;:10;:12::i;:::-;13769:73;13807:6;13769:73;;;;;;;;;;;;;;;;;:11;:19;13781:6;13769:19;;;;;;;;;;;;;;;:33;13789:12;:10;:12::i;:::-;13769:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;13738:8;:105::i;:::-;13861:4;13854:11;;13576:297;;;;;:::o;8714:81::-;;;:::o;12135:156::-;12188:7;12215:68;12260:22;12270:11;12260:9;:22::i;:::-;12215:40;12232:22;12242:11;12232:9;:22::i;:::-;12215:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;12208:75;;12135:156;:::o;11650:83::-;11691:5;11716:9;;;;;;;;;;;11709:16;;11650:83;:::o;12299:218::-;12387:4;12404:83;12413:12;:10;:12::i;:::-;12427:7;12436:50;12475:10;12436:11;:25;12448:12;:10;:12::i;:::-;12436:25;;;;;;;;;;;;;;;:34;12462:7;12436:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12404:8;:83::i;:::-;12505:4;12498:11;;12299:218;;;;:::o;9277:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8892:23::-;;;;:::o;21074:105::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21164:7:::1;21145:16;;:26;;;;;;;;;;;;;;;;;;21074:105:::0;:::o;9220:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;22383:115::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22482:7:::1;22455:9;;:35;;;;;;;;;;;;;;;;;;22383:115:::0;:::o;21695:101::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21780:8:::1;21765:12;:23;;;;21695:101:::0;:::o;9898:33::-;;;;;;;;;;;;;:::o;21317:128::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21430:7:::1;21402:19;:25;21422:4;21402:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21317:128:::0;;:::o;9822:31::-;;;;;;;;;;;;;:::o;11849:123::-;11915:7;11941:9;:18;11951:7;11941:18;;;;;;;;;;;;;;;;11934:25;;11849:123;;;:::o;3166:94::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3231:21:::1;3249:1;3231:9;:21::i;:::-;3166:94::o:0;21581:106::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21671:8:::1;21658:10;:21;;;;21581:106:::0;:::o;21808:118::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21908:10:::1;21888:17;;:30;;;;;;;;;;;;;;;;;;21808:118:::0;:::o;20820:140::-;10126:17;;;;;;;;;;;10112:31;;:10;:31;;;10104:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20891:13:::1;;;;;;;;;;;20890:14;20874:13;;:30;;;;;;;;;;;;;;;;;;20936:16;;;;;;;;;;;20935:17;20915:16;;:37;;;;;;;;;;;;;;;;;;20820:140::o:0;9512:59::-;;;;:::o;9588:56::-;;;;:::o;9388:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2857:87::-;2903:7;2930:6;;;;;;;;;;;2923:13;;2857:87;:::o;11555:::-;11594:13;11627:7;11620:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:87;:::o;12525:269::-;12618:4;12635:129;12644:12;:10;:12::i;:::-;12658:7;12667:96;12706:15;12667:96;;;;;;;;;;;;;;;;;:11;:25;12679:12;:10;:12::i;:::-;12667:25;;;;;;;;;;;;;;;:34;12693:7;12667:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12635:8;:129::i;:::-;12782:4;12775:11;;12525:269;;;;:::o;13401:167::-;13479:4;13496:42;13506:12;:10;:12::i;:::-;13520:9;13531:6;13496:9;:42::i;:::-;;13556:4;13549:11;;13401:167;;;;:::o;21453:120::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21558:7:::1;21534:15;:21;21550:4;21534:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21453:120:::0;;:::o;22146:229::-;10126:17;;;;;;;;;;;10112:31;;:10;:31;;;10104:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;22289:8:::1;22275:11;;:22;;;;;;;;;;;;;;;;;;22322:8;22308:11;;:22;;;;;;;;;;;;;;;;;;22357:10;22341:13;:26;;;;22146:229:::0;;;:::o;9728:25::-;;;;:::o;8965:86::-;;;;;;;;;;;;;:::o;21934:204::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22038:7:::1;22016:12;:19;22029:5;22016:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22059:7;22056:75;;;22112:7;22083:19;:26;22103:5;22083:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22056:75;21934:204:::0;;:::o;9329:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;8927:24::-;;;;:::o;20413:272::-;10126:17;;;;;;;;;;;10112:31;;:10;:31;;;10104:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20513:12:::1;20539:6;20531:20;;20606:9;20617:7;20552:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20531:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20512:114;;;20645:7;20637:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;20501:184;20413:272:::0;;;:::o;11980:143::-;12061:7;12088:11;:18;12100:5;12088:18;;;;;;;;;;;;;;;:27;12107:7;12088:27;;;;;;;;;;;;;;;;12081:34;;11980:143;;;;:::o;21187:122::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21294:7:::1;21268:17;:23;21286:4;21268:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21187:122:::0;;:::o;20227:178::-;10126:17;;;;;;;;;;;10112:31;;:10;:31;;;10104:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20282:7:::1;20302:10;20294:24;;20326:21;20294:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20281:71;;;20371:2;20363:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;20269:136;20227:178::o:0;9860:31::-;;;;;;;;;;;;;:::o;20968:98::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21051:7:::1;21035:13;;:23;;;;;;;;;;;;;;;;;;20968:98:::0;:::o;10021:22::-;;;;;;;;;;;;;:::o;3268:229::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3391:1:::1;3371:22;;:8;:22;;::::0;3349:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3470:19;3480:8;3470:9;:19::i;:::-;3268:229:::0;:::o;22506:91::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22584:5:::1;22574:7;;:15;;;;;;;;;;;;;;;;;;22506:91:::0;:::o;9938:36::-;;;;;;;;;;;;;:::o;4244:250::-;4302:7;4331:1;4326;:6;4322:47;;4356:1;4349:8;;;;4322:47;4381:9;4397:1;4393;:5;;;;:::i;:::-;4381:17;;4426:1;4421;4417;:5;;;;:::i;:::-;:10;4409:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4485:1;4478:8;;;4244:250;;;;;:::o;4502:132::-;4560:7;4587:39;4591:1;4594;4587:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4580:46;;4502:132;;;;:::o;1424:98::-;1477:7;1504:10;1497:17;;1424:98;:::o;12971:337::-;13081:1;13064:19;;:5;:19;;;13056:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13162:1;13143:21;;:7;:21;;;13135:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13246:6;13216:11;:18;13228:5;13216:18;;;;;;;;;;;;;;;:27;13235:7;13216:27;;;;;;;;;;;;;;;:36;;;;13284:7;13268:32;;13277:5;13268:32;;;13293:6;13268:32;;;;;;:::i;:::-;;;;;;;;12971:337;;;:::o;13881:1877::-;13968:4;14013:1;13995:20;;:6;:20;;;13987:29;;;;;;14056:1;14035:23;;:9;:23;;;14027:32;;;;;;14087:1;14078:6;:10;14070:19;;;;;;14110:6;;;;;;;;;;14106:1643;;;14140:41;14155:6;14163:9;14174:6;14140:14;:41::i;:::-;14133:48;;;;14106:1643;14230:13;;;;;;;;;;;14225:146;;14272:17;:25;14290:6;14272:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14301:17;:28;14319:9;14301:28;;;;;;;;;;;;;;;;;;;;;;;;;14272:57;14264:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;14225:146;14405:1;14391:10;;:15;;:34;;;;;14411:14;;;;;;;;;;;14410:15;14391:34;14387:93;;;14446:18;:16;:18::i;:::-;14387:93;14496:28;14527:24;14545:4;14527:9;:24::i;:::-;14496:55;;14566:28;14621:13;;14597:20;:37;;14566:68;;14673:23;:52;;;;;14719:6;;;;;;;;;;14718:7;14673:52;:95;;;;;14748:12;:20;14761:6;14748:20;;;;;;;;;;;;;;;;;;;;;;;;;14747:21;14673:95;:128;;;;;14790:11;;;;;;;;;;;14673:128;:175;;;;;14823:17;:25;14841:6;14823:25;;;;;;;;;;;;;;;;;;;;;;;;;14822:26;14673:175;:225;;;;;14870:17;:28;14888:9;14870:28;;;;;;;;;;;;;;;;;;;;;;;;;14869:29;14673:225;14651:332;;;14937:30;14946:20;14937:8;:30::i;:::-;14651:332;15003:15;:23;15019:6;15003:23;;;;;;;;;;;;;;;;;;;;;;;;;15002:24;:55;;;;;15031:15;:26;15047:9;15031:26;;;;;;;;;;;;;;;;;;;;;;;;;15030:27;15002:55;:72;;;;;15061:13;;;;;;;;;;;15002:72;14999:166;;;15113:12;;15103:6;:22;;15095:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14999:166;15214:53;15236:6;15214:53;;;;;;;;;;;;;;;;;:9;:17;15224:6;15214:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15194:9;:17;15204:6;15194:17;;;;;;;;;;;;;;;:73;;;;15284:19;15306:34;15323:6;15330:9;15306:16;:34::i;:::-;:80;;15352:34;15360:6;15368:9;15379:6;15352:7;:34::i;:::-;15306:80;;;15343:6;15306:80;15284:102;;15406:16;;;;;;;;;;;:51;;;;;15427:19;:30;15447:9;15427:30;;;;;;;;;;;;;;;;;;;;;;;;;15426:31;15406:51;15403:168;;;15527:10;;15486:37;15511:11;15486:20;15496:9;15486;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;15478:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15403:168;15610:37;15635:11;15610:9;:20;15620:9;15610:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15587:9;:20;15597:9;15587:20;;;;;;;;;;;;;;;:60;;;;15686:9;15669:40;;15678:6;15669:40;;;15697:11;15669:40;;;;;;:::i;:::-;;;;;;;;15731:4;15724:11;;;;;13881:1877;;;;;;:::o;4044:192::-;4130:7;4163:1;4158;:6;;4166:12;4150:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4190:9;4206:1;4202;:5;;;;:::i;:::-;4190:17;;4227:1;4220:8;;;4044:192;;;;;:::o;3900:136::-;3958:7;3985:43;3989:1;3992;3985:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3978:50;;3900:136;;;;:::o;3711:181::-;3769:7;3789:9;3805:1;3801;:5;;;;:::i;:::-;3789:17;;3830:1;3825;:6;;3817:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3883:1;3876:8;;;3711:181;;;;:::o;3505:173::-;3561:16;3580:6;;;;;;;;;;;3561:25;;3606:8;3597:6;;:17;;;;;;;;;;;;;;;;;;3661:8;3630:40;;3651:8;3630:40;;;;;;;;;;;;3550:128;3505:173;:::o;4642:278::-;4728:7;4760:1;4756;:5;4763:12;4748:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4787:9;4803:1;4799;:5;;;;:::i;:::-;4787:17;;4911:1;4904:8;;;4642:278;;;;;:::o;15766:330::-;15859:4;15896:53;15918:6;15896:53;;;;;;;;;;;;;;;;;:9;:17;15906:6;15896:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15876:9;:17;15886:6;15876:17;;;;;;;;;;;;;;;:73;;;;15983:32;16008:6;15983:9;:20;15993:9;15983:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15960:9;:20;15970:9;15960:20;;;;;;;;;;;;;;;:55;;;;16048:9;16031:35;;16040:6;16031:35;;;16059:6;16031:35;;;;;;:::i;:::-;;;;;;;;16084:4;16077:11;;15766:330;;;;;:::o;18109:406::-;18190:1;18177:10;;:14;;;;:::i;:::-;18161:12;:30;18157:83;;18208:20;18222:2;18225;18208:13;:20::i;:::-;18157:83;18282:1;18269:10;;:14;;;;:::i;:::-;18254:12;:29;:64;;;;;18316:2;18303:10;;:15;;;;:::i;:::-;18287:12;:31;;18254:64;18250:117;;;18335:20;18349:2;18352;18335:13;:20::i;:::-;18250:117;18409:2;18396:10;;:15;;;;:::i;:::-;18381:12;:30;18377:117;;;18428:18;18442:1;18444;18428:13;:18::i;:::-;18478:4;18461:14;;:21;;;;;;;;;;;;;;;;;;18377:117;18109:406::o;18648:396::-;10229:4;10220:6;;:13;;;;;;;;;;;;;;;;;;18722:11:::1;;;;;;;;;;;18719:47;;;18753:13;;18735:31;;18719:47;18779:22;18804:21;18779:46;;18836:33;18853:15;18836:16;:33::i;:::-;18880:22;18905:41;18931:14;18905:21;:25;;:41;;;;:::i;:::-;18880:66;;18980:1;18963:14;:18;18959:75;;;18991:17;;;;;;;;;;;18983:35;;:51;19019:14;18983:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18959:75;18706:338;;10265:5:::0;10256:6;;:14;;;;;;;;;;;;;;;;;;18648:396;:::o;16108:369::-;16192:4;16212:17;:25;16230:6;16212:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;16241:17;:28;16259:9;16241:28;;;;;;;;;;;;;;;;;;;;;;;;;16212:57;16209:261;;;16293:4;16286:11;;;;16209:261;16328:12;:20;16341:6;16328:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;16352:12;:23;16365:9;16352:23;;;;;;;;;;;;;;;;;;;;;;;;;16328:47;16324:146;;;16399:5;16392:12;;;;16324:146;16453:5;16446:12;;16108:369;;;;;:::o;16485:692::-;16571:7;16601:14;16658:12;:20;16671:6;16658:20;;;;;;;;;;;;;;;;;;;;;;;;;16655:248;;;16712:39;16736:14;;16712:19;16723:7;;16712:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;16700:51;;16655:248;;;16790:12;:23;16803:9;16790:23;;;;;;;;;;;;;;;;;;;;;;;;;16787:116;;;16847:40;16872:14;;16847:20;16858:8;;16847:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;16835:52;;16787:116;16655:248;16934:1;16922:9;:13;16919:185;;;16983:39;17012:9;16983;:24;17001:4;16983:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16956:9;:24;16974:4;16956:24;;;;;;;;;;;;;;;:66;;;;17071:4;17046:42;;17055:6;17046:42;;;17078:9;17046:42;;;;;;:::i;:::-;;;;;;;;16919:185;17127:21;17138:9;17127:6;:10;;:21;;;;:::i;:::-;17120:28;;;16485:692;;;;;:::o;18523:115::-;18599:4;18589:7;:14;;;;18625:5;18614:8;:16;;;;18523:115;;:::o;19571:648::-;19697:21;19735:1;19721:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19697:40;;19766:4;19748;19753:1;19748:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19792:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19782:4;19787:1;19782:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19821:56;19838:4;19853:9;;;;;;;;;;;19865:11;19821:8;:56::i;:::-;19916:9;;;;;;;;;;;:60;;;19991:11;20017:1;20061:4;20088;20124:15;19916:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20176:35;20193:11;20206:4;20176:35;;;;;;;:::i;:::-;;;;;;;;19626:593;19571: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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:474::-;5171:6;5179;5228:2;5216:9;5207:7;5203:23;5199:32;5196:119;;;5234:79;;:::i;:::-;5196:119;5354:1;5379:53;5424:7;5415:6;5404:9;5400:22;5379:53;:::i;:::-;5369:63;;5325:117;5481:2;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5452:118;5103:474;;;;;:::o;5583:619::-;5660:6;5668;5676;5725:2;5713:9;5704:7;5700:23;5696:32;5693:119;;;5731:79;;:::i;:::-;5693:119;5851:1;5876:53;5921:7;5912:6;5901:9;5897:22;5876:53;:::i;:::-;5866:63;;5822:117;5978:2;6004:53;6049:7;6040:6;6029:9;6025:22;6004:53;:::i;:::-;5994:63;;5949:118;6106:2;6132:53;6177:7;6168:6;6157:9;6153:22;6132:53;:::i;:::-;6122:63;;6077:118;5583:619;;;;;:::o;6208:86::-;6243:7;6283:4;6276:5;6272:16;6261:27;;6208:86;;;:::o;6300:112::-;6383:22;6399:5;6383:22;:::i;:::-;6378:3;6371:35;6300:112;;:::o;6418:214::-;6507:4;6545:2;6534:9;6530:18;6522:26;;6558:67;6622:1;6611:9;6607:17;6598:6;6558:67;:::i;:::-;6418:214;;;;:::o;6638:329::-;6697:6;6746:2;6734:9;6725:7;6721:23;6717:32;6714:119;;;6752:79;;:::i;:::-;6714:119;6872:1;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6843:117;6638:329;;;;:::o;6973:116::-;7043:21;7058:5;7043:21;:::i;:::-;7036:5;7033:32;7023:60;;7079:1;7076;7069:12;7023:60;6973:116;:::o;7095:133::-;7138:5;7176:6;7163:20;7154:29;;7192:30;7216:5;7192:30;:::i;:::-;7095:133;;;;:::o;7234:323::-;7290:6;7339:2;7327:9;7318:7;7314:23;7310:32;7307:119;;;7345:79;;:::i;:::-;7307:119;7465:1;7490:50;7532:7;7523:6;7512:9;7508:22;7490:50;:::i;:::-;7480:60;;7436:114;7234:323;;;;:::o;7563:329::-;7622:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7563:329;;;;:::o;7898:468::-;7963:6;7971;8020:2;8008:9;7999:7;7995:23;7991:32;7988:119;;;8026:79;;:::i;:::-;7988:119;8146:1;8171:53;8216:7;8207:6;8196:9;8192:22;8171:53;:::i;:::-;8161:63;;8117:117;8273:2;8299:50;8341:7;8332:6;8321:9;8317:22;8299:50;:::i;:::-;8289:60;;8244:115;7898:468;;;;;:::o;8372:607::-;8443:6;8451;8459;8508:2;8496:9;8487:7;8483:23;8479:32;8476:119;;;8514:79;;:::i;:::-;8476:119;8634:1;8659:53;8704:7;8695:6;8684:9;8680:22;8659:53;:::i;:::-;8649:63;;8605:117;8761:2;8787:50;8829:7;8820:6;8809:9;8805:22;8787:50;:::i;:::-;8777:60;;8732:115;8886:2;8912:50;8954:7;8945:6;8934:9;8930:22;8912:50;:::i;:::-;8902:60;;8857:115;8372:607;;;;;:::o;8985:474::-;9053:6;9061;9110:2;9098:9;9089:7;9085:23;9081:32;9078:119;;;9116:79;;:::i;:::-;9078:119;9236:1;9261:53;9306:7;9297:6;9286:9;9282:22;9261:53;:::i;:::-;9251:63;;9207:117;9363:2;9389:53;9434:7;9425:6;9414:9;9410:22;9389:53;:::i;:::-;9379:63;;9334:118;8985:474;;;;;:::o;9465:182::-;9605:34;9601:1;9593:6;9589:14;9582:58;9465:182;:::o;9653:366::-;9795:3;9816:67;9880:2;9875:3;9816:67;:::i;:::-;9809:74;;9892:93;9981:3;9892:93;:::i;:::-;10010:2;10005:3;10001:12;9994:19;;9653:366;;;:::o;10025:419::-;10191:4;10229:2;10218:9;10214:18;10206:26;;10278:9;10272:4;10268:20;10264:1;10253:9;10249:17;10242:47;10306:131;10432:4;10306:131;:::i;:::-;10298:139;;10025:419;;;:::o;10450:167::-;10590:19;10586:1;10578:6;10574:14;10567:43;10450:167;:::o;10623:366::-;10765:3;10786:67;10850:2;10845:3;10786:67;:::i;:::-;10779:74;;10862:93;10951:3;10862:93;:::i;:::-;10980:2;10975:3;10971:12;10964:19;;10623:366;;;:::o;10995:419::-;11161:4;11199:2;11188:9;11184:18;11176:26;;11248:9;11242:4;11238:20;11234:1;11223:9;11219:17;11212:47;11276:131;11402:4;11276:131;:::i;:::-;11268:139;;10995:419;;;:::o;11420:85::-;11465:7;11494:5;11483:16;;11420:85;;;:::o;11511:158::-;11569:9;11602:61;11620:42;11629:32;11655:5;11629:32;:::i;:::-;11620:42;:::i;:::-;11602:61;:::i;:::-;11589:74;;11511:158;;;:::o;11675:147::-;11770:45;11809:5;11770:45;:::i;:::-;11765:3;11758:58;11675:147;;:::o;11828:807::-;12077:4;12115:3;12104:9;12100:19;12092:27;;12129:71;12197:1;12186:9;12182:17;12173:6;12129:71;:::i;:::-;12210:72;12278:2;12267:9;12263:18;12254:6;12210:72;:::i;:::-;12292:80;12368:2;12357:9;12353:18;12344:6;12292:80;:::i;:::-;12382;12458:2;12447:9;12443:18;12434:6;12382:80;:::i;:::-;12472:73;12540:3;12529:9;12525:19;12516:6;12472:73;:::i;:::-;12555;12623:3;12612:9;12608:19;12599:6;12555:73;:::i;:::-;11828:807;;;;;;;;;:::o;12641:143::-;12698:5;12729:6;12723:13;12714:22;;12745:33;12772:5;12745:33;:::i;:::-;12641:143;;;;:::o;12790:663::-;12878:6;12886;12894;12943:2;12931:9;12922:7;12918:23;12914:32;12911:119;;;12949:79;;:::i;:::-;12911:119;13069:1;13094:64;13150:7;13141:6;13130:9;13126:22;13094:64;:::i;:::-;13084:74;;13040:128;13207:2;13233:64;13289:7;13280:6;13269:9;13265:22;13233:64;:::i;:::-;13223:74;;13178:129;13346:2;13372:64;13428:7;13419:6;13408:9;13404:22;13372:64;:::i;:::-;13362:74;;13317:129;12790:663;;;;;:::o;13459:143::-;13516:5;13547:6;13541:13;13532:22;;13563:33;13590:5;13563:33;:::i;:::-;13459:143;;;;:::o;13608:351::-;13678:6;13727:2;13715:9;13706:7;13702:23;13698:32;13695:119;;;13733:79;;:::i;:::-;13695:119;13853:1;13878:64;13934:7;13925:6;13914:9;13910:22;13878:64;:::i;:::-;13868:74;;13824:128;13608:351;;;;:::o;13965:332::-;14086:4;14124:2;14113:9;14109:18;14101:26;;14137:71;14205:1;14194:9;14190:17;14181:6;14137:71;:::i;:::-;14218:72;14286:2;14275:9;14271:18;14262:6;14218:72;:::i;:::-;13965:332;;;;;:::o;14303:180::-;14351:77;14348:1;14341:88;14448:4;14445:1;14438:15;14472:4;14469:1;14462:15;14489:320;14533:6;14570:1;14564:4;14560:12;14550:22;;14617:1;14611:4;14607:12;14638:18;14628:81;;14694:4;14686:6;14682:17;14672:27;;14628:81;14756:2;14748:6;14745:14;14725:18;14722:38;14719:84;;14775:18;;:::i;:::-;14719:84;14540:269;14489:320;;;:::o;14815:164::-;14955:16;14951:1;14943:6;14939:14;14932:40;14815:164;:::o;14985:366::-;15127:3;15148:67;15212:2;15207:3;15148:67;:::i;:::-;15141:74;;15224:93;15313:3;15224:93;:::i;:::-;15342:2;15337:3;15333:12;15326:19;;14985:366;;;:::o;15357:419::-;15523:4;15561:2;15550:9;15546:18;15538:26;;15610:9;15604:4;15600:20;15596:1;15585:9;15581:17;15574:47;15638:131;15764:4;15638:131;:::i;:::-;15630:139;;15357:419;;;:::o;15782:332::-;15903:4;15941:2;15930:9;15926:18;15918:26;;15954:71;16022:1;16011:9;16007:17;15998:6;15954:71;:::i;:::-;16035:72;16103:2;16092:9;16088:18;16079:6;16035:72;:::i;:::-;15782:332;;;;;:::o;16120:98::-;16171:6;16205:5;16199:12;16189:22;;16120:98;;;:::o;16224:147::-;16325:11;16362:3;16347:18;;16224:147;;;;:::o;16377:386::-;16481:3;16509:38;16541:5;16509:38;:::i;:::-;16563:88;16644:6;16639:3;16563:88;:::i;:::-;16556:95;;16660:65;16718:6;16713:3;16706:4;16699:5;16695:16;16660:65;:::i;:::-;16750:6;16745:3;16741:16;16734:23;;16485:278;16377:386;;;;:::o;16769:271::-;16899:3;16921:93;17010:3;17001:6;16921:93;:::i;:::-;16914:100;;17031:3;17024:10;;16769:271;;;;:::o;17046:170::-;17186:22;17182:1;17174:6;17170:14;17163:46;17046:170;:::o;17222:366::-;17364:3;17385:67;17449:2;17444:3;17385:67;:::i;:::-;17378:74;;17461:93;17550:3;17461:93;:::i;:::-;17579:2;17574:3;17570:12;17563:19;;17222:366;;;:::o;17594:419::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17847:9;17841:4;17837:20;17833:1;17822:9;17818:17;17811:47;17875:131;18001:4;17875:131;:::i;:::-;17867:139;;17594:419;;;:::o;18019:114::-;;:::o;18139:398::-;18298:3;18319:83;18400:1;18395:3;18319:83;:::i;:::-;18312:90;;18411:93;18500:3;18411:93;:::i;:::-;18529:1;18524:3;18520:11;18513:18;;18139:398;;;:::o;18543:379::-;18727:3;18749:147;18892:3;18749:147;:::i;:::-;18742:154;;18913:3;18906:10;;18543:379;;;:::o;18928:170::-;19068:22;19064:1;19056:6;19052:14;19045:46;18928:170;:::o;19104:366::-;19246:3;19267:67;19331:2;19326:3;19267:67;:::i;:::-;19260:74;;19343:93;19432:3;19343:93;:::i;:::-;19461:2;19456:3;19452:12;19445:19;;19104:366;;;:::o;19476:419::-;19642:4;19680:2;19669:9;19665:18;19657:26;;19729:9;19723:4;19719:20;19715:1;19704:9;19700:17;19693:47;19757:131;19883:4;19757:131;:::i;:::-;19749:139;;19476:419;;;:::o;19901:225::-;20041:34;20037:1;20029:6;20025:14;20018:58;20110:8;20105:2;20097:6;20093:15;20086:33;19901:225;:::o;20132:366::-;20274:3;20295:67;20359:2;20354:3;20295:67;:::i;:::-;20288:74;;20371:93;20460:3;20371:93;:::i;:::-;20489:2;20484:3;20480:12;20473:19;;20132:366;;;:::o;20504:419::-;20670:4;20708:2;20697:9;20693:18;20685:26;;20757:9;20751:4;20747:20;20743:1;20732:9;20728:17;20721:47;20785:131;20911:4;20785:131;:::i;:::-;20777:139;;20504:419;;;:::o;20929:180::-;20977:77;20974:1;20967:88;21074:4;21071:1;21064:15;21098:4;21095:1;21088:15;21115:348;21155:7;21178:20;21196:1;21178:20;:::i;:::-;21173:25;;21212:20;21230:1;21212:20;:::i;:::-;21207:25;;21400:1;21332:66;21328:74;21325:1;21322:81;21317:1;21310:9;21303:17;21299:105;21296:131;;;21407:18;;:::i;:::-;21296:131;21455:1;21452;21448:9;21437:20;;21115:348;;;;:::o;21469:180::-;21517:77;21514:1;21507:88;21614:4;21611:1;21604:15;21638:4;21635:1;21628:15;21655:185;21695:1;21712:20;21730:1;21712:20;:::i;:::-;21707:25;;21746:20;21764:1;21746:20;:::i;:::-;21741:25;;21785:1;21775:35;;21790:18;;:::i;:::-;21775:35;21832:1;21829;21825:9;21820:14;;21655:185;;;;:::o;21846:220::-;21986:34;21982:1;21974:6;21970:14;21963:58;22055:3;22050:2;22042:6;22038:15;22031:28;21846:220;:::o;22072:366::-;22214:3;22235:67;22299:2;22294:3;22235:67;:::i;:::-;22228:74;;22311:93;22400:3;22311:93;:::i;:::-;22429:2;22424:3;22420:12;22413:19;;22072:366;;;:::o;22444:419::-;22610:4;22648:2;22637:9;22633:18;22625:26;;22697:9;22691:4;22687:20;22683:1;22672:9;22668:17;22661:47;22725:131;22851:4;22725:131;:::i;:::-;22717:139;;22444:419;;;:::o;22869:223::-;23009:34;23005:1;22997:6;22993:14;22986:58;23078:6;23073:2;23065:6;23061:15;23054:31;22869:223;:::o;23098:366::-;23240:3;23261:67;23325:2;23320:3;23261:67;:::i;:::-;23254:74;;23337:93;23426:3;23337:93;:::i;:::-;23455:2;23450:3;23446:12;23439:19;;23098:366;;;:::o;23470:419::-;23636:4;23674:2;23663:9;23659:18;23651:26;;23723:9;23717:4;23713:20;23709:1;23698:9;23694:17;23687:47;23751:131;23877:4;23751:131;:::i;:::-;23743:139;;23470:419;;;:::o;23895:221::-;24035:34;24031:1;24023:6;24019:14;24012:58;24104:4;24099:2;24091:6;24087:15;24080:29;23895:221;:::o;24122:366::-;24264:3;24285:67;24349:2;24344:3;24285:67;:::i;:::-;24278:74;;24361:93;24450:3;24361:93;:::i;:::-;24479:2;24474:3;24470:12;24463:19;;24122:366;;;:::o;24494:419::-;24660:4;24698:2;24687:9;24683:18;24675:26;;24747:9;24741:4;24737:20;24733:1;24722:9;24718:17;24711:47;24775:131;24901:4;24775:131;:::i;:::-;24767:139;;24494:419;;;:::o;24919:172::-;25059:24;25055:1;25047:6;25043:14;25036:48;24919:172;:::o;25097:366::-;25239:3;25260:67;25324:2;25319:3;25260:67;:::i;:::-;25253:74;;25336:93;25425:3;25336:93;:::i;:::-;25454:2;25449:3;25445:12;25438:19;;25097:366;;;:::o;25469:419::-;25635:4;25673:2;25662:9;25658:18;25650:26;;25722:9;25716:4;25712:20;25708:1;25697:9;25693:17;25686:47;25750:131;25876:4;25750:131;:::i;:::-;25742:139;;25469:419;;;:::o;25894:169::-;26034:21;26030:1;26022:6;26018:14;26011:45;25894:169;:::o;26069:366::-;26211:3;26232:67;26296:2;26291:3;26232:67;:::i;:::-;26225:74;;26308:93;26397:3;26308:93;:::i;:::-;26426:2;26421:3;26417:12;26410:19;;26069:366;;;:::o;26441:419::-;26607:4;26645:2;26634:9;26630:18;26622:26;;26694:9;26688:4;26684:20;26680:1;26669:9;26665:17;26658:47;26722:131;26848:4;26722:131;:::i;:::-;26714:139;;26441:419;;;:::o;26866:164::-;27006:16;27002:1;26994:6;26990:14;26983:40;26866:164;:::o;27036:366::-;27178:3;27199:67;27263:2;27258:3;27199:67;:::i;:::-;27192:74;;27275:93;27364:3;27275:93;:::i;:::-;27393:2;27388:3;27384:12;27377:19;;27036:366;;;:::o;27408:419::-;27574:4;27612:2;27601:9;27597:18;27589:26;;27661:9;27655:4;27651:20;27647:1;27636:9;27632:17;27625:47;27689:131;27815:4;27689:131;:::i;:::-;27681:139;;27408:419;;;:::o;27833:194::-;27873:4;27893:20;27911:1;27893:20;:::i;:::-;27888:25;;27927:20;27945:1;27927:20;:::i;:::-;27922:25;;27971:1;27968;27964:9;27956:17;;27995:1;27989:4;27986:11;27983:37;;;28000:18;;:::i;:::-;27983:37;27833:194;;;;:::o;28033:191::-;28073:3;28092:20;28110:1;28092:20;:::i;:::-;28087:25;;28126:20;28144:1;28126:20;:::i;:::-;28121:25;;28169:1;28166;28162:9;28155:16;;28190:3;28187:1;28184:10;28181:36;;;28197:18;;:::i;:::-;28181:36;28033:191;;;;:::o;28230:177::-;28370:29;28366:1;28358:6;28354:14;28347:53;28230:177;:::o;28413:366::-;28555:3;28576:67;28640:2;28635:3;28576:67;:::i;:::-;28569:74;;28652:93;28741:3;28652:93;:::i;:::-;28770:2;28765:3;28761:12;28754:19;;28413:366;;;:::o;28785:419::-;28951:4;28989:2;28978:9;28974:18;28966:26;;29038:9;29032:4;29028:20;29024:1;29013:9;29009:17;29002:47;29066:131;29192:4;29066:131;:::i;:::-;29058:139;;28785:419;;;:::o;29210:180::-;29258:77;29255:1;29248:88;29355:4;29352:1;29345:15;29379:4;29376:1;29369:15;29396:180;29444:77;29441:1;29434:88;29541:4;29538:1;29531:15;29565:4;29562:1;29555:15;29582:114;29649:6;29683:5;29677:12;29667:22;;29582:114;;;:::o;29702:184::-;29801:11;29835:6;29830:3;29823:19;29875:4;29870:3;29866:14;29851:29;;29702:184;;;;:::o;29892:132::-;29959:4;29982:3;29974:11;;30012:4;30007:3;30003:14;29995:22;;29892:132;;;:::o;30030:108::-;30107:24;30125:5;30107:24;:::i;:::-;30102:3;30095:37;30030:108;;:::o;30144:179::-;30213:10;30234:46;30276:3;30268:6;30234:46;:::i;:::-;30312:4;30307:3;30303:14;30289:28;;30144:179;;;;:::o;30329:113::-;30399:4;30431;30426:3;30422:14;30414:22;;30329:113;;;:::o;30478:732::-;30597:3;30626:54;30674:5;30626:54;:::i;:::-;30696:86;30775:6;30770:3;30696:86;:::i;:::-;30689:93;;30806:56;30856:5;30806:56;:::i;:::-;30885:7;30916:1;30901:284;30926:6;30923:1;30920:13;30901:284;;;31002:6;30996:13;31029:63;31088:3;31073:13;31029:63;:::i;:::-;31022:70;;31115:60;31168:6;31115:60;:::i;:::-;31105:70;;30961:224;30948:1;30945;30941:9;30936:14;;30901:284;;;30905:14;31201:3;31194:10;;30602:608;;;30478:732;;;;:::o;31216:831::-;31479:4;31517:3;31506:9;31502:19;31494:27;;31531:71;31599:1;31588:9;31584:17;31575:6;31531:71;:::i;:::-;31612:80;31688:2;31677:9;31673:18;31664:6;31612:80;:::i;:::-;31739:9;31733:4;31729:20;31724:2;31713:9;31709:18;31702:48;31767:108;31870:4;31861:6;31767:108;:::i;:::-;31759:116;;31885:72;31953:2;31942:9;31938:18;31929:6;31885:72;:::i;:::-;31967:73;32035:3;32024:9;32020:19;32011:6;31967:73;:::i;:::-;31216:831;;;;;;;;:::o;32053:483::-;32224:4;32262:2;32251:9;32247:18;32239:26;;32275:71;32343:1;32332:9;32328:17;32319:6;32275:71;:::i;:::-;32393:9;32387:4;32383:20;32378:2;32367:9;32363:18;32356:48;32421:108;32524:4;32515:6;32421:108;:::i;:::-;32413:116;;32053:483;;;;;:::o

Swarm Source

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