ETH Price: $2,902.35 (+1.32%)
 

Overview

Max Total Supply

1,000,000,000 MOGE

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,003,470.304935648265228446 MOGE

Value
$0.00
0xa4ce83f45b6325b008ddfb1c2fffa286ad348c18
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
MOGE

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-07
*/

/**
Project: Mozzle Doge
Telegram: https://t.me/MozzleDoge
Twitter: https://twitter.com/MozzleDoge
Website: www.mozzledoge.com
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.14;


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

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

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

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _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);
    }
}

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

interface IRouter {
    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 MOGE is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public jackpotEnabled;

    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public excludedFromFees;

    uint256 public jackpotValue;
    uint256 public jackpotThreshold = 50;
    uint256 public buyerCounter;

    uint256 public swapThreshold = 100000 * 10**18;
    uint256 public maxWalletAmount = 20000000 * 10**18;
    uint256 public maxTxAmount = 10000000 * 10**18;
    
    address public marketingWallet = 0xa8dB671d726678d9a65CDa0FF8611c208E71dE10;
    address public lpRecipient = 0xa8dB671d726678d9a65CDa0FF8611c208E71dE10;

    //Cooldown settings
    mapping(address => uint256) public lastTradeByUser;
    uint256 coolDownTime = 30 seconds;
    bool coolDownEnabled = true;
    
    struct Taxes {
        uint256 marketing;
        uint256 lp;
        uint256 jackpot;
    }
    
    Taxes public taxes = Taxes(4,1,2);
    uint256 public totalTax = 7;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    event JackpotSent(address winner, uint256 amount);
        
    constructor() ERC20("Mozzle Doge", "MOGE") {
        _mint(msg.sender, 1e9 * 10 ** 18);
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[lpRecipient] = true;
    }


    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Dev says: Bye Bye Bots");
                
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not enabled yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
                require(!coolDownEnabled || lastTradeByUser[recipient] + coolDownTime <= block.timestamp, "Cooldown Enabled. Wait please");
                lastTradeByUser[recipient] = block.timestamp;
            }
            if(sender != pair){
                require(!coolDownEnabled || lastTradeByUser[sender] + coolDownTime <= block.timestamp, "Cooldown Enabled. Wait please");
                lastTradeByUser[sender] = block.timestamp;
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient] || (sender != pair && recipient != pair)) fee = 0;
        
        //calculate fee
        else fee = amount * totalTax / 100;

        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        if(sender == pair && jackpotEnabled) {
            buyerCounter++;
            if(buyerCounter == jackpotThreshold) {
                buyerCounter = 0; //reset the counter
                if(jackpotValue > 0) {
                    payable(recipient).sendValue(jackpotValue);
                    emit JackpotSent(recipient, jackpotValue);
                }
            }
        }

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            uint256 denominator = totalTax * 2;
            uint256 tokensToAddLiquidityWith = swapThreshold * taxes.lp / denominator;
            uint256 toSwap = swapThreshold - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - taxes.lp);
            uint256 ethToAddLiquidityWith = unitBalance * taxes.lp;

            if (ethToAddLiquidityWith > 0) {

                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * taxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 jackpotAmt = unitBalance * 2 * taxes.jackpot;
            if (jackpotAmt > 0) {
                jackpotValue += jackpotAmt;
            }
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

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


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


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setJackpotThreshold(uint256 amount) external onlyOwner{
        jackpotThreshold = amount;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount * 10**18;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setJackpotEnabled(bool status) external onlyOwner{
        jackpotEnabled = status;
    }

    function bulkSetBlacklist(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isBlacklisted[accounts[i]] = state;
        }
    }

    function setBlacklist(address account, bool state) external onlyOwner{
        isBlacklisted[account] = state;
    }

    function setTaxes(uint256 _marketing, uint256 _lp, uint256 _jackpot) external onlyOwner{
        require(_jackpot + _marketing + _lp <= 15, "Max Fee is 15%");
        taxes = Taxes(_marketing, _lp, _jackpot);
        totalTax = _jackpot + _marketing + _lp;
    }

    function setCooldownSettings(bool _enabled, uint256 _timer) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timer;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateLpRecipient(address newWallet) external onlyOwner{
        lpRecipient = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{

        router = _router;
        pair = _pair;
    }
    
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        require(amount > 0, "Max Wallet can't be 0");
        maxWalletAmount = amount * 10**18;
    }

    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        require(amount > 0, "Max Tx can't be 0");
        maxTxAmount = amount * 10**18;
    }

    function rescueTokens(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"JackpotSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkSetBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyerCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTradeByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timer","type":"uint256"}],"name":"setCooldownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setJackpotEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setJackpotThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_lp","type":"uint256"},{"internalType":"uint256","name":"_jackpot","type":"uint256"}],"name":"setTaxes","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"lp","type":"uint256"},{"internalType":"uint256","name":"jackpot","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLpRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600b5569152d02c7e14af6800000600d556a108b2a2c28029094000000600e556a084595161401484a000000600f5573a8db671d726678d9a65cda0ff8611c208e71de10601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a8db671d726678d9a65cda0ff8611c208e71de10601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e6013556001601460006101000a81548160ff0219169083151502179055506040518060600160405280600481526020016001815260200160028152506015600082015181600001556020820151816001015560408201518160020155505060076018553480156200015157600080fd5b506040518060400160405280600b81526020017f4d6f7a7a6c6520446f67650000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d4f4745000000000000000000000000000000000000000000000000000000008152508160039080519060200190620001d692919062000817565b508060049080519060200190620001ef92919062000817565b5050506200021262000206620005e060201b60201c565b620005e860201b60201c565b62000230336b033b2e3c9fd0803ce8000000620006ae60201b60201c565b6001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000315919062000931565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a3919062000931565b6040518363ffffffff1660e01b8152600401620003c292919062000974565b6020604051808303816000875af1158015620003e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000408919062000931565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000b4c565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007179062000a02565b60405180910390fd5b62000734600083836200081260201b60201c565b806002600082825462000748919062000a5d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200079f919062000a5d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000806919062000acb565b60405180910390a35050565b505050565b828054620008259062000b17565b90600052602060002090601f01602090048101928262000849576000855562000895565b82601f106200086457805160ff191683800117855562000895565b8280016001018555821562000895579182015b828111156200089457825182559160200191906001019062000877565b5b509050620008a49190620008a8565b5090565b5b80821115620008c3576000816000905550600101620008a9565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f982620008cc565b9050919050565b6200090b81620008ec565b81146200091757600080fd5b50565b6000815190506200092b8162000900565b92915050565b6000602082840312156200094a5762000949620008c7565b5b60006200095a848285016200091a565b91505092915050565b6200096e81620008ec565b82525050565b60006040820190506200098b600083018562000963565b6200099a602083018462000963565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620009ea601f83620009a1565b9150620009f782620009b2565b602082019050919050565b6000602082019050818103600083015262000a1d81620009db565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a6a8262000a24565b915062000a778362000a24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000aaf5762000aae62000a2e565b5b828201905092915050565b62000ac58162000a24565b82525050565b600060208201905062000ae2600083018462000aba565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b3057607f821691505b60208210810362000b465762000b4562000ae8565b5b50919050565b614c838062000b5c6000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063c18bc195116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b14610aa9578063f887ea4014610ad2578063fe575a8714610afd578063fe85b42b14610b3a576102b9565b8063e01af92c14610a2e578063e545fd6d14610a57578063e9dae5ed14610a80576102b9565b8063c18bc1951461090e578063c8b6887514610937578063cdb3858f14610960578063d11bd5d214610989578063dbe66ca0146109b4578063dd62ed3e146109f1576102b9565b80639e252f001161012e5780639e252f00146107ec578063a457c2d714610815578063a8aa1b3114610852578063a9059cbb1461087d578063aa4bde28146108ba578063aacebbe3146108e5576102b9565b80638a8c523c146107005780638c0b5e22146107175780638da5cb5b1461074257806395d89b411461076d5780639d0014b1146107985780639d2aee5f146107c1576102b9565b80634ada218b11610219578063715018a6116101d2578063715018a614610600578063728f8eea1461061757806375f0a87414610644578063778bf9be1461066f5780637a7fdaa01461069857806382ac49c6146106c3576102b9565b80634ada218b146104f2578063573761981461051d5780636256d1811461054657806367524d621461056f5780636ddd17131461059857806370a08231146105c3576102b9565b8063313ce5671161026b578063313ce567146103e257806338a392e61461040d57806339509351146104365780633ad202b51461047357806340b28c2f1461049e578063452e68dd146104c7576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b314610314578063153b0d1e1461035157806318160ddd1461037a57806323b872dd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b65565b6040516102e0919061353f565b60405180910390f35b3480156102f557600080fd5b506102fe610b6b565b60405161030b91906135f3565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906136b3565b610bfd565b604051610348919061370e565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613755565b610c1b565b005b34801561038657600080fd5b5061038f610cf2565b60405161039c919061353f565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613795565b610cfc565b6040516103d9919061370e565b60405180910390f35b3480156103ee57600080fd5b506103f7610dfd565b6040516104049190613804565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f919061381f565b610e06565b005b34801561044257600080fd5b5061045d600480360381019061045891906136b3565b610ea7565b60405161046a919061370e565b60405180910390f35b34801561047f57600080fd5b50610488610f53565b604051610495919061353f565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c0919061389d565b610f59565b005b3480156104d357600080fd5b506104dc61105b565b6040516104e991906138ec565b60405180910390f35b3480156104fe57600080fd5b50610507611081565b604051610514919061370e565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f91906136b3565b611094565b005b34801561055257600080fd5b5061056d60048036038101906105689190613907565b61119a565b005b34801561057b57600080fd5b5061059660048036038101906105919190613907565b611276565b005b3480156105a457600080fd5b506105ad6112fc565b6040516105ba919061370e565b60405180910390f35b3480156105cf57600080fd5b506105ea60048036038101906105e59190613934565b61130f565b6040516105f7919061353f565b60405180910390f35b34801561060c57600080fd5b50610615611357565b005b34801561062357600080fd5b5061062c6113df565b60405161063b93929190613961565b60405180910390f35b34801561065057600080fd5b506106596113f7565b60405161066691906138ec565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190613ae0565b61141d565b005b3480156106a457600080fd5b506106ad61152e565b6040516106ba919061353f565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190613934565b611534565b6040516106f7919061353f565b60405180910390f35b34801561070c57600080fd5b5061071561154c565b005b34801561072357600080fd5b5061072c611650565b604051610739919061353f565b60405180910390f35b34801561074e57600080fd5b50610757611656565b60405161076491906138ec565b60405180910390f35b34801561077957600080fd5b50610782611680565b60405161078f91906135f3565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613907565b611712565b005b3480156107cd57600080fd5b506107d66117ab565b6040516107e3919061370e565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190613907565b6117be565b005b34801561082157600080fd5b5061083c600480360381019061083791906136b3565b61186d565b604051610849919061370e565b60405180910390f35b34801561085e57600080fd5b50610867611961565b60405161087491906138ec565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f91906136b3565b611987565b6040516108b1919061370e565b60405180910390f35b3480156108c657600080fd5b506108cf6119a5565b6040516108dc919061353f565b60405180910390f35b3480156108f157600080fd5b5061090c60048036038101906109079190613934565b6119ab565b005b34801561091a57600080fd5b5061093560048036038101906109309190613907565b611a6b565b005b34801561094357600080fd5b5061095e60048036038101906109599190613b3c565b611b47565b005b34801561096c57600080fd5b5061098760048036038101906109829190613934565b611be0565b005b34801561099557600080fd5b5061099e611ca0565b6040516109ab919061353f565b60405180910390f35b3480156109c057600080fd5b506109db60048036038101906109d69190613934565b611ca6565b6040516109e8919061370e565b60405180910390f35b3480156109fd57600080fd5b50610a186004803603810190610a139190613b69565b611cc6565b604051610a25919061353f565b60405180910390f35b348015610a3a57600080fd5b50610a556004803603810190610a509190613b3c565b611d4d565b005b348015610a6357600080fd5b50610a7e6004803603810190610a799190613755565b611de6565b005b348015610a8c57600080fd5b50610aa76004803603810190610aa29190613ba9565b611ebd565b005b348015610ab557600080fd5b50610ad06004803603810190610acb9190613934565b611ff3565b005b348015610ade57600080fd5b50610ae76120ea565b604051610af49190613c5b565b60405180910390f35b348015610b0957600080fd5b50610b246004803603810190610b1f9190613934565b612110565b604051610b31919061370e565b60405180910390f35b348015610b4657600080fd5b50610b4f612130565b604051610b5c919061353f565b60405180910390f35b600d5481565b606060038054610b7a90613ca5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba690613ca5565b8015610bf35780601f10610bc857610100808354040283529160200191610bf3565b820191906000526020600020905b815481529060010190602001808311610bd657829003601f168201915b5050505050905090565b6000610c11610c0a612136565b848461213e565b6001905092915050565b610c23612136565b73ffffffffffffffffffffffffffffffffffffffff16610c41611656565b73ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90613d22565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000610d09848484612307565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d54612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613db4565b60405180910390fd5b610df185610de0612136565b8584610dec9190613e03565b61213e565b60019150509392505050565b60006012905090565b610e0e612136565b73ffffffffffffffffffffffffffffffffffffffff16610e2c611656565b73ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613d22565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806013819055505050565b6000610f49610eb4612136565b848460016000610ec2612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f449190613e37565b61213e565b6001905092915050565b600b5481565b610f61612136565b73ffffffffffffffffffffffffffffffffffffffff16610f7f611656565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90613d22565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b61109c612136565b73ffffffffffffffffffffffffffffffffffffffff166110ba611656565b73ffffffffffffffffffffffffffffffffffffffff1614611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790613d22565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611134611656565b836040518363ffffffff1660e01b8152600401611152929190613e8d565b6020604051808303816000875af1158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190613ecb565b505050565b6111a2612136565b73ffffffffffffffffffffffffffffffffffffffff166111c0611656565b73ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90613d22565b60405180910390fd5b60008111611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613f44565b60405180910390fd5b670de0b6b3a76400008161126d9190613f64565b600f8190555050565b61127e612136565b73ffffffffffffffffffffffffffffffffffffffff1661129c611656565b73ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990613d22565b60405180910390fd5b80600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61135f612136565b73ffffffffffffffffffffffffffffffffffffffff1661137d611656565b73ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613d22565b60405180910390fd5b6113dd6000612bd1565b565b60158060000154908060010154908060020154905083565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611425612136565b73ffffffffffffffffffffffffffffffffffffffff16611443611656565b73ffffffffffffffffffffffffffffffffffffffff1614611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090613d22565b60405180910390fd5b60005b82518110156115295781600860008584815181106114bd576114bc613fbe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152190613fed565b91505061149c565b505050565b600c5481565b60126020528060005260406000206000915090505481565b611554612136565b73ffffffffffffffffffffffffffffffffffffffff16611572611656565b73ffffffffffffffffffffffffffffffffffffffff16146115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf90613d22565b60405180910390fd5b600760169054906101000a900460ff1615611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90614081565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461168f90613ca5565b80601f01602080910402602001604051908101604052809291908181526020018280546116bb90613ca5565b80156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b5050505050905090565b61171a612136565b73ffffffffffffffffffffffffffffffffffffffff16611738611656565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613d22565b60405180910390fd5b670de0b6b3a7640000816117a29190613f64565b600d8190555050565b600760179054906101000a900460ff1681565b6117c6612136565b73ffffffffffffffffffffffffffffffffffffffff166117e4611656565b73ffffffffffffffffffffffffffffffffffffffff161461183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183190613d22565b60405180910390fd5b61186a81611846611656565b73ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b50565b6000806001600061187c612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090614113565b60405180910390fd5b611956611944612136565b8585846119519190613e03565b61213e565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061199b611994612136565b8484612307565b6001905092915050565b600e5481565b6119b3612136565b73ffffffffffffffffffffffffffffffffffffffff166119d1611656565b73ffffffffffffffffffffffffffffffffffffffff1614611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90613d22565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a73612136565b73ffffffffffffffffffffffffffffffffffffffff16611a91611656565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613d22565b60405180910390fd5b60008111611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b219061417f565b60405180910390fd5b670de0b6b3a764000081611b3e9190613f64565b600e8190555050565b611b4f612136565b73ffffffffffffffffffffffffffffffffffffffff16611b6d611656565b73ffffffffffffffffffffffffffffffffffffffff1614611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613d22565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b611be8612136565b73ffffffffffffffffffffffffffffffffffffffff16611c06611656565b73ffffffffffffffffffffffffffffffffffffffff1614611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5390613d22565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d55612136565b73ffffffffffffffffffffffffffffffffffffffff16611d73611656565b73ffffffffffffffffffffffffffffffffffffffff1614611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613d22565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dee612136565b73ffffffffffffffffffffffffffffffffffffffff16611e0c611656565b73ffffffffffffffffffffffffffffffffffffffff1614611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5990613d22565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ec5612136565b73ffffffffffffffffffffffffffffffffffffffff16611ee3611656565b73ffffffffffffffffffffffffffffffffffffffff1614611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090613d22565b60405180910390fd5b600f828483611f489190613e37565b611f529190613e37565b1115611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a906141eb565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506015600082015181600001556020820151816001015560408201518160020155905050818382611fde9190613e37565b611fe89190613e37565b601881905550505050565b611ffb612136565b73ffffffffffffffffffffffffffffffffffffffff16612019611656565b73ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613d22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59061427d565b60405180910390fd5b6120e781612bd1565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a49061430f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361221c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612213906143a1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122fa919061353f565b60405180910390a3505050565b6000811161234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190614433565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123ee5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061449f565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124d15750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124ea5750600760149054906101000a900460ff16155b1561285e57600760169054906101000a900460ff1661253e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125359061450b565b60405180910390fd5b600f54811115612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a90614577565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461271c57600e54816125e58461130f565b6125ef9190613e37565b1115612630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262790614609565b60405180910390fd5b601460009054906101000a900460ff161580612698575042601354601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126959190613e37565b11155b6126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce90614675565b60405180910390fd5b42601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461285d57601460009054906101000a900460ff1615806127d9575042601354601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d69190613e37565b11155b612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f90614675565b60405180910390fd5b42601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000600760149054906101000a900460ff16806128c45750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129185750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129cb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129ca5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156129d957600090506129f6565b6064601854836129e99190613f64565b6129f391906146c4565b90505b600760159054906101000a900460ff168015612a1f5750600760149054906101000a900460ff16155b8015612a795750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612a855750600081115b15612a9357612a92612d8b565b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612afc5750600760179054906101000a900460ff165b15612ba057600c6000815480929190612b1490613fed565b9190505550600b54600c5403612b9f576000600c819055506000600a541115612b9e57612b62600a548473ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b7ff8265ef397392d4fed7d3ea625ae5af47b0aef752d323bb2acd4bcaed42b200083600a54604051612b95929190613e8d565b60405180910390a15b5b5b612bb684848385612bb19190613e03565b612f61565b6000811115612bcb57612bca843083612f61565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd190614741565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d0090614792565b60006040518083038185875af1925050503d8060008114612d3d576040519150601f19603f3d011682016040523d82523d6000602084013e612d42565b606091505b5050905080612d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7d90614819565b60405180910390fd5b505050565b600760149054906101000a900460ff16612f5f576001600760146101000a81548160ff0219169083151502179055506000612dc53061130f565b9050600d548110612f425760006002601854612de19190613f64565b9050600081601560010154600d54612df99190613f64565b612e0391906146c4565b9050600081600d54612e159190613e03565b90506000479050612e25826131de565b60008147612e339190613e03565b9050600060156001015486612e489190613e03565b82612e5391906146c4565b9050600060156001015482612e689190613f64565b90506000811115612e7e57612e7d8682613421565b5b6000601560000154600284612e939190613f64565b612e9d9190613f64565b90506000811115612ef457612ef381601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b5b6000601560020154600285612f099190613f64565b612f139190613f64565b90506000811115612f385780600a6000828254612f309190613e37565b925050819055505b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc7906148ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361303f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130369061493d565b60405180910390fd5b61304a838383613521565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c7906149cf565b60405180910390fd5b81816130dc9190613e03565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461316c9190613e37565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131d0919061353f565b60405180910390a350505050565b6000600267ffffffffffffffff8111156131fb576131fa61399d565b5b6040519080825280602002602001820160405280156132295781602001602082028036833780820191505090505b509050308160008151811061324157613240613fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330c9190614a04565b816001815181106133205761331f613fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061338730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461213e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133eb959493929190614b2a565b600060405180830381600087803b15801561340557600080fd5b505af1158015613419573d6000803e3d6000fd5b505050505050565b61344e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461213e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016134d796959493929190614b84565b60606040518083038185885af11580156134f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061351a9190614bfa565b5050505050565b505050565b6000819050919050565b61353981613526565b82525050565b60006020820190506135546000830184613530565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613594578082015181840152602081019050613579565b838111156135a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006135c58261355a565b6135cf8185613565565b93506135df818560208601613576565b6135e8816135a9565b840191505092915050565b6000602082019050818103600083015261360d81846135ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061365482613629565b9050919050565b61366481613649565b811461366f57600080fd5b50565b6000813590506136818161365b565b92915050565b61369081613526565b811461369b57600080fd5b50565b6000813590506136ad81613687565b92915050565b600080604083850312156136ca576136c961361f565b5b60006136d885828601613672565b92505060206136e98582860161369e565b9150509250929050565b60008115159050919050565b613708816136f3565b82525050565b600060208201905061372360008301846136ff565b92915050565b613732816136f3565b811461373d57600080fd5b50565b60008135905061374f81613729565b92915050565b6000806040838503121561376c5761376b61361f565b5b600061377a85828601613672565b925050602061378b85828601613740565b9150509250929050565b6000806000606084860312156137ae576137ad61361f565b5b60006137bc86828701613672565b93505060206137cd86828701613672565b92505060406137de8682870161369e565b9150509250925092565b600060ff82169050919050565b6137fe816137e8565b82525050565b600060208201905061381960008301846137f5565b92915050565b600080604083850312156138365761383561361f565b5b600061384485828601613740565b92505060206138558582860161369e565b9150509250929050565b600061386a82613649565b9050919050565b61387a8161385f565b811461388557600080fd5b50565b60008135905061389781613871565b92915050565b600080604083850312156138b4576138b361361f565b5b60006138c285828601613888565b92505060206138d385828601613672565b9150509250929050565b6138e681613649565b82525050565b600060208201905061390160008301846138dd565b92915050565b60006020828403121561391d5761391c61361f565b5b600061392b8482850161369e565b91505092915050565b60006020828403121561394a5761394961361f565b5b600061395884828501613672565b91505092915050565b60006060820190506139766000830186613530565b6139836020830185613530565b6139906040830184613530565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139d5826135a9565b810181811067ffffffffffffffff821117156139f4576139f361399d565b5b80604052505050565b6000613a07613615565b9050613a1382826139cc565b919050565b600067ffffffffffffffff821115613a3357613a3261399d565b5b602082029050602081019050919050565b600080fd5b6000613a5c613a5784613a18565b6139fd565b90508083825260208201905060208402830185811115613a7f57613a7e613a44565b5b835b81811015613aa85780613a948882613672565b845260208401935050602081019050613a81565b5050509392505050565b600082601f830112613ac757613ac6613998565b5b8135613ad7848260208601613a49565b91505092915050565b60008060408385031215613af757613af661361f565b5b600083013567ffffffffffffffff811115613b1557613b14613624565b5b613b2185828601613ab2565b9250506020613b3285828601613740565b9150509250929050565b600060208284031215613b5257613b5161361f565b5b6000613b6084828501613740565b91505092915050565b60008060408385031215613b8057613b7f61361f565b5b6000613b8e85828601613672565b9250506020613b9f85828601613672565b9150509250929050565b600080600060608486031215613bc257613bc161361f565b5b6000613bd08682870161369e565b9350506020613be18682870161369e565b9250506040613bf28682870161369e565b9150509250925092565b6000819050919050565b6000613c21613c1c613c1784613629565b613bfc565b613629565b9050919050565b6000613c3382613c06565b9050919050565b6000613c4582613c28565b9050919050565b613c5581613c3a565b82525050565b6000602082019050613c706000830184613c4c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cbd57607f821691505b602082108103613cd057613ccf613c76565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d0c602083613565565b9150613d1782613cd6565b602082019050919050565b60006020820190508181036000830152613d3b81613cff565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613d9e602883613565565b9150613da982613d42565b604082019050919050565b60006020820190508181036000830152613dcd81613d91565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0e82613526565b9150613e1983613526565b925082821015613e2c57613e2b613dd4565b5b828203905092915050565b6000613e4282613526565b9150613e4d83613526565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e8257613e81613dd4565b5b828201905092915050565b6000604082019050613ea260008301856138dd565b613eaf6020830184613530565b9392505050565b600081519050613ec581613729565b92915050565b600060208284031215613ee157613ee061361f565b5b6000613eef84828501613eb6565b91505092915050565b7f4d61782054782063616e27742062652030000000000000000000000000000000600082015250565b6000613f2e601183613565565b9150613f3982613ef8565b602082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b6000613f6f82613526565b9150613f7a83613526565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fb357613fb2613dd4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ff882613526565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361402a57614029613dd4565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b600061406b601683613565565b915061407682614035565b602082019050919050565b6000602082019050818103600083015261409a8161405e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140fd602583613565565b9150614108826140a1565b604082019050919050565b6000602082019050818103600083015261412c816140f0565b9050919050565b7f4d61782057616c6c65742063616e277420626520300000000000000000000000600082015250565b6000614169601583613565565b915061417482614133565b602082019050919050565b600060208201905081810360008301526141988161415c565b9050919050565b7f4d61782046656520697320313525000000000000000000000000000000000000600082015250565b60006141d5600e83613565565b91506141e08261419f565b602082019050919050565b60006020820190508181036000830152614204816141c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614267602683613565565b91506142728261420b565b604082019050919050565b600060208201905081810360008301526142968161425a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142f9602483613565565b91506143048261429d565b604082019050919050565b60006020820190508181036000830152614328816142ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061438b602283613565565b91506143968261432f565b604082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061441d602983613565565b9150614428826143c1565b604082019050919050565b6000602082019050818103600083015261444c81614410565b9050919050565b7f44657620736179733a204279652042796520426f747300000000000000000000600082015250565b6000614489601683613565565b915061449482614453565b602082019050919050565b600060208201905081810360008301526144b88161447c565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006144f5601783613565565b9150614500826144bf565b602082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000614561601d83613565565b915061456c8261452b565b602082019050919050565b6000602082019050818103600083015261459081614554565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006145f3602183613565565b91506145fe82614597565b604082019050919050565b60006020820190508181036000830152614622816145e6565b9050919050565b7f436f6f6c646f776e20456e61626c65642e205761697420706c65617365000000600082015250565b600061465f601d83613565565b915061466a82614629565b602082019050919050565b6000602082019050818103600083015261468e81614652565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146cf82613526565b91506146da83613526565b9250826146ea576146e9614695565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061472b601d83613565565b9150614736826146f5565b602082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b600081905092915050565b50565b600061477c600083614761565b91506147878261476c565b600082019050919050565b600061479d8261476f565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614803603a83613565565b915061480e826147a7565b604082019050919050565b60006020820190508181036000830152614832816147f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614895602583613565565b91506148a082614839565b604082019050919050565b600060208201905081810360008301526148c481614888565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614927602383613565565b9150614932826148cb565b604082019050919050565b600060208201905081810360008301526149568161491a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149b9602683613565565b91506149c48261495d565b604082019050919050565b600060208201905081810360008301526149e8816149ac565b9050919050565b6000815190506149fe8161365b565b92915050565b600060208284031215614a1a57614a1961361f565b5b6000614a28848285016149ef565b91505092915050565b6000819050919050565b6000614a56614a51614a4c84614a31565b613bfc565b613526565b9050919050565b614a6681614a3b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614aa181613649565b82525050565b6000614ab38383614a98565b60208301905092915050565b6000602082019050919050565b6000614ad782614a6c565b614ae18185614a77565b9350614aec83614a88565b8060005b83811015614b1d578151614b048882614aa7565b9750614b0f83614abf565b925050600181019050614af0565b5085935050505092915050565b600060a082019050614b3f6000830188613530565b614b4c6020830187614a5d565b8181036040830152614b5e8186614acc565b9050614b6d60608301856138dd565b614b7a6080830184613530565b9695505050505050565b600060c082019050614b9960008301896138dd565b614ba66020830188613530565b614bb36040830187614a5d565b614bc06060830186614a5d565b614bcd60808301856138dd565b614bda60a0830184613530565b979650505050505050565b600081519050614bf481613687565b92915050565b600080600060608486031215614c1357614c1261361f565b5b6000614c2186828701614be5565b9350506020614c3286828701614be5565b9250506040614c4386828701614be5565b915050925092509256fea2646970667358221220c12770685411dda3b5c36ec9041332cbc29b889f8fbba42aefcf0a228ea23a5c64736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063c18bc195116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b14610aa9578063f887ea4014610ad2578063fe575a8714610afd578063fe85b42b14610b3a576102b9565b8063e01af92c14610a2e578063e545fd6d14610a57578063e9dae5ed14610a80576102b9565b8063c18bc1951461090e578063c8b6887514610937578063cdb3858f14610960578063d11bd5d214610989578063dbe66ca0146109b4578063dd62ed3e146109f1576102b9565b80639e252f001161012e5780639e252f00146107ec578063a457c2d714610815578063a8aa1b3114610852578063a9059cbb1461087d578063aa4bde28146108ba578063aacebbe3146108e5576102b9565b80638a8c523c146107005780638c0b5e22146107175780638da5cb5b1461074257806395d89b411461076d5780639d0014b1146107985780639d2aee5f146107c1576102b9565b80634ada218b11610219578063715018a6116101d2578063715018a614610600578063728f8eea1461061757806375f0a87414610644578063778bf9be1461066f5780637a7fdaa01461069857806382ac49c6146106c3576102b9565b80634ada218b146104f2578063573761981461051d5780636256d1811461054657806367524d621461056f5780636ddd17131461059857806370a08231146105c3576102b9565b8063313ce5671161026b578063313ce567146103e257806338a392e61461040d57806339509351146104365780633ad202b51461047357806340b28c2f1461049e578063452e68dd146104c7576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b314610314578063153b0d1e1461035157806318160ddd1461037a57806323b872dd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b65565b6040516102e0919061353f565b60405180910390f35b3480156102f557600080fd5b506102fe610b6b565b60405161030b91906135f3565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906136b3565b610bfd565b604051610348919061370e565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613755565b610c1b565b005b34801561038657600080fd5b5061038f610cf2565b60405161039c919061353f565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613795565b610cfc565b6040516103d9919061370e565b60405180910390f35b3480156103ee57600080fd5b506103f7610dfd565b6040516104049190613804565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f919061381f565b610e06565b005b34801561044257600080fd5b5061045d600480360381019061045891906136b3565b610ea7565b60405161046a919061370e565b60405180910390f35b34801561047f57600080fd5b50610488610f53565b604051610495919061353f565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c0919061389d565b610f59565b005b3480156104d357600080fd5b506104dc61105b565b6040516104e991906138ec565b60405180910390f35b3480156104fe57600080fd5b50610507611081565b604051610514919061370e565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f91906136b3565b611094565b005b34801561055257600080fd5b5061056d60048036038101906105689190613907565b61119a565b005b34801561057b57600080fd5b5061059660048036038101906105919190613907565b611276565b005b3480156105a457600080fd5b506105ad6112fc565b6040516105ba919061370e565b60405180910390f35b3480156105cf57600080fd5b506105ea60048036038101906105e59190613934565b61130f565b6040516105f7919061353f565b60405180910390f35b34801561060c57600080fd5b50610615611357565b005b34801561062357600080fd5b5061062c6113df565b60405161063b93929190613961565b60405180910390f35b34801561065057600080fd5b506106596113f7565b60405161066691906138ec565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190613ae0565b61141d565b005b3480156106a457600080fd5b506106ad61152e565b6040516106ba919061353f565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190613934565b611534565b6040516106f7919061353f565b60405180910390f35b34801561070c57600080fd5b5061071561154c565b005b34801561072357600080fd5b5061072c611650565b604051610739919061353f565b60405180910390f35b34801561074e57600080fd5b50610757611656565b60405161076491906138ec565b60405180910390f35b34801561077957600080fd5b50610782611680565b60405161078f91906135f3565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613907565b611712565b005b3480156107cd57600080fd5b506107d66117ab565b6040516107e3919061370e565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190613907565b6117be565b005b34801561082157600080fd5b5061083c600480360381019061083791906136b3565b61186d565b604051610849919061370e565b60405180910390f35b34801561085e57600080fd5b50610867611961565b60405161087491906138ec565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f91906136b3565b611987565b6040516108b1919061370e565b60405180910390f35b3480156108c657600080fd5b506108cf6119a5565b6040516108dc919061353f565b60405180910390f35b3480156108f157600080fd5b5061090c60048036038101906109079190613934565b6119ab565b005b34801561091a57600080fd5b5061093560048036038101906109309190613907565b611a6b565b005b34801561094357600080fd5b5061095e60048036038101906109599190613b3c565b611b47565b005b34801561096c57600080fd5b5061098760048036038101906109829190613934565b611be0565b005b34801561099557600080fd5b5061099e611ca0565b6040516109ab919061353f565b60405180910390f35b3480156109c057600080fd5b506109db60048036038101906109d69190613934565b611ca6565b6040516109e8919061370e565b60405180910390f35b3480156109fd57600080fd5b50610a186004803603810190610a139190613b69565b611cc6565b604051610a25919061353f565b60405180910390f35b348015610a3a57600080fd5b50610a556004803603810190610a509190613b3c565b611d4d565b005b348015610a6357600080fd5b50610a7e6004803603810190610a799190613755565b611de6565b005b348015610a8c57600080fd5b50610aa76004803603810190610aa29190613ba9565b611ebd565b005b348015610ab557600080fd5b50610ad06004803603810190610acb9190613934565b611ff3565b005b348015610ade57600080fd5b50610ae76120ea565b604051610af49190613c5b565b60405180910390f35b348015610b0957600080fd5b50610b246004803603810190610b1f9190613934565b612110565b604051610b31919061370e565b60405180910390f35b348015610b4657600080fd5b50610b4f612130565b604051610b5c919061353f565b60405180910390f35b600d5481565b606060038054610b7a90613ca5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba690613ca5565b8015610bf35780601f10610bc857610100808354040283529160200191610bf3565b820191906000526020600020905b815481529060010190602001808311610bd657829003601f168201915b5050505050905090565b6000610c11610c0a612136565b848461213e565b6001905092915050565b610c23612136565b73ffffffffffffffffffffffffffffffffffffffff16610c41611656565b73ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90613d22565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000610d09848484612307565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d54612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613db4565b60405180910390fd5b610df185610de0612136565b8584610dec9190613e03565b61213e565b60019150509392505050565b60006012905090565b610e0e612136565b73ffffffffffffffffffffffffffffffffffffffff16610e2c611656565b73ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613d22565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806013819055505050565b6000610f49610eb4612136565b848460016000610ec2612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f449190613e37565b61213e565b6001905092915050565b600b5481565b610f61612136565b73ffffffffffffffffffffffffffffffffffffffff16610f7f611656565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90613d22565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b61109c612136565b73ffffffffffffffffffffffffffffffffffffffff166110ba611656565b73ffffffffffffffffffffffffffffffffffffffff1614611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790613d22565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611134611656565b836040518363ffffffff1660e01b8152600401611152929190613e8d565b6020604051808303816000875af1158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190613ecb565b505050565b6111a2612136565b73ffffffffffffffffffffffffffffffffffffffff166111c0611656565b73ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90613d22565b60405180910390fd5b60008111611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613f44565b60405180910390fd5b670de0b6b3a76400008161126d9190613f64565b600f8190555050565b61127e612136565b73ffffffffffffffffffffffffffffffffffffffff1661129c611656565b73ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990613d22565b60405180910390fd5b80600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61135f612136565b73ffffffffffffffffffffffffffffffffffffffff1661137d611656565b73ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613d22565b60405180910390fd5b6113dd6000612bd1565b565b60158060000154908060010154908060020154905083565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611425612136565b73ffffffffffffffffffffffffffffffffffffffff16611443611656565b73ffffffffffffffffffffffffffffffffffffffff1614611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090613d22565b60405180910390fd5b60005b82518110156115295781600860008584815181106114bd576114bc613fbe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152190613fed565b91505061149c565b505050565b600c5481565b60126020528060005260406000206000915090505481565b611554612136565b73ffffffffffffffffffffffffffffffffffffffff16611572611656565b73ffffffffffffffffffffffffffffffffffffffff16146115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf90613d22565b60405180910390fd5b600760169054906101000a900460ff1615611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90614081565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461168f90613ca5565b80601f01602080910402602001604051908101604052809291908181526020018280546116bb90613ca5565b80156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b5050505050905090565b61171a612136565b73ffffffffffffffffffffffffffffffffffffffff16611738611656565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613d22565b60405180910390fd5b670de0b6b3a7640000816117a29190613f64565b600d8190555050565b600760179054906101000a900460ff1681565b6117c6612136565b73ffffffffffffffffffffffffffffffffffffffff166117e4611656565b73ffffffffffffffffffffffffffffffffffffffff161461183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183190613d22565b60405180910390fd5b61186a81611846611656565b73ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b50565b6000806001600061187c612136565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090614113565b60405180910390fd5b611956611944612136565b8585846119519190613e03565b61213e565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061199b611994612136565b8484612307565b6001905092915050565b600e5481565b6119b3612136565b73ffffffffffffffffffffffffffffffffffffffff166119d1611656565b73ffffffffffffffffffffffffffffffffffffffff1614611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90613d22565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a73612136565b73ffffffffffffffffffffffffffffffffffffffff16611a91611656565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613d22565b60405180910390fd5b60008111611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b219061417f565b60405180910390fd5b670de0b6b3a764000081611b3e9190613f64565b600e8190555050565b611b4f612136565b73ffffffffffffffffffffffffffffffffffffffff16611b6d611656565b73ffffffffffffffffffffffffffffffffffffffff1614611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613d22565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b611be8612136565b73ffffffffffffffffffffffffffffffffffffffff16611c06611656565b73ffffffffffffffffffffffffffffffffffffffff1614611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5390613d22565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d55612136565b73ffffffffffffffffffffffffffffffffffffffff16611d73611656565b73ffffffffffffffffffffffffffffffffffffffff1614611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613d22565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dee612136565b73ffffffffffffffffffffffffffffffffffffffff16611e0c611656565b73ffffffffffffffffffffffffffffffffffffffff1614611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5990613d22565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ec5612136565b73ffffffffffffffffffffffffffffffffffffffff16611ee3611656565b73ffffffffffffffffffffffffffffffffffffffff1614611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090613d22565b60405180910390fd5b600f828483611f489190613e37565b611f529190613e37565b1115611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a906141eb565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506015600082015181600001556020820151816001015560408201518160020155905050818382611fde9190613e37565b611fe89190613e37565b601881905550505050565b611ffb612136565b73ffffffffffffffffffffffffffffffffffffffff16612019611656565b73ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613d22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59061427d565b60405180910390fd5b6120e781612bd1565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a49061430f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361221c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612213906143a1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122fa919061353f565b60405180910390a3505050565b6000811161234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190614433565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123ee5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061449f565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124d15750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124ea5750600760149054906101000a900460ff16155b1561285e57600760169054906101000a900460ff1661253e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125359061450b565b60405180910390fd5b600f54811115612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a90614577565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461271c57600e54816125e58461130f565b6125ef9190613e37565b1115612630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262790614609565b60405180910390fd5b601460009054906101000a900460ff161580612698575042601354601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126959190613e37565b11155b6126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce90614675565b60405180910390fd5b42601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461285d57601460009054906101000a900460ff1615806127d9575042601354601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d69190613e37565b11155b612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f90614675565b60405180910390fd5b42601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000600760149054906101000a900460ff16806128c45750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129185750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129cb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129ca5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156129d957600090506129f6565b6064601854836129e99190613f64565b6129f391906146c4565b90505b600760159054906101000a900460ff168015612a1f5750600760149054906101000a900460ff16155b8015612a795750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612a855750600081115b15612a9357612a92612d8b565b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612afc5750600760179054906101000a900460ff165b15612ba057600c6000815480929190612b1490613fed565b9190505550600b54600c5403612b9f576000600c819055506000600a541115612b9e57612b62600a548473ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b7ff8265ef397392d4fed7d3ea625ae5af47b0aef752d323bb2acd4bcaed42b200083600a54604051612b95929190613e8d565b60405180910390a15b5b5b612bb684848385612bb19190613e03565b612f61565b6000811115612bcb57612bca843083612f61565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd190614741565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d0090614792565b60006040518083038185875af1925050503d8060008114612d3d576040519150601f19603f3d011682016040523d82523d6000602084013e612d42565b606091505b5050905080612d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7d90614819565b60405180910390fd5b505050565b600760149054906101000a900460ff16612f5f576001600760146101000a81548160ff0219169083151502179055506000612dc53061130f565b9050600d548110612f425760006002601854612de19190613f64565b9050600081601560010154600d54612df99190613f64565b612e0391906146c4565b9050600081600d54612e159190613e03565b90506000479050612e25826131de565b60008147612e339190613e03565b9050600060156001015486612e489190613e03565b82612e5391906146c4565b9050600060156001015482612e689190613f64565b90506000811115612e7e57612e7d8682613421565b5b6000601560000154600284612e939190613f64565b612e9d9190613f64565b90506000811115612ef457612ef381601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c9790919063ffffffff16565b5b6000601560020154600285612f099190613f64565b612f139190613f64565b90506000811115612f385780600a6000828254612f309190613e37565b925050819055505b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc7906148ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361303f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130369061493d565b60405180910390fd5b61304a838383613521565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c7906149cf565b60405180910390fd5b81816130dc9190613e03565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461316c9190613e37565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131d0919061353f565b60405180910390a350505050565b6000600267ffffffffffffffff8111156131fb576131fa61399d565b5b6040519080825280602002602001820160405280156132295781602001602082028036833780820191505090505b509050308160008151811061324157613240613fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330c9190614a04565b816001815181106133205761331f613fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061338730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461213e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133eb959493929190614b2a565b600060405180830381600087803b15801561340557600080fd5b505af1158015613419573d6000803e3d6000fd5b505050505050565b61344e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461213e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016134d796959493929190614b84565b60606040518083038185885af11580156134f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061351a9190614bfa565b5050505050565b505050565b6000819050919050565b61353981613526565b82525050565b60006020820190506135546000830184613530565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613594578082015181840152602081019050613579565b838111156135a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006135c58261355a565b6135cf8185613565565b93506135df818560208601613576565b6135e8816135a9565b840191505092915050565b6000602082019050818103600083015261360d81846135ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061365482613629565b9050919050565b61366481613649565b811461366f57600080fd5b50565b6000813590506136818161365b565b92915050565b61369081613526565b811461369b57600080fd5b50565b6000813590506136ad81613687565b92915050565b600080604083850312156136ca576136c961361f565b5b60006136d885828601613672565b92505060206136e98582860161369e565b9150509250929050565b60008115159050919050565b613708816136f3565b82525050565b600060208201905061372360008301846136ff565b92915050565b613732816136f3565b811461373d57600080fd5b50565b60008135905061374f81613729565b92915050565b6000806040838503121561376c5761376b61361f565b5b600061377a85828601613672565b925050602061378b85828601613740565b9150509250929050565b6000806000606084860312156137ae576137ad61361f565b5b60006137bc86828701613672565b93505060206137cd86828701613672565b92505060406137de8682870161369e565b9150509250925092565b600060ff82169050919050565b6137fe816137e8565b82525050565b600060208201905061381960008301846137f5565b92915050565b600080604083850312156138365761383561361f565b5b600061384485828601613740565b92505060206138558582860161369e565b9150509250929050565b600061386a82613649565b9050919050565b61387a8161385f565b811461388557600080fd5b50565b60008135905061389781613871565b92915050565b600080604083850312156138b4576138b361361f565b5b60006138c285828601613888565b92505060206138d385828601613672565b9150509250929050565b6138e681613649565b82525050565b600060208201905061390160008301846138dd565b92915050565b60006020828403121561391d5761391c61361f565b5b600061392b8482850161369e565b91505092915050565b60006020828403121561394a5761394961361f565b5b600061395884828501613672565b91505092915050565b60006060820190506139766000830186613530565b6139836020830185613530565b6139906040830184613530565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139d5826135a9565b810181811067ffffffffffffffff821117156139f4576139f361399d565b5b80604052505050565b6000613a07613615565b9050613a1382826139cc565b919050565b600067ffffffffffffffff821115613a3357613a3261399d565b5b602082029050602081019050919050565b600080fd5b6000613a5c613a5784613a18565b6139fd565b90508083825260208201905060208402830185811115613a7f57613a7e613a44565b5b835b81811015613aa85780613a948882613672565b845260208401935050602081019050613a81565b5050509392505050565b600082601f830112613ac757613ac6613998565b5b8135613ad7848260208601613a49565b91505092915050565b60008060408385031215613af757613af661361f565b5b600083013567ffffffffffffffff811115613b1557613b14613624565b5b613b2185828601613ab2565b9250506020613b3285828601613740565b9150509250929050565b600060208284031215613b5257613b5161361f565b5b6000613b6084828501613740565b91505092915050565b60008060408385031215613b8057613b7f61361f565b5b6000613b8e85828601613672565b9250506020613b9f85828601613672565b9150509250929050565b600080600060608486031215613bc257613bc161361f565b5b6000613bd08682870161369e565b9350506020613be18682870161369e565b9250506040613bf28682870161369e565b9150509250925092565b6000819050919050565b6000613c21613c1c613c1784613629565b613bfc565b613629565b9050919050565b6000613c3382613c06565b9050919050565b6000613c4582613c28565b9050919050565b613c5581613c3a565b82525050565b6000602082019050613c706000830184613c4c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cbd57607f821691505b602082108103613cd057613ccf613c76565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d0c602083613565565b9150613d1782613cd6565b602082019050919050565b60006020820190508181036000830152613d3b81613cff565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613d9e602883613565565b9150613da982613d42565b604082019050919050565b60006020820190508181036000830152613dcd81613d91565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0e82613526565b9150613e1983613526565b925082821015613e2c57613e2b613dd4565b5b828203905092915050565b6000613e4282613526565b9150613e4d83613526565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e8257613e81613dd4565b5b828201905092915050565b6000604082019050613ea260008301856138dd565b613eaf6020830184613530565b9392505050565b600081519050613ec581613729565b92915050565b600060208284031215613ee157613ee061361f565b5b6000613eef84828501613eb6565b91505092915050565b7f4d61782054782063616e27742062652030000000000000000000000000000000600082015250565b6000613f2e601183613565565b9150613f3982613ef8565b602082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b6000613f6f82613526565b9150613f7a83613526565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fb357613fb2613dd4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ff882613526565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361402a57614029613dd4565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b600061406b601683613565565b915061407682614035565b602082019050919050565b6000602082019050818103600083015261409a8161405e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140fd602583613565565b9150614108826140a1565b604082019050919050565b6000602082019050818103600083015261412c816140f0565b9050919050565b7f4d61782057616c6c65742063616e277420626520300000000000000000000000600082015250565b6000614169601583613565565b915061417482614133565b602082019050919050565b600060208201905081810360008301526141988161415c565b9050919050565b7f4d61782046656520697320313525000000000000000000000000000000000000600082015250565b60006141d5600e83613565565b91506141e08261419f565b602082019050919050565b60006020820190508181036000830152614204816141c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614267602683613565565b91506142728261420b565b604082019050919050565b600060208201905081810360008301526142968161425a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142f9602483613565565b91506143048261429d565b604082019050919050565b60006020820190508181036000830152614328816142ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061438b602283613565565b91506143968261432f565b604082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061441d602983613565565b9150614428826143c1565b604082019050919050565b6000602082019050818103600083015261444c81614410565b9050919050565b7f44657620736179733a204279652042796520426f747300000000000000000000600082015250565b6000614489601683613565565b915061449482614453565b602082019050919050565b600060208201905081810360008301526144b88161447c565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006144f5601783613565565b9150614500826144bf565b602082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000614561601d83613565565b915061456c8261452b565b602082019050919050565b6000602082019050818103600083015261459081614554565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006145f3602183613565565b91506145fe82614597565b604082019050919050565b60006020820190508181036000830152614622816145e6565b9050919050565b7f436f6f6c646f776e20456e61626c65642e205761697420706c65617365000000600082015250565b600061465f601d83613565565b915061466a82614629565b602082019050919050565b6000602082019050818103600083015261468e81614652565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146cf82613526565b91506146da83613526565b9250826146ea576146e9614695565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061472b601d83613565565b9150614736826146f5565b602082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b600081905092915050565b50565b600061477c600083614761565b91506147878261476c565b600082019050919050565b600061479d8261476f565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614803603a83613565565b915061480e826147a7565b604082019050919050565b60006020820190508181036000830152614832816147f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614895602583613565565b91506148a082614839565b604082019050919050565b600060208201905081810360008301526148c481614888565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614927602383613565565b9150614932826148cb565b604082019050919050565b600060208201905081810360008301526149568161491a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149b9602683613565565b91506149c48261495d565b604082019050919050565b600060208201905081810360008301526149e8816149ac565b9050919050565b6000815190506149fe8161365b565b92915050565b600060208284031215614a1a57614a1961361f565b5b6000614a28848285016149ef565b91505092915050565b6000819050919050565b6000614a56614a51614a4c84614a31565b613bfc565b613526565b9050919050565b614a6681614a3b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614aa181613649565b82525050565b6000614ab38383614a98565b60208301905092915050565b6000602082019050919050565b6000614ad782614a6c565b614ae18185614a77565b9350614aec83614a88565b8060005b83811015614b1d578151614b048882614aa7565b9750614b0f83614abf565b925050600181019050614af0565b5085935050505092915050565b600060a082019050614b3f6000830188613530565b614b4c6020830187614a5d565b8181036040830152614b5e8186614acc565b9050614b6d60608301856138dd565b614b7a6080830184613530565b9695505050505050565b600060c082019050614b9960008301896138dd565b614ba66020830188613530565b614bb36040830187614a5d565b614bc06060830186614a5d565b614bcd60808301856138dd565b614bda60a0830184613530565b979650505050505050565b600081519050614bf481613687565b92915050565b600080600060608486031215614c1357614c1261361f565b5b6000614c2186828701614be5565b9350506020614c3286828701614be5565b9250506040614c4386828701614be5565b915050925092509256fea2646970667358221220c12770685411dda3b5c36ec9041332cbc29b889f8fbba42aefcf0a228ea23a5c64736f6c634300080e0033

Deployed Bytecode Sourcemap

13191:8731:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13684:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2397:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4564:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20137:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3517:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5215:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3359:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20537:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6046:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13605:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20944:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13935:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13393:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21595:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21427:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19392:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13363:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3688:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11968:94;;;;;;;;;;;;;:::i;:::-;;14285:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13853:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19923:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13648:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14040:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19634:173;;;;;;;;;;;;;:::i;:::-;;13794:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11745:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2616:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19507:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13426:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21746:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6764:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13303:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4028:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13737:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20704:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21247:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19815:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20830:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13571:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13513:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4266:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19291:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21095:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20263:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12070:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13275:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13461:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14325:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13684:46;;;;:::o;2397:100::-;2451:13;2484:5;2477:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:100;:::o;4564:169::-;4647:4;4664:39;4673:12;:10;:12::i;:::-;4687:7;4696:6;4664:8;:39::i;:::-;4721:4;4714:11;;4564:169;;;;:::o;20137:118::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20242:5:::1;20217:13;:22;20231:7;20217:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;20137:118:::0;;:::o;3517:108::-;3578:7;3605:12;;3598:19;;3517:108;:::o;5215:422::-;5321:4;5338:36;5348:6;5356:9;5367:6;5338:9;:36::i;:::-;5387:24;5414:11;:19;5426:6;5414:19;;;;;;;;;;;;;;;:33;5434:12;:10;:12::i;:::-;5414:33;;;;;;;;;;;;;;;;5387:60;;5486:6;5466:16;:26;;5458:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5548:57;5557:6;5565:12;:10;:12::i;:::-;5598:6;5579:16;:25;;;;:::i;:::-;5548:8;:57::i;:::-;5625:4;5618:11;;;5215:422;;;;;:::o;3359:93::-;3417:5;3442:2;3435:9;;3359:93;:::o;20537:155::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20644:8:::1;20626:15;;:26;;;;;;;;;;;;;;;;;;20678:6;20663:12;:21;;;;20537:155:::0;;:::o;6046:215::-;6134:4;6151:80;6160:12;:10;:12::i;:::-;6174:7;6220:10;6183:11;:25;6195:12;:10;:12::i;:::-;6183:25;;;;;;;;;;;;;;;:34;6209:7;6183:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6151:8;:80::i;:::-;6249:4;6242:11;;6046:215;;;;:::o;13605:36::-;;;;:::o;20944:139::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21045:7:::1;21036:6;;:16;;;;;;;;;;;;;;;;;;21070:5;21063:4;;:12;;;;;;;;;;;;;;;;;;20944:139:::0;;:::o;13935:71::-;;;;;;;;;;;;;:::o;13393:26::-;;;;;;;;;;;;;:::o;21595:143::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21691:12:::1;21684:29;;;21714:7;:5;:7::i;:::-;21723:6;21684:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21595:143:::0;;:::o;21427:160::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21516:1:::1;21507:6;:10;21499:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;21573:6;21564;:15;;;;:::i;:::-;21550:11;:29;;;;21427:160:::0;:::o;19392:107::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19485:6:::1;19466:16;:25;;;;19392:107:::0;:::o;13363:23::-;;;;;;;;;;;;;:::o;3688:127::-;3762:7;3789:9;:18;3799:7;3789:18;;;;;;;;;;;;;;;;3782:25;;3688:127;;;:::o;11968:94::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12033:21:::1;12051:1;12033:9;:21::i;:::-;11968:94::o:0;14285:33::-;;;;;;;;;;;;;;;;;;;:::o;13853:75::-;;;;;;;;;;;;;:::o;19923:206::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20021:9:::1;20017:105;20040:8;:15;20036:1;:19;20017:105;;;20105:5;20076:13;:26;20090:8;20099:1;20090:11;;;;;;;;:::i;:::-;;;;;;;;20076:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20057:3;;;;;:::i;:::-;;;;20017:105;;;;19923:206:::0;;:::o;13648:27::-;;;;:::o;14040:50::-;;;;;;;;;;;;;;;;;:::o;19634:173::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19697:14:::1;;;;;;;;;;;19696:15;19688:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19766:4;19749:14;;:21;;;;;;;;;;;;;;;;;;19795:4;19781:11;;:18;;;;;;;;;;;;;;;;;;19634:173::o:0;13794:46::-;;;;:::o;11745:87::-;11791:7;11818:6;;;;;;;;;;;11811:13;;11745:87;:::o;2616:104::-;2672:13;2705:7;2698:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2616:104;:::o;19507:119::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19612:6:::1;19599:10;:19;;;;:::i;:::-;19583:13;:35;;;;19507:119:::0;:::o;13426:26::-;;;;;;;;;;;;;:::o;21746:112::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21813:37:::1;21840:9;21821:7;:5;:7::i;:::-;21813:26;;;;:37;;;;:::i;:::-;21746:112:::0;:::o;6764:377::-;6857:4;6874:24;6901:11;:25;6913:12;:10;:12::i;:::-;6901:25;;;;;;;;;;;;;;;:34;6927:7;6901:34;;;;;;;;;;;;;;;;6874:61;;6974:15;6954:16;:35;;6946:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7042:67;7051:12;:10;:12::i;:::-;7065:7;7093:15;7074:16;:34;;;;:::i;:::-;7042:8;:67::i;:::-;7129:4;7122:11;;;6764:377;;;;:::o;13303:19::-;;;;;;;;;;;;;:::o;4028:175::-;4114:4;4131:42;4141:12;:10;:12::i;:::-;4155:9;4166:6;4131:9;:42::i;:::-;4191:4;4184:11;;4028:175;;;;:::o;13737:50::-;;;;:::o;20704:114::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20801:9:::1;20783:15;;:27;;;;;;;;;;;;;;;;;;20704:114:::0;:::o;21247:172::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21340:1:::1;21331:6;:10;21323:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;21405:6;21396;:15;;;;:::i;:::-;21378;:33;;;;21247:172:::0;:::o;19815:100::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19901:6:::1;19884:14;;:23;;;;;;;;;;;;;;;;;;19815:100:::0;:::o;20830:106::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20919:9:::1;20905:11;;:23;;;;;;;;;;;;;;;;;;20830:106:::0;:::o;13571:27::-;;;;:::o;13513:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4266:151::-;4355:7;4382:11;:18;4394:5;4382:18;;;;;;;;;;;;;;;:27;4401:7;4382:27;;;;;;;;;;;;;;;;4375:34;;4266:151;;;;:::o;19291:93::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19371:5:::1;19357:11;;:19;;;;;;;;;;;;;;;;;;19291:93:::0;:::o;21095:134::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21216:5:::1;21187:16;:26;21204:8;21187:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21095:134:::0;;:::o;20263:266::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20400:2:::1;20393:3;20380:10;20369:8;:21;;;;:::i;:::-;:27;;;;:::i;:::-;:33;;20361:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20440:32;;;;;;;;20446:10;20440:32;;;;20458:3;20440:32;;;;20463:8;20440:32;;::::0;20432:5:::1;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;20518:3;20505:10;20494:8;:21;;;;:::i;:::-;:27;;;;:::i;:::-;20483:8;:38;;;;20263:266:::0;;;:::o;12070:192::-;11891:12;:10;:12::i;:::-;11880:23;;:7;:5;:7::i;:::-;:23;;;11872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12179:1:::1;12159:22;;:8;:22;;::::0;12151:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12235:19;12245:8;12235:9;:19::i;:::-;12070:192:::0;:::o;13275:21::-;;;;;;;;;;;;;:::o;13461:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14325:27::-;;;;:::o;232:98::-;285:7;312:10;305:17;;232:98;:::o;10120:346::-;10239:1;10222:19;;:5;:19;;;10214:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10320:1;10301:21;;:7;:21;;;10293:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10404:6;10374:11;:18;10386:5;10374:18;;;;;;;;;;;;;;;:27;10393:7;10374:27;;;;;;;;;;;;;;;:36;;;;10442:7;10426:32;;10435:5;10426:32;;;10451:6;10426:32;;;;;;:::i;:::-;;;;;;;;10120:346;;;:::o;15121:2177::-;15237:1;15228:6;:10;15220:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15304:13;:21;15318:6;15304:21;;;;;;;;;;;;;;;;;;;;;;;;;15303:22;:51;;;;;15330:13;:24;15344:9;15330:24;;;;;;;;;;;;;;;;;;;;;;;;;15329:25;15303:51;15295:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;15414:16;:24;15431:6;15414:24;;;;;;;;;;;;;;;;;;;;;;;;;15413:25;:57;;;;;15443:16;:27;15460:9;15443:27;;;;;;;;;;;;;;;;;;;;;;;;;15442:28;15413:57;:70;;;;;15475:8;;;;;;;;;;;15474:9;15413:70;15410:843;;;15507:14;;;;;;;;;;;15499:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;15582:11;;15572:6;:21;;15564:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15658:4;;;;;;;;;;;15645:17;;:9;:17;;;15642:354;;15723:15;;15713:6;15690:20;15700:9;15690;:20::i;:::-;:29;;;;:::i;:::-;:48;;15682:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15804:15;;;;;;;;;;;15803:16;:80;;;;15868:15;15852:12;;15823:15;:26;15839:9;15823:26;;;;;;;;;;;;;;;;:41;;;;:::i;:::-;:60;;15803:80;15795:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;15965:15;15936;:26;15952:9;15936:26;;;;;;;;;;;;;;;:44;;;;15642:354;16023:4;;;;;;;;;;;16013:14;;:6;:14;;;16010:232;;16056:15;;;;;;;;;;;16055:16;:77;;;;16117:15;16101:12;;16075:15;:23;16091:6;16075:23;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;:57;;16055:77;16047:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;16211:15;16185;:23;16201:6;16185:23;;;;;;;;;;;;;;;:41;;;;16010:232;15410:843;16265:11;16372:8;;;;;;;;;;;:36;;;;16384:16;:24;16401:6;16384:24;;;;;;;;;;;;;;;;;;;;;;;;;16372:36;:67;;;;16412:16;:27;16429:9;16412:27;;;;;;;;;;;;;;;;;;;;;;;;;16372:67;:108;;;;16454:4;;;;;;;;;;;16444:14;;:6;:14;;;;:35;;;;;16475:4;;;;;;;;;;;16462:17;;:9;:17;;;;16444:35;16372:108;16368:201;;;16488:1;16482:7;;16368:201;;;16566:3;16555:8;;16546:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;16540:29;;16368:201;16693:11;;;;;;;;;;;:24;;;;;16709:8;;;;;;;;;;;16708:9;16693:24;:42;;;;;16731:4;;;;;;;;;;;16721:14;;:6;:14;;;;16693:42;:53;;;;;16745:1;16739:3;:7;16693:53;16689:72;;;16748:13;:11;:13::i;:::-;16689:72;16787:4;;;;;;;;;;;16777:14;;:6;:14;;;:32;;;;;16795:14;;;;;;;;;;;16777:32;16774:388;;;16826:12;;:14;;;;;;;;;:::i;:::-;;;;;;16874:16;;16858:12;;:32;16855:296;;16926:1;16911:12;:16;;;;16984:1;16969:12;;:16;16966:170;;;17010:42;17039:12;;17018:9;17010:28;;;;:42;;;;:::i;:::-;17080:36;17092:9;17103:12;;17080:36;;;;;;;:::i;:::-;;;;;;;;16966:170;16855:296;16774:388;17174:48;17190:6;17198:9;17218:3;17209:6;:12;;;;:::i;:::-;17174:15;:48::i;:::-;17242:1;17236:3;:7;17233:55;;;17245:43;17261:6;17277:4;17284:3;17245:15;:43::i;:::-;17233:55;15209:2089;15121:2177;;;:::o;12270:173::-;12326:16;12345:6;;;;;;;;;;;12326:25;;12371:8;12362:6;;:17;;;;;;;;;;;;;;;;;;12426:8;12395:40;;12416:8;12395:40;;;;;;;;;;;;12315:128;12270:173;:::o;11190:317::-;11305:6;11280:21;:31;;11272:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11359:12;11377:9;:14;;11399:6;11377:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11358:52;;;11429:7;11421:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11261:246;11190:317;;:::o;17306:1206::-;14399:8;;;;;;;;;;;14394:104;;14435:4;14424:8;;:15;;;;;;;;;;;;;;;;;;17355:23:::1;17381:24;17399:4;17381:9;:24::i;:::-;17355:50;;17439:13;;17420:15;:32;17416:1089;;17471:19;17504:1;17493:8;;:12;;;;:::i;:::-;17471:34;;17520:32;17582:11;17571:5;:8;;;17555:13;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;17520:73;;17608:14;17641:24;17625:13;;:40;;;;:::i;:::-;17608:57;;17682:22;17707:21;17682:46;;17745:24;17762:6;17745:16;:24::i;:::-;17786:20;17833:14;17809:21;:38;;;;:::i;:::-;17786:61;;17862:19;17914:5;:8;;;17900:11;:22;;;;:::i;:::-;17884:12;:39;;;;:::i;:::-;17862:61;;17938:29;17984:5;:8;;;17970:11;:22;;;;:::i;:::-;17938:54;;18037:1;18013:21;:25;18009:129;;;18061:61;18074:24;18100:21;18061:12;:61::i;:::-;18009:129;18154:20;18195:5;:15;;;18191:1;18177:11;:15;;;;:::i;:::-;:33;;;;:::i;:::-;18154:56;;18244:1;18229:12;:16;18225:105;;;18266:48;18301:12;18274:15;;;;;;;;;;;18266:34;;;;:48;;;;:::i;:::-;18225:105;18346:18;18385:5;:13;;;18381:1;18367:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18346:52;;18430:1;18417:10;:14;18413:81;;;18468:10;18452:12;;:26;;;;;;;:::i;:::-;;;;;;;;18413:81;17454:1051;;;;;;;;;17416:1089;17344:1168;14481:5:::0;14470:8;;:16;;;;;;;;;;;;;;;;;;14394:104;17306:1206::o;7631:604::-;7755:1;7737:20;;:6;:20;;;7729:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7839:1;7818:23;;:9;:23;;;7810:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7894:47;7915:6;7923:9;7934:6;7894:20;:47::i;:::-;7954:21;7978:9;:17;7988:6;7978:17;;;;;;;;;;;;;;;;7954:41;;8031:6;8014:13;:23;;8006:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8127:6;8111:13;:22;;;;:::i;:::-;8091:9;:17;8101:6;8091:17;;;;;;;;;;;;;;;:42;;;;8168:6;8144:9;:20;8154:9;8144:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8209:9;8192:35;;8201:6;8192:35;;;8220:6;8192:35;;;;;;:::i;:::-;;;;;;;;7718:517;7631:604;;;:::o;18883:400::-;18949:21;18987:1;18973:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18949:40;;19018:4;19000;19005:1;19000:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19044:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19034:4;19039:1;19034:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19070:53;19087:4;19102:6;;;;;;;;;;;19111:11;19070:8;:53::i;:::-;19162:6;;;;;;;;;;;:57;;;19220:11;19233:1;19236:4;19250;19257:15;19162:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18938:345;18883:400;:::o;18520:353::-;18603:53;18620:4;18635:6;;;;;;;;;;;18644:11;18603:8;:53::i;:::-;18671:6;;;;;;;;;;;:22;;;18702:9;18735:4;18755:11;18781:1;18797;18813:11;;;;;;;;;;;18839:15;18671:194;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18520:353;;:::o;11069:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;:::i;:::-;4370:63;;4326:117;4482:2;4508:50;4550:7;4541:6;4530:9;4526:22;4508:50;:::i;:::-;4498:60;;4453:115;4107:468;;;;;:::o;4581:619::-;4658:6;4666;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;5104:2;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5075:118;4581:619;;;;;:::o;5206:86::-;5241:7;5281:4;5274:5;5270:16;5259:27;;5206:86;;;:::o;5298:112::-;5381:22;5397:5;5381:22;:::i;:::-;5376:3;5369:35;5298:112;;:::o;5416:214::-;5505:4;5543:2;5532:9;5528:18;5520:26;;5556:67;5620:1;5609:9;5605:17;5596:6;5556:67;:::i;:::-;5416:214;;;;:::o;5636:468::-;5701:6;5709;5758:2;5746:9;5737:7;5733:23;5729:32;5726:119;;;5764:79;;:::i;:::-;5726:119;5884:1;5909:50;5951:7;5942:6;5931:9;5927:22;5909:50;:::i;:::-;5899:60;;5855:114;6008:2;6034:53;6079:7;6070:6;6059:9;6055:22;6034:53;:::i;:::-;6024:63;;5979:118;5636:468;;;;;:::o;6110:111::-;6162:7;6191:24;6209:5;6191:24;:::i;:::-;6180:35;;6110:111;;;:::o;6227:152::-;6315:39;6348:5;6315:39;:::i;:::-;6308:5;6305:50;6295:78;;6369:1;6366;6359:12;6295:78;6227:152;:::o;6385:169::-;6446:5;6484:6;6471:20;6462:29;;6500:48;6542:5;6500:48;:::i;:::-;6385:169;;;;:::o;6560:504::-;6643:6;6651;6700:2;6688:9;6679:7;6675:23;6671:32;6668:119;;;6706:79;;:::i;:::-;6668:119;6826:1;6851:68;6911:7;6902:6;6891:9;6887:22;6851:68;:::i;:::-;6841:78;;6797:132;6968:2;6994:53;7039:7;7030:6;7019:9;7015:22;6994:53;:::i;:::-;6984:63;;6939:118;6560:504;;;;;:::o;7070:118::-;7157:24;7175:5;7157:24;:::i;:::-;7152:3;7145:37;7070:118;;:::o;7194:222::-;7287:4;7325:2;7314:9;7310:18;7302:26;;7338:71;7406:1;7395:9;7391:17;7382:6;7338:71;:::i;:::-;7194:222;;;;:::o;7422:329::-;7481:6;7530:2;7518:9;7509:7;7505:23;7501:32;7498:119;;;7536:79;;:::i;:::-;7498:119;7656:1;7681:53;7726:7;7717:6;7706:9;7702:22;7681:53;:::i;:::-;7671:63;;7627:117;7422:329;;;;:::o;7757:::-;7816:6;7865:2;7853:9;7844:7;7840:23;7836:32;7833:119;;;7871:79;;:::i;:::-;7833:119;7991:1;8016:53;8061:7;8052:6;8041:9;8037:22;8016:53;:::i;:::-;8006:63;;7962:117;7757:329;;;;:::o;8092:442::-;8241:4;8279:2;8268:9;8264:18;8256:26;;8292:71;8360:1;8349:9;8345:17;8336:6;8292:71;:::i;:::-;8373:72;8441:2;8430:9;8426:18;8417:6;8373:72;:::i;:::-;8455;8523:2;8512:9;8508:18;8499:6;8455:72;:::i;:::-;8092:442;;;;;;:::o;8540:117::-;8649:1;8646;8639:12;8663:180;8711:77;8708:1;8701:88;8808:4;8805:1;8798:15;8832:4;8829:1;8822:15;8849:281;8932:27;8954:4;8932:27;:::i;:::-;8924:6;8920:40;9062:6;9050:10;9047:22;9026:18;9014:10;9011:34;9008:62;9005:88;;;9073:18;;:::i;:::-;9005:88;9113:10;9109:2;9102:22;8892:238;8849:281;;:::o;9136:129::-;9170:6;9197:20;;:::i;:::-;9187:30;;9226:33;9254:4;9246:6;9226:33;:::i;:::-;9136:129;;;:::o;9271:311::-;9348:4;9438:18;9430:6;9427:30;9424:56;;;9460:18;;:::i;:::-;9424:56;9510:4;9502:6;9498:17;9490:25;;9570:4;9564;9560:15;9552:23;;9271:311;;;:::o;9588:117::-;9697:1;9694;9687:12;9728:710;9824:5;9849:81;9865:64;9922:6;9865:64;:::i;:::-;9849:81;:::i;:::-;9840:90;;9950:5;9979:6;9972:5;9965:21;10013:4;10006:5;10002:16;9995:23;;10066:4;10058:6;10054:17;10046:6;10042:30;10095:3;10087:6;10084:15;10081:122;;;10114:79;;:::i;:::-;10081:122;10229:6;10212:220;10246:6;10241:3;10238:15;10212:220;;;10321:3;10350:37;10383:3;10371:10;10350:37;:::i;:::-;10345:3;10338:50;10417:4;10412:3;10408:14;10401:21;;10288:144;10272:4;10267:3;10263:14;10256:21;;10212:220;;;10216:21;9830:608;;9728:710;;;;;:::o;10461:370::-;10532:5;10581:3;10574:4;10566:6;10562:17;10558:27;10548:122;;10589:79;;:::i;:::-;10548:122;10706:6;10693:20;10731:94;10821:3;10813:6;10806:4;10798:6;10794:17;10731:94;:::i;:::-;10722:103;;10538:293;10461:370;;;;:::o;10837:678::-;10927:6;10935;10984:2;10972:9;10963:7;10959:23;10955:32;10952:119;;;10990:79;;:::i;:::-;10952:119;11138:1;11127:9;11123:17;11110:31;11168:18;11160:6;11157:30;11154:117;;;11190:79;;:::i;:::-;11154:117;11295:78;11365:7;11356:6;11345:9;11341:22;11295:78;:::i;:::-;11285:88;;11081:302;11422:2;11448:50;11490:7;11481:6;11470:9;11466:22;11448:50;:::i;:::-;11438:60;;11393:115;10837:678;;;;;:::o;11521:323::-;11577:6;11626:2;11614:9;11605:7;11601:23;11597:32;11594:119;;;11632:79;;:::i;:::-;11594:119;11752:1;11777:50;11819:7;11810:6;11799:9;11795:22;11777:50;:::i;:::-;11767:60;;11723:114;11521:323;;;;:::o;11850:474::-;11918:6;11926;11975:2;11963:9;11954:7;11950:23;11946:32;11943:119;;;11981:79;;:::i;:::-;11943:119;12101:1;12126:53;12171:7;12162:6;12151:9;12147:22;12126:53;:::i;:::-;12116:63;;12072:117;12228:2;12254:53;12299:7;12290:6;12279:9;12275:22;12254:53;:::i;:::-;12244:63;;12199:118;11850:474;;;;;:::o;12330:619::-;12407:6;12415;12423;12472:2;12460:9;12451:7;12447:23;12443:32;12440:119;;;12478:79;;:::i;:::-;12440:119;12598:1;12623:53;12668:7;12659:6;12648:9;12644:22;12623:53;:::i;:::-;12613:63;;12569:117;12725:2;12751:53;12796:7;12787:6;12776:9;12772:22;12751:53;:::i;:::-;12741:63;;12696:118;12853:2;12879:53;12924:7;12915:6;12904:9;12900:22;12879:53;:::i;:::-;12869:63;;12824:118;12330:619;;;;;:::o;12955:60::-;12983:3;13004:5;12997:12;;12955:60;;;:::o;13021:142::-;13071:9;13104:53;13122:34;13131:24;13149:5;13131:24;:::i;:::-;13122:34;:::i;:::-;13104:53;:::i;:::-;13091:66;;13021:142;;;:::o;13169:126::-;13219:9;13252:37;13283:5;13252:37;:::i;:::-;13239:50;;13169:126;;;:::o;13301:141::-;13366:9;13399:37;13430:5;13399:37;:::i;:::-;13386:50;;13301:141;;;:::o;13448:161::-;13550:52;13596:5;13550:52;:::i;:::-;13545:3;13538:65;13448:161;;:::o;13615:252::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13774:86;13857:1;13846:9;13842:17;13833:6;13774:86;:::i;:::-;13615:252;;;;:::o;13873:180::-;13921:77;13918:1;13911:88;14018:4;14015:1;14008:15;14042:4;14039:1;14032:15;14059:320;14103:6;14140:1;14134:4;14130:12;14120:22;;14187:1;14181:4;14177:12;14208:18;14198:81;;14264:4;14256:6;14252:17;14242:27;;14198:81;14326:2;14318:6;14315:14;14295:18;14292:38;14289:84;;14345:18;;:::i;:::-;14289:84;14110:269;14059:320;;;:::o;14385:182::-;14525:34;14521:1;14513:6;14509:14;14502:58;14385:182;:::o;14573:366::-;14715:3;14736:67;14800:2;14795:3;14736:67;:::i;:::-;14729:74;;14812:93;14901:3;14812:93;:::i;:::-;14930:2;14925:3;14921:12;14914:19;;14573:366;;;:::o;14945:419::-;15111:4;15149:2;15138:9;15134:18;15126:26;;15198:9;15192:4;15188:20;15184:1;15173:9;15169:17;15162:47;15226:131;15352:4;15226:131;:::i;:::-;15218:139;;14945:419;;;:::o;15370:227::-;15510:34;15506:1;15498:6;15494:14;15487:58;15579:10;15574:2;15566:6;15562:15;15555:35;15370:227;:::o;15603:366::-;15745:3;15766:67;15830:2;15825:3;15766:67;:::i;:::-;15759:74;;15842:93;15931:3;15842:93;:::i;:::-;15960:2;15955:3;15951:12;15944:19;;15603:366;;;:::o;15975:419::-;16141:4;16179:2;16168:9;16164:18;16156:26;;16228:9;16222:4;16218:20;16214:1;16203:9;16199:17;16192:47;16256:131;16382:4;16256:131;:::i;:::-;16248:139;;15975:419;;;:::o;16400:180::-;16448:77;16445:1;16438:88;16545:4;16542:1;16535:15;16569:4;16566:1;16559:15;16586:191;16626:4;16646:20;16664:1;16646:20;:::i;:::-;16641:25;;16680:20;16698:1;16680:20;:::i;:::-;16675:25;;16719:1;16716;16713:8;16710:34;;;16724:18;;:::i;:::-;16710:34;16769:1;16766;16762:9;16754:17;;16586:191;;;;:::o;16783:305::-;16823:3;16842:20;16860:1;16842:20;:::i;:::-;16837:25;;16876:20;16894:1;16876:20;:::i;:::-;16871:25;;17030:1;16962:66;16958:74;16955:1;16952:81;16949:107;;;17036:18;;:::i;:::-;16949:107;17080:1;17077;17073:9;17066:16;;16783:305;;;;:::o;17094:332::-;17215:4;17253:2;17242:9;17238:18;17230:26;;17266:71;17334:1;17323:9;17319:17;17310:6;17266:71;:::i;:::-;17347:72;17415:2;17404:9;17400:18;17391:6;17347:72;:::i;:::-;17094:332;;;;;:::o;17432:137::-;17486:5;17517:6;17511:13;17502:22;;17533:30;17557:5;17533:30;:::i;:::-;17432:137;;;;:::o;17575:345::-;17642:6;17691:2;17679:9;17670:7;17666:23;17662:32;17659:119;;;17697:79;;:::i;:::-;17659:119;17817:1;17842:61;17895:7;17886:6;17875:9;17871:22;17842:61;:::i;:::-;17832:71;;17788:125;17575:345;;;;:::o;17926:167::-;18066:19;18062:1;18054:6;18050:14;18043:43;17926:167;:::o;18099:366::-;18241:3;18262:67;18326:2;18321:3;18262:67;:::i;:::-;18255:74;;18338:93;18427:3;18338:93;:::i;:::-;18456:2;18451:3;18447:12;18440:19;;18099:366;;;:::o;18471:419::-;18637:4;18675:2;18664:9;18660:18;18652:26;;18724:9;18718:4;18714:20;18710:1;18699:9;18695:17;18688:47;18752:131;18878:4;18752:131;:::i;:::-;18744:139;;18471:419;;;:::o;18896:348::-;18936:7;18959:20;18977:1;18959:20;:::i;:::-;18954:25;;18993:20;19011:1;18993:20;:::i;:::-;18988:25;;19181:1;19113:66;19109:74;19106:1;19103:81;19098:1;19091:9;19084:17;19080:105;19077:131;;;19188:18;;:::i;:::-;19077:131;19236:1;19233;19229:9;19218:20;;18896:348;;;;:::o;19250:180::-;19298:77;19295:1;19288:88;19395:4;19392:1;19385:15;19419:4;19416:1;19409:15;19436:233;19475:3;19498:24;19516:5;19498:24;:::i;:::-;19489:33;;19544:66;19537:5;19534:77;19531:103;;19614:18;;:::i;:::-;19531:103;19661:1;19654:5;19650:13;19643:20;;19436:233;;;:::o;19675:172::-;19815:24;19811:1;19803:6;19799:14;19792:48;19675:172;:::o;19853:366::-;19995:3;20016:67;20080:2;20075:3;20016:67;:::i;:::-;20009:74;;20092:93;20181:3;20092:93;:::i;:::-;20210:2;20205:3;20201:12;20194:19;;19853:366;;;:::o;20225:419::-;20391:4;20429:2;20418:9;20414:18;20406:26;;20478:9;20472:4;20468:20;20464:1;20453:9;20449:17;20442:47;20506:131;20632:4;20506:131;:::i;:::-;20498:139;;20225:419;;;:::o;20650:224::-;20790:34;20786:1;20778:6;20774:14;20767:58;20859:7;20854:2;20846:6;20842:15;20835:32;20650:224;:::o;20880:366::-;21022:3;21043:67;21107:2;21102:3;21043:67;:::i;:::-;21036:74;;21119:93;21208:3;21119:93;:::i;:::-;21237:2;21232:3;21228:12;21221:19;;20880:366;;;:::o;21252:419::-;21418:4;21456:2;21445:9;21441:18;21433:26;;21505:9;21499:4;21495:20;21491:1;21480:9;21476:17;21469:47;21533:131;21659:4;21533:131;:::i;:::-;21525:139;;21252:419;;;:::o;21677:171::-;21817:23;21813:1;21805:6;21801:14;21794:47;21677:171;:::o;21854:366::-;21996:3;22017:67;22081:2;22076:3;22017:67;:::i;:::-;22010:74;;22093:93;22182:3;22093:93;:::i;:::-;22211:2;22206:3;22202:12;22195:19;;21854:366;;;:::o;22226:419::-;22392:4;22430:2;22419:9;22415:18;22407:26;;22479:9;22473:4;22469:20;22465:1;22454:9;22450:17;22443:47;22507:131;22633:4;22507:131;:::i;:::-;22499:139;;22226:419;;;:::o;22651:164::-;22791:16;22787:1;22779:6;22775:14;22768:40;22651:164;:::o;22821:366::-;22963:3;22984:67;23048:2;23043:3;22984:67;:::i;:::-;22977:74;;23060:93;23149:3;23060:93;:::i;:::-;23178:2;23173:3;23169:12;23162:19;;22821:366;;;:::o;23193:419::-;23359:4;23397:2;23386:9;23382:18;23374:26;;23446:9;23440:4;23436:20;23432:1;23421:9;23417:17;23410:47;23474:131;23600:4;23474:131;:::i;:::-;23466:139;;23193:419;;;:::o;23618:225::-;23758:34;23754:1;23746:6;23742:14;23735:58;23827:8;23822:2;23814:6;23810:15;23803:33;23618:225;:::o;23849:366::-;23991:3;24012:67;24076:2;24071:3;24012:67;:::i;:::-;24005:74;;24088:93;24177:3;24088:93;:::i;:::-;24206:2;24201:3;24197:12;24190:19;;23849:366;;;:::o;24221:419::-;24387:4;24425:2;24414:9;24410:18;24402:26;;24474:9;24468:4;24464:20;24460:1;24449:9;24445:17;24438:47;24502:131;24628:4;24502:131;:::i;:::-;24494:139;;24221:419;;;:::o;24646:223::-;24786:34;24782:1;24774:6;24770:14;24763:58;24855:6;24850:2;24842:6;24838:15;24831:31;24646:223;:::o;24875:366::-;25017:3;25038:67;25102:2;25097:3;25038:67;:::i;:::-;25031:74;;25114:93;25203:3;25114:93;:::i;:::-;25232:2;25227:3;25223:12;25216:19;;24875:366;;;:::o;25247:419::-;25413:4;25451:2;25440:9;25436:18;25428:26;;25500:9;25494:4;25490:20;25486:1;25475:9;25471:17;25464:47;25528:131;25654:4;25528:131;:::i;:::-;25520:139;;25247:419;;;:::o;25672:221::-;25812:34;25808:1;25800:6;25796:14;25789:58;25881:4;25876:2;25868:6;25864:15;25857:29;25672:221;:::o;25899:366::-;26041:3;26062:67;26126:2;26121:3;26062:67;:::i;:::-;26055:74;;26138:93;26227:3;26138:93;:::i;:::-;26256:2;26251:3;26247:12;26240:19;;25899:366;;;:::o;26271:419::-;26437:4;26475:2;26464:9;26460:18;26452:26;;26524:9;26518:4;26514:20;26510:1;26499:9;26495:17;26488:47;26552:131;26678:4;26552:131;:::i;:::-;26544:139;;26271:419;;;:::o;26696:228::-;26836:34;26832:1;26824:6;26820:14;26813:58;26905:11;26900:2;26892:6;26888:15;26881:36;26696:228;:::o;26930:366::-;27072:3;27093:67;27157:2;27152:3;27093:67;:::i;:::-;27086:74;;27169:93;27258:3;27169:93;:::i;:::-;27287:2;27282:3;27278:12;27271:19;;26930:366;;;:::o;27302:419::-;27468:4;27506:2;27495:9;27491:18;27483:26;;27555:9;27549:4;27545:20;27541:1;27530:9;27526:17;27519:47;27583:131;27709:4;27583:131;:::i;:::-;27575:139;;27302:419;;;:::o;27727:172::-;27867:24;27863:1;27855:6;27851:14;27844:48;27727:172;:::o;27905:366::-;28047:3;28068:67;28132:2;28127:3;28068:67;:::i;:::-;28061:74;;28144:93;28233:3;28144:93;:::i;:::-;28262:2;28257:3;28253:12;28246:19;;27905:366;;;:::o;28277:419::-;28443:4;28481:2;28470:9;28466:18;28458:26;;28530:9;28524:4;28520:20;28516:1;28505:9;28501:17;28494:47;28558:131;28684:4;28558:131;:::i;:::-;28550:139;;28277:419;;;:::o;28702:173::-;28842:25;28838:1;28830:6;28826:14;28819:49;28702:173;:::o;28881:366::-;29023:3;29044:67;29108:2;29103:3;29044:67;:::i;:::-;29037:74;;29120:93;29209:3;29120:93;:::i;:::-;29238:2;29233:3;29229:12;29222:19;;28881:366;;;:::o;29253:419::-;29419:4;29457:2;29446:9;29442:18;29434:26;;29506:9;29500:4;29496:20;29492:1;29481:9;29477:17;29470:47;29534:131;29660:4;29534:131;:::i;:::-;29526:139;;29253:419;;;:::o;29678:179::-;29818:31;29814:1;29806:6;29802:14;29795:55;29678:179;:::o;29863:366::-;30005:3;30026:67;30090:2;30085:3;30026:67;:::i;:::-;30019:74;;30102:93;30191:3;30102:93;:::i;:::-;30220:2;30215:3;30211:12;30204:19;;29863:366;;;:::o;30235:419::-;30401:4;30439:2;30428:9;30424:18;30416:26;;30488:9;30482:4;30478:20;30474:1;30463:9;30459:17;30452:47;30516:131;30642:4;30516:131;:::i;:::-;30508:139;;30235:419;;;:::o;30660:220::-;30800:34;30796:1;30788:6;30784:14;30777:58;30869:3;30864:2;30856:6;30852:15;30845:28;30660:220;:::o;30886:366::-;31028:3;31049:67;31113:2;31108:3;31049:67;:::i;:::-;31042:74;;31125:93;31214:3;31125:93;:::i;:::-;31243:2;31238:3;31234:12;31227:19;;30886:366;;;:::o;31258:419::-;31424:4;31462:2;31451:9;31447:18;31439:26;;31511:9;31505:4;31501:20;31497:1;31486:9;31482:17;31475:47;31539:131;31665:4;31539:131;:::i;:::-;31531:139;;31258:419;;;:::o;31683:179::-;31823:31;31819:1;31811:6;31807:14;31800:55;31683:179;:::o;31868:366::-;32010:3;32031:67;32095:2;32090:3;32031:67;:::i;:::-;32024:74;;32107:93;32196:3;32107:93;:::i;:::-;32225:2;32220:3;32216:12;32209:19;;31868:366;;;:::o;32240:419::-;32406:4;32444:2;32433:9;32429:18;32421:26;;32493:9;32487:4;32483:20;32479:1;32468:9;32464:17;32457:47;32521:131;32647:4;32521:131;:::i;:::-;32513:139;;32240:419;;;:::o;32665:180::-;32713:77;32710:1;32703:88;32810:4;32807:1;32800:15;32834:4;32831:1;32824:15;32851:185;32891:1;32908:20;32926:1;32908:20;:::i;:::-;32903:25;;32942:20;32960:1;32942:20;:::i;:::-;32937:25;;32981:1;32971:35;;32986:18;;:::i;:::-;32971:35;33028:1;33025;33021:9;33016:14;;32851:185;;;;:::o;33042:179::-;33182:31;33178:1;33170:6;33166:14;33159:55;33042:179;:::o;33227:366::-;33369:3;33390:67;33454:2;33449:3;33390:67;:::i;:::-;33383:74;;33466:93;33555:3;33466:93;:::i;:::-;33584:2;33579:3;33575:12;33568:19;;33227:366;;;:::o;33599:419::-;33765:4;33803:2;33792:9;33788:18;33780:26;;33852:9;33846:4;33842:20;33838:1;33827:9;33823:17;33816:47;33880:131;34006:4;33880:131;:::i;:::-;33872:139;;33599:419;;;:::o;34024:147::-;34125:11;34162:3;34147:18;;34024:147;;;;:::o;34177:114::-;;:::o;34297:398::-;34456:3;34477:83;34558:1;34553:3;34477:83;:::i;:::-;34470:90;;34569:93;34658:3;34569:93;:::i;:::-;34687:1;34682:3;34678:11;34671:18;;34297:398;;;:::o;34701:379::-;34885:3;34907:147;35050:3;34907:147;:::i;:::-;34900:154;;35071:3;35064:10;;34701:379;;;:::o;35086:245::-;35226:34;35222:1;35214:6;35210:14;35203:58;35295:28;35290:2;35282:6;35278:15;35271:53;35086:245;:::o;35337:366::-;35479:3;35500:67;35564:2;35559:3;35500:67;:::i;:::-;35493:74;;35576:93;35665:3;35576:93;:::i;:::-;35694:2;35689:3;35685:12;35678:19;;35337:366;;;:::o;35709:419::-;35875:4;35913:2;35902:9;35898:18;35890:26;;35962:9;35956:4;35952:20;35948:1;35937:9;35933:17;35926:47;35990:131;36116:4;35990:131;:::i;:::-;35982:139;;35709:419;;;:::o;36134:224::-;36274:34;36270:1;36262:6;36258:14;36251:58;36343:7;36338:2;36330:6;36326:15;36319:32;36134:224;:::o;36364:366::-;36506:3;36527:67;36591:2;36586:3;36527:67;:::i;:::-;36520:74;;36603:93;36692:3;36603:93;:::i;:::-;36721:2;36716:3;36712:12;36705:19;;36364:366;;;:::o;36736:419::-;36902:4;36940:2;36929:9;36925:18;36917:26;;36989:9;36983:4;36979:20;36975:1;36964:9;36960:17;36953:47;37017:131;37143:4;37017:131;:::i;:::-;37009:139;;36736:419;;;:::o;37161:222::-;37301:34;37297:1;37289:6;37285:14;37278:58;37370:5;37365:2;37357:6;37353:15;37346:30;37161:222;:::o;37389:366::-;37531:3;37552:67;37616:2;37611:3;37552:67;:::i;:::-;37545:74;;37628:93;37717:3;37628:93;:::i;:::-;37746:2;37741:3;37737:12;37730:19;;37389:366;;;:::o;37761:419::-;37927:4;37965:2;37954:9;37950:18;37942:26;;38014:9;38008:4;38004:20;38000:1;37989:9;37985:17;37978:47;38042:131;38168:4;38042:131;:::i;:::-;38034:139;;37761:419;;;:::o;38186:225::-;38326:34;38322:1;38314:6;38310:14;38303:58;38395:8;38390:2;38382:6;38378:15;38371:33;38186:225;:::o;38417:366::-;38559:3;38580:67;38644:2;38639:3;38580:67;:::i;:::-;38573:74;;38656:93;38745:3;38656:93;:::i;:::-;38774:2;38769:3;38765:12;38758:19;;38417:366;;;:::o;38789:419::-;38955:4;38993:2;38982:9;38978:18;38970:26;;39042:9;39036:4;39032:20;39028:1;39017:9;39013:17;39006:47;39070:131;39196:4;39070:131;:::i;:::-;39062:139;;38789:419;;;:::o;39214:143::-;39271:5;39302:6;39296:13;39287:22;;39318:33;39345:5;39318:33;:::i;:::-;39214:143;;;;:::o;39363:351::-;39433:6;39482:2;39470:9;39461:7;39457:23;39453:32;39450:119;;;39488:79;;:::i;:::-;39450:119;39608:1;39633:64;39689:7;39680:6;39669:9;39665:22;39633:64;:::i;:::-;39623:74;;39579:128;39363:351;;;;:::o;39720:85::-;39765:7;39794:5;39783:16;;39720:85;;;:::o;39811:158::-;39869:9;39902:61;39920:42;39929:32;39955:5;39929:32;:::i;:::-;39920:42;:::i;:::-;39902:61;:::i;:::-;39889:74;;39811:158;;;:::o;39975:147::-;40070:45;40109:5;40070:45;:::i;:::-;40065:3;40058:58;39975:147;;:::o;40128:114::-;40195:6;40229:5;40223:12;40213:22;;40128:114;;;:::o;40248:184::-;40347:11;40381:6;40376:3;40369:19;40421:4;40416:3;40412:14;40397:29;;40248:184;;;;:::o;40438:132::-;40505:4;40528:3;40520:11;;40558:4;40553:3;40549:14;40541:22;;40438:132;;;:::o;40576:108::-;40653:24;40671:5;40653:24;:::i;:::-;40648:3;40641:37;40576:108;;:::o;40690:179::-;40759:10;40780:46;40822:3;40814:6;40780:46;:::i;:::-;40858:4;40853:3;40849:14;40835:28;;40690:179;;;;:::o;40875:113::-;40945:4;40977;40972:3;40968:14;40960:22;;40875:113;;;:::o;41024:732::-;41143:3;41172:54;41220:5;41172:54;:::i;:::-;41242:86;41321:6;41316:3;41242:86;:::i;:::-;41235:93;;41352:56;41402:5;41352:56;:::i;:::-;41431:7;41462:1;41447:284;41472:6;41469:1;41466:13;41447:284;;;41548:6;41542:13;41575:63;41634:3;41619:13;41575:63;:::i;:::-;41568:70;;41661:60;41714:6;41661:60;:::i;:::-;41651:70;;41507:224;41494:1;41491;41487:9;41482:14;;41447:284;;;41451:14;41747:3;41740:10;;41148:608;;;41024:732;;;;:::o;41762:831::-;42025:4;42063:3;42052:9;42048:19;42040:27;;42077:71;42145:1;42134:9;42130:17;42121:6;42077:71;:::i;:::-;42158:80;42234:2;42223:9;42219:18;42210:6;42158:80;:::i;:::-;42285:9;42279:4;42275:20;42270:2;42259:9;42255:18;42248:48;42313:108;42416:4;42407:6;42313:108;:::i;:::-;42305:116;;42431:72;42499:2;42488:9;42484:18;42475:6;42431:72;:::i;:::-;42513:73;42581:3;42570:9;42566:19;42557:6;42513:73;:::i;:::-;41762:831;;;;;;;;:::o;42599:807::-;42848:4;42886:3;42875:9;42871:19;42863:27;;42900:71;42968:1;42957:9;42953:17;42944:6;42900:71;:::i;:::-;42981:72;43049:2;43038:9;43034:18;43025:6;42981:72;:::i;:::-;43063:80;43139:2;43128:9;43124:18;43115:6;43063:80;:::i;:::-;43153;43229:2;43218:9;43214:18;43205:6;43153:80;:::i;:::-;43243:73;43311:3;43300:9;43296:19;43287:6;43243:73;:::i;:::-;43326;43394:3;43383:9;43379:19;43370:6;43326:73;:::i;:::-;42599:807;;;;;;;;;:::o;43412:143::-;43469:5;43500:6;43494:13;43485:22;;43516:33;43543:5;43516:33;:::i;:::-;43412:143;;;;:::o;43561:663::-;43649:6;43657;43665;43714:2;43702:9;43693:7;43689:23;43685:32;43682:119;;;43720:79;;:::i;:::-;43682:119;43840:1;43865:64;43921:7;43912:6;43901:9;43897:22;43865:64;:::i;:::-;43855:74;;43811:128;43978:2;44004:64;44060:7;44051:6;44040:9;44036:22;44004:64;:::i;:::-;43994:74;;43949:129;44117:2;44143:64;44199:7;44190:6;44179:9;44175:22;44143:64;:::i;:::-;44133:74;;44088:129;43561:663;;;;;:::o

Swarm Source

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