ETH Price: $2,919.32 (-9.92%)
Gas: 24 Gwei

Token

Baby Mino Inu (BMINO)
 

Overview

Max Total Supply

10,000,000 BMINO

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 BMINO

Value
$0.00
0x2978903810bfb20f8528a2239e2bad3aad2a5f45
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:
babyMinoInu

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 *
*/

/*
https://t.me/babymino

*/

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 _Initiate(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: Initiate 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
     * Initiateing 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 Initiateed 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 babyMinoInu is ERC20, Ownable{
    using Address for address payable;
 
    IRouter public router;
    IERC20 public SHIB;	
    address public pair;
 
    bool private swapping;
    bool public swapEnabled;
 
    bool public initialLiquidityAdded; 
    uint256 public liquidityAddedBlock;	
    uint256 public StartFee = 2;  

 
 
    uint256 public genesis_block;
    uint256 public deadblocks = 0;
 
    uint256 public swapThreshold = 1_000 * 10e18;
    uint256 public maxTxAmount = 10_000_000 * 10**18;
    uint256 public maxWalletAmount = 200_000 * 10**18;
    uint256 discountFactor = 1;
 
    address public marketingWallet = 0x138D404461685E4eD7a32B398b88d22b2b9157Cf;
    address public devWallet = 0x138D404461685E4eD7a32B398b88d22b2b9157Cf;
 
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
 
    Taxes public taxes = Taxes(5,0,0);
    Taxes public sellTaxes = Taxes(5,0,0);
    uint256 public totTax = 5;
    uint256 public totSellTax = 5;
 
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
 
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor() ERC20("Baby Mino Inu","BMINO") {
        _Initiate(msg.sender, 10_000_000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;
 
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
 
        router = _router;
        pair = _pair;
        SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); 
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
 
function _transfer(address sender, address recipient, uint256 amount) internal override {
 
 
                require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
         if (!_isblacklist(sender) && !_isblacklist(recipient)) {
        require(!_indeadblock(), "n/a");
         }
 
         bool issell = recipient == pair;
 
         _setdeadblock(issell);  
 
 
 
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[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 InitiateBalance = address(this).balance;
 
            swapTokensForETH(toSwap);
 
            uint256 deltaBalance = address(this).balance - InitiateBalance;
            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 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }

    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
            devWallet,
            block.timestamp
        );
    }
 
    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }
 
    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }
 
	function isblacklist(address account) public view returns (bool) {	
        return _isblacklist(account);	
    }	
    function _isblacklist(address sender) internal view returns (bool) {	
        return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000;	
    }
 
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
 
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }
 
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
 
        function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
        }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
 


    function updateBuyTaxes(uint256 liquidity, uint256 dev, uint256 marketing) external onlyOwner {
        taxes.liquidity = liquidity;
        taxes.dev = dev;
        taxes.marketing = marketing;
        totTax = liquidity+dev+marketing;
    }

   function updateSellTaxes(uint256 liquidity, uint256 dev, uint256 marketing) external onlyOwner {
        sellTaxes.liquidity = liquidity;
        sellTaxes.dev = dev;
        sellTaxes.marketing = marketing;
        totSellTax = liquidity+dev+marketing;
    }

    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function _setdeadblock(bool issell) private {	
        if (!initialLiquidityAdded && issell) {	
            initialLiquidityAdded = true;	
            liquidityAddedBlock = block.number;	
        }	
    }	
    function _indeadblock() private view returns (bool) {	
        return block.number <= liquidityAddedBlock + StartFee;	
    }
 
    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
 
    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }
 
    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }
 
    // 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":[],"name":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","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":"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":"dev","type":"uint256"}],"stateMutability":"view","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":[],"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":"dev","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":[{"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":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"updateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","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":"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"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600a556000600c5569021e19e0c9bab2400000600d556a084595161401484a000000600e55692a5a058fc295ed000000600f55600160105573138d404461685e4ed7a32b398b88d22b2b9157cf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073138d404461685e4ed7a32b398b88d22b2b9157cf601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060058152602001600081526020016000815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600581526020016000815260200160008152506016600082015181600001556020820151816001015560408201518160020155505060056019556005601a553480156200017f57600080fd5b506040518060400160405280600d81526020017f42616279204d696e6f20496e75000000000000000000000000000000000000008152506040518060400160405280600581526020017f424d494e4f000000000000000000000000000000000000000000000000000000815250816003908051906020019062000204929190620008c5565b5080600490805190602001906200021d929190620008c5565b50505062000240620002346200068460201b60201c565b6200068c60201b60201c565b6200027f33620002556200075260201b60201c565b600a62000263919062000b0f565b6298968062000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b6147738062000e446000396000f3fe60806040526004361061028c5760003560e01c80638c374ac11161015a578063b4337b4e116100c1578063e01af92c1161007a578063e01af92c146109f5578063e24b85e714610a1e578063e545fd6d14610a49578063f2fde38b14610a72578063f66895a314610a9b578063f887ea4014610ac857610293565b8063b4337b4e146108d5578063bcff895a146108fe578063c18bc19514610929578063d34628cc14610952578063dbe66ca01461097b578063dd62ed3e146109b857610293565b80639e252f00116101135780639e252f00146107b3578063a457c2d7146107dc578063a8aa1b3114610819578063a9059cbb14610844578063aa4bde2814610881578063aacebbe3146108ac57610293565b80638c374ac1146106b75780638cd4426d146106e05780638da5cb5b146107095780638ea5220f1461073457806395d89b411461075f5780639d0014b11461078a57610293565b806339509351116101fe578063715018a6116101b7578063715018a6146105b5578063728f8eea146105cc57806373bd699a146105f9578063743584981461062457806375f0a874146106615780638c0b5e221461068c57610293565b8063395093511461049157806340b28c2f146104ce57806350c9a88f146104f757806356b4286d146105225780636ddd17131461054d57806370a082311461057857610293565b80632253163d116102505780632253163d1461037f57806323b872dd146103aa57806326b5d32f146103e7578063274a533c14610410578063293b7ef41461043b578063313ce5671461046657610293565b80630445b6671461029857806306fdde03146102c3578063095ea7b3146102ee57806318160ddd1461032b5780631816467f1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610af3565b6040516102ba9190613233565b60405180910390f35b3480156102cf57600080fd5b506102d8610af9565b6040516102e591906132e7565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906133a7565b610b8b565b6040516103229190613402565b60405180910390f35b34801561033757600080fd5b50610340610ba9565b60405161034d9190613233565b60405180910390f35b34801561036257600080fd5b5061037d6004803603810190610378919061341d565b610bb3565b005b34801561038b57600080fd5b50610394610c73565b6040516103a19190613233565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc919061344a565b610c79565b6040516103de9190613402565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061349d565b610d7a565b005b34801561041c57600080fd5b50610425610f07565b6040516104329190613233565b60405180910390f35b34801561044757600080fd5b50610450610f0d565b60405161045d9190613233565b60405180910390f35b34801561047257600080fd5b5061047b610f13565b604051610488919061350c565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906133a7565b610f1c565b6040516104c59190613402565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190613565565b610fc8565b005b34801561050357600080fd5b5061050c6110ca565b6040516105199190613233565b60405180910390f35b34801561052e57600080fd5b506105376110d0565b6040516105449190613233565b60405180910390f35b34801561055957600080fd5b506105626110d6565b60405161056f9190613402565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a919061341d565b6110e9565b6040516105ac9190613233565b60405180910390f35b3480156105c157600080fd5b506105ca611131565b005b3480156105d857600080fd5b506105e16111b9565b6040516105f0939291906135a5565b60405180910390f35b34801561060557600080fd5b5061060e6111d1565b60405161061b9190613402565b60405180910390f35b34801561063057600080fd5b5061064b6004803603810190610646919061341d565b6111e4565b6040516106589190613402565b60405180910390f35b34801561066d57600080fd5b506106766111f6565b60405161068391906135eb565b60405180910390f35b34801561069857600080fd5b506106a161121c565b6040516106ae9190613233565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d9919061349d565b611222565b005b3480156106ec57600080fd5b50610707600480360381019061070291906133a7565b6112de565b005b34801561071557600080fd5b5061071e6113e4565b60405161072b91906135eb565b60405180910390f35b34801561074057600080fd5b5061074961140e565b60405161075691906135eb565b60405180910390f35b34801561076b57600080fd5b50610774611434565b60405161078191906132e7565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190613606565b6114c6565b005b3480156107bf57600080fd5b506107da60048036038101906107d59190613606565b61154c565b005b3480156107e857600080fd5b5061080360048036038101906107fe91906133a7565b6115fb565b6040516108109190613402565b60405180910390f35b34801561082557600080fd5b5061082e6116ef565b60405161083b91906135eb565b60405180910390f35b34801561085057600080fd5b5061086b600480360381019061086691906133a7565b611715565b6040516108789190613402565b60405180910390f35b34801561088d57600080fd5b50610896611733565b6040516108a39190613233565b60405180910390f35b3480156108b857600080fd5b506108d360048036038101906108ce919061341d565b611739565b005b3480156108e157600080fd5b506108fc60048036038101906108f7919061349d565b6117f9565b005b34801561090a57600080fd5b506109136118b5565b6040516109209190613233565b60405180910390f35b34801561093557600080fd5b50610950600480360381019061094b9190613606565b6118bb565b005b34801561095e57600080fd5b506109796004803603810190610974919061377b565b611954565b005b34801561098757600080fd5b506109a2600480360381019061099d919061341d565b611a65565b6040516109af9190613402565b60405180910390f35b3480156109c457600080fd5b506109df60048036038101906109da91906137c4565b611a85565b6040516109ec9190613233565b60405180910390f35b348015610a0157600080fd5b50610a1c6004803603810190610a179190613830565b611b0c565b005b348015610a2a57600080fd5b50610a33611ba5565b604051610a4091906138bc565b60405180910390f35b348015610a5557600080fd5b50610a706004803603810190610a6b91906138d7565b611bcb565b005b348015610a7e57600080fd5b50610a996004803603810190610a94919061341d565b611ca2565b005b348015610aa757600080fd5b50610ab0611d9a565b604051610abf939291906135a5565b60405180910390f35b348015610ad457600080fd5b50610add611db2565b604051610aea9190613938565b60405180910390f35b600d5481565b606060038054610b0890613982565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3490613982565b8015610b815780601f10610b5657610100808354040283529160200191610b81565b820191906000526020600020905b815481529060010190602001808311610b6457829003601f168201915b5050505050905090565b6000610b9f610b98611dd8565b8484611de0565b6001905092915050565b6000600254905090565b610bbb611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610bd96113e4565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690613a00565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c86848484611fab565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd1611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890613a92565b60405180910390fd5b610d6e85610d5d611dd8565b8584610d699190613ae1565b611de0565b60019150509392505050565b610d82611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610da06113e4565b73ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90613a00565b60405180910390fd5b6000479050610e04846126ef565b60008147610e129190613ae1565b90506000831115610e8a57610e898385610e2c9190613b15565b8483610e389190613b6b565b610e429190613bf4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b6000841115610f0057610eff8385610ea29190613b15565b8583610eae9190613b6b565b610eb89190613bf4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610fbe610f29611dd8565b848460016000610f37611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fb99190613b15565b611de0565b6001905092915050565b610fd0611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610fee6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90613a00565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611139611dd8565b73ffffffffffffffffffffffffffffffffffffffff166111576113e4565b73ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613a00565b60405180910390fd5b6111b76000612a26565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111ef82612aec565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61122a611dd8565b73ffffffffffffffffffffffffffffffffffffffff166112486113e4565b73ffffffffffffffffffffffffffffffffffffffff161461129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613a00565b60405180910390fd5b8260136001018190555081601360020181905550806013600001819055508082846112c99190613b15565b6112d39190613b15565b601981905550505050565b6112e6611dd8565b73ffffffffffffffffffffffffffffffffffffffff166113046113e4565b73ffffffffffffffffffffffffffffffffffffffff161461135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135190613a00565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61137e6113e4565b836040518363ffffffff1660e01b815260040161139c929190613c25565b6020604051808303816000875af11580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190613c63565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461144390613982565b80601f016020809104026020016040519081016040528092919081815260200182805461146f90613982565b80156114bc5780601f10611491576101008083540402835291602001916114bc565b820191906000526020600020905b81548152906001019060200180831161149f57829003601f168201915b5050505050905090565b6114ce611dd8565b73ffffffffffffffffffffffffffffffffffffffff166114ec6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990613a00565b60405180910390fd5b80600d8190555050565b611554611dd8565b73ffffffffffffffffffffffffffffffffffffffff166115726113e4565b73ffffffffffffffffffffffffffffffffffffffff16146115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf90613a00565b60405180910390fd5b6115f8816115d46113e4565b73ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b50565b6000806001600061160a611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613d02565b60405180910390fd5b6116e46116d2611dd8565b8585846116df9190613ae1565b611de0565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611729611722611dd8565b8484611fab565b6001905092915050565b600f5481565b611741611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661175f6113e4565b73ffffffffffffffffffffffffffffffffffffffff16146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613a00565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611801611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661181f6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613a00565b60405180910390fd5b8260166001018190555081601660020181905550806016600001819055508082846118a09190613b15565b6118aa9190613b15565b601a81905550505050565b60095481565b6118c3611dd8565b73ffffffffffffffffffffffffffffffffffffffff166118e16113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90613a00565b60405180910390fd5b670de0b6b3a76400008161194b9190613b6b565b600f8190555050565b61195c611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661197a6113e4565b73ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613a00565b60405180910390fd5b60005b8151811015611a61576001601c60008484815181106119f5576119f4613d22565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611a5990613d51565b9150506119d3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b14611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611b326113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7f90613a00565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bd3611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611bf16113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613a00565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611caa611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611cc86113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1590613a00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613e0c565b60405180910390fd5b611d9781612a26565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4790613e9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb790613f30565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f9e9190613233565b60405180910390a3505050565b60008111611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590613fc2565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120925750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c89061402e565b60405180910390fd5b6120da83612aec565b1580156120ed57506120eb82612aec565b155b1561213b576120fa612c33565b1561213a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121319061409a565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905061219981612c4d565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561223d5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122565750600860149054906101000a900460ff16155b156124c35743600c54600b5461226c9190613b15565b11156123cf57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612320576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146123ce576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b90614106565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124c257600f5482612476856110e9565b6124809190613b15565b11156124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614198565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806125295750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061257d5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561258b5760009050612620565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612602576064601a54846125f19190613b6b565b6125fb9190613bf4565b905061261f565b6064601954846126129190613b6b565b61261c9190613bf4565b90505b5b600860159054906101000a900460ff1680156126495750600860149054906101000a900460ff16155b80156126a35750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156126af5750600081115b156126bd576126bc612c92565b5b6126d3858583866126ce9190613ae1565b612e96565b60008111156126e8576126e7853083612e96565b5b5050505050565b6000600267ffffffffffffffff81111561270c5761270b613638565b5b60405190808252806020026020018201604052801561273a5781602001602082028036833780820191505090505b509050308160008151811061275257612751613d22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281d91906141cd565b8160018151811061283157612830613d22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611de0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128fc9594939291906142f3565b600060405180830381600087803b15801561291657600080fd5b505af115801561292a573d6000803e3d6000fd5b505050505050565b80471015612975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296c90614399565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161299b906143ea565b60006040518083038185875af1925050503d80600081146129d8576040519150601f19603f3d011682016040523d82523d6000602084013e6129dd565b606091505b5050905080612a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1890614471565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8491906144a6565b612b8e9190613bf4565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612be991906135eb565b602060405180830381865afa158015612c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2a91906144a6565b10159050919050565b6000600a54600954612c459190613b15565b431115905090565b600860169054906101000a900460ff16158015612c675750805b15612c8f576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612e94576001600860146101000a81548160ff0219169083151502179055506000612ccc306110e9565b9050600d548110612e775760006002601a54612ce89190613b6b565b905060008160166001015484612cfe9190613b6b565b612d089190613bf4565b905060008184612d189190613ae1565b90506000479050612d28826126ef565b60008147612d369190613ae1565b9050600060166001015486612d4b9190613ae1565b82612d569190613bf4565b9050600060166001015482612d6b9190613b6b565b90506000811115612d8157612d808682613115565b5b6000601660000154600284612d969190613b6b565b612da09190613b6b565b90506000811115612df757612df681601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b6000601660020154600285612e0c9190613b6b565b612e169190613b6b565b90506000811115612e6d57612e6c81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efd90614545565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6d906145d7565b60405180910390fd5b612f81838383613215565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffe90614669565b60405180910390fd5b81816130139190613ae1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130a39190613b15565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131079190613233565b60405180910390a350505050565b61314230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611de0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131cb96959493929190614689565b60606040518083038185885af11580156131e9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320e91906146ea565b5050505050565b505050565b6000819050919050565b61322d8161321a565b82525050565b60006020820190506132486000830184613224565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561328857808201518184015260208101905061326d565b83811115613297576000848401525b50505050565b6000601f19601f8301169050919050565b60006132b98261324e565b6132c38185613259565b93506132d381856020860161326a565b6132dc8161329d565b840191505092915050565b6000602082019050818103600083015261330181846132ae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133488261331d565b9050919050565b6133588161333d565b811461336357600080fd5b50565b6000813590506133758161334f565b92915050565b6133848161321a565b811461338f57600080fd5b50565b6000813590506133a18161337b565b92915050565b600080604083850312156133be576133bd613313565b5b60006133cc85828601613366565b92505060206133dd85828601613392565b9150509250929050565b60008115159050919050565b6133fc816133e7565b82525050565b600060208201905061341760008301846133f3565b92915050565b60006020828403121561343357613432613313565b5b600061344184828501613366565b91505092915050565b60008060006060848603121561346357613462613313565b5b600061347186828701613366565b935050602061348286828701613366565b925050604061349386828701613392565b9150509250925092565b6000806000606084860312156134b6576134b5613313565b5b60006134c486828701613392565b93505060206134d586828701613392565b92505060406134e686828701613392565b9150509250925092565b600060ff82169050919050565b613506816134f0565b82525050565b600060208201905061352160008301846134fd565b92915050565b60006135328261333d565b9050919050565b61354281613527565b811461354d57600080fd5b50565b60008135905061355f81613539565b92915050565b6000806040838503121561357c5761357b613313565b5b600061358a85828601613550565b925050602061359b85828601613366565b9150509250929050565b60006060820190506135ba6000830186613224565b6135c76020830185613224565b6135d46040830184613224565b949350505050565b6135e58161333d565b82525050565b600060208201905061360060008301846135dc565b92915050565b60006020828403121561361c5761361b613313565b5b600061362a84828501613392565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136708261329d565b810181811067ffffffffffffffff8211171561368f5761368e613638565b5b80604052505050565b60006136a2613309565b90506136ae8282613667565b919050565b600067ffffffffffffffff8211156136ce576136cd613638565b5b602082029050602081019050919050565b600080fd5b60006136f76136f2846136b3565b613698565b9050808382526020820190506020840283018581111561371a576137196136df565b5b835b81811015613743578061372f8882613366565b84526020840193505060208101905061371c565b5050509392505050565b600082601f83011261376257613761613633565b5b81356137728482602086016136e4565b91505092915050565b60006020828403121561379157613790613313565b5b600082013567ffffffffffffffff8111156137af576137ae613318565b5b6137bb8482850161374d565b91505092915050565b600080604083850312156137db576137da613313565b5b60006137e985828601613366565b92505060206137fa85828601613366565b9150509250929050565b61380d816133e7565b811461381857600080fd5b50565b60008135905061382a81613804565b92915050565b60006020828403121561384657613845613313565b5b60006138548482850161381b565b91505092915050565b6000819050919050565b600061388261387d6138788461331d565b61385d565b61331d565b9050919050565b600061389482613867565b9050919050565b60006138a682613889565b9050919050565b6138b68161389b565b82525050565b60006020820190506138d160008301846138ad565b92915050565b600080604083850312156138ee576138ed613313565b5b60006138fc85828601613366565b925050602061390d8582860161381b565b9150509250929050565b600061392282613889565b9050919050565b61393281613917565b82525050565b600060208201905061394d6000830184613929565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061399a57607f821691505b602082108114156139ae576139ad613953565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139ea602083613259565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613a7c602883613259565b9150613a8782613a20565b604082019050919050565b60006020820190508181036000830152613aab81613a6f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613aec8261321a565b9150613af78361321a565b925082821015613b0a57613b09613ab2565b5b828203905092915050565b6000613b208261321a565b9150613b2b8361321a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6057613b5f613ab2565b5b828201905092915050565b6000613b768261321a565b9150613b818361321a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bba57613bb9613ab2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bff8261321a565b9150613c0a8361321a565b925082613c1a57613c19613bc5565b5b828204905092915050565b6000604082019050613c3a60008301856135dc565b613c476020830184613224565b9392505050565b600081519050613c5d81613804565b92915050565b600060208284031215613c7957613c78613313565b5b6000613c8784828501613c4e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cec602583613259565b9150613cf782613c90565b604082019050919050565b60006020820190508181036000830152613d1b81613cdf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d5c8261321a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d8f57613d8e613ab2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df6602683613259565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e88602483613259565b9150613e9382613e2c565b604082019050919050565b60006020820190508181036000830152613eb781613e7b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a602283613259565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613fac602983613259565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614018601983613259565b915061402382613fe2565b602082019050919050565b600060208201905081810360008301526140478161400b565b9050919050565b7f6e2f610000000000000000000000000000000000000000000000000000000000600082015250565b6000614084600383613259565b915061408f8261404e565b602082019050919050565b600060208201905081810360008301526140b381614077565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006140f0601d83613259565b91506140fb826140ba565b602082019050919050565b6000602082019050818103600083015261411f816140e3565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000614182602183613259565b915061418d82614126565b604082019050919050565b600060208201905081810360008301526141b181614175565b9050919050565b6000815190506141c78161334f565b92915050565b6000602082840312156141e3576141e2613313565b5b60006141f1848285016141b8565b91505092915050565b6000819050919050565b600061421f61421a614215846141fa565b61385d565b61321a565b9050919050565b61422f81614204565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61426a8161333d565b82525050565b600061427c8383614261565b60208301905092915050565b6000602082019050919050565b60006142a082614235565b6142aa8185614240565b93506142b583614251565b8060005b838110156142e65781516142cd8882614270565b97506142d883614288565b9250506001810190506142b9565b5085935050505092915050565b600060a0820190506143086000830188613224565b6143156020830187614226565b81810360408301526143278186614295565b905061433660608301856135dc565b6143436080830184613224565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614383601d83613259565b915061438e8261434d565b602082019050919050565b600060208201905081810360008301526143b281614376565b9050919050565b600081905092915050565b50565b60006143d46000836143b9565b91506143df826143c4565b600082019050919050565b60006143f5826143c7565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061445b603a83613259565b9150614466826143ff565b604082019050919050565b6000602082019050818103600083015261448a8161444e565b9050919050565b6000815190506144a08161337b565b92915050565b6000602082840312156144bc576144bb613313565b5b60006144ca84828501614491565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061452f602583613259565b915061453a826144d3565b604082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145c1602383613259565b91506145cc82614565565b604082019050919050565b600060208201905081810360008301526145f0816145b4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614653602683613259565b915061465e826145f7565b604082019050919050565b6000602082019050818103600083015261468281614646565b9050919050565b600060c08201905061469e60008301896135dc565b6146ab6020830188613224565b6146b86040830187614226565b6146c56060830186614226565b6146d260808301856135dc565b6146df60a0830184613224565b979650505050505050565b60008060006060848603121561470357614702613313565b5b600061471186828701614491565b935050602061472286828701614491565b925050604061473386828701614491565b915050925092509256fea26469706673582212201a25b61183269844817033aae6836b786f6eaa586c23638fce3f1d826e4a1d7c64736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80638c374ac11161015a578063b4337b4e116100c1578063e01af92c1161007a578063e01af92c146109f5578063e24b85e714610a1e578063e545fd6d14610a49578063f2fde38b14610a72578063f66895a314610a9b578063f887ea4014610ac857610293565b8063b4337b4e146108d5578063bcff895a146108fe578063c18bc19514610929578063d34628cc14610952578063dbe66ca01461097b578063dd62ed3e146109b857610293565b80639e252f00116101135780639e252f00146107b3578063a457c2d7146107dc578063a8aa1b3114610819578063a9059cbb14610844578063aa4bde2814610881578063aacebbe3146108ac57610293565b80638c374ac1146106b75780638cd4426d146106e05780638da5cb5b146107095780638ea5220f1461073457806395d89b411461075f5780639d0014b11461078a57610293565b806339509351116101fe578063715018a6116101b7578063715018a6146105b5578063728f8eea146105cc57806373bd699a146105f9578063743584981461062457806375f0a874146106615780638c0b5e221461068c57610293565b8063395093511461049157806340b28c2f146104ce57806350c9a88f146104f757806356b4286d146105225780636ddd17131461054d57806370a082311461057857610293565b80632253163d116102505780632253163d1461037f57806323b872dd146103aa57806326b5d32f146103e7578063274a533c14610410578063293b7ef41461043b578063313ce5671461046657610293565b80630445b6671461029857806306fdde03146102c3578063095ea7b3146102ee57806318160ddd1461032b5780631816467f1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610af3565b6040516102ba9190613233565b60405180910390f35b3480156102cf57600080fd5b506102d8610af9565b6040516102e591906132e7565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906133a7565b610b8b565b6040516103229190613402565b60405180910390f35b34801561033757600080fd5b50610340610ba9565b60405161034d9190613233565b60405180910390f35b34801561036257600080fd5b5061037d6004803603810190610378919061341d565b610bb3565b005b34801561038b57600080fd5b50610394610c73565b6040516103a19190613233565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc919061344a565b610c79565b6040516103de9190613402565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061349d565b610d7a565b005b34801561041c57600080fd5b50610425610f07565b6040516104329190613233565b60405180910390f35b34801561044757600080fd5b50610450610f0d565b60405161045d9190613233565b60405180910390f35b34801561047257600080fd5b5061047b610f13565b604051610488919061350c565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906133a7565b610f1c565b6040516104c59190613402565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190613565565b610fc8565b005b34801561050357600080fd5b5061050c6110ca565b6040516105199190613233565b60405180910390f35b34801561052e57600080fd5b506105376110d0565b6040516105449190613233565b60405180910390f35b34801561055957600080fd5b506105626110d6565b60405161056f9190613402565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a919061341d565b6110e9565b6040516105ac9190613233565b60405180910390f35b3480156105c157600080fd5b506105ca611131565b005b3480156105d857600080fd5b506105e16111b9565b6040516105f0939291906135a5565b60405180910390f35b34801561060557600080fd5b5061060e6111d1565b60405161061b9190613402565b60405180910390f35b34801561063057600080fd5b5061064b6004803603810190610646919061341d565b6111e4565b6040516106589190613402565b60405180910390f35b34801561066d57600080fd5b506106766111f6565b60405161068391906135eb565b60405180910390f35b34801561069857600080fd5b506106a161121c565b6040516106ae9190613233565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d9919061349d565b611222565b005b3480156106ec57600080fd5b50610707600480360381019061070291906133a7565b6112de565b005b34801561071557600080fd5b5061071e6113e4565b60405161072b91906135eb565b60405180910390f35b34801561074057600080fd5b5061074961140e565b60405161075691906135eb565b60405180910390f35b34801561076b57600080fd5b50610774611434565b60405161078191906132e7565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190613606565b6114c6565b005b3480156107bf57600080fd5b506107da60048036038101906107d59190613606565b61154c565b005b3480156107e857600080fd5b5061080360048036038101906107fe91906133a7565b6115fb565b6040516108109190613402565b60405180910390f35b34801561082557600080fd5b5061082e6116ef565b60405161083b91906135eb565b60405180910390f35b34801561085057600080fd5b5061086b600480360381019061086691906133a7565b611715565b6040516108789190613402565b60405180910390f35b34801561088d57600080fd5b50610896611733565b6040516108a39190613233565b60405180910390f35b3480156108b857600080fd5b506108d360048036038101906108ce919061341d565b611739565b005b3480156108e157600080fd5b506108fc60048036038101906108f7919061349d565b6117f9565b005b34801561090a57600080fd5b506109136118b5565b6040516109209190613233565b60405180910390f35b34801561093557600080fd5b50610950600480360381019061094b9190613606565b6118bb565b005b34801561095e57600080fd5b506109796004803603810190610974919061377b565b611954565b005b34801561098757600080fd5b506109a2600480360381019061099d919061341d565b611a65565b6040516109af9190613402565b60405180910390f35b3480156109c457600080fd5b506109df60048036038101906109da91906137c4565b611a85565b6040516109ec9190613233565b60405180910390f35b348015610a0157600080fd5b50610a1c6004803603810190610a179190613830565b611b0c565b005b348015610a2a57600080fd5b50610a33611ba5565b604051610a4091906138bc565b60405180910390f35b348015610a5557600080fd5b50610a706004803603810190610a6b91906138d7565b611bcb565b005b348015610a7e57600080fd5b50610a996004803603810190610a94919061341d565b611ca2565b005b348015610aa757600080fd5b50610ab0611d9a565b604051610abf939291906135a5565b60405180910390f35b348015610ad457600080fd5b50610add611db2565b604051610aea9190613938565b60405180910390f35b600d5481565b606060038054610b0890613982565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3490613982565b8015610b815780601f10610b5657610100808354040283529160200191610b81565b820191906000526020600020905b815481529060010190602001808311610b6457829003601f168201915b5050505050905090565b6000610b9f610b98611dd8565b8484611de0565b6001905092915050565b6000600254905090565b610bbb611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610bd96113e4565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690613a00565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c86848484611fab565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd1611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890613a92565b60405180910390fd5b610d6e85610d5d611dd8565b8584610d699190613ae1565b611de0565b60019150509392505050565b610d82611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610da06113e4565b73ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90613a00565b60405180910390fd5b6000479050610e04846126ef565b60008147610e129190613ae1565b90506000831115610e8a57610e898385610e2c9190613b15565b8483610e389190613b6b565b610e429190613bf4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b6000841115610f0057610eff8385610ea29190613b15565b8583610eae9190613b6b565b610eb89190613bf4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610fbe610f29611dd8565b848460016000610f37611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fb99190613b15565b611de0565b6001905092915050565b610fd0611dd8565b73ffffffffffffffffffffffffffffffffffffffff16610fee6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90613a00565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611139611dd8565b73ffffffffffffffffffffffffffffffffffffffff166111576113e4565b73ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613a00565b60405180910390fd5b6111b76000612a26565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111ef82612aec565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61122a611dd8565b73ffffffffffffffffffffffffffffffffffffffff166112486113e4565b73ffffffffffffffffffffffffffffffffffffffff161461129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613a00565b60405180910390fd5b8260136001018190555081601360020181905550806013600001819055508082846112c99190613b15565b6112d39190613b15565b601981905550505050565b6112e6611dd8565b73ffffffffffffffffffffffffffffffffffffffff166113046113e4565b73ffffffffffffffffffffffffffffffffffffffff161461135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135190613a00565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61137e6113e4565b836040518363ffffffff1660e01b815260040161139c929190613c25565b6020604051808303816000875af11580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190613c63565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461144390613982565b80601f016020809104026020016040519081016040528092919081815260200182805461146f90613982565b80156114bc5780601f10611491576101008083540402835291602001916114bc565b820191906000526020600020905b81548152906001019060200180831161149f57829003601f168201915b5050505050905090565b6114ce611dd8565b73ffffffffffffffffffffffffffffffffffffffff166114ec6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990613a00565b60405180910390fd5b80600d8190555050565b611554611dd8565b73ffffffffffffffffffffffffffffffffffffffff166115726113e4565b73ffffffffffffffffffffffffffffffffffffffff16146115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf90613a00565b60405180910390fd5b6115f8816115d46113e4565b73ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b50565b6000806001600061160a611dd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613d02565b60405180910390fd5b6116e46116d2611dd8565b8585846116df9190613ae1565b611de0565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611729611722611dd8565b8484611fab565b6001905092915050565b600f5481565b611741611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661175f6113e4565b73ffffffffffffffffffffffffffffffffffffffff16146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613a00565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611801611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661181f6113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613a00565b60405180910390fd5b8260166001018190555081601660020181905550806016600001819055508082846118a09190613b15565b6118aa9190613b15565b601a81905550505050565b60095481565b6118c3611dd8565b73ffffffffffffffffffffffffffffffffffffffff166118e16113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90613a00565b60405180910390fd5b670de0b6b3a76400008161194b9190613b6b565b600f8190555050565b61195c611dd8565b73ffffffffffffffffffffffffffffffffffffffff1661197a6113e4565b73ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613a00565b60405180910390fd5b60005b8151811015611a61576001601c60008484815181106119f5576119f4613d22565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611a5990613d51565b9150506119d3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b14611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611b326113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7f90613a00565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bd3611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611bf16113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613a00565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611caa611dd8565b73ffffffffffffffffffffffffffffffffffffffff16611cc86113e4565b73ffffffffffffffffffffffffffffffffffffffff1614611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1590613a00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613e0c565b60405180910390fd5b611d9781612a26565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4790613e9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb790613f30565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f9e9190613233565b60405180910390a3505050565b60008111611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590613fc2565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120925750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c89061402e565b60405180910390fd5b6120da83612aec565b1580156120ed57506120eb82612aec565b155b1561213b576120fa612c33565b1561213a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121319061409a565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905061219981612c4d565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561223d5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122565750600860149054906101000a900460ff16155b156124c35743600c54600b5461226c9190613b15565b11156123cf57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612320576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146123ce576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b90614106565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124c257600f5482612476856110e9565b6124809190613b15565b11156124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614198565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806125295750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061257d5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561258b5760009050612620565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612602576064601a54846125f19190613b6b565b6125fb9190613bf4565b905061261f565b6064601954846126129190613b6b565b61261c9190613bf4565b90505b5b600860159054906101000a900460ff1680156126495750600860149054906101000a900460ff16155b80156126a35750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156126af5750600081115b156126bd576126bc612c92565b5b6126d3858583866126ce9190613ae1565b612e96565b60008111156126e8576126e7853083612e96565b5b5050505050565b6000600267ffffffffffffffff81111561270c5761270b613638565b5b60405190808252806020026020018201604052801561273a5781602001602082028036833780820191505090505b509050308160008151811061275257612751613d22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281d91906141cd565b8160018151811061283157612830613d22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611de0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128fc9594939291906142f3565b600060405180830381600087803b15801561291657600080fd5b505af115801561292a573d6000803e3d6000fd5b505050505050565b80471015612975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296c90614399565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161299b906143ea565b60006040518083038185875af1925050503d80600081146129d8576040519150601f19603f3d011682016040523d82523d6000602084013e6129dd565b606091505b5050905080612a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1890614471565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8491906144a6565b612b8e9190613bf4565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612be991906135eb565b602060405180830381865afa158015612c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2a91906144a6565b10159050919050565b6000600a54600954612c459190613b15565b431115905090565b600860169054906101000a900460ff16158015612c675750805b15612c8f576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612e94576001600860146101000a81548160ff0219169083151502179055506000612ccc306110e9565b9050600d548110612e775760006002601a54612ce89190613b6b565b905060008160166001015484612cfe9190613b6b565b612d089190613bf4565b905060008184612d189190613ae1565b90506000479050612d28826126ef565b60008147612d369190613ae1565b9050600060166001015486612d4b9190613ae1565b82612d569190613bf4565b9050600060166001015482612d6b9190613b6b565b90506000811115612d8157612d808682613115565b5b6000601660000154600284612d969190613b6b565b612da09190613b6b565b90506000811115612df757612df681601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b6000601660020154600285612e0c9190613b6b565b612e169190613b6b565b90506000811115612e6d57612e6c81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661293290919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efd90614545565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6d906145d7565b60405180910390fd5b612f81838383613215565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffe90614669565b60405180910390fd5b81816130139190613ae1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130a39190613b15565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131079190613233565b60405180910390a350505050565b61314230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611de0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131cb96959493929190614689565b60606040518083038185885af11580156131e9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320e91906146ea565b5050505050565b505050565b6000819050919050565b61322d8161321a565b82525050565b60006020820190506132486000830184613224565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561328857808201518184015260208101905061326d565b83811115613297576000848401525b50505050565b6000601f19601f8301169050919050565b60006132b98261324e565b6132c38185613259565b93506132d381856020860161326a565b6132dc8161329d565b840191505092915050565b6000602082019050818103600083015261330181846132ae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133488261331d565b9050919050565b6133588161333d565b811461336357600080fd5b50565b6000813590506133758161334f565b92915050565b6133848161321a565b811461338f57600080fd5b50565b6000813590506133a18161337b565b92915050565b600080604083850312156133be576133bd613313565b5b60006133cc85828601613366565b92505060206133dd85828601613392565b9150509250929050565b60008115159050919050565b6133fc816133e7565b82525050565b600060208201905061341760008301846133f3565b92915050565b60006020828403121561343357613432613313565b5b600061344184828501613366565b91505092915050565b60008060006060848603121561346357613462613313565b5b600061347186828701613366565b935050602061348286828701613366565b925050604061349386828701613392565b9150509250925092565b6000806000606084860312156134b6576134b5613313565b5b60006134c486828701613392565b93505060206134d586828701613392565b92505060406134e686828701613392565b9150509250925092565b600060ff82169050919050565b613506816134f0565b82525050565b600060208201905061352160008301846134fd565b92915050565b60006135328261333d565b9050919050565b61354281613527565b811461354d57600080fd5b50565b60008135905061355f81613539565b92915050565b6000806040838503121561357c5761357b613313565b5b600061358a85828601613550565b925050602061359b85828601613366565b9150509250929050565b60006060820190506135ba6000830186613224565b6135c76020830185613224565b6135d46040830184613224565b949350505050565b6135e58161333d565b82525050565b600060208201905061360060008301846135dc565b92915050565b60006020828403121561361c5761361b613313565b5b600061362a84828501613392565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136708261329d565b810181811067ffffffffffffffff8211171561368f5761368e613638565b5b80604052505050565b60006136a2613309565b90506136ae8282613667565b919050565b600067ffffffffffffffff8211156136ce576136cd613638565b5b602082029050602081019050919050565b600080fd5b60006136f76136f2846136b3565b613698565b9050808382526020820190506020840283018581111561371a576137196136df565b5b835b81811015613743578061372f8882613366565b84526020840193505060208101905061371c565b5050509392505050565b600082601f83011261376257613761613633565b5b81356137728482602086016136e4565b91505092915050565b60006020828403121561379157613790613313565b5b600082013567ffffffffffffffff8111156137af576137ae613318565b5b6137bb8482850161374d565b91505092915050565b600080604083850312156137db576137da613313565b5b60006137e985828601613366565b92505060206137fa85828601613366565b9150509250929050565b61380d816133e7565b811461381857600080fd5b50565b60008135905061382a81613804565b92915050565b60006020828403121561384657613845613313565b5b60006138548482850161381b565b91505092915050565b6000819050919050565b600061388261387d6138788461331d565b61385d565b61331d565b9050919050565b600061389482613867565b9050919050565b60006138a682613889565b9050919050565b6138b68161389b565b82525050565b60006020820190506138d160008301846138ad565b92915050565b600080604083850312156138ee576138ed613313565b5b60006138fc85828601613366565b925050602061390d8582860161381b565b9150509250929050565b600061392282613889565b9050919050565b61393281613917565b82525050565b600060208201905061394d6000830184613929565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061399a57607f821691505b602082108114156139ae576139ad613953565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139ea602083613259565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613a7c602883613259565b9150613a8782613a20565b604082019050919050565b60006020820190508181036000830152613aab81613a6f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613aec8261321a565b9150613af78361321a565b925082821015613b0a57613b09613ab2565b5b828203905092915050565b6000613b208261321a565b9150613b2b8361321a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6057613b5f613ab2565b5b828201905092915050565b6000613b768261321a565b9150613b818361321a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bba57613bb9613ab2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bff8261321a565b9150613c0a8361321a565b925082613c1a57613c19613bc5565b5b828204905092915050565b6000604082019050613c3a60008301856135dc565b613c476020830184613224565b9392505050565b600081519050613c5d81613804565b92915050565b600060208284031215613c7957613c78613313565b5b6000613c8784828501613c4e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cec602583613259565b9150613cf782613c90565b604082019050919050565b60006020820190508181036000830152613d1b81613cdf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d5c8261321a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d8f57613d8e613ab2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df6602683613259565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e88602483613259565b9150613e9382613e2c565b604082019050919050565b60006020820190508181036000830152613eb781613e7b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a602283613259565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613fac602983613259565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614018601983613259565b915061402382613fe2565b602082019050919050565b600060208201905081810360008301526140478161400b565b9050919050565b7f6e2f610000000000000000000000000000000000000000000000000000000000600082015250565b6000614084600383613259565b915061408f8261404e565b602082019050919050565b600060208201905081810360008301526140b381614077565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006140f0601d83613259565b91506140fb826140ba565b602082019050919050565b6000602082019050818103600083015261411f816140e3565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000614182602183613259565b915061418d82614126565b604082019050919050565b600060208201905081810360008301526141b181614175565b9050919050565b6000815190506141c78161334f565b92915050565b6000602082840312156141e3576141e2613313565b5b60006141f1848285016141b8565b91505092915050565b6000819050919050565b600061421f61421a614215846141fa565b61385d565b61321a565b9050919050565b61422f81614204565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61426a8161333d565b82525050565b600061427c8383614261565b60208301905092915050565b6000602082019050919050565b60006142a082614235565b6142aa8185614240565b93506142b583614251565b8060005b838110156142e65781516142cd8882614270565b97506142d883614288565b9250506001810190506142b9565b5085935050505092915050565b600060a0820190506143086000830188613224565b6143156020830187614226565b81810360408301526143278186614295565b905061433660608301856135dc565b6143436080830184613224565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614383601d83613259565b915061438e8261434d565b602082019050919050565b600060208201905081810360008301526143b281614376565b9050919050565b600081905092915050565b50565b60006143d46000836143b9565b91506143df826143c4565b600082019050919050565b60006143f5826143c7565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061445b603a83613259565b9150614466826143ff565b604082019050919050565b6000602082019050818103600083015261448a8161444e565b9050919050565b6000815190506144a08161337b565b92915050565b6000602082840312156144bc576144bb613313565b5b60006144ca84828501614491565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061452f602583613259565b915061453a826144d3565b604082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145c1602383613259565b91506145cc82614565565b604082019050919050565b600060208201905081810360008301526145f0816145b4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614653602683613259565b915061465e826145f7565b604082019050919050565b6000602082019050818103600083015261468281614646565b9050919050565b600060c08201905061469e60008301896135dc565b6146ab6020830188613224565b6146b86040830187614226565b6146c56060830186614226565b6146d260808301856135dc565b6146df60a0830184613224565b979650505050505050565b60008060006060848603121561470357614702613313565b5b600061471186828701614491565b935050602061472286828701614491565b925050604061473386828701614491565b915050925092509256fea26469706673582212201a25b61183269844817033aae6836b786f6eaa586c23638fce3f1d826e4a1d7c64736f6c634300080c0033

