ETH Price: $2,476.16 (+1.50%)
Gas: 7.04 Gwei

Token

0xBet (0xBet)
 

Overview

Max Total Supply

100,000,000 0xBet

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
585,220.577938434329282288 0xBet

Value
$0.00
0xF505A1FF96d842185cef8757FBd0b4497D86A661
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:
ZeroXBet

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
File 1 of 6 : 0xBet.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/MerkleProof.sol)

pragma solidity ^0.8.0;


import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";


interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
        function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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



contract ZeroXBet is Ownable, ERC20 {
    mapping(address => bool) public blacklists;
    address public marketing1 = 0x4FCcf70AC265b234a6b47224227eb3C34CF27542;
    address public marketing2 = 0xC65D025e7cc69E85A87B6BC304a2dfa76922F203;
    address public WETH;
    uint256 public beginBlock = 0;
    uint256 public secondBlock = 600;
    uint256 public thirdlyBlock = 21600;
    uint256 public ethBlock = 1800;
    uint256 public tax1 = 20;
    uint256 public tax2 = 5;
    uint256 public tax3 = 2;
    uint256 public limitNumber;
    uint256 public swapNumber;
    bool public blimit = true;
    address public uniswapV2Pair;
    IRouter public _router;

    constructor() ERC20("0xBet", "0xBet") {
        _mint(msg.sender, 100000000 * 10**18);

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

        limitNumber = (100000000 * 10**18) / 100;
        swapNumber = (100000000 * 10**18) / 2000;
        _approve(address(this), address(_router), type(uint256).max);
        _approve(owner(), address(_router), type(uint256).max);
    }

    // function _beforeTokenTransfer(address from, address to, uint256 amount) internal override {
    //     require(!blacklists[to] && !blacklists[from], "Blacklisted");
    // }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");
        if(uniswapV2Pair == to && beginBlock == 0) {
            beginBlock = block.timestamp;
        }

        if(from == owner() 
        || from == marketing1
        || from == marketing2
        || to == owner() 
        || to == marketing1
        || to == marketing2){
            super._transfer(from, to, amount);
            return;
        }

        if(uniswapV2Pair ==  from || uniswapV2Pair ==  to) {
            if(blimit && uniswapV2Pair ==  from){
                require((amount + balanceOf(to)) < limitNumber, "limit");
            }
            uint256 tax = 20;
            if(block.timestamp < (beginBlock + secondBlock)){
                tax = tax1;
            }else if(block.timestamp < (beginBlock + thirdlyBlock)){
                tax = tax2;
            }else{
                tax = tax3;
            }

            uint256 t = tax * amount / 100;
            if(block.timestamp > (beginBlock + ethBlock) && uniswapV2Pair ==  to) {
                super._transfer(from, address(this), t);
                swapfee();
            }else{
               super._transfer(from, marketing1, t);
            }
            super._transfer(from, to, amount - t);
            return;
        }
        super._transfer(from, to, amount);
    }

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    function swapfee() private lockTheSwap {
        uint256 balance = balanceOf(address(this));
        address[] memory path = new address[](2);
        if(balance > swapNumber) {
            path[0] = address(this);
            path[1] = WETH;
            _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(balance, 0, path, marketing2, block.timestamp);
        }
    }

    function setlimit(bool _limit, uint256 _limitNumber) external onlyOwner {
        blimit = _limit;
        limitNumber = _limitNumber;
    }

    function setTax(uint256 _tax1, uint256 _tax2, uint256 _tax3) external onlyOwner {
        tax1 = _tax1;
        tax2 = _tax2;
        tax3 = _tax3;
    }

    function setSwapNumber(uint256 _swapNumber)  external onlyOwner {
        swapNumber = _swapNumber;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setblacklist(address[] calldata addresses, bool _isBlacklisting) public onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            blacklists[addresses[i]] = _isBlacklisting;
        }
    }

    function multiTransfer(address[] calldata addresses, uint256[] calldata amounts) public {
        require(addresses.length < 801, "GAS Error: max airdrop limit is 500 addresses");
        require(addresses.length == amounts.length, "Mismatch between Address and token count");

        uint256 sum = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            sum = sum + amounts[i];
        }

        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");
        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) public {
        require(addresses.length < 2001, "GAS Error: max airdrop limit is 2000 addresses");

        uint256 sum = amount * addresses.length;
        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amount);
        }
    }


    function errorToken(address _token) external onlyOwner {
        ERC20(_token).transfer(msg.sender, IERC20(_token).balanceOf(address(this)));
    }
    
    function withdawOwner(uint256 amount) public onlyOwner {
        payable(msg.sender).transfer(amount);
    }
    receive () external payable  {
    }
}

File 2 of 6 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 3 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 4 of 6 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

File 5 of 6 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}