Deployed Bytecode Sourcemap

13271:9015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13704:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2414:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4588:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3537:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19818:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14288:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5240:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21678:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13630:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14256:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3378:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6077:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19929:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13665:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13586:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13470:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3709:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12042:94;;;;;;;;;;;;;:::i;:::-;;14172:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13503;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19413:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13902:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13755:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20404:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21406:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11817:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13984:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2634:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19297:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21557:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6796:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13413:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4050:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13810:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19695:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20658:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13544:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20930:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20079:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14327:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4289:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19195:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13387:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20257:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12145:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14212:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13359:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13704:44;;;;:::o;2414:100::-;2468:13;2501:5;2494:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:100;:::o;4588:169::-;4671:4;4688:39;4697:12;:10;:12::i;:::-;4711:7;4720:6;4688:8;:39::i;:::-;4745:4;4738:11;;4588:169;;;;:::o;3537:108::-;3598:7;3625:12;;3618:19;;3537:108;:::o;19818:102::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19903:9:::1;19891;;:21;;;;;;;;;;;;;;;;;;19818:102:::0;:::o;14288:29::-;;;;:::o;5240:421::-;5346:4;5363:36;5373:6;5381:9;5392:6;5363:9;:36::i;:::-;5410:24;5437:11;:19;5449:6;5437:19;;;;;;;;;;;;;;;:33;5457:12;:10;:12::i;:::-;5437:33;;;;;;;;;;;;;;;;5410:60;;5509:6;5489:16;:26;;5481:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5571:57;5580:6;5588:12;:10;:12::i;:::-;5621:6;5602:16;:25;;;;:::i;:::-;5571:8;:57::i;:::-;5649:4;5642:11;;;5240:421;;;;;:::o;21678:546::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21795:19:::1;21817:21;21795:43;;21849:24;21866:6;21849:16;:24::i;:::-;21884:18;21929:11;21905:21;:35;;;;:::i;:::-;21884:56;;21976:1;21954:19;:23;21951:136;;;21979:108;22066:19;22050:13;:35;;;;:::i;:::-;22027:19;22014:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;21987:15;;;;;;;;;;;21979:34;;;;:108;;;;:::i;:::-;21951:136;22117:1;22101:13;:17;22098:118;;;22120:96;22195:19;22179:13;:35;;;;:::i;:::-;22162:13;22149:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;22128:9;;;;;;;;;;;22120:28;;;;:96;;;;:::i;:::-;22098:118;21784:440;;21678:546:::0;;;:::o;13630:28::-;;;;:::o;14256:25::-;;;;:::o;3378:93::-;3436:5;3461:2;3454:9;;3378:93;:::o;6077:215::-;6165:4;6182:80;6191:12;:10;:12::i;:::-;6205:7;6251:10;6214:11;:25;6226:12;:10;:12::i;:::-;6214:25;;;;;;;;;;;;;;;:34;6240:7;6214:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6182:8;:80::i;:::-;6280:4;6273:11;;6077:215;;;;:::o;19929:137::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20028:7:::1;20019:6;;:16;;;;;;;;;;;;;;;;;;20053:5;20046:4;;:12;;;;;;;;;;;;;;;;;;19929:137:::0;;:::o;13665:29::-;;;;:::o;13586:27::-;;;;:::o;13470:23::-;;;;;;;;;;;;;:::o;3709:127::-;3783:7;3810:9;:18;3820:7;3810:18;;;;;;;;;;;;;;;;3803:25;;3709:127;;;:::o;12042:94::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12107:21:::1;12125:1;12107:9;:21::i;:::-;12042:94::o:0;14172:33::-;;;;;;;;;;;;;;;;;;;:::o;13503:::-;;;;;;;;;;;;;:::o;19413:114::-;19472:4;19497:21;19510:7;19497:12;:21::i;:::-;19490:28;;19413:114;;;:::o;13902:75::-;;;;;;;;;;;;;:::o;13755:48::-;;;;:::o;20404:247::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20527:9:::1;20509:5;:15;;:27;;;;20559:3;20547:5;:9;;:15;;;;20591:9;20573:5;:15;;:27;;;;20634:9;20630:3;20620:9;:13;;;;:::i;:::-;:23;;;;:::i;:::-;20611:6;:32;;;;20404:247:::0;;;:::o;21406:142::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21501:12:::1;21494:29;;;21524:7;:5;:7::i;:::-;21533:6;21494:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21406:142:::0;;:::o;11817:87::-;11863:7;11890:6;;;;;;;;;;;11883:13;;11817:87;:::o;13984:69::-;;;;;;;;;;;;;:::o;2634:104::-;2690:13;2723:7;2716:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:104;:::o;19297:110::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19389:10:::1;19373:13;:26;;;;19297:110:::0;:::o;21557:112::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21624:37:::1;21651:9;21632:7;:5;:7::i;:::-;21624:26;;;;:37;;;;:::i;:::-;21557:112:::0;:::o;6796:378::-;6889:4;6906:24;6933:11;:25;6945:12;:10;:12::i;:::-;6933:25;;;;;;;;;;;;;;;:34;6959:7;6933:34;;;;;;;;;;;;;;;;6906:61;;7006:15;6986:16;:35;;6978:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7074:67;7083:12;:10;:12::i;:::-;7097:7;7125:15;7106:16;:34;;;;:::i;:::-;7074:8;:67::i;:::-;7162:4;7155:11;;;6796:378;;;;:::o;13413:19::-;;;;;;;;;;;;;:::o;4050:175::-;4136:4;4153:42;4163:12;:10;:12::i;:::-;4177:9;4188:6;4153:9;:42::i;:::-;4213:4;4206:11;;4050:175;;;;:::o;13810:49::-;;;;:::o;19695:114::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19792:9:::1;19774:15;;:27;;;;;;;;;;;;;;;;;;19695:114:::0;:::o;20658:264::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20786:9:::1;20764;:19;;:31;;;;20822:3;20806:9;:13;;:19;;;;20858:9;20836;:19;;:31;;;;20905:9;20901:3;20891:9;:13;;;;:::i;:::-;:23;;;;:::i;:::-;20878:10;:36;;;;20658:264:::0;;;:::o;13544:34::-;;;;:::o;20930:117::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21033:6:::1;21024;:15;;;;:::i;:::-;21006;:33;;;;20930:117:::0;:::o;20079:172::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20154:6:::1;20149:91;20170:6;:13;20166:1;:17;20149:91;;;20224:4;20205:5;:16;20211:6;20218:1;20211:9;;;;;;;;:::i;:::-;;;;;;;;20205:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20185:3;;;;;:::i;:::-;;;;20149:91;;;;20079:172:::0;:::o;14327:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4289:151::-;4378:7;4405:11;:18;4417:5;4405:18;;;;;;;;;;;;;;;:27;4424:7;4405:27;;;;;;;;;;;;;;;;4398:34;;4289:151;;;;:::o;19195:93::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19275:5:::1;19261:11;;:19;;;;;;;;;;;;;;;;;;19195:93:::0;:::o;13387:18::-;;;;;;;;;;;;;:::o;20257:134::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20378:5:::1;20349:16;:26;20366:8;20349:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20257:134:::0;;:::o;12145:192::-;11964:12;:10;:12::i;:::-;11953:23;;:7;:5;:7::i;:::-;:23;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12254:1:::1;12234:22;;:8;:22;;;;12226:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12310:19;12320:8;12310:9;:19::i;:::-;12145:192:::0;:::o;14212:37::-;;;;;;;;;;;;;;;;;;;:::o;13359:21::-;;;;;;;;;;;;;:::o;111:98::-;164:7;191:10;184:17;;111:98;:::o;10176:347::-;10295:1;10278:19;;:5;:19;;;;10270:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10376:1;10357:21;;:7;:21;;;;10349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10461:6;10431:11;:18;10443:5;10431:18;;;;;;;;;;;;;;;:27;10450:7;10431:27;;;;;;;;;;;;;;;:36;;;;10499:7;10483:32;;10492:5;10483:32;;;10508:6;10483:32;;;;;;:::i;:::-;;;;;;;;10176:347;;;:::o;15208:1700::-;15338:1;15329:6;:10;15321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15405:5;:13;15411:6;15405:13;;;;;;;;;;;;;;;;;;;;;;;;;15404:14;:35;;;;;15423:5;:16;15429:9;15423:16;;;;;;;;;;;;;;;;;;;;;;;;;15422:17;15404:35;15396:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15486:20;15499:6;15486:12;:20::i;:::-;15485:21;:49;;;;;15511:23;15524:9;15511:12;:23::i;:::-;15510:24;15485:49;15481:110;;;15556:14;:12;:14::i;:::-;15555:15;15547:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;15481:110;15605:11;15632:4;;;;;;;;;;;15619:17;;:9;:17;;;15605:31;;15651:21;15665:6;15651:13;:21::i;:::-;15698:16;:24;15715:6;15698:24;;;;;;;;;;;;;;;;;;;;;;;;;15697:25;:57;;;;;15727:16;:27;15744:9;15727:27;;;;;;;;;;;;;;;;;;;;;;;;;15726:28;15697:57;:70;;;;;15759:8;;;;;;;;;;;15758:9;15697:70;15694:528;;;15815:12;15802:10;;15786:13;;:26;;;;:::i;:::-;:41;15783:183;;;15863:4;;;;;;;;;;;15850:17;;:9;:17;;;15847:45;;15888:4;15869:5;:16;15875:9;15869:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15847:45;15924:4;;;;;;;;;;;15914:14;;:6;:14;;;15911:39;;15946:4;15930:5;:13;15936:6;15930:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15911:39;15783:183;15998:11;;15988:6;:21;;15980:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16074:4;;;;;;;;;;;16061:17;;:9;:17;;;16058:150;;16139:15;;16129:6;16106:20;16116:9;16106;:20::i;:::-;:29;;;;:::i;:::-;:48;;16098:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16058:150;15694:528;16238:11;16338:8;;;;;;;;;;;:36;;;;16350:16;:24;16367:6;16350:24;;;;;;;;;;;;;;;;;;;;;;;;;16338:36;:67;;;;16378:16;:27;16395:9;16378:27;;;;;;;;;;;;;;;;;;;;;;;;;16338:67;16334:250;;;16413:1;16407:7;;16334:250;;;16488:4;;;;;;;;;;;16475:17;;:9;:17;;;16472:100;;;16522:3;16509:10;;16500:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16494:31;;16472:100;;;16569:3;16560:6;;16551;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16545:27;;16472:100;16334:250;16701:11;;;;;;;;;;;:24;;;;;16717:8;;;;;;;;;;;16716:9;16701:24;:42;;;;;16739:4;;;;;;;;;;;16729:14;;:6;:14;;;;16701:42;:53;;;;;16753:1;16747:3;:7;16701:53;16697:72;;;16756:13;:11;:13::i;:::-;16697:72;16783:48;16799:6;16807:9;16827:3;16818:6;:12;;;;:::i;:::-;16783:15;:48::i;:::-;16851:1;16845:3;:7;16842:55;;;16854:43;16870:6;16886:4;16893:3;16854:15;:43::i;:::-;16842:55;15296:1612;;15208:1700;;;:::o;18276:403::-;18342:21;18380:1;18366:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18342:40;;18411:4;18393;18398:1;18393:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18437:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18427:4;18432:1;18427:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18464:53;18481:4;18496:6;;;;;;;;;;;18505:11;18464:8;:53::i;:::-;18557:6;;;;;;;;;;;:57;;;18615:11;18628:1;18631:4;18645;18652:15;18557:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18331:348;18276:403;:::o;11257:318::-;11372:6;11347:21;:31;;11339:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11427:12;11445:9;:14;;11467:6;11445:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11426:52;;;11497:7;11489:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11328:247;11257:318;;:::o;12346:173::-;12402:16;12421:6;;;;;;;;;;;12402:25;;12447:8;12438:6;;:17;;;;;;;;;;;;;;;;;;12502:8;12471:40;;12492:8;12471:40;;;;;;;;;;;;12391:128;12346:173;:::o;19534:152::-;19595:4;19667:10;19646:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;19620:4;;;;;;;;;;;:14;;;19635:6;19620:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;19613:64;;19534:152;;;:::o;21271:126::-;21317:4;21380:8;;21358:19;;:30;;;;:::i;:::-;21342:12;:46;;21335:53;;21271:126;:::o;21055:209::-;21116:21;;;;;;;;;;;21115:22;:32;;;;;21141:6;21115:32;21111:145;;;21189:4;21165:21;;:28;;;;;;;;;;;;;;;;;;21231:12;21209:19;:34;;;;21111:145;21055:209;:::o;16917:1351::-;14466:8;;;;;;;;;;;14461:104;;14502:4;14491:8;;:15;;;;;;;;;;;;;;;;;;16966:23:::1;16992:24;17010:4;16992:9;:24::i;:::-;16966:50;;17050:13;;17031:15;:32;17027:1234;;17138:19;17173:1;17160:10;;:14;;;;:::i;:::-;17138:36;;17189:32;17264:11;17242:9;:19;;;17224:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17189:86;;17290:14;17325:24;17307:15;:42;;;;:::i;:::-;17290:59;;17367:23;17393:21;17367:47;;17432:24;17449:6;17432:16;:24::i;:::-;17474:20;17521:15;17497:21;:39;;;;:::i;:::-;17474:62;;17551:19;17602:9;:19;;;17588:11;:33;;;;:::i;:::-;17572:12;:50;;;;:::i;:::-;17551:71;;17637:29;17683:9;:19;;;17669:11;:33;;;;:::i;:::-;17637:65;;17747:1;17723:21;:25;17720:170;;;17813:61;17826:24;17852:21;17813:12;:61::i;:::-;17720:170;17907:20;17948:9;:19;;;17944:1;17930:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17907:60;;18000:1;17985:12;:16;17982:103;;;18021:48;18056:12;18029:15;;;;;;;;;;;18021:34;;;;:48;;;;:::i;:::-;17982:103;18102:14;18137:9;:13;;;18133:1;18119:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18102:48;;18177:1;18168:6;:10;18165:85;;;18198:36;18227:6;18206:9;;;;;;;;;;;18198:28;;;;:36;;;;:::i;:::-;18165:85;17065:1196;;;;;;;;;17027:1234;16955:1313;14548:5:::0;14537:8;;:16;;;;;;;;;;;;;;;;;;14461:104;16917:1351::o;7665:610::-;7789:1;7771:20;;:6;:20;;;;7763:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7873:1;7852:23;;:9;:23;;;;7844:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7932:47;7953:6;7961:9;7972:6;7932:20;:47::i;:::-;7993:21;8017:9;:17;8027:6;8017:17;;;;;;;;;;;;;;;;7993:41;;8070:6;8053:13;:23;;8045:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8166:6;8150:13;:22;;;;:::i;:::-;8130:9;:17;8140:6;8130:17;;;;;;;;;;;;;;;:42;;;;8207:6;8183:9;:20;8193:9;8183:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8249:9;8232:35;;8241:6;8232:35;;;8260:6;8232:35;;;;;;:::i;:::-;;;;;;;;7752:523;7665:610;;;:::o;18688:498::-;18836:53;18853:4;18868:6;;;;;;;;;;;18877:11;18836:8;:53::i;:::-;18933:6;;;;;;;;;;;:22;;;18963:9;18996:4;19016:11;19042:1;19085;19128:9;;;;;;;;;;;19152:15;18933:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18688:498;;:::o;11135:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:442::-;6970:4;7008:2;6997:9;6993:18;6985:26;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;6821:442;;;;;;:::o;7269:118::-;7356:24;7374:5;7356:24;:::i;:::-;7351:3;7344:37;7269:118;;:::o;7393:222::-;7486:4;7524:2;7513:9;7509:18;7501:26;;7537:71;7605:1;7594:9;7590:17;7581:6;7537:71;:::i;:::-;7393:222;;;;:::o;7621:329::-;7680:6;7729:2;7717:9;7708:7;7704:23;7700:32;7697:119;;;7735:79;;:::i;:::-;7697:119;7855:1;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7826:117;7621:329;;;;:::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:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:153::-;25285:5;25281:1;25273:6;25269:14;25262:29;25145:153;:::o;25304:365::-;25446:3;25467:66;25531:1;25526:3;25467:66;:::i;:::-;25460:73;;25542:93;25631:3;25542:93;:::i;:::-;25660:2;25655:3;25651:12;25644:19;;25304:365;;;:::o;25675:419::-;25841:4;25879:2;25868:9;25864:18;25856:26;;25928:9;25922:4;25918:20;25914:1;25903:9;25899:17;25892:47;25956:131;26082:4;25956:131;:::i;:::-;25948:139;;25675:419;;;:::o;26100:179::-;26240:31;26236:1;26228:6;26224:14;26217:55;26100:179;:::o;26285:366::-;26427:3;26448:67;26512:2;26507:3;26448:67;:::i;:::-;26441:74;;26524:93;26613:3;26524:93;:::i;:::-;26642:2;26637:3;26633:12;26626:19;;26285:366;;;:::o;26657:419::-;26823:4;26861:2;26850:9;26846:18;26838:26;;26910:9;26904:4;26900:20;26896:1;26885:9;26881:17;26874:47;26938:131;27064:4;26938:131;:::i;:::-;26930:139;;26657:419;;;:::o;27082:220::-;27222:34;27218:1;27210:6;27206:14;27199:58;27291:3;27286:2;27278:6;27274:15;27267:28;27082:220;:::o;27308:366::-;27450:3;27471:67;27535:2;27530:3;27471:67;:::i;:::-;27464:74;;27547:93;27636:3;27547:93;:::i;:::-;27665:2;27660:3;27656:12;27649:19;;27308:366;;;:::o;27680:419::-;27846:4;27884:2;27873:9;27869:18;27861:26;;27933:9;27927:4;27923:20;27919:1;27908:9;27904:17;27897:47;27961:131;28087:4;27961:131;:::i;:::-;27953:139;;27680:419;;;:::o;28105:143::-;28162:5;28193:6;28187:13;28178:22;;28209:33;28236:5;28209:33;:::i;:::-;28105:143;;;;:::o;28254:351::-;28324:6;28373:2;28361:9;28352:7;28348:23;28344:32;28341:119;;;28379:79;;:::i;:::-;28341:119;28499:1;28524:64;28580:7;28571:6;28560:9;28556:22;28524:64;:::i;:::-;28514:74;;28470:128;28254:351;;;;:::o;28611:85::-;28656:7;28685:5;28674:16;;28611:85;;;:::o;28702:158::-;28760:9;28793:61;28811:42;28820:32;28846:5;28820:32;:::i;:::-;28811:42;:::i;:::-;28793:61;:::i;:::-;28780:74;;28702:158;;;:::o;28866:147::-;28961:45;29000:5;28961:45;:::i;:::-;28956:3;28949:58;28866:147;;:::o;29019:114::-;29086:6;29120:5;29114:12;29104:22;;29019:114;;;:::o;29139:184::-;29238:11;29272:6;29267:3;29260:19;29312:4;29307:3;29303:14;29288:29;;29139:184;;;;:::o;29329:132::-;29396:4;29419:3;29411:11;;29449:4;29444:3;29440:14;29432:22;;29329:132;;;:::o;29467:108::-;29544:24;29562:5;29544:24;:::i;:::-;29539:3;29532:37;29467:108;;:::o;29581:179::-;29650:10;29671:46;29713:3;29705:6;29671:46;:::i;:::-;29749:4;29744:3;29740:14;29726:28;;29581:179;;;;:::o;29766:113::-;29836:4;29868;29863:3;29859:14;29851:22;;29766:113;;;:::o;29915:732::-;30034:3;30063:54;30111:5;30063:54;:::i;:::-;30133:86;30212:6;30207:3;30133:86;:::i;:::-;30126:93;;30243:56;30293:5;30243:56;:::i;:::-;30322:7;30353:1;30338:284;30363:6;30360:1;30357:13;30338:284;;;30439:6;30433:13;30466:63;30525:3;30510:13;30466:63;:::i;:::-;30459:70;;30552:60;30605:6;30552:60;:::i;:::-;30542:70;;30398:224;30385:1;30382;30378:9;30373:14;;30338:284;;;30342:14;30638:3;30631:10;;30039:608;;;29915:732;;;;:::o;30653:831::-;30916:4;30954:3;30943:9;30939:19;30931:27;;30968:71;31036:1;31025:9;31021:17;31012:6;30968:71;:::i;:::-;31049:80;31125:2;31114:9;31110:18;31101:6;31049:80;:::i;:::-;31176:9;31170:4;31166:20;31161:2;31150:9;31146:18;31139:48;31204:108;31307:4;31298:6;31204:108;:::i;:::-;31196:116;;31322:72;31390:2;31379:9;31375:18;31366:6;31322:72;:::i;:::-;31404:73;31472:3;31461:9;31457:19;31448:6;31404:73;:::i;:::-;30653:831;;;;;;;;:::o;31490:179::-;31630:31;31626:1;31618:6;31614:14;31607:55;31490:179;:::o;31675:366::-;31817:3;31838:67;31902:2;31897:3;31838:67;:::i;:::-;31831:74;;31914:93;32003:3;31914:93;:::i;:::-;32032:2;32027:3;32023:12;32016:19;;31675:366;;;:::o;32047:419::-;32213:4;32251:2;32240:9;32236:18;32228:26;;32300:9;32294:4;32290:20;32286:1;32275:9;32271:17;32264:47;32328:131;32454:4;32328:131;:::i;:::-;32320:139;;32047:419;;;:::o;32472:147::-;32573:11;32610:3;32595:18;;32472:147;;;;:::o;32625:114::-;;:::o;32745:398::-;32904:3;32925:83;33006:1;33001:3;32925:83;:::i;:::-;32918:90;;33017:93;33106:3;33017:93;:::i;:::-;33135:1;33130:3;33126:11;33119:18;;32745:398;;;:::o;33149:379::-;33333:3;33355:147;33498:3;33355:147;:::i;:::-;33348:154;;33519:3;33512:10;;33149:379;;;:::o;33534:245::-;33674:34;33670:1;33662:6;33658:14;33651:58;33743:28;33738:2;33730:6;33726:15;33719:53;33534:245;:::o;33785:366::-;33927:3;33948:67;34012:2;34007:3;33948:67;:::i;:::-;33941:74;;34024:93;34113:3;34024:93;:::i;:::-;34142:2;34137:3;34133:12;34126:19;;33785:366;;;:::o;34157:419::-;34323:4;34361:2;34350:9;34346:18;34338:26;;34410:9;34404:4;34400:20;34396:1;34385:9;34381:17;34374:47;34438:131;34564:4;34438:131;:::i;:::-;34430:139;;34157:419;;;:::o;34582:143::-;34639:5;34670:6;34664:13;34655:22;;34686:33;34713:5;34686:33;:::i;:::-;34582:143;;;;:::o;34731:351::-;34801:6;34850:2;34838:9;34829:7;34825:23;34821:32;34818:119;;;34856:79;;:::i;:::-;34818:119;34976:1;35001:64;35057:7;35048:6;35037:9;35033:22;35001:64;:::i;:::-;34991:74;;34947:128;34731:351;;;;:::o;35088:224::-;35228:34;35224:1;35216:6;35212:14;35205:58;35297:7;35292:2;35284:6;35280:15;35273:32;35088:224;:::o;35318:366::-;35460:3;35481:67;35545:2;35540:3;35481:67;:::i;:::-;35474:74;;35557:93;35646:3;35557:93;:::i;:::-;35675:2;35670:3;35666:12;35659:19;;35318:366;;;:::o;35690:419::-;35856:4;35894:2;35883:9;35879:18;35871:26;;35943:9;35937:4;35933:20;35929:1;35918:9;35914:17;35907:47;35971:131;36097:4;35971:131;:::i;:::-;35963:139;;35690:419;;;:::o;36115:222::-;36255:34;36251:1;36243:6;36239:14;36232:58;36324:5;36319:2;36311:6;36307:15;36300:30;36115:222;:::o;36343:366::-;36485:3;36506:67;36570:2;36565:3;36506:67;:::i;:::-;36499:74;;36582:93;36671:3;36582:93;:::i;:::-;36700:2;36695:3;36691:12;36684:19;;36343:366;;;:::o;36715:419::-;36881:4;36919:2;36908:9;36904:18;36896:26;;36968:9;36962:4;36958:20;36954:1;36943:9;36939:17;36932:47;36996:131;37122:4;36996:131;:::i;:::-;36988:139;;36715:419;;;:::o;37140:225::-;37280:34;37276:1;37268:6;37264:14;37257:58;37349:8;37344:2;37336:6;37332:15;37325:33;37140:225;:::o;37371:366::-;37513:3;37534:67;37598:2;37593:3;37534:67;:::i;:::-;37527:74;;37610:93;37699:3;37610:93;:::i;:::-;37728:2;37723:3;37719:12;37712:19;;37371:366;;;:::o;37743:419::-;37909:4;37947:2;37936:9;37932:18;37924:26;;37996:9;37990:4;37986:20;37982:1;37971:9;37967:17;37960:47;38024:131;38150:4;38024:131;:::i;:::-;38016:139;;37743:419;;;:::o;38168:807::-;38417:4;38455:3;38444:9;38440:19;38432:27;;38469:71;38537:1;38526:9;38522:17;38513:6;38469:71;:::i;:::-;38550:72;38618:2;38607:9;38603:18;38594:6;38550:72;:::i;:::-;38632:80;38708:2;38697:9;38693:18;38684:6;38632:80;:::i;:::-;38722;38798:2;38787:9;38783:18;38774:6;38722:80;:::i;:::-;38812:73;38880:3;38869:9;38865:19;38856:6;38812:73;:::i;:::-;38895;38963:3;38952:9;38948:19;38939:6;38895:73;:::i;:::-;38168:807;;;;;;;;;:::o;38981:663::-;39069:6;39077;39085;39134:2;39122:9;39113:7;39109:23;39105:32;39102:119;;;39140:79;;:::i;:::-;39102:119;39260:1;39285:64;39341:7;39332:6;39321:9;39317:22;39285:64;:::i;:::-;39275:74;;39231:128;39398:2;39424:64;39480:7;39471:6;39460:9;39456:22;39424:64;:::i;:::-;39414:74;;39369:129;39537:2;39563:64;39619:7;39610:6;39599:9;39595:22;39563:64;:::i;:::-;39553:74;;39508:129;38981:663;;;;;:::o

Swarm Source

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