File 6 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

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":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beginBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"errorToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethBlock","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":"limitNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapNumber","type":"uint256"}],"name":"setSwapNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax1","type":"uint256"},{"internalType":"uint256","name":"_tax2","type":"uint256"},{"internalType":"uint256","name":"_tax3","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"setblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limit","type":"bool"},{"internalType":"uint256","name":"_limitNumber","type":"uint256"}],"name":"setlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapNumber","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":"tax1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thirdlyBlock","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdawOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052734fccf70ac265b234a6b47224227eb3c34cf27542600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c65d025e7cc69e85a87b6bc304a2dfa76922f203600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a55610258600b55615460600c55610708600d556014600e556005600f5560026010556001601360006101000a81548160ff021916908315150217905550348015620000fc57600080fd5b506040518060400160405280600581526020017f30784265740000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f3078426574000000000000000000000000000000000000000000000000000000815250620001896200017d620005bf60201b60201c565b620005c760201b60201c565b81600490816200019a919062000c77565b508060059081620001ac919062000c77565b505050620001cc336a52b7d2dcc80cd2e40000006200068b60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b5919062000dc8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000365919062000dc8565b6040518363ffffffff1660e01b81526004016200038492919062000e0b565b6020604051808303816000875af1158015620003a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ca919062000dc8565b601360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000478573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049e919062000dc8565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069d3c21bcecceda1000000601181905550690a968163f0a57b4000006012819055506200055530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007f960201b60201c565b620005b962000569620009ca60201b60201c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007f960201b60201c565b62001083565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f49062000e99565b60405180910390fd5b6200071160008383620009f360201b60201c565b806003600082825462000725919062000eea565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007d9919062000f36565b60405180910390a3620007f560008383620009f860201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008629062000fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d49062001061565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009bd919062000f36565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a7f57607f821691505b60208210810362000a955762000a9462000a37565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ac0565b62000b0b868362000ac0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b5862000b5262000b4c8462000b23565b62000b2d565b62000b23565b9050919050565b6000819050919050565b62000b748362000b37565b62000b8c62000b838262000b5f565b84845462000acd565b825550505050565b600090565b62000ba362000b94565b62000bb081848462000b69565b505050565b5b8181101562000bd85762000bcc60008262000b99565b60018101905062000bb6565b5050565b601f82111562000c275762000bf18162000a9b565b62000bfc8462000ab0565b8101602085101562000c0c578190505b62000c2462000c1b8562000ab0565b83018262000bb5565b50505b505050565b600082821c905092915050565b600062000c4c6000198460080262000c2c565b1980831691505092915050565b600062000c67838362000c39565b9150826002028217905092915050565b62000c8282620009fd565b67ffffffffffffffff81111562000c9e5762000c9d62000a08565b5b62000caa825462000a66565b62000cb782828562000bdc565b600060209050601f83116001811462000cef576000841562000cda578287015190505b62000ce6858262000c59565b86555062000d56565b601f19841662000cff8662000a9b565b60005b8281101562000d295784890151825560018201915060208501945060208101905062000d02565b8683101562000d49578489015162000d45601f89168262000c39565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d908262000d63565b9050919050565b62000da28162000d83565b811462000dae57600080fd5b50565b60008151905062000dc28162000d97565b92915050565b60006020828403121562000de15762000de062000d5e565b5b600062000df18482850162000db1565b91505092915050565b62000e058162000d83565b82525050565b600060408201905062000e22600083018562000dfa565b62000e31602083018462000dfa565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e81601f8362000e38565b915062000e8e8262000e49565b602082019050919050565b6000602082019050818103600083015262000eb48162000e72565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ef78262000b23565b915062000f048362000b23565b925082820190508082111562000f1f5762000f1e62000ebb565b5b92915050565b62000f308162000b23565b82525050565b600060208201905062000f4d600083018462000f25565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000fb160248362000e38565b915062000fbe8262000f53565b604082019050919050565b6000602082019050818103600083015262000fe48162000fa2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200104960228362000e38565b9150620010568262000feb565b604082019050919050565b600060208201905081810360008301526200107c816200103a565b9050919050565b6134cd80620010936000396000f3fe6080604052600436106102345760003560e01c8063632e54421161012e578063a5d4310e116100ab578063b5cbeb8d1161006f578063b5cbeb8d14610850578063d99274481461087b578063dd62ed3e146108a4578063edae876f146108e1578063f2fde38b1461090c5761023b565b8063a5d4310e14610769578063a690327814610794578063a9059cbb146107bf578063a983e4c8146107fc578063ad5c4648146108255761023b565b80638da5cb5b116100f25780638da5cb5b1461068257806395d89b41146106ad578063967123cd146106d8578063985f2fe114610701578063a457c2d71461072c5761023b565b8063632e5442146105af5780636e4ad4ba146105d857806370a0823114610603578063715018a6146106405780638648c6a6146106575761023b565b8063278f2982116101bc578063395093511161018057806339509351146104ca578063404e512914610507578063427ac82c1461053057806349bd5a5e1461055b5780635be89fbd146105865761023b565b8063278f2982146103f357806328ea15391461041e5780632b216cc614610449578063313ce5671461047457806332b00d5a1461049f5761023b565b806316c021291161020357806316c02129146102fc57806318160ddd146103395780631c6a0c4c146103645780631e89d5451461038d57806323b872dd146103b65761023b565b806306fdde0314610240578063095ea7b31461026b5780630974bf83146102a857806314aec748146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610935565b6040516102629190612265565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612325565b6109c7565b60405161029f9190612380565b60405180910390f35b3480156102b457600080fd5b506102bd6109ea565b6040516102ca91906123aa565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f591906123f1565b6109f0565b005b34801561030857600080fd5b50610323600480360381019061031e9190612431565b610a1d565b6040516103309190612380565b60405180910390f35b34801561034557600080fd5b5061034e610a3d565b60405161035b91906123aa565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061245e565b610a47565b005b34801561039957600080fd5b506103b460048036038101906103af9190612546565b610a99565b005b3480156103c257600080fd5b506103dd60048036038101906103d891906125c7565b610c31565b6040516103ea9190612380565b60405180910390f35b3480156103ff57600080fd5b50610408610c60565b60405161041591906123aa565b60405180910390f35b34801561042a57600080fd5b50610433610c66565b60405161044091906123aa565b60405180910390f35b34801561045557600080fd5b5061045e610c6c565b60405161046b9190612380565b60405180910390f35b34801561048057600080fd5b50610489610c7f565b6040516104969190612636565b60405180910390f35b3480156104ab57600080fd5b506104b4610c88565b6040516104c191906123aa565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612325565b610c8e565b6040516104fe9190612380565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612651565b610cc5565b005b34801561053c57600080fd5b50610545610d28565b60405161055291906126a0565b60405180910390f35b34801561056757600080fd5b50610570610d4e565b60405161057d91906126a0565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a8919061245e565b610d74565b005b3480156105bb57600080fd5b506105d660048036038101906105d191906126bb565b610d86565b005b3480156105e457600080fd5b506105ed610e85565b6040516105fa91906123aa565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612431565b610e8b565b60405161063791906123aa565b60405180910390f35b34801561064c57600080fd5b50610655610ed4565b005b34801561066357600080fd5b5061066c610ee8565b60405161067991906123aa565b60405180910390f35b34801561068e57600080fd5b50610697610eee565b6040516106a491906126a0565b60405180910390f35b3480156106b957600080fd5b506106c2610f17565b6040516106cf9190612265565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa919061271b565b610fa9565b005b34801561070d57600080fd5b50610716611056565b60405161072391906126a0565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190612325565b61107c565b6040516107609190612380565b60405180910390f35b34801561077557600080fd5b5061077e6110f3565b60405161078b91906123aa565b60405180910390f35b3480156107a057600080fd5b506107a96110f9565b6040516107b691906123aa565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190612325565b6110ff565b6040516107f39190612380565b60405180910390f35b34801561080857600080fd5b50610823600480360381019061081e919061277b565b611122565b005b34801561083157600080fd5b5061083a611144565b60405161084791906126a0565b60405180910390f35b34801561085c57600080fd5b5061086561116a565b60405161087291906123aa565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190612431565b611170565b005b3480156108b057600080fd5b506108cb60048036038101906108c691906127ce565b611273565b6040516108d891906123aa565b60405180910390f35b3480156108ed57600080fd5b506108f66112fa565b604051610903919061286d565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190612431565b611320565b005b606060048054610944906128b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610970906128b7565b80156109bd5780601f10610992576101008083540402835291602001916109bd565b820191906000526020600020905b8154815290600101906020018083116109a057829003601f168201915b5050505050905090565b6000806109d26113a3565b90506109df8185856113ab565b600191505092915050565b600d5481565b6109f8611574565b81601360006101000a81548160ff021916908315150217905550806011819055505050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b610a4f611574565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a95573d6000803e3d6000fd5b5050565b6103218484905010610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad79061295a565b60405180910390fd5b818190508484905014610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f906129ec565b60405180910390fd5b6000805b85859050811015610b7157838382818110610b4a57610b49612a0c565b5b9050602002013582610b5c9190612a6a565b91508080610b6990612a9e565b915050610b2c565b5080610b7c33610e8b565b1015610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b32565b60405180910390fd5b60005b85859050811015610c2957610c1633878784818110610be257610be1612a0c565b5b9050602002016020810190610bf79190612431565b868685818110610c0a57610c09612a0c565b5b905060200201356115f2565b8080610c2190612a9e565b915050610bc0565b505050505050565b600080610c3c6113a3565b9050610c49858285611bec565b610c548585856115f2565b60019150509392505050565b600c5481565b600f5481565b601360009054906101000a900460ff1681565b60006012905090565b60105481565b600080610c996113a3565b9050610cba818585610cab8589611273565b610cb59190612a6a565b6113ab565b600191505092915050565b610ccd611574565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d7c611574565b8060128190555050565b6107d18383905010610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612bc4565b60405180910390fd5b60008383905082610dde9190612be4565b905080610dea33610e8b565b1015610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290612b32565b60405180910390fd5b60005b84849050811015610e7e57610e6b33868684818110610e5057610e4f612a0c565b5b9050602002016020810190610e659190612431565b856115f2565b8080610e7690612a9e565b915050610e2e565b5050505050565b60115481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610edc611574565b610ee66000611c78565b565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610f26906128b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610f52906128b7565b8015610f9f5780601f10610f7457610100808354040283529160200191610f9f565b820191906000526020600020905b815481529060010190602001808311610f8257829003601f168201915b5050505050905090565b610fb1611574565b60005b83839050811015611050578160066000868685818110610fd757610fd6612a0c565b5b9050602002016020810190610fec9190612431565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104890612a9e565b915050610fb4565b50505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110876113a3565b905060006110958286611273565b9050838110156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612c98565b60405180910390fd5b6110e782868684036113ab565b60019250505092915050565b600e5481565b600a5481565b60008061110a6113a3565b90506111178185856115f2565b600191505092915050565b61112a611574565b82600e8190555081600f8190555080601081905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611178611574565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ce91906126a0565b602060405180830381865afa1580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f9190612ccd565b6040518363ffffffff1660e01b815260040161122c929190612cfa565b6020604051808303816000875af115801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190612d38565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611328611574565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612dd7565b60405180910390fd5b6113a081611c78565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612e69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090612efb565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156791906123aa565b60405180910390a3505050565b61157c6113a3565b73ffffffffffffffffffffffffffffffffffffffff1661159a610eee565b73ffffffffffffffffffffffffffffffffffffffff16146115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790612f67565b60405180910390fd5b565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116965750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612fd3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561173457506000600a54145b156117415742600a819055505b611749610eee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117cf5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118275750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118645750611835610eee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119145750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561192957611924838383611d3c565b611be7565b8273ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806119d257508173ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611bdb57601360009054906101000a900460ff168015611a4057508273ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611a9d57601154611a5183610e8b565b82611a5c9190612a6a565b10611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a939061303f565b60405180910390fd5b5b600060149050600b54600a54611ab39190612a6a565b421015611ac457600e549050611aec565b600c54600a54611ad49190612a6a565b421015611ae557600f549050611aeb565b60105490505b5b600060648383611afc9190612be4565b611b06919061308e565b9050600d54600a54611b189190612a6a565b42118015611b7357508373ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611b9057611b83853083611d3c565b611b8b611fb5565b611bbe565b611bbd85600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d3c565b5b611bd485858386611bcf91906130bf565b611d3c565b5050611be7565b611be6838383611d3c565b5b505050565b6000611bf88484611273565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c725781811015611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b9061313f565b60405180910390fd5b611c7184848484036113ab565b5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906131d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613263565b60405180910390fd5b611e258383836121cb565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906132f5565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9c91906123aa565b60405180910390a3611faf8484846121d0565b50505050565b60016014806101000a81548160ff0219169083151502179055506000611fda30610e8b565b90506000600267ffffffffffffffff811115611ff957611ff8613315565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b5090506012548211156121ad57308160008151811061204957612048612a0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120ba576120b9612a0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161217a95949392919061343d565b600060405180830381600087803b15801561219457600080fd5b505af11580156121a8573d6000803e3d6000fd5b505050505b505060006014806101000a81548160ff021916908315150217905550565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220f5780820151818401526020810190506121f4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612237826121d5565b61224181856121e0565b93506122518185602086016121f1565b61225a8161221b565b840191505092915050565b6000602082019050818103600083015261227f818461222c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122bc82612291565b9050919050565b6122cc816122b1565b81146122d757600080fd5b50565b6000813590506122e9816122c3565b92915050565b6000819050919050565b612302816122ef565b811461230d57600080fd5b50565b60008135905061231f816122f9565b92915050565b6000806040838503121561233c5761233b612287565b5b600061234a858286016122da565b925050602061235b85828601612310565b9150509250929050565b60008115159050919050565b61237a81612365565b82525050565b60006020820190506123956000830184612371565b92915050565b6123a4816122ef565b82525050565b60006020820190506123bf600083018461239b565b92915050565b6123ce81612365565b81146123d957600080fd5b50565b6000813590506123eb816123c5565b92915050565b6000806040838503121561240857612407612287565b5b6000612416858286016123dc565b925050602061242785828601612310565b9150509250929050565b60006020828403121561244757612446612287565b5b6000612455848285016122da565b91505092915050565b60006020828403121561247457612473612287565b5b600061248284828501612310565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b0576124af61248b565b5b8235905067ffffffffffffffff8111156124cd576124cc612490565b5b6020830191508360208202830111156124e9576124e8612495565b5b9250929050565b60008083601f8401126125065761250561248b565b5b8235905067ffffffffffffffff81111561252357612522612490565b5b60208301915083602082028301111561253f5761253e612495565b5b9250929050565b600080600080604085870312156125605761255f612287565b5b600085013567ffffffffffffffff81111561257e5761257d61228c565b5b61258a8782880161249a565b9450945050602085013567ffffffffffffffff8111156125ad576125ac61228c565b5b6125b9878288016124f0565b925092505092959194509250565b6000806000606084860312156125e0576125df612287565b5b60006125ee868287016122da565b93505060206125ff868287016122da565b925050604061261086828701612310565b9150509250925092565b600060ff82169050919050565b6126308161261a565b82525050565b600060208201905061264b6000830184612627565b92915050565b6000806040838503121561266857612667612287565b5b6000612676858286016122da565b9250506020612687858286016123dc565b9150509250929050565b61269a816122b1565b82525050565b60006020820190506126b56000830184612691565b92915050565b6000806000604084860312156126d4576126d3612287565b5b600084013567ffffffffffffffff8111156126f2576126f161228c565b5b6126fe8682870161249a565b9350935050602061271186828701612310565b9150509250925092565b60008060006040848603121561273457612733612287565b5b600084013567ffffffffffffffff8111156127525761275161228c565b5b61275e8682870161249a565b93509350506020612771868287016123dc565b9150509250925092565b60008060006060848603121561279457612793612287565b5b60006127a286828701612310565b93505060206127b386828701612310565b92505060406127c486828701612310565b9150509250925092565b600080604083850312156127e5576127e4612287565b5b60006127f3858286016122da565b9250506020612804858286016122da565b9150509250929050565b6000819050919050565b600061283361282e61282984612291565b61280e565b612291565b9050919050565b600061284582612818565b9050919050565b60006128578261283a565b9050919050565b6128678161284c565b82525050565b6000602082019050612882600083018461285e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128cf57607f821691505b6020821081036128e2576128e1612888565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b6000612944602d836121e0565b915061294f826128e8565b604082019050919050565b6000602082019050818103600083015261297381612937565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006129d66028836121e0565b91506129e18261297a565b604082019050919050565b60006020820190508181036000830152612a05816129c9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a75826122ef565b9150612a80836122ef565b9250828201905080821115612a9857612a97612a3b565b5b92915050565b6000612aa9826122ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612adb57612ada612a3b565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612b1c601b836121e0565b9150612b2782612ae6565b602082019050919050565b60006020820190508181036000830152612b4b81612b0f565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612bae602e836121e0565b9150612bb982612b52565b604082019050919050565b60006020820190508181036000830152612bdd81612ba1565b9050919050565b6000612bef826122ef565b9150612bfa836122ef565b9250828202612c08816122ef565b91508282048414831517612c1f57612c1e612a3b565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c826025836121e0565b9150612c8d82612c26565b604082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b600081519050612cc7816122f9565b92915050565b600060208284031215612ce357612ce2612287565b5b6000612cf184828501612cb8565b91505092915050565b6000604082019050612d0f6000830185612691565b612d1c602083018461239b565b9392505050565b600081519050612d32816123c5565b92915050565b600060208284031215612d4e57612d4d612287565b5b6000612d5c84828501612d23565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612dc16026836121e0565b9150612dcc82612d65565b604082019050919050565b60006020820190508181036000830152612df081612db4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e536024836121e0565b9150612e5e82612df7565b604082019050919050565b60006020820190508181036000830152612e8281612e46565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ee56022836121e0565b9150612ef082612e89565b604082019050919050565b60006020820190508181036000830152612f1481612ed8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f516020836121e0565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000612fbd600b836121e0565b9150612fc882612f87565b602082019050919050565b60006020820190508181036000830152612fec81612fb0565b9050919050565b7f6c696d6974000000000000000000000000000000000000000000000000000000600082015250565b60006130296005836121e0565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613099826122ef565b91506130a4836122ef565b9250826130b4576130b361305f565b5b828204905092915050565b60006130ca826122ef565b91506130d5836122ef565b92508282039050818111156130ed576130ec612a3b565b5b92915050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613129601d836121e0565b9150613134826130f3565b602082019050919050565b600060208201905081810360008301526131588161311c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131bb6025836121e0565b91506131c68261315f565b604082019050919050565b600060208201905081810360008301526131ea816131ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061324d6023836121e0565b9150613258826131f1565b604082019050919050565b6000602082019050818103600083015261327c81613240565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006132df6026836121e0565b91506132ea82613283565b604082019050919050565b6000602082019050818103600083015261330e816132d2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061336961336461335f84613344565b61280e565b6122ef565b9050919050565b6133798161334e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133b4816122b1565b82525050565b60006133c683836133ab565b60208301905092915050565b6000602082019050919050565b60006133ea8261337f565b6133f4818561338a565b93506133ff8361339b565b8060005b8381101561343057815161341788826133ba565b9750613422836133d2565b925050600181019050613403565b5085935050505092915050565b600060a082019050613452600083018861239b565b61345f6020830187613370565b818103604083015261347181866133df565b90506134806060830185612691565b61348d608083018461239b565b969550505050505056fea2646970667358221220bd134e86700174f9a1716ee55cd1f864824c25f976684d20bd8620e475e35fbe64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063632e54421161012e578063a5d4310e116100ab578063b5cbeb8d1161006f578063b5cbeb8d14610850578063d99274481461087b578063dd62ed3e146108a4578063edae876f146108e1578063f2fde38b1461090c5761023b565b8063a5d4310e14610769578063a690327814610794578063a9059cbb146107bf578063a983e4c8146107fc578063ad5c4648146108255761023b565b80638da5cb5b116100f25780638da5cb5b1461068257806395d89b41146106ad578063967123cd146106d8578063985f2fe114610701578063a457c2d71461072c5761023b565b8063632e5442146105af5780636e4ad4ba146105d857806370a0823114610603578063715018a6146106405780638648c6a6146106575761023b565b8063278f2982116101bc578063395093511161018057806339509351146104ca578063404e512914610507578063427ac82c1461053057806349bd5a5e1461055b5780635be89fbd146105865761023b565b8063278f2982146103f357806328ea15391461041e5780632b216cc614610449578063313ce5671461047457806332b00d5a1461049f5761023b565b806316c021291161020357806316c02129146102fc57806318160ddd146103395780631c6a0c4c146103645780631e89d5451461038d57806323b872dd146103b65761023b565b806306fdde0314610240578063095ea7b31461026b5780630974bf83146102a857806314aec748146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610935565b6040516102629190612265565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612325565b6109c7565b60405161029f9190612380565b60405180910390f35b3480156102b457600080fd5b506102bd6109ea565b6040516102ca91906123aa565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f591906123f1565b6109f0565b005b34801561030857600080fd5b50610323600480360381019061031e9190612431565b610a1d565b6040516103309190612380565b60405180910390f35b34801561034557600080fd5b5061034e610a3d565b60405161035b91906123aa565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061245e565b610a47565b005b34801561039957600080fd5b506103b460048036038101906103af9190612546565b610a99565b005b3480156103c257600080fd5b506103dd60048036038101906103d891906125c7565b610c31565b6040516103ea9190612380565b60405180910390f35b3480156103ff57600080fd5b50610408610c60565b60405161041591906123aa565b60405180910390f35b34801561042a57600080fd5b50610433610c66565b60405161044091906123aa565b60405180910390f35b34801561045557600080fd5b5061045e610c6c565b60405161046b9190612380565b60405180910390f35b34801561048057600080fd5b50610489610c7f565b6040516104969190612636565b60405180910390f35b3480156104ab57600080fd5b506104b4610c88565b6040516104c191906123aa565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612325565b610c8e565b6040516104fe9190612380565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612651565b610cc5565b005b34801561053c57600080fd5b50610545610d28565b60405161055291906126a0565b60405180910390f35b34801561056757600080fd5b50610570610d4e565b60405161057d91906126a0565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a8919061245e565b610d74565b005b3480156105bb57600080fd5b506105d660048036038101906105d191906126bb565b610d86565b005b3480156105e457600080fd5b506105ed610e85565b6040516105fa91906123aa565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612431565b610e8b565b60405161063791906123aa565b60405180910390f35b34801561064c57600080fd5b50610655610ed4565b005b34801561066357600080fd5b5061066c610ee8565b60405161067991906123aa565b60405180910390f35b34801561068e57600080fd5b50610697610eee565b6040516106a491906126a0565b60405180910390f35b3480156106b957600080fd5b506106c2610f17565b6040516106cf9190612265565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa919061271b565b610fa9565b005b34801561070d57600080fd5b50610716611056565b60405161072391906126a0565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190612325565b61107c565b6040516107609190612380565b60405180910390f35b34801561077557600080fd5b5061077e6110f3565b60405161078b91906123aa565b60405180910390f35b3480156107a057600080fd5b506107a96110f9565b6040516107b691906123aa565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190612325565b6110ff565b6040516107f39190612380565b60405180910390f35b34801561080857600080fd5b50610823600480360381019061081e919061277b565b611122565b005b34801561083157600080fd5b5061083a611144565b60405161084791906126a0565b60405180910390f35b34801561085c57600080fd5b5061086561116a565b60405161087291906123aa565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190612431565b611170565b005b3480156108b057600080fd5b506108cb60048036038101906108c691906127ce565b611273565b6040516108d891906123aa565b60405180910390f35b3480156108ed57600080fd5b506108f66112fa565b604051610903919061286d565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190612431565b611320565b005b606060048054610944906128b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610970906128b7565b80156109bd5780601f10610992576101008083540402835291602001916109bd565b820191906000526020600020905b8154815290600101906020018083116109a057829003601f168201915b5050505050905090565b6000806109d26113a3565b90506109df8185856113ab565b600191505092915050565b600d5481565b6109f8611574565b81601360006101000a81548160ff021916908315150217905550806011819055505050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b610a4f611574565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a95573d6000803e3d6000fd5b5050565b6103218484905010610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad79061295a565b60405180910390fd5b818190508484905014610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f906129ec565b60405180910390fd5b6000805b85859050811015610b7157838382818110610b4a57610b49612a0c565b5b9050602002013582610b5c9190612a6a565b91508080610b6990612a9e565b915050610b2c565b5080610b7c33610e8b565b1015610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b32565b60405180910390fd5b60005b85859050811015610c2957610c1633878784818110610be257610be1612a0c565b5b9050602002016020810190610bf79190612431565b868685818110610c0a57610c09612a0c565b5b905060200201356115f2565b8080610c2190612a9e565b915050610bc0565b505050505050565b600080610c3c6113a3565b9050610c49858285611bec565b610c548585856115f2565b60019150509392505050565b600c5481565b600f5481565b601360009054906101000a900460ff1681565b60006012905090565b60105481565b600080610c996113a3565b9050610cba818585610cab8589611273565b610cb59190612a6a565b6113ab565b600191505092915050565b610ccd611574565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d7c611574565b8060128190555050565b6107d18383905010610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612bc4565b60405180910390fd5b60008383905082610dde9190612be4565b905080610dea33610e8b565b1015610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290612b32565b60405180910390fd5b60005b84849050811015610e7e57610e6b33868684818110610e5057610e4f612a0c565b5b9050602002016020810190610e659190612431565b856115f2565b8080610e7690612a9e565b915050610e2e565b5050505050565b60115481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610edc611574565b610ee66000611c78565b565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610f26906128b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610f52906128b7565b8015610f9f5780601f10610f7457610100808354040283529160200191610f9f565b820191906000526020600020905b815481529060010190602001808311610f8257829003601f168201915b5050505050905090565b610fb1611574565b60005b83839050811015611050578160066000868685818110610fd757610fd6612a0c565b5b9050602002016020810190610fec9190612431565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104890612a9e565b915050610fb4565b50505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110876113a3565b905060006110958286611273565b9050838110156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612c98565b60405180910390fd5b6110e782868684036113ab565b60019250505092915050565b600e5481565b600a5481565b60008061110a6113a3565b90506111178185856115f2565b600191505092915050565b61112a611574565b82600e8190555081600f8190555080601081905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611178611574565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ce91906126a0565b602060405180830381865afa1580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f9190612ccd565b6040518363ffffffff1660e01b815260040161122c929190612cfa565b6020604051808303816000875af115801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190612d38565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611328611574565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612dd7565b60405180910390fd5b6113a081611c78565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612e69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090612efb565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156791906123aa565b60405180910390a3505050565b61157c6113a3565b73ffffffffffffffffffffffffffffffffffffffff1661159a610eee565b73ffffffffffffffffffffffffffffffffffffffff16146115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790612f67565b60405180910390fd5b565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116965750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612fd3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561173457506000600a54145b156117415742600a819055505b611749610eee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117cf5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118275750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118645750611835610eee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119145750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561192957611924838383611d3c565b611be7565b8273ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806119d257508173ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611bdb57601360009054906101000a900460ff168015611a4057508273ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611a9d57601154611a5183610e8b565b82611a5c9190612a6a565b10611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a939061303f565b60405180910390fd5b5b600060149050600b54600a54611ab39190612a6a565b421015611ac457600e549050611aec565b600c54600a54611ad49190612a6a565b421015611ae557600f549050611aeb565b60105490505b5b600060648383611afc9190612be4565b611b06919061308e565b9050600d54600a54611b189190612a6a565b42118015611b7357508373ffffffffffffffffffffffffffffffffffffffff16601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611b9057611b83853083611d3c565b611b8b611fb5565b611bbe565b611bbd85600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d3c565b5b611bd485858386611bcf91906130bf565b611d3c565b5050611be7565b611be6838383611d3c565b5b505050565b6000611bf88484611273565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c725781811015611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b9061313f565b60405180910390fd5b611c7184848484036113ab565b5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906131d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613263565b60405180910390fd5b611e258383836121cb565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906132f5565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9c91906123aa565b60405180910390a3611faf8484846121d0565b50505050565b60016014806101000a81548160ff0219169083151502179055506000611fda30610e8b565b90506000600267ffffffffffffffff811115611ff957611ff8613315565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b5090506012548211156121ad57308160008151811061204957612048612a0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120ba576120b9612a0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161217a95949392919061343d565b600060405180830381600087803b15801561219457600080fd5b505af11580156121a8573d6000803e3d6000fd5b505050505b505060006014806101000a81548160ff021916908315150217905550565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220f5780820151818401526020810190506121f4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612237826121d5565b61224181856121e0565b93506122518185602086016121f1565b61225a8161221b565b840191505092915050565b6000602082019050818103600083015261227f818461222c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122bc82612291565b9050919050565b6122cc816122b1565b81146122d757600080fd5b50565b6000813590506122e9816122c3565b92915050565b6000819050919050565b612302816122ef565b811461230d57600080fd5b50565b60008135905061231f816122f9565b92915050565b6000806040838503121561233c5761233b612287565b5b600061234a858286016122da565b925050602061235b85828601612310565b9150509250929050565b60008115159050919050565b61237a81612365565b82525050565b60006020820190506123956000830184612371565b92915050565b6123a4816122ef565b82525050565b60006020820190506123bf600083018461239b565b92915050565b6123ce81612365565b81146123d957600080fd5b50565b6000813590506123eb816123c5565b92915050565b6000806040838503121561240857612407612287565b5b6000612416858286016123dc565b925050602061242785828601612310565b9150509250929050565b60006020828403121561244757612446612287565b5b6000612455848285016122da565b91505092915050565b60006020828403121561247457612473612287565b5b600061248284828501612310565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b0576124af61248b565b5b8235905067ffffffffffffffff8111156124cd576124cc612490565b5b6020830191508360208202830111156124e9576124e8612495565b5b9250929050565b60008083601f8401126125065761250561248b565b5b8235905067ffffffffffffffff81111561252357612522612490565b5b60208301915083602082028301111561253f5761253e612495565b5b9250929050565b600080600080604085870312156125605761255f612287565b5b600085013567ffffffffffffffff81111561257e5761257d61228c565b5b61258a8782880161249a565b9450945050602085013567ffffffffffffffff8111156125ad576125ac61228c565b5b6125b9878288016124f0565b925092505092959194509250565b6000806000606084860312156125e0576125df612287565b5b60006125ee868287016122da565b93505060206125ff868287016122da565b925050604061261086828701612310565b9150509250925092565b600060ff82169050919050565b6126308161261a565b82525050565b600060208201905061264b6000830184612627565b92915050565b6000806040838503121561266857612667612287565b5b6000612676858286016122da565b9250506020612687858286016123dc565b9150509250929050565b61269a816122b1565b82525050565b60006020820190506126b56000830184612691565b92915050565b6000806000604084860312156126d4576126d3612287565b5b600084013567ffffffffffffffff8111156126f2576126f161228c565b5b6126fe8682870161249a565b9350935050602061271186828701612310565b9150509250925092565b60008060006040848603121561273457612733612287565b5b600084013567ffffffffffffffff8111156127525761275161228c565b5b61275e8682870161249a565b93509350506020612771868287016123dc565b9150509250925092565b60008060006060848603121561279457612793612287565b5b60006127a286828701612310565b93505060206127b386828701612310565b92505060406127c486828701612310565b9150509250925092565b600080604083850312156127e5576127e4612287565b5b60006127f3858286016122da565b9250506020612804858286016122da565b9150509250929050565b6000819050919050565b600061283361282e61282984612291565b61280e565b612291565b9050919050565b600061284582612818565b9050919050565b60006128578261283a565b9050919050565b6128678161284c565b82525050565b6000602082019050612882600083018461285e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128cf57607f821691505b6020821081036128e2576128e1612888565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b6000612944602d836121e0565b915061294f826128e8565b604082019050919050565b6000602082019050818103600083015261297381612937565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006129d66028836121e0565b91506129e18261297a565b604082019050919050565b60006020820190508181036000830152612a05816129c9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a75826122ef565b9150612a80836122ef565b9250828201905080821115612a9857612a97612a3b565b5b92915050565b6000612aa9826122ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612adb57612ada612a3b565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612b1c601b836121e0565b9150612b2782612ae6565b602082019050919050565b60006020820190508181036000830152612b4b81612b0f565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612bae602e836121e0565b9150612bb982612b52565b604082019050919050565b60006020820190508181036000830152612bdd81612ba1565b9050919050565b6000612bef826122ef565b9150612bfa836122ef565b9250828202612c08816122ef565b91508282048414831517612c1f57612c1e612a3b565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c826025836121e0565b9150612c8d82612c26565b604082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b600081519050612cc7816122f9565b92915050565b600060208284031215612ce357612ce2612287565b5b6000612cf184828501612cb8565b91505092915050565b6000604082019050612d0f6000830185612691565b612d1c602083018461239b565b9392505050565b600081519050612d32816123c5565b92915050565b600060208284031215612d4e57612d4d612287565b5b6000612d5c84828501612d23565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612dc16026836121e0565b9150612dcc82612d65565b604082019050919050565b60006020820190508181036000830152612df081612db4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e536024836121e0565b9150612e5e82612df7565b604082019050919050565b60006020820190508181036000830152612e8281612e46565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ee56022836121e0565b9150612ef082612e89565b604082019050919050565b60006020820190508181036000830152612f1481612ed8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f516020836121e0565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000612fbd600b836121e0565b9150612fc882612f87565b602082019050919050565b60006020820190508181036000830152612fec81612fb0565b9050919050565b7f6c696d6974000000000000000000000000000000000000000000000000000000600082015250565b60006130296005836121e0565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613099826122ef565b91506130a4836122ef565b9250826130b4576130b361305f565b5b828204905092915050565b60006130ca826122ef565b91506130d5836122ef565b92508282039050818111156130ed576130ec612a3b565b5b92915050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613129601d836121e0565b9150613134826130f3565b602082019050919050565b600060208201905081810360008301526131588161311c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131bb6025836121e0565b91506131c68261315f565b604082019050919050565b600060208201905081810360008301526131ea816131ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061324d6023836121e0565b9150613258826131f1565b604082019050919050565b6000602082019050818103600083015261327c81613240565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006132df6026836121e0565b91506132ea82613283565b604082019050919050565b6000602082019050818103600083015261330e816132d2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061336961336461335f84613344565b61280e565b6122ef565b9050919050565b6133798161334e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133b4816122b1565b82525050565b60006133c683836133ab565b60208301905092915050565b6000602082019050919050565b60006133ea8261337f565b6133f4818561338a565b93506133ff8361339b565b8060005b8381101561343057815161341788826133ba565b9750613422836133d2565b925050600181019050613403565b5085935050505092915050565b600060a082019050613452600083018861239b565b61345f6020830187613370565b818103604083015261347181866133df565b90506134806060830185612691565b61348d608083018461239b565b969550505050505056fea2646970667358221220bd134e86700174f9a1716ee55cd1f864824c25f976684d20bd8620e475e35fbe64736f6c63430008120033

Deployed Bytecode Sourcemap

1121:5606:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1510:30:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4511:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1164:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6571:110:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5318:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5203:256:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:35:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1578:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1608:23:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4942:135:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1213:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1735:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4827:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5957:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1638:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:1;;;;;;;;;;;;;:::i;:::-;;1671:25:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1201:85:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5085:225:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1290:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1547:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1393:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4662:157:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1367:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1429:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6410:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3987::2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1770:22:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2158:98:2;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;1510:30:0:-;;;;:::o;4511:143::-;1094:13:1;:11;:13::i;:::-;4603:6:0::1;4594;;:15;;;;;;;;;;;;;;;;;;4634:12;4620:11;:26;;;;4511:143:::0;;:::o;1164:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3255:106:2:-;3316:7;3342:12;;3335:19;;3255:106;:::o;6571:110:0:-;1094:13:1;:11;:13::i;:::-;6645:10:0::1;6637:28;;:36;6666:6;6637:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6571:110:::0;:::o;5318:631::-;5444:3;5425:9;;:16;;:22;5417:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;5536:7;;:14;;5516:9;;:16;;:34;5508:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;5608:11;5639:9;5634:96;5658:9;;:16;;5654:1;:20;5634:96;;;5708:7;;5716:1;5708:10;;;;;;;:::i;:::-;;;;;;;;5702:3;:16;;;;:::i;:::-;5696:22;;5676:3;;;;;:::i;:::-;;;;5634:96;;;;5775:3;5750:21;5760:10;5750:9;:21::i;:::-;:28;;5742:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5826:9;5821:121;5845:9;;:16;;5841:1;:20;5821:121;;;5883:47;5893:10;5905:9;;5915:1;5905:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5919:7;;5927:1;5919:10;;;;;;;:::i;:::-;;;;;;;;5883:9;:47::i;:::-;5863:3;;;;;:::i;:::-;;;;5821:121;;;;5406:543;5318:631;;;;:::o;5203:256:2:-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;1468:35:0:-;;;;:::o;1578:23::-;;;;:::o;1703:25::-;;;;;;;;;;;;;:::o;3104:91:2:-;3162:5;3186:2;3179:9;;3104:91;:::o;1608:23:0:-;;;;:::o;5854:234:2:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;4942:135:0:-;1094:13:1;:11;:13::i;:::-;5054:15:0::1;5031:10;:20;5042:8;5031:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;4942:135:::0;;:::o;1213:70::-;;;;;;;;;;;;;:::o;1735:28::-;;;;;;;;;;;;;:::o;4827:107::-;1094:13:1;:11;:13::i;:::-;4915:11:0::1;4902:10;:24;;;;4827:107:::0;:::o;5957:443::-;6077:4;6058:9;;:16;;:23;6050:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:11;6168:9;;:16;;6159:6;:25;;;;:::i;:::-;6145:39;;6228:3;6203:21;6213:10;6203:9;:21::i;:::-;:28;;6195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6281:9;6276:117;6300:9;;:16;;6296:1;:20;6276:117;;;6338:43;6348:10;6360:9;;6370:1;6360:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6374:6;6338:9;:43::i;:::-;6318:3;;;;;:::i;:::-;;;;6276:117;;;;6039:361;5957:443;;;:::o;1638:26::-;;;;:::o;3419:125:2:-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;1824:101:1:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1671:25:0:-;;;;:::o;1201:85:1:-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;2369:102:2:-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;5085:225:0:-;1094:13:1;:11;:13::i;:::-;5192:9:0::1;5187:116;5211:9;;:16;;5207:1;:20;5187:116;;;5276:15;5249:10;:24;5260:9;;5270:1;5260:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5249:24;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;5229:3;;;;;:::i;:::-;;;;5187:116;;;;5085:225:::0;;;:::o;1290:70::-;;;;;;;;;;;;;:::o;6575:427:2:-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;1547:24:0:-;;;;:::o;1393:29::-;;;;:::o;3740:189:2:-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;4662:157:0:-;1094:13:1;:11;:13::i;:::-;4760:5:0::1;4753:4;:12;;;;4783:5;4776:4;:12;;;;4806:5;4799:4;:12;;;;4662:157:::0;;;:::o;1367:19::-;;;;;;;;;;;;;:::o;1429:32::-;;;;:::o;6410:149::-;1094:13:1;:11;:13::i;:::-;6482:6:0::1;6476:22;;;6499:10;6518:6;6511:24;;;6544:4;6511:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6476:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6410:149:::0;:::o;3987::2:-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;1770:22:0:-;;;;;;;;;;;;;:::o;2074:198:1:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;::::0;2154:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;640:96:5:-;693:7;719:10;712:17;;640:96;:::o;10457:340:2:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;1359:130:1:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2531:1452:0:-;2630:10;:14;2641:2;2630:14;;;;;;;;;;;;;;;;;;;;;;;;;2629:15;:36;;;;;2649:10;:16;2660:4;2649:16;;;;;;;;;;;;;;;;;;;;;;;;;2648:17;2629:36;2621:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2712:2;2695:19;;:13;;;;;;;;;;;:19;;;:38;;;;;2732:1;2718:10;;:15;2695:38;2692:98;;;2763:15;2750:10;:28;;;;2692:98;2813:7;:5;:7::i;:::-;2805:15;;:4;:15;;;:47;;;;2842:10;;;;;;;;;;;2834:18;;:4;:18;;;2805:47;:78;;;;2873:10;;;;;;;;;;;2865:18;;:4;:18;;;2805:78;:104;;;;2902:7;:5;:7::i;:::-;2896:13;;:2;:13;;;2805:104;:134;;;;2929:10;;;;;;;;;;;2923:16;;:2;:16;;;2805:134;:163;;;;2958:10;;;;;;;;;;;2952:16;;:2;:16;;;2805:163;2802:248;;;2984:33;3000:4;3006:2;3010:6;2984:15;:33::i;:::-;3032:7;;2802:248;3083:4;3065:22;;:13;;;;;;;;;;;:22;;;:46;;;;3109:2;3091:20;;:13;;;;;;;;;;;:20;;;3065:46;3062:870;;;3131:6;;;;;;;;;;;:32;;;;;3159:4;3141:22;;:13;;;;;;;;;;;:22;;;3131:32;3128:127;;;3218:11;;3201:13;3211:2;3201:9;:13::i;:::-;3192:6;:22;;;;:::i;:::-;3191:38;3183:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3128:127;3269:11;3283:2;3269:16;;3335:11;;3322:10;;:24;;;;:::i;:::-;3303:15;:44;3300:241;;;3373:4;;3367:10;;3300:241;;;3433:12;;3420:10;;:25;;;;:::i;:::-;3401:15;:45;3398:143;;;3472:4;;3466:10;;3398:143;;;3521:4;;3515:10;;3398:143;3300:241;3557:9;3584:3;3575:6;3569:3;:12;;;;:::i;:::-;:18;;;;:::i;:::-;3557:30;;3637:8;;3624:10;;:21;;;;:::i;:::-;3605:15;:41;:65;;;;;3668:2;3650:20;;:13;;;;;;;;;;;:20;;;3605:65;3602:246;;;3691:39;3707:4;3721;3728:1;3691:15;:39::i;:::-;3749:9;:7;:9::i;:::-;3602:246;;;3796:36;3812:4;3818:10;;;;;;;;;;;3830:1;3796:15;:36::i;:::-;3602:246;3862:37;3878:4;3884:2;3897:1;3888:6;:10;;;;:::i;:::-;3862:15;:37::i;:::-;3914:7;;;;3062:870;3942:33;3958:4;3964:2;3968:6;3942:15;:33::i;:::-;2531:1452;;;;:::o;11078:411:2:-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;2426:187:1:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;7456:788:2:-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;4115:388:0:-;4058:4;4049:6;;:13;;;;;;;;;;;;;;;;;;4165:15:::1;4183:24;4201:4;4183:9;:24::i;:::-;4165:42;;4218:21;4256:1;4242:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4218:40;;4282:10;;4272:7;:20;4269:227;;;4327:4;4309;4314:1;4309:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4357:4;;;;;;;;;;;4347;4352:1;4347:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;4376:7;;;;;;;;;;;:61;;;4438:7;4447:1;4450:4;4456:10;;;;;;;;;;;4468:15;4376:108;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4269:227;4154:349;;4094:5:::0;4085:6;;:14;;;;;;;;;;;;;;;;;;4115:388::o;12073:91:2:-;;;;:::o;12752:90::-;;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:50;4374:7;4365:6;4354:9;4350:22;4332:50;:::i;:::-;4322:60;;4278:114;4431:2;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4402:118;4059:468;;;;;:::o;4533:329::-;4592:6;4641:2;4629:9;4620:7;4616:23;4612:32;4609:119;;;4647:79;;:::i;:::-;4609:119;4767:1;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4738:117;4533:329;;;;:::o;4868:::-;4927:6;4976:2;4964:9;4955:7;4951:23;4947:32;4944:119;;;4982:79;;:::i;:::-;4944:119;5102:1;5127:53;5172:7;5163:6;5152:9;5148:22;5127:53;:::i;:::-;5117:63;;5073:117;4868:329;;;;:::o;5203:117::-;5312:1;5309;5302:12;5326:117;5435:1;5432;5425:12;5449:117;5558:1;5555;5548:12;5589:568;5662:8;5672:6;5722:3;5715:4;5707:6;5703:17;5699:27;5689:122;;5730:79;;:::i;:::-;5689:122;5843:6;5830:20;5820:30;;5873:18;5865:6;5862:30;5859:117;;;5895:79;;:::i;:::-;5859:117;6009:4;6001:6;5997:17;5985:29;;6063:3;6055:4;6047:6;6043:17;6033:8;6029:32;6026:41;6023:128;;;6070:79;;:::i;:::-;6023:128;5589:568;;;;;:::o;6180:::-;6253:8;6263:6;6313:3;6306:4;6298:6;6294:17;6290:27;6280:122;;6321:79;;:::i;:::-;6280:122;6434:6;6421:20;6411:30;;6464:18;6456:6;6453:30;6450:117;;;6486:79;;:::i;:::-;6450:117;6600:4;6592:6;6588:17;6576:29;;6654:3;6646:4;6638:6;6634:17;6624:8;6620:32;6617:41;6614:128;;;6661:79;;:::i;:::-;6614:128;6180:568;;;;;:::o;6754:934::-;6876:6;6884;6892;6900;6949:2;6937:9;6928:7;6924:23;6920:32;6917:119;;;6955:79;;:::i;:::-;6917:119;7103:1;7092:9;7088:17;7075:31;7133:18;7125:6;7122:30;7119:117;;;7155:79;;:::i;:::-;7119:117;7268:80;7340:7;7331:6;7320:9;7316:22;7268:80;:::i;:::-;7250:98;;;;7046:312;7425:2;7414:9;7410:18;7397:32;7456:18;7448:6;7445:30;7442:117;;;7478:79;;:::i;:::-;7442:117;7591:80;7663:7;7654:6;7643:9;7639:22;7591:80;:::i;:::-;7573:98;;;;7368:313;6754:934;;;;;;;:::o;7694:619::-;7771:6;7779;7787;7836:2;7824:9;7815:7;7811:23;7807:32;7804:119;;;7842:79;;:::i;:::-;7804:119;7962:1;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7933:117;8089:2;8115:53;8160:7;8151:6;8140:9;8136:22;8115:53;:::i;:::-;8105:63;;8060:118;8217:2;8243:53;8288:7;8279:6;8268:9;8264:22;8243:53;:::i;:::-;8233:63;;8188:118;7694:619;;;;;:::o;8319:86::-;8354:7;8394:4;8387:5;8383:16;8372:27;;8319:86;;;:::o;8411:112::-;8494:22;8510:5;8494:22;:::i;:::-;8489:3;8482:35;8411:112;;:::o;8529:214::-;8618:4;8656:2;8645:9;8641:18;8633:26;;8669:67;8733:1;8722:9;8718:17;8709:6;8669:67;:::i;:::-;8529:214;;;;:::o;8749:468::-;8814:6;8822;8871:2;8859:9;8850:7;8846:23;8842:32;8839:119;;;8877:79;;:::i;:::-;8839:119;8997:1;9022:53;9067:7;9058:6;9047:9;9043:22;9022:53;:::i;:::-;9012:63;;8968:117;9124:2;9150:50;9192:7;9183:6;9172:9;9168:22;9150:50;:::i;:::-;9140:60;;9095:115;8749:468;;;;;:::o;9223:118::-;9310:24;9328:5;9310:24;:::i;:::-;9305:3;9298:37;9223:118;;:::o;9347:222::-;9440:4;9478:2;9467:9;9463:18;9455:26;;9491:71;9559:1;9548:9;9544:17;9535:6;9491:71;:::i;:::-;9347:222;;;;:::o;9575:704::-;9670:6;9678;9686;9735:2;9723:9;9714:7;9710:23;9706:32;9703:119;;;9741:79;;:::i;:::-;9703:119;9889:1;9878:9;9874:17;9861:31;9919:18;9911:6;9908:30;9905:117;;;9941:79;;:::i;:::-;9905:117;10054:80;10126:7;10117:6;10106:9;10102:22;10054:80;:::i;:::-;10036:98;;;;9832:312;10183:2;10209:53;10254:7;10245:6;10234:9;10230:22;10209:53;:::i;:::-;10199:63;;10154:118;9575:704;;;;;:::o;10285:698::-;10377:6;10385;10393;10442:2;10430:9;10421:7;10417:23;10413:32;10410:119;;;10448:79;;:::i;:::-;10410:119;10596:1;10585:9;10581:17;10568:31;10626:18;10618:6;10615:30;10612:117;;;10648:79;;:::i;:::-;10612:117;10761:80;10833:7;10824:6;10813:9;10809:22;10761:80;:::i;:::-;10743:98;;;;10539:312;10890:2;10916:50;10958:7;10949:6;10938:9;10934:22;10916:50;:::i;:::-;10906:60;;10861:115;10285:698;;;;;:::o;10989:619::-;11066:6;11074;11082;11131:2;11119:9;11110:7;11106:23;11102:32;11099:119;;;11137:79;;:::i;:::-;11099:119;11257:1;11282:53;11327:7;11318:6;11307:9;11303:22;11282:53;:::i;:::-;11272:63;;11228:117;11384:2;11410:53;11455:7;11446:6;11435:9;11431:22;11410:53;:::i;:::-;11400:63;;11355:118;11512:2;11538:53;11583:7;11574:6;11563:9;11559:22;11538:53;:::i;:::-;11528:63;;11483:118;10989:619;;;;;:::o;11614:474::-;11682:6;11690;11739:2;11727:9;11718:7;11714:23;11710:32;11707:119;;;11745:79;;:::i;:::-;11707:119;11865:1;11890:53;11935:7;11926:6;11915:9;11911:22;11890:53;:::i;:::-;11880:63;;11836:117;11992:2;12018:53;12063:7;12054:6;12043:9;12039:22;12018:53;:::i;:::-;12008:63;;11963:118;11614:474;;;;;:::o;12094:60::-;12122:3;12143:5;12136:12;;12094:60;;;:::o;12160:142::-;12210:9;12243:53;12261:34;12270:24;12288:5;12270:24;:::i;:::-;12261:34;:::i;:::-;12243:53;:::i;:::-;12230:66;;12160:142;;;:::o;12308:126::-;12358:9;12391:37;12422:5;12391:37;:::i;:::-;12378:50;;12308:126;;;:::o;12440:140::-;12504:9;12537:37;12568:5;12537:37;:::i;:::-;12524:50;;12440:140;;;:::o;12586:159::-;12687:51;12732:5;12687:51;:::i;:::-;12682:3;12675:64;12586:159;;:::o;12751:250::-;12858:4;12896:2;12885:9;12881:18;12873:26;;12909:85;12991:1;12980:9;12976:17;12967:6;12909:85;:::i;:::-;12751:250;;;;:::o;13007:180::-;13055:77;13052:1;13045:88;13152:4;13149:1;13142:15;13176:4;13173:1;13166:15;13193:320;13237:6;13274:1;13268:4;13264:12;13254:22;;13321:1;13315:4;13311:12;13342:18;13332:81;;13398:4;13390:6;13386:17;13376:27;;13332:81;13460:2;13452:6;13449:14;13429:18;13426:38;13423:84;;13479:18;;:::i;:::-;13423:84;13244:269;13193:320;;;:::o;13519:232::-;13659:34;13655:1;13647:6;13643:14;13636:58;13728:15;13723:2;13715:6;13711:15;13704:40;13519:232;:::o;13757:366::-;13899:3;13920:67;13984:2;13979:3;13920:67;:::i;:::-;13913:74;;13996:93;14085:3;13996:93;:::i;:::-;14114:2;14109:3;14105:12;14098:19;;13757:366;;;:::o;14129:419::-;14295:4;14333:2;14322:9;14318:18;14310:26;;14382:9;14376:4;14372:20;14368:1;14357:9;14353:17;14346:47;14410:131;14536:4;14410:131;:::i;:::-;14402:139;;14129:419;;;:::o;14554:227::-;14694:34;14690:1;14682:6;14678:14;14671:58;14763:10;14758:2;14750:6;14746:15;14739:35;14554:227;:::o;14787:366::-;14929:3;14950:67;15014:2;15009:3;14950:67;:::i;:::-;14943:74;;15026:93;15115:3;15026:93;:::i;:::-;15144:2;15139:3;15135:12;15128:19;;14787:366;;;:::o;15159:419::-;15325:4;15363:2;15352:9;15348:18;15340:26;;15412:9;15406:4;15402:20;15398:1;15387:9;15383:17;15376:47;15440:131;15566:4;15440:131;:::i;:::-;15432:139;;15159:419;;;:::o;15584:180::-;15632:77;15629:1;15622:88;15729:4;15726:1;15719:15;15753:4;15750:1;15743:15;15770:180;15818:77;15815:1;15808:88;15915:4;15912:1;15905:15;15939:4;15936:1;15929:15;15956:191;15996:3;16015:20;16033:1;16015:20;:::i;:::-;16010:25;;16049:20;16067:1;16049:20;:::i;:::-;16044:25;;16092:1;16089;16085:9;16078:16;;16113:3;16110:1;16107:10;16104:36;;;16120:18;;:::i;:::-;16104:36;15956:191;;;;:::o;16153:233::-;16192:3;16215:24;16233:5;16215:24;:::i;:::-;16206:33;;16261:66;16254:5;16251:77;16248:103;;16331:18;;:::i;:::-;16248:103;16378:1;16371:5;16367:13;16360:20;;16153:233;;;:::o;16392:177::-;16532:29;16528:1;16520:6;16516:14;16509:53;16392:177;:::o;16575:366::-;16717:3;16738:67;16802:2;16797:3;16738:67;:::i;:::-;16731:74;;16814:93;16903:3;16814:93;:::i;:::-;16932:2;16927:3;16923:12;16916:19;;16575:366;;;:::o;16947:419::-;17113:4;17151:2;17140:9;17136:18;17128:26;;17200:9;17194:4;17190:20;17186:1;17175:9;17171:17;17164:47;17228:131;17354:4;17228:131;:::i;:::-;17220:139;;16947:419;;;:::o;17372:233::-;17512:34;17508:1;17500:6;17496:14;17489:58;17581:16;17576:2;17568:6;17564:15;17557:41;17372:233;:::o;17611:366::-;17753:3;17774:67;17838:2;17833:3;17774:67;:::i;:::-;17767:74;;17850:93;17939:3;17850:93;:::i;:::-;17968:2;17963:3;17959:12;17952:19;;17611:366;;;:::o;17983:419::-;18149:4;18187:2;18176:9;18172:18;18164:26;;18236:9;18230:4;18226:20;18222:1;18211:9;18207:17;18200:47;18264:131;18390:4;18264:131;:::i;:::-;18256:139;;17983:419;;;:::o;18408:410::-;18448:7;18471:20;18489:1;18471:20;:::i;:::-;18466:25;;18505:20;18523:1;18505:20;:::i;:::-;18500:25;;18560:1;18557;18553:9;18582:30;18600:11;18582:30;:::i;:::-;18571:41;;18761:1;18752:7;18748:15;18745:1;18742:22;18722:1;18715:9;18695:83;18672:139;;18791:18;;:::i;:::-;18672:139;18456:362;18408:410;;;;:::o;18824:224::-;18964:34;18960:1;18952:6;18948:14;18941:58;19033:7;19028:2;19020:6;19016:15;19009:32;18824:224;:::o;19054:366::-;19196:3;19217:67;19281:2;19276:3;19217:67;:::i;:::-;19210:74;;19293:93;19382:3;19293:93;:::i;:::-;19411:2;19406:3;19402:12;19395:19;;19054:366;;;:::o;19426:419::-;19592:4;19630:2;19619:9;19615:18;19607:26;;19679:9;19673:4;19669:20;19665:1;19654:9;19650:17;19643:47;19707:131;19833:4;19707:131;:::i;:::-;19699:139;;19426:419;;;:::o;19851:143::-;19908:5;19939:6;19933:13;19924:22;;19955:33;19982:5;19955:33;:::i;:::-;19851:143;;;;:::o;20000:351::-;20070:6;20119:2;20107:9;20098:7;20094:23;20090:32;20087:119;;;20125:79;;:::i;:::-;20087:119;20245:1;20270:64;20326:7;20317:6;20306:9;20302:22;20270:64;:::i;:::-;20260:74;;20216:128;20000:351;;;;:::o;20357:332::-;20478:4;20516:2;20505:9;20501:18;20493:26;;20529:71;20597:1;20586:9;20582:17;20573:6;20529:71;:::i;:::-;20610:72;20678:2;20667:9;20663:18;20654:6;20610:72;:::i;:::-;20357:332;;;;;:::o;20695:137::-;20749:5;20780:6;20774:13;20765:22;;20796:30;20820:5;20796:30;:::i;:::-;20695:137;;;;:::o;20838:345::-;20905:6;20954:2;20942:9;20933:7;20929:23;20925:32;20922:119;;;20960:79;;:::i;:::-;20922:119;21080:1;21105:61;21158:7;21149:6;21138:9;21134:22;21105:61;:::i;:::-;21095:71;;21051:125;20838:345;;;;:::o;21189:225::-;21329:34;21325:1;21317:6;21313:14;21306:58;21398:8;21393:2;21385:6;21381:15;21374:33;21189:225;:::o;21420:366::-;21562:3;21583:67;21647:2;21642:3;21583:67;:::i;:::-;21576:74;;21659:93;21748:3;21659:93;:::i;:::-;21777:2;21772:3;21768:12;21761:19;;21420:366;;;:::o;21792:419::-;21958:4;21996:2;21985:9;21981:18;21973:26;;22045:9;22039:4;22035:20;22031:1;22020:9;22016:17;22009:47;22073:131;22199:4;22073:131;:::i;:::-;22065:139;;21792:419;;;:::o;22217:223::-;22357:34;22353:1;22345:6;22341:14;22334:58;22426:6;22421:2;22413:6;22409:15;22402:31;22217:223;:::o;22446:366::-;22588:3;22609:67;22673:2;22668:3;22609:67;:::i;:::-;22602:74;;22685:93;22774:3;22685:93;:::i;:::-;22803:2;22798:3;22794:12;22787:19;;22446:366;;;:::o;22818:419::-;22984:4;23022:2;23011:9;23007:18;22999:26;;23071:9;23065:4;23061:20;23057:1;23046:9;23042:17;23035:47;23099:131;23225:4;23099:131;:::i;:::-;23091:139;;22818:419;;;:::o;23243:221::-;23383:34;23379:1;23371:6;23367:14;23360:58;23452:4;23447:2;23439:6;23435:15;23428:29;23243:221;:::o;23470:366::-;23612:3;23633:67;23697:2;23692:3;23633:67;:::i;:::-;23626:74;;23709:93;23798:3;23709:93;:::i;:::-;23827:2;23822:3;23818:12;23811:19;;23470:366;;;:::o;23842:419::-;24008:4;24046:2;24035:9;24031:18;24023:26;;24095:9;24089:4;24085:20;24081:1;24070:9;24066:17;24059:47;24123:131;24249:4;24123:131;:::i;:::-;24115:139;;23842:419;;;:::o;24267:182::-;24407:34;24403:1;24395:6;24391:14;24384:58;24267:182;:::o;24455:366::-;24597:3;24618:67;24682:2;24677:3;24618:67;:::i;:::-;24611:74;;24694:93;24783:3;24694:93;:::i;:::-;24812:2;24807:3;24803:12;24796:19;;24455:366;;;:::o;24827:419::-;24993:4;25031:2;25020:9;25016:18;25008:26;;25080:9;25074:4;25070:20;25066:1;25055:9;25051:17;25044:47;25108:131;25234:4;25108:131;:::i;:::-;25100:139;;24827:419;;;:::o;25252:161::-;25392:13;25388:1;25380:6;25376:14;25369:37;25252:161;:::o;25419:366::-;25561:3;25582:67;25646:2;25641:3;25582:67;:::i;:::-;25575:74;;25658:93;25747:3;25658:93;:::i;:::-;25776:2;25771:3;25767:12;25760:19;;25419:366;;;:::o;25791:419::-;25957:4;25995:2;25984:9;25980:18;25972:26;;26044:9;26038:4;26034:20;26030:1;26019:9;26015:17;26008:47;26072:131;26198:4;26072:131;:::i;:::-;26064:139;;25791:419;;;:::o;26216:155::-;26356:7;26352:1;26344:6;26340:14;26333:31;26216:155;:::o;26377:365::-;26519:3;26540:66;26604:1;26599:3;26540:66;:::i;:::-;26533:73;;26615:93;26704:3;26615:93;:::i;:::-;26733:2;26728:3;26724:12;26717:19;;26377:365;;;:::o;26748:419::-;26914:4;26952:2;26941:9;26937:18;26929:26;;27001:9;26995:4;26991:20;26987:1;26976:9;26972:17;26965:47;27029:131;27155:4;27029:131;:::i;:::-;27021:139;;26748:419;;;:::o;27173:180::-;27221:77;27218:1;27211:88;27318:4;27315:1;27308:15;27342:4;27339:1;27332:15;27359:185;27399:1;27416:20;27434:1;27416:20;:::i;:::-;27411:25;;27450:20;27468:1;27450:20;:::i;:::-;27445:25;;27489:1;27479:35;;27494:18;;:::i;:::-;27479:35;27536:1;27533;27529:9;27524:14;;27359:185;;;;:::o;27550:194::-;27590:4;27610:20;27628:1;27610:20;:::i;:::-;27605:25;;27644:20;27662:1;27644:20;:::i;:::-;27639:25;;27688:1;27685;27681:9;27673:17;;27712:1;27706:4;27703:11;27700:37;;;27717:18;;:::i;:::-;27700:37;27550:194;;;;:::o;27750:179::-;27890:31;27886:1;27878:6;27874:14;27867:55;27750:179;:::o;27935:366::-;28077:3;28098:67;28162:2;28157:3;28098:67;:::i;:::-;28091:74;;28174:93;28263:3;28174:93;:::i;:::-;28292:2;28287:3;28283:12;28276:19;;27935:366;;;:::o;28307:419::-;28473:4;28511:2;28500:9;28496:18;28488:26;;28560:9;28554:4;28550:20;28546:1;28535:9;28531:17;28524:47;28588:131;28714:4;28588:131;:::i;:::-;28580:139;;28307:419;;;:::o;28732:224::-;28872:34;28868:1;28860:6;28856:14;28849:58;28941:7;28936:2;28928:6;28924:15;28917:32;28732:224;:::o;28962:366::-;29104:3;29125:67;29189:2;29184:3;29125:67;:::i;:::-;29118:74;;29201:93;29290:3;29201:93;:::i;:::-;29319:2;29314:3;29310:12;29303:19;;28962:366;;;:::o;29334:419::-;29500:4;29538:2;29527:9;29523:18;29515:26;;29587:9;29581:4;29577:20;29573:1;29562:9;29558:17;29551:47;29615:131;29741:4;29615:131;:::i;:::-;29607:139;;29334:419;;;:::o;29759:222::-;29899:34;29895:1;29887:6;29883:14;29876:58;29968:5;29963:2;29955:6;29951:15;29944:30;29759:222;:::o;29987:366::-;30129:3;30150:67;30214:2;30209:3;30150:67;:::i;:::-;30143:74;;30226:93;30315:3;30226:93;:::i;:::-;30344:2;30339:3;30335:12;30328:19;;29987:366;;;:::o;30359:419::-;30525:4;30563:2;30552:9;30548:18;30540:26;;30612:9;30606:4;30602:20;30598:1;30587:9;30583:17;30576:47;30640:131;30766:4;30640:131;:::i;:::-;30632:139;;30359:419;;;:::o;30784:225::-;30924:34;30920:1;30912:6;30908:14;30901:58;30993:8;30988:2;30980:6;30976:15;30969:33;30784:225;:::o;31015:366::-;31157:3;31178:67;31242:2;31237:3;31178:67;:::i;:::-;31171:74;;31254:93;31343:3;31254:93;:::i;:::-;31372:2;31367:3;31363:12;31356:19;;31015:366;;;:::o;31387:419::-;31553:4;31591:2;31580:9;31576:18;31568:26;;31640:9;31634:4;31630:20;31626:1;31615:9;31611:17;31604:47;31668:131;31794:4;31668:131;:::i;:::-;31660:139;;31387:419;;;:::o;31812:180::-;31860:77;31857:1;31850:88;31957:4;31954:1;31947:15;31981:4;31978:1;31971:15;31998:85;32043:7;32072:5;32061:16;;31998:85;;;:::o;32089:158::-;32147:9;32180:61;32198:42;32207:32;32233:5;32207:32;:::i;:::-;32198:42;:::i;:::-;32180:61;:::i;:::-;32167:74;;32089:158;;;:::o;32253:147::-;32348:45;32387:5;32348:45;:::i;:::-;32343:3;32336:58;32253:147;;:::o;32406:114::-;32473:6;32507:5;32501:12;32491:22;;32406:114;;;:::o;32526:184::-;32625:11;32659:6;32654:3;32647:19;32699:4;32694:3;32690:14;32675:29;;32526:184;;;;:::o;32716:132::-;32783:4;32806:3;32798:11;;32836:4;32831:3;32827:14;32819:22;;32716:132;;;:::o;32854:108::-;32931:24;32949:5;32931:24;:::i;:::-;32926:3;32919:37;32854:108;;:::o;32968:179::-;33037:10;33058:46;33100:3;33092:6;33058:46;:::i;:::-;33136:4;33131:3;33127:14;33113:28;;32968:179;;;;:::o;33153:113::-;33223:4;33255;33250:3;33246:14;33238:22;;33153:113;;;:::o;33302:732::-;33421:3;33450:54;33498:5;33450:54;:::i;:::-;33520:86;33599:6;33594:3;33520:86;:::i;:::-;33513:93;;33630:56;33680:5;33630:56;:::i;:::-;33709:7;33740:1;33725:284;33750:6;33747:1;33744:13;33725:284;;;33826:6;33820:13;33853:63;33912:3;33897:13;33853:63;:::i;:::-;33846:70;;33939:60;33992:6;33939:60;:::i;:::-;33929:70;;33785:224;33772:1;33769;33765:9;33760:14;;33725:284;;;33729:14;34025:3;34018:10;;33426:608;;;33302:732;;;;:::o;34040:831::-;34303:4;34341:3;34330:9;34326:19;34318:27;;34355:71;34423:1;34412:9;34408:17;34399:6;34355:71;:::i;:::-;34436:80;34512:2;34501:9;34497:18;34488:6;34436:80;:::i;:::-;34563:9;34557:4;34553:20;34548:2;34537:9;34533:18;34526:48;34591:108;34694:4;34685:6;34591:108;:::i;:::-;34583:116;;34709:72;34777:2;34766:9;34762:18;34753:6;34709:72;:::i;:::-;34791:73;34859:3;34848:9;34844:19;34835:6;34791:73;:::i;:::-;34040:831;;;;;;;;:::o

Swarm Source

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