Contract 0xd084c5a4a621914ed2992310024d2438dfde5bfd

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1184167a5cfbaaa36a7258cdcb33e5bcc42818cb896be766e06e60740f097759Approve131800952021-12-04 6:21:232 days 2 hrs ago0x102690a6e532ceb760ddba8c67f16835a08068c9 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0x8102eeccde164def27ba60af16a4f3c05be9c9b59ca5de4231e1f5e2ec89795cApprove131341912021-12-02 15:36:423 days 17 hrs ago0xcb2f440924438c9c79ccece3e8b470692be95241 IN  The YoloVerse: YOLOV Token0 BNB0.000356616
0xd1c48d46953693f67b4fa3d9ce68a28a3196b4d35b904a42d2241a0cc879373fApprove131340432021-12-02 15:29:113 days 17 hrs ago0x7871dd1940d2efb261914ae84c8131d509816fd6 IN  The YoloVerse: YOLOV Token0 BNB0.000356616
0x0b93926850849652343d0f014c7d940f0eed453f67814c882b6c466949ee1e1eApprove131333132021-12-02 14:49:553 days 17 hrs ago0x6c0fc1dd1b1824ac6056c99317830f2cd7692a61 IN  The YoloVerse: YOLOV Token0 BNB0.000312039
0x0e2d11cb455b57a462f829c6c324aea5ab52e46c2b965e7ba6e36260e7e55b54Approve131328302021-12-02 14:25:153 days 18 hrs ago0xcee404b7e383adcd6c64b8f8d017b4afeb00ec14 IN  The YoloVerse: YOLOV Token0 BNB0.000267462
0x05ec4e174e773c14def10a67b9c694e8cfa64bda341f8e307527e25faef9eba2Approve131327932021-12-02 14:23:243 days 18 hrs ago0x9c5ae67e5fd0e8cd3d4bea560876ca1a296dfbc3 IN  The YoloVerse: YOLOV Token0 BNB0.000267462
0xf2b77ba48d38a8c2c5ef300deb524420dbfcad23dac2016dec3c3729c68bf8a8Approve131326682021-12-02 14:17:073 days 18 hrs ago0x61e864a5aad2ed452e46a5acfd429a4709a39a88 IN  The YoloVerse: YOLOV Token0 BNB0.00044577
0xf7c62f4007e8e3c542d341951fc52a107068601b99fb663fdcda57c280d5c9f6Approve131319802021-12-02 13:42:363 days 18 hrs ago0x2af04dbc31de7a11201e3f674c2bc7c2a15b0418 IN  The YoloVerse: YOLOV Token0 BNB0.000401193
0xe39984f4ee8620eca8a2217df70f477e26dd5d531d7ef04629ac8c0c08fafb95Approve131154022021-12-01 23:11:394 days 9 hrs ago0x512f269f6c74eefb42a53d00049d7b069eae3a27 IN  The YoloVerse: YOLOV Token0 BNB0.000312039
0x66abb7aba543df5fbc13cfd178ddf28e9ceee157405ccd33bdd19b80dfcaf9f1Approve131149072021-12-01 22:46:534 days 9 hrs ago0x505ddb0837b1af8b3f562cc5bcba73aa2fe5e874 IN  The YoloVerse: YOLOV Token0 BNB0.000356616
0x169d435fa38b7c45922729d22dbb9968841f4b5fce7c4092bf2bc55d3a0fc7f7Approve131140912021-12-01 22:05:574 days 10 hrs ago0xdc6b3e55a8de78b8e0d52ba7da777afdeedb9a83 IN  The YoloVerse: YOLOV Token0 BNB0.00089154
0x41220b609c5e0fa8601154a5a26d4e76bbd800e522f06527d5fc289a54bcc7f4Approve131117872021-12-01 20:10:154 days 12 hrs ago0x1936c9c3ff5835fa74e0c48906ddd9fda589ba81 IN  The YoloVerse: YOLOV Token0 BNB0.000072985
0x46936f87c68f793a0e242be3d8a1f8f2dc14f9b74eff7a467d5d8a0c0c4d8789Approve131037762021-12-01 13:03:134 days 19 hrs ago0xc89a0f0e9030970d4dd231166e4b7150c9be7c23 IN  The YoloVerse: YOLOV Token0 BNB0.000312039
0x8ec1767a5203c40367e2075a4fe0970ef16887fee93a90d1f752310b1d949fb4Approve131035832021-12-01 12:50:374 days 19 hrs ago0x23f2ceb975fdb1b0bb3f38a20ca951fa079527b3 IN  The YoloVerse: YOLOV Token0 BNB0.000312039
0x2b7458b32c320131a041b3cfbcd01c21b03b07cb09fbd920ccf18c4140089a96Approve130941322021-12-01 3:56:315 days 4 hrs ago0x81e6161e350e16d5f51328774c4990d9d5e5053b IN  The YoloVerse: YOLOV Token0 BNB0.00044577
0xbaae907724646b6e52dfe83a8baa64d129bf780adc36b69d365d2036fb3f82ceApprove130847522021-11-30 19:48:495 days 12 hrs ago0x616c259b5fd4c3ce12199c260220c80b38897d30 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0x99562b629863b08d1866308a1729d181075af74f35fbd3515446d6067dad61ffApprove130783722021-11-30 14:14:315 days 18 hrs ago0x541c45812f2ecfa0bfba77a95ea54c044739231b IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0x1c6de16e323c54086bce50c9ff8b9219c39ed72753b3c485eabceb006b0050c4Approve130668842021-11-30 3:56:226 days 4 hrs ago0x5193d2f59d914830fa778185ec4f62d5739911e9 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0xdd4502d6d457543187424e4405a819734408f5857e25465f55776f425d7bb70eApprove130667362021-11-30 3:48:556 days 4 hrs ago0xd155a4d3a0e526279db85875115d1b1b8c304069 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0xbe8999962973efbcff81fe8c7627c6d5165e95d12520ca6f93ddcf23194d6552Approve130320072021-11-28 20:02:057 days 12 hrs ago0xd18751c3433c2d671873665601486a6535fd02f3 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0xd9fe2ce42662db23503188de92ce09bfe5d2bb368c75d88c12720d593ff49a3eApprove130300722021-11-28 18:17:147 days 14 hrs ago0x44b4aa4664cb373b3a1a0d8ba279c67b062b15bd IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0x208bfeb817125be2bd1827a53cba711028ce5c35b99461969b7735792e031183Approve130243332021-11-28 13:05:377 days 19 hrs ago0xb2548f435e078fcecbb5245783dcfcaac88cb916 IN  The YoloVerse: YOLOV Token0 BNB0.000222885
0xa886085a6ee5bf92a05a41fac4cf69b894d494488b17bc50cd69274f44418535Approve129787192021-11-26 20:21:059 days 12 hrs ago0x5c984fa7006eac7b0469883d6112108d2565d2ff IN  The YoloVerse: YOLOV Token0 BNB0.000222825
0x880100273c2088f2bb061c3c86d183d7e8b8091bd2c2c68c521c144e9a05eb8eApprove129782862021-11-26 19:57:489 days 12 hrs ago0xbecd8cd15fcb103cf797b50226531093f8e4ffde IN  The YoloVerse: YOLOV Token0 BNB0.000267462
0x5cf4ca7d9279124c15ebd04e8efd030e03d71d29e9f14ecf9fa96e48fbcd007dApprove129780982021-11-26 19:47:239 days 12 hrs ago0xafa259b69e20b547443da38104ecf43c29eba074 IN  The YoloVerse: YOLOV Token0 BNB0.000267462
[ Download CSV Export 

OVERVIEW

The YoloVerse is a novel gamified yield-farming protocol on the Binance Smart Chain utilizing both DeFi and NFTs.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YoloV

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 333 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-22
*/

//    _||    __   __    ___      __       ___               ___      ___      ___   __      __
//   (_-<    \ \ / /   / _ \    | |      / _ \     ___     |   \    | _ \    /   \  \ \    / /
//   / _/     \ V /   | (_) |   | |__   | (_) |   |___|    | |) |   |   /    | - |   \ \/\/ /
//   _||__    _|_|_    \___/    |____|   \___/    _____    |___/    |_|_\    |_|_|    \_/\_/
// _|"""""| _| """ | _|"""""| _|"""""| _|"""""| _|     | _|"""""| _|"""""| _|"""""| _|"""""|
// "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-'
//SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.5;

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

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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);
}

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) 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}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

interface IYoloDivSpotNFT {
    function getLastMintBlock() external view returns (uint);

    function getIdForAccount(address _acc) external view returns (uint);

    function receiveRewards(uint256 _dividendRewards) external;

    function burnToClaim() external;

    function create(address _account, uint256 _minReq) external returns (uint256);

    function getUnclaimed(address _account) external returns (uint256);

    function canMint(address _account) external view returns (bool);

    function getMinReq(uint256 _tokenId) external returns (uint256);

    function getIds() external view returns (uint[] memory);

    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function totalSupply() external view returns (uint);

    function getOpenDivSpotsCount() external view returns (uint);

    function getDivSpotAt(uint256 _tokenId) external view returns (uint256, uint, address, uint256, uint256);

    function myInfo() external view returns (
        uint rank,
        uint256 rewards,
        uint256 startMinReq,
        uint256 id,
        uint256 mintBlock
    );
}

interface IYoloLoyaltySpotNFT {
    function handleBuy(address _account, uint256 _amountBnb, uint256 _tokenAmount) external;

    function handleSold(address _account) external;

    function claim() external;

    function balanceOf(address owner) external view returns (uint256 balance);

    function totalSupply() external view returns (uint);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function receiveRewards(uint256 _reward) external;

    function myInfoFull() external view returns (
        uint rank, uint level,
        uint possibleClaimAmount, uint blocksLeftToClaim,
        uint buyVolumeBnb, uint sellVolumeBnb, uint lastLevelUpVolume,
        uint claimedRewards
    );

    function getIdForAccount(address _acc) external view returns (uint);

    function getBlocksUntilClaim(address _account) external returns (uint);

    function getRights(uint _tokenId) external view returns (uint, uint, uint);

    function getNextRankRights(uint _tokenId) external view returns (uint, uint, uint);

    function canEvolve(address _account) external returns (bool);

    function getClaimBlock(address _account) external returns (uint);

    function canMint(address _account) external view returns (bool);

    function create(address _account, uint256 _buyVolume, uint _yoloAmount) external returns (uint256 tokenId);

    function getMintPriceBnb() external view returns (uint);

    function getNextMintPriceBnb() external view returns (uint);

    function syncFund() external;
}


interface IURouter {

    function getAmountsIn(uint amountOut, address[] memory path) external view returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path)
    external
    view
    returns (uint256[] memory amounts);

    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable;
}

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

interface ILPLock {
    function setLpToken(address lpTokenAdd) external;
}

interface IKeeper {
    function onReceive(address _account, uint _bnbAmountIn, uint _yoloAmount) external;

    function onTransfer(address _account, uint _yolo) external;

    function withdraw(uint _yoloAmount) external;
}

contract YoloV is ERC20("YoloVerse", "YOLOV"), Ownable {
    uint256 public fomoFund;
    // BSC-Add
    // TODO:
    address public U_ROUTER = 0xC2DaefF8Cb77Be50FfC921C9d4bf9AB3a02Ad98D;
    address public U_FACTORY_ADDRESS = 0xA5Ba037Ec16c45f8ae09e013C1849554C01385f5;
    address public constant WBNB_ADDRESS = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;

    IYoloDivSpotNFT public DivSpotNftContract;
    IYoloLoyaltySpotNFT public LoyaltyNftContract;
    IKeeper public KeeperContract;

    address[] internal path;
    address[] internal pathToBnb;
    address public FOMOV2_BNB_PAIR;
    address public PORTAL_ADDRESS;
    address public LP_GROWER_ADDRESS;
    address public FOMO_ROUTER_ADDRESS;

    IURouter internal uRouter = IURouter(U_ROUTER);
    IUFactory internal uFactory = IUFactory(U_FACTORY_ADDRESS);

    /* Tax & Metrics */
    uint internal FOMO_TAX = 400;
    uint internal LP_TAX = 200;

    uint256 public initialMinBnbforDiv = 1e19; // 10.0 BNB
    uint256 internal constant initialMinBnbforLoyalty = 2e17; // 0.2 BNB
    uint public lastLoyaltyMintPriceBnb = 2e17;

    uint internal gasRefund;
    uint256 public scaleAmount;
    uint256 public scaleBasis;
    uint public lpLockFeePercent;
    uint public startTimestamp;

    mapping(address => bool) internal excludedBinanceHotWallets;

    uint internal DIV_REW_CD = 28800; //[24hr]
    uint internal LOY_REW_CD = 1200; // [1hr]

    uint public lastDivRewBlock;
    uint public lastLoyRewBlock;

    uint internal defaultGwei = 5e9;
    uint internal launchPeriodEndBlock;

    event DivDistro(uint reward, uint percent);
    event LoyaltyDistro(uint reward, uint percent);
    event Sold(address _account, uint tokens);
    event Buy(address _account, uint tokens, uint bnb);
    event ReceivedFunds(address _account, uint _tokens);

    constructor() {
        path = [WBNB_ADDRESS, address(this)];
        pathToBnb = [address(this), WBNB_ADDRESS];

        //Trigger Reward/Refund for gas spent
        gasRefund = 1e20;

        // Div Mint Price Scaling
        scaleAmount = 3e18;
        // 1m
        scaleBasis = 1e24;

        // 6% on SELL only
        lpLockFeePercent = 600;

        //Exclude Those Hot Wallets
        excludedBinanceHotWallets[0x631Fc1EA2270e98fbD9D92658eCe0F5a269Aa161] = true;
        excludedBinanceHotWallets[0xB1256D6b31E4Ae87DA1D56E5890C66be7f1C038e] = true;
        excludedBinanceHotWallets[0x17B692ae403a8Ff3a3B2eD7676cF194310ddE9Af] = true;
        excludedBinanceHotWallets[0x8fF804cc2143451F454779A40DE386F913dCff20] = true;
        excludedBinanceHotWallets[0xAD9ffffd4573b642959D3B854027735579555Cbc] = true;

        startTimestamp = block.timestamp;

        fomoFund = 2e25;

        lastDivRewBlock = block.number;
        lastLoyRewBlock = block.number;
    }

    uint private unlocked = 1;
    modifier antiReentrant() {
        require(unlocked == 1, 'ERROR: Anti-Reentrant');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    modifier onlyYoloContracts(){
        require(
            msg.sender == owner()
            || msg.sender == address(DivSpotNftContract)
            || msg.sender == address(LoyaltyNftContract)
            || msg.sender == PORTAL_ADDRESS,
            "Unauthorized !");
        _;
    }

    modifier onlyFomoRouter(){
        require(msg.sender == FOMO_ROUTER_ADDRESS, "Not Fomo Router");
        _;
    }

    /* MIGRATION */
    bool public migrationEnded;

    function mintFromSnapshot(address[] calldata _accounts, uint256[] calldata _amounts) external onlyOwner {
        require(!migrationEnded, "Migration has ended !");
        require(_accounts.length == _amounts.length, "Length Mismatch");

        for (uint i = 0; i < _accounts.length; i++) {
            // Mint to each address its tokens.
            if (_accounts[i] != 0xaf61230352bD52Cf9957a2De095B11320c40bD7B) {
                if (_accounts[i] != address(0) && _accounts[i] != 0xF19A0a7bDAbD710fa2C33dF432760c9BEC195011) {
                    super._mint(_accounts[i], _amounts[i]);
                }
            }
        }
    }

    function createInitialDivAccounts(address[] calldata _accounts, uint[] calldata _minReqs) external onlyOwner {
        require(!migrationEnded, "Migration has ended !");
        require(_accounts.length == _minReqs.length, "Length Missmatch");

        for (uint i = 0; i < _accounts.length; i++) {
            //Burn the minReqs from here
            super._transfer(_accounts[i], address(DivSpotNftContract), _minReqs[i]);
            //Create the NFT
            DivSpotNftContract.create(_accounts[i], _minReqs[i]);
        }
    }

    function mintInitialLPTokens(uint256 _amtOfTokens) external {
        require(!migrationEnded, "Migration has ended !");
        require(msg.sender == PORTAL_ADDRESS, "Only Portal !");
        _mint(msg.sender, _amtOfTokens);

        // Set Max TX Amount, before LP is OPEN!
        launchPeriodEndBlock = block.number + uint(1000);

        // Starting Loyalty Reward Fund Amount 2M tokens
        _mint(address(LoyaltyNftContract), 2e24);
        LoyaltyNftContract.syncFund();
    }

    function endMigration() external onlyOwner {
        migrationEnded = true;

    }

    /* TRANSFERS */
    function _transfer(address _sender, address _to, uint _amount) internal override {
        require(_amount > 10000, "Error: Send More Tokens");

        // :: Keeper applies normal tax on withdraw()
        // :: Loyalty _to when people send tokens to Loyalty [no-tax]
        // :: Loyalty _sender when Loyalty sends tokens to Keeper [no-tax]
        /* Don't tax transfer from this add */
        if (
            _sender == address(this)
            || _to == address(DivSpotNftContract)
            || _sender == address(DivSpotNftContract)
            || _to == address(LoyaltyNftContract)
            || _sender == address(LoyaltyNftContract)
            || _sender == PORTAL_ADDRESS
            || _sender == LP_GROWER_ADDRESS
            || _to == FOMO_ROUTER_ADDRESS
            || _to == LP_GROWER_ADDRESS
            || excludedBinanceHotWallets[_sender]
            || excludedBinanceHotWallets[_to]
        ) {
            super._transfer(_sender, _to, _amount);
            return;
        }

        /* Don't tax on remove liq, ensures 100% safeLiquidityRemoval*/
        if (_sender == FOMOV2_BNB_PAIR && _to == address(uRouter) || _sender == address(U_ROUTER)) {
            super._transfer(_sender, _to, _amount);
            return;
        }

        // First 50 minutes after launch -> max TX value allowed is 1.00 BNB worth of YOLOV
        if (block.number < launchPeriodEndBlock) {
            require(_amount <= uRouter.getAmountsOut(1e18, path)[1], "Max Transaction Amount Reached: Try less");
        }

        /* isSell & addLiq */
        if (_to == FOMOV2_BNB_PAIR) {
            uint autoLockAmt = _amount * lpLockFeePercent / 10000;
            if (autoLockAmt > 0) {
                super._transfer(_sender, LP_GROWER_ADDRESS, autoLockAmt);
            }
            super._transfer(_sender, _to, (_amount - autoLockAmt));
            emit Sold(_sender, _amount);
        } else {
            /* isBuy or Normal transfer */
            (uint fomoTaxDynamic, uint lpTaxDynamic, uint burnRateDynamic) = this.determineFeePhase();
            uint256 fomoTaxAmount = _amount * fomoTaxDynamic / 10000;
            uint256 amtToBurn;
            if (burnRateDynamic > 0) {
                amtToBurn = _amount * burnRateDynamic / 10000;
            }

            super._burn(_sender, amtToBurn + fomoTaxAmount);

            uint amtForLp;
            if (lpTaxDynamic > 0) {
                amtForLp = _amount * lpTaxDynamic / 10000;
                super._transfer(_sender, LP_GROWER_ADDRESS, amtForLp);
            }


            uint finalAmount = _amount - (amtToBurn + fomoTaxAmount + amtForLp);
            fomoFund += fomoTaxAmount;
            super._transfer(_sender, _to, finalAmount);


            /* MAY THE FUN BEGIN */
            /* NFTs*/
            {// avoids-stack-too-deep
                if (_sender == FOMOV2_BNB_PAIR) {
                    uint bnbAmountIn = uRouter.getAmountsIn(_amount, path)[0];

                    /* buyVolume */
                    if (LoyaltyNftContract.balanceOf(_to) > 0) {
                        LoyaltyNftContract.handleBuy(_to, bnbAmountIn, finalAmount);
                    }

                    emit Buy(_sender, finalAmount, bnbAmountIn);

                    /* LOYALTY */
                    // 1. Max 1 per block
                    // 2. Tx.gasprice == bscGweiDefault + setter
                    if (
                        bnbAmountIn >= lastLoyaltyMintPriceBnb
                        && LoyaltyNftContract.canMint(_to)
                        && defaultGwei == tx.gasprice
                    ) {
                        _mintLoyalty(_to, bnbAmountIn, finalAmount);
                    }
                }
            }
        }
    }

    function mintDivSpot(address _account) external onlyFomoRouter antiReentrant {
        /* DIV */
        (uint256 minTokensDiv,) = this.scaleDivNftMintPrice();

        if (
            this.balanceOf(_account) >= minTokensDiv
            && DivSpotNftContract.canMint(_account)
            && defaultGwei == tx.gasprice
        ) {
            _mintDivSpot(_account, minTokensDiv);
        }
    }

    function determineFeePhase() external view returns (uint, uint, uint){
        bool isFundLessThanPercent = fomoFund < this.totalSupply() * 3000 / 10000;

        if (isFundLessThanPercent) {
            return (FOMO_TAX, LP_TAX, 0);
        } else {
            return (200, 0, 400);
        }
    }

    function determineFundDistribution() public view returns (uint, uint) {
        if (startTimestamp + 10 days > block.timestamp) {
            return (80, 3);
        } else if (startTimestamp + 20 days < block.timestamp) {
            return (90, 4);
        } else if (startTimestamp + 40 days < block.timestamp) {
            return (100, 5);
        } else if (startTimestamp + 60 days < block.timestamp) {
            return (110, 6);
        } else {
            return (120, 7);
        }
    }

    function _mintDivSpot(address _account, uint256 _minReqYolo) internal {
        uint nftId = DivSpotNftContract.create(_account, _minReqYolo);
        if (nftId != 0) {
            super._transfer(_account, address(DivSpotNftContract), _minReqYolo);
        }
    }

    function _mintLoyalty(address _account, uint256 _bnbAmountIn, uint _yoloAmount) internal {
        uint minBnb = LoyaltyNftContract.getMintPriceBnb();

        if (_bnbAmountIn >= minBnb) {
            uint nftId = LoyaltyNftContract.create(_account, _bnbAmountIn, _yoloAmount);
            if (nftId != 0) {
                lastLoyaltyMintPriceBnb = minBnb;
            }
        }
    }

    /* REWARDS */
    // 24H
    function sendDivRewardsToNft() external onlyFomoRouter antiReentrant {
        require(lastDivRewBlock + DIV_REW_CD < block.number, "Not time yet !");

        (uint divPercent,) = this.determineFundDistribution();
        uint rewards = fomoFund * divPercent / 10000;

        fomoFund -= rewards;
        lastDivRewBlock = block.number;

        DivSpotNftContract.receiveRewards(rewards);
        _mint(address(DivSpotNftContract), rewards);
        _mint(msg.sender, gasRefund * 24);

        emit DivDistro(rewards, divPercent);
    }

    //1hr
    function sendLoyaltyRewardsToNft() external onlyFomoRouter antiReentrant {
        require(lastLoyRewBlock + LOY_REW_CD < block.number, "Not time yet !");

        (,uint loyaltyPercent) = this.determineFundDistribution();
        uint rewards = fomoFund * loyaltyPercent / 10000;

        fomoFund -= rewards;
        lastLoyRewBlock = block.number;

        LoyaltyNftContract.receiveRewards(rewards);
        _mint(address(LoyaltyNftContract), rewards);
        _mint(msg.sender, gasRefund);
        emit LoyaltyDistro(rewards, loyaltyPercent);
    }

    function scaleDivNftMintPrice() external view returns (uint256 inTokens, uint256 inBNB) {
        uint256 minInBnb = initialMinBnbforDiv;

        // If DIV Reward Fund is bigger than 10 000 000 Tokens
        // Scale +3 BNB to mint cost for each 1 000 000 Tokens in Reward Fund
        if (fomoFund >= 1e25) {
            uint bonusAmount = (fomoFund - 1e25) * scaleAmount / scaleBasis;
            minInBnb += bonusAmount;
        }

        inTokens = uRouter.getAmountsOut(minInBnb, path)[1];
        return (inTokens, minInBnb);
    }

    function receiveFunds(uint _amount) external {
        require(
            msg.sender == address(DivSpotNftContract)
            || msg.sender == address(LoyaltyNftContract)
            || msg.sender == LP_GROWER_ADDRESS,
            "Unauthorized !");
        fomoFund += _amount;
        emit ReceivedFunds(msg.sender, _amount);
    }

    /* BURN & MINT */
    function burn(uint256 _amount) external {
        super._burn(msg.sender, _amount);
    }

    function mint(address _account, uint256 _amount) external {
        require(address(DivSpotNftContract) == msg.sender, "Only the Div can mint !");
        _mint(_account, _amount);
    }

    function _mint(address _account, uint256 _amount) internal override {
        // safety
        if (_account != PORTAL_ADDRESS) {
            require(_amount < 5e24, "Can't mint that much degen !");
        }
        super._mint(_account, _amount);
    }

    /* GETTERS EXTERNAL */
    function getLoyaltyMintPrice() external view returns (uint bnb, uint yolo){
        uint mP = LoyaltyNftContract.getMintPriceBnb();
        return (mP, uRouter.getAmountsOut(mP, path)[1]);
    }

    function getNextLoyaltyMintPriceInTokens() external view returns (uint){
        uint minInBnb = LoyaltyNftContract.getNextMintPriceBnb();
        uint inTokens = uRouter.getAmountsIn(minInBnb, pathToBnb)[1];

        return inTokens;
    }

    function getMinNftAmounts() external view returns (uint256, uint256) {
        return (uRouter.getAmountsIn(initialMinBnbforLoyalty, path)[1], uRouter.getAmountsIn(initialMinBnbforDiv, path)[1]);
    }

    function getNextLoyalBlock() external view returns (uint) {
        return lastLoyRewBlock + LOY_REW_CD;
    }

    function getNextDivBlock() external view returns (uint) {
        return lastDivRewBlock + DIV_REW_CD;
    }

    function getFomoFund1() external view returns (uint256) {
        return fomoFund / 1e18;
    }

    function getPairAddress() external view returns (address) {
        return FOMOV2_BNB_PAIR;
    }

    /* SETTERS */
    function setDefaultGwei(uint _amt) external onlyOwner {
        defaultGwei = _amt;
    }

    function setTax(uint _newFomoTax, uint _newLpTax) external onlyOwner {
        require(_newFomoTax + _newLpTax <= 700, "HardLimits");
        FOMO_TAX = _newFomoTax;
        LP_TAX = _newLpTax;
    }

    function setMinBNBForDiv(uint amt) external onlyOwner {
        //Min 5 BNB ; Max 10 BNB
        require(amt >= 1e18 && amt <= 1e20, "HardLimits");
        initialMinBnbforDiv = amt;
    }

    function setCooldownDiv(uint _newCd) external onlyOwner {
        // 12h - 3d
        require(
            _newCd >= 14400 && _newCd <= 86400,
            "HardLimits"
        );
        DIV_REW_CD = _newCd;
    }

    function setCooldownLoyal(uint _newCd) external onlyOwner {
        // 30m - 4hr
        require(
            _newCd >= 600 && _newCd <= 4800,
            "HardLimits"
        );
        LOY_REW_CD = _newCd;
    }

    function setGasRefund(uint _amount) onlyOwner external {
        require(_amount >= 1e19 && _amount <= 5e22, "HardLimits");
        gasRefund = _amount;
    }

    function setSellTax(uint _lpTax) onlyOwner external {
        require(_lpTax >= 300 && _lpTax <= 1000, "HardLimits");
        lpLockFeePercent = _lpTax;
    }

    /* Deploy Setters */
    function setPairAddress(address _addy) external onlyYoloContracts {
        require(_addy != address(0), "Zero address");
        FOMOV2_BNB_PAIR = _addy;
    }

    function setLoyaltyContract(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero address");
        LoyaltyNftContract = IYoloLoyaltySpotNFT(_addy);
    }

    function setDivSpotContract(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero address");
        DivSpotNftContract = IYoloDivSpotNFT(_addy);
    }

    function setLpGrowerAddress(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero address");
        LP_GROWER_ADDRESS = _addy;
    }

    function setPortalAddress(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero address");
        PORTAL_ADDRESS = _addy;
    }

    function setKeeperAddress(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero address");
        KeeperContract = IKeeper(_addy);
    }

    function setRouterAddress(address _addy) external onlyOwner {
        require(_addy != address(0), "Zero Adress");
        FOMO_ROUTER_ADDRESS = _addy;
    }

    function setUAddrs(address _rAdd, address _facAdd) external onlyOwner {
        U_ROUTER = _rAdd;
        U_FACTORY_ADDRESS = _facAdd;

        uRouter = IURouter(U_ROUTER);
        uFactory = IUFactory(U_FACTORY_ADDRESS);
    }

    // Deal with BNB
    fallback() external payable {}

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnb","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"DivDistro","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"LoyaltyDistro","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"ReceivedFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Sold","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DivSpotNftContract","outputs":[{"internalType":"contract IYoloDivSpotNFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FOMOV2_BNB_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FOMO_ROUTER_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KeeperContract","outputs":[{"internalType":"contract IKeeper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LP_GROWER_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LoyaltyNftContract","outputs":[{"internalType":"contract IYoloLoyaltySpotNFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PORTAL_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"U_FACTORY_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"U_ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WBNB_ADDRESS","outputs":[{"internalType":"address","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint256[]","name":"_minReqs","type":"uint256[]"}],"name":"createInitialDivAccounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"determineFeePhase","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"determineFundDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fomoFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFomoFund1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLoyaltyMintPrice","outputs":[{"internalType":"uint256","name":"bnb","type":"uint256"},{"internalType":"uint256","name":"yolo","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinNftAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextDivBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextLoyalBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextLoyaltyMintPriceInTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"initialMinBnbforDiv","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDivRewBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLoyRewBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLoyaltyMintPriceBnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpLockFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrationEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"mintDivSpot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"mintFromSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amtOfTokens","type":"uint256"}],"name":"mintInitialLPTokens","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"receiveFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"scaleAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scaleBasis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scaleDivNftMintPrice","outputs":[{"internalType":"uint256","name":"inTokens","type":"uint256"},{"internalType":"uint256","name":"inBNB","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendDivRewardsToNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendLoyaltyRewardsToNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCd","type":"uint256"}],"name":"setCooldownDiv","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCd","type":"uint256"}],"name":"setCooldownLoyal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setDefaultGwei","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setDivSpotContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setGasRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setKeeperAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setLoyaltyContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setLpGrowerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMinBNBForDiv","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setPortalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFomoTax","type":"uint256"},{"internalType":"uint256","name":"_newLpTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rAdd","type":"address"},{"internalType":"address","name":"_facAdd","type":"address"}],"name":"setUAddrs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTimestamp","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805473c2daeff8cb77be50ffc921c9d4bf9ab3a02ad98d6001600160a01b031991821681179092556008805473a5ba037ec16c45f8ae09e013c1849554c01385f5908316811790915560128054831690931790925560138054909116909117905561019060145560c8601555678ac7230489e800006016556702c68af0bb140000601755617080601e556104b0601f5564012a05f2006022556001602455348015620000b157600080fd5b506040805180820182526009815268596f6c6f566572736560b81b6020808301918252835180850190945260058452642ca7a627ab60d91b908401528151919291620001009160039162000330565b5080516200011690600490602084019062000330565b50505060006200012b6200032c60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c8152306020820152620001b090600c906002620003bf565b506040805180820190915230815273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c6020820152620001e890600d906002620003bf565b5068056bc75e2d631000006018556729a2241af62c000060195569d3c21bcecceda1000000601a55610258601b55601d60209081527f58fbb383d255976380da21baf3336c068b97736497ee71f242fcf18da6f1633a8054600160ff1991821681179092557fd0bb664857ddfdfa28cd8353312ebf5fdc5728c6ce88d2e871d136015f4abbe880548216831790557fb58db76d5f5279cf3d67af7a56c4001393b6d3c969d7414d7c2aae54dfa2c49c80548216831790557f13b3da4622f3a15313ffce2c6b01a6eeafe1a11ff4cb55a09be06e6d2517f13f805482168317905573ad9ffffd4573b642959d3b854027735579555cbc6000527f3e23811005ed8c78e57a8917b7f2e3df43514059029a2344b4af424b12dff7b28054909116909117905542601c556a108b2a2c2802909400000060065543908190556021556200046b565b3390565b8280546200033e906200042e565b90600052602060002090601f016020900481019282620003625760008555620003ad565b82601f106200037d57805160ff1916838001178555620003ad565b82800160010185558215620003ad579182015b82811115620003ad57825182559160200191906001019062000390565b50620003bb92915062000417565b5090565b828054828255906000526020600020908101928215620003ad579160200282015b82811115620003ad57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003e0565b5b80821115620003bb576000815560010162000418565b600181811c908216806200044357607f821691505b602082108114156200046557634e487b7160e01b600052602260045260246000fd5b50919050565b61402a806200047b6000396000f3fe6080604052600436106103cd5760003560e01c80636a62d05b116101fb578063a457c2d711610117578063ce05c4ca116100a5578063e9ac77e911610077578063e9ac77e914610b9a578063ea67791514610bb0578063f2fde38b14610bc5578063fbb026b814610be5578063ffe389f814610c0557005b8063ce05c4ca14610afe578063dd62ed3e14610b1e578063e4296ba514610b64578063e6fd48bc14610b8457005b8063ab16aa99116100e9578063ab16aa9914610a68578063b0278a9514610a88578063befa515814610aa8578063c149bdb114610ac8578063c196eed914610ae857005b8063a457c2d7146109f2578063a5dd468614610a12578063a68e569814610a32578063a9059cbb14610a4857005b80637df9e3e6116101945780638da5cb5b116101665780638da5cb5b1461096957806395d89b4114610987578063997ccf931461099c5780639e1297d1146109b2578063a22d4832146109d257005b80637df9e3e6146108eb5780638827e09b1461090b5780638cd09d501461092b5780638d5f81e21461094b57005b806372e42aa8116101cd57806372e42aa81461088757806379f99bfa1461089c5780637a235fbb146108bc5780637d0b4d60146108d157005b80636a62d05b146108125780636c525d041461082757806370a082311461083c578063715018a61461087257005b80633f3201af116102ea578063517408f6116102835780635ded328d116102555780635ded328d1461077c5780635fedc5251461079c5780636505ac89146107bc578063659e00a8146107dc578063667f6526146107f257005b8063517408f61461070657806351c4770d14610726578063548ccd5f146107465780635c3bb9271461075c57005b806342966c68116102bc57806342966c68146106865780634aaf220c146106a65780634b3a4d2b146106c65780634c590f7c146106e657005b80633f3201af1461061c5780633f9e1c611461063157806340c10f191461064657806341cb87fc1461066657005b806319d8b8c21161036757806323b872dd1161033957806323b872dd146105825780632a64d003146105a25780632fa2b47c146105b8578063313ce567146105e057806339509351146105fc57005b806319d8b8c2146104da5780631a90d2531461051257806320a730bc1461053257806323a06e091461056257005b80630e063d72116103a05780630e063d7214610465578063142ede281461048557806317d157c81461049b57806318160ddd146104c557005b8062cf24b9146103d6578063027863ba146103fe57806306fdde0314610413578063095ea7b31461043557005b366103d457005b005b3480156103e257600080fd5b506103eb610c1a565b6040519081526020015b60405180910390f35b34801561040a57600080fd5b506103d4610c37565b34801561041f57600080fd5b50610428610ea5565b6040516103f59190613e62565b34801561044157600080fd5b50610455610450366004613bd5565b610f37565b60405190151581526020016103f5565b34801561047157600080fd5b506103d4610480366004613b44565b610f4d565b34801561049157600080fd5b506103eb601a5481565b3480156104a757600080fd5b506104b061117d565b604080519283526020830191909152016103f5565b3480156104d157600080fd5b506002546103eb565b3480156104e657600080fd5b506011546104fa906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561051e57600080fd5b50600f546104fa906001600160a01b031681565b34801561053e57600080fd5b506105476112d8565b604080519384526020840192909252908201526060016103f5565b34801561056e57600080fd5b506103d461057d366004613d52565b611398565b34801561058e57600080fd5b5061045561059d366004613b99565b611415565b3480156105ae57600080fd5b506103eb60065481565b3480156105c457600080fd5b506104fa73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c81565b3480156105ec57600080fd5b50604051601281526020016103f5565b34801561060857600080fd5b50610455610617366004613bd5565b6114c6565b34801561062857600080fd5b506104b06114fd565b34801561063d57600080fd5b506103eb611637565b34801561065257600080fd5b506103d4610661366004613bd5565b611649565b34801561067257600080fd5b506103d4610681366004613b44565b6116b1565b34801561069257600080fd5b506103d46106a1366004613d52565b611741565b3480156106b257600080fd5b506103d46106c1366004613d52565b61174e565b3480156106d257600080fd5b506103d46106e1366004613d52565b6117d8565b3480156106f257600080fd5b506008546104fa906001600160a01b031681565b34801561071257600080fd5b506103d4610721366004613b44565b611912565b34801561073257600080fd5b50600a546104fa906001600160a01b031681565b34801561075257600080fd5b506103eb601b5481565b34801561076857600080fd5b506009546104fa906001600160a01b031681565b34801561078857600080fd5b506103d4610797366004613b66565b6119a3565b3480156107a857600080fd5b506103d46107b7366004613d52565b611a14565b3480156107c857600080fd5b506103d46107d7366004613b44565b611a9d565b3480156107e857600080fd5b506103eb60205481565b3480156107fe57600080fd5b506103d461080d366004613d84565b611b2e565b34801561081e57600080fd5b506104b0611bab565b34801561083357600080fd5b506103d4611cba565b34801561084857600080fd5b506103eb610857366004613b44565b6001600160a01b031660009081526020819052604090205490565b34801561087e57600080fd5b506103d4611cf3565b34801561089357600080fd5b506103eb611d67565b3480156108a857600080fd5b506103d46108b7366004613d52565b611ea1565b3480156108c857600080fd5b506103d4611ed0565b3480156108dd57600080fd5b506025546104559060ff1681565b3480156108f757600080fd5b506103d4610906366004613d52565b612120565b34801561091757600080fd5b506103d4610926366004613d52565b61219c565b34801561093757600080fd5b506103d4610946366004613d52565b612264565b34801561095757600080fd5b50600e546001600160a01b03166104fa565b34801561097557600080fd5b506005546001600160a01b03166104fa565b34801561099357600080fd5b506104286122e0565b3480156109a857600080fd5b506103eb60195481565b3480156109be57600080fd5b506103d46109cd366004613b44565b6122ef565b3480156109de57600080fd5b506103d46109ed366004613b44565b612380565b3480156109fe57600080fd5b50610455610a0d366004613bd5565b612471565b348015610a1e57600080fd5b506103d4610a2d366004613b44565b61250c565b348015610a3e57600080fd5b506103eb60165481565b348015610a5457600080fd5b50610455610a63366004613bd5565b61259d565b348015610a7457600080fd5b506007546104fa906001600160a01b031681565b348015610a9457600080fd5b50600e546104fa906001600160a01b031681565b348015610ab457600080fd5b506010546104fa906001600160a01b031681565b348015610ad457600080fd5b506103d4610ae3366004613bff565b6125aa565b348015610af457600080fd5b506103eb60175481565b348015610b0a57600080fd5b506103d4610b19366004613bff565b6127bc565b348015610b2a57600080fd5b506103eb610b39366004613b66565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b7057600080fd5b50600b546104fa906001600160a01b031681565b348015610b9057600080fd5b506103eb601c5481565b348015610ba657600080fd5b506103eb60215481565b348015610bbc57600080fd5b506104b06129bb565b348015610bd157600080fd5b506103d4610be0366004613b44565b612a50565b348015610bf157600080fd5b506103d4610c00366004613b44565b612b3b565b348015610c1157600080fd5b506103eb612bcc565b6000670de0b6b3a7640000600654610c329190613f04565b905090565b6011546001600160a01b03163314610c885760405162461bcd60e51b815260206004820152600f60248201526e2737ba102337b6b7902937baba32b960891b60448201526064015b60405180910390fd5b602454600114610cd25760405162461bcd60e51b815260206004820152601560248201527411549493d48e88105b9d1a4b5499595b9d1c985b9d605a1b6044820152606401610c7f565b6000602455601e546020544391610ce891613eec565b10610d265760405162461bcd60e51b815260206004820152600e60248201526d4e6f742074696d6520796574202160901b6044820152606401610c7f565b6000306001600160a01b031663ea6779156040518163ffffffff1660e01b8152600401604080518083038186803b158015610d6057600080fd5b505afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190613da6565b509050600061271082600654610dae9190613f26565b610db89190613f04565b90508060066000828254610dcc9190613f45565b909155505043602055600954604051636bbc346d60e11b8152600481018390526001600160a01b039091169063d77868da90602401600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b5050600954610e4a92506001600160a01b0316905082612bde565b610e62336018546018610e5d9190613f26565b612bde565b60408051828152602081018490527f73719459aac44394cba1008697dcf1888674ee03337a484f30c472ba8160afa691015b60405180910390a150506001602455565b606060038054610eb490613f5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee090613f5c565b8015610f2d5780601f10610f0257610100808354040283529160200191610f2d565b820191906000526020600020905b815481529060010190602001808311610f1057829003601f168201915b5050505050905090565b6000610f44338484612c57565b50600192915050565b6011546001600160a01b03163314610f995760405162461bcd60e51b815260206004820152600f60248201526e2737ba102337b6b7902937baba32b960891b6044820152606401610c7f565b602454600114610fe35760405162461bcd60e51b815260206004820152601560248201527411549493d48e88105b9d1a4b5499595b9d1c985b9d605a1b6044820152606401610c7f565b6000602481905560408051636a62d05b60e01b815281513092636a62d05b9260048082019391829003018186803b15801561101d57600080fd5b505afa158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190613da6565b506040516370a0823160e01b81526001600160a01b0384166004820152909150819030906370a082319060240160206040518083038186803b15801561109a57600080fd5b505afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d29190613d6b565b1015801561115857506009546040516330ae91d160e21b81526001600160a01b0384811660048301529091169063c2ba47449060240160206040518083038186803b15801561112057600080fd5b505afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111589190613d30565b801561116557503a602254145b15611174576111748282612d7c565b50506001602455565b6012546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906111bd906702c68af0bb14000090600c90600401613e41565b60006040518083038186803b1580156111d557600080fd5b505afa1580156111e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112119190810190613c6b565b60018151811061122357611223613fc8565b60209081029190910101516012546016546040516307c0329d60e21b81526001600160a01b0390921691631f00ca749161126291600c90600401613e41565b60006040518083038186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b69190810190613c6b565b6001815181106112c8576112c8613fc8565b6020026020010151915091509091565b600080600080612710306001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113529190613d6b565b61135e90610bb8613f26565b6113689190613f04565b6006541090508015611387575050601454601554909390925060009150565b5060c8936000935061019092509050565b6005546001600160a01b031633146113c25760405162461bcd60e51b8152600401610c7f90613eb7565b61384081101580156113d75750620151808111155b6114105760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601e55565b6000611422848484612e28565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156114a75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c7f565b6114bb85336114b68685613f45565b612c57565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610f449185906114b6908690613eec565b6000806000600a60009054906101000a90046001600160a01b03166001600160a01b031663bb5657fc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561155057600080fd5b505afa158015611564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115889190613d6b565b60125460405163d06ca61f60e01b815291925082916001600160a01b039091169063d06ca61f906115c0908490600c90600401613e41565b60006040518083038186803b1580156115d857600080fd5b505afa1580156115ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116149190810190613c6b565b60018151811061162657611626613fc8565b602002602001015192509250509091565b6000601f54602154610c329190613eec565b6009546001600160a01b031633146116a35760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920746865204469762063616e206d696e7420210000000000000000006044820152606401610c7f565b6116ad8282612bde565b5050565b6005546001600160a01b031633146116db5760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b03811661171f5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f2041647265737360a81b6044820152606401610c7f565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b61174b33826135ad565b50565b6005546001600160a01b031633146117785760405162461bcd60e51b8152600401610c7f90613eb7565b678ac7230489e80000811015801561179a5750690a968163f0a57b4000008111155b6117d35760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601855565b60255460ff16156118235760405162461bcd60e51b81526020600482015260156024820152744d6967726174696f6e2068617320656e646564202160581b6044820152606401610c7f565b600f546001600160a01b0316331461186d5760405162461bcd60e51b815260206004820152600d60248201526c4f6e6c7920506f7274616c202160981b6044820152606401610c7f565b6118773382612bde565b6118836103e843613eec565b602355600a546118a7906001600160a01b03166a01a784379d99db42000000612bde565b600a60009054906101000a90046001600160a01b03166001600160a01b0316632bd6f7b16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156118f757600080fd5b505af115801561190b573d6000803e3d6000fd5b5050505050565b6005546001600160a01b0316331461193c5760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b0381166119815760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146119cd5760405162461bcd60e51b8152600401610c7f90613eb7565b600780546001600160a01b039384166001600160a01b0319918216811790925560088054939094169281168317909355601280548416909117905560138054909216179055565b6005546001600160a01b03163314611a3e5760405162461bcd60e51b8152600401610c7f90613eb7565b670de0b6b3a76400008110158015611a5f575068056bc75e2d631000008111155b611a985760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601655565b6005546001600160a01b03163314611ac75760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b038116611b0c5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611b585760405162461bcd60e51b8152600401610c7f90613eb7565b6102bc611b658284613eec565b1115611ba05760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601491909155601555565b600080600060165490506a084595161401484a00000060065410611c0e576000601a546019546a084595161401484a000000600654611bea9190613f45565b611bf49190613f26565b611bfe9190613f04565b9050611c0a8183613eec565b9150505b60125460405163d06ca61f60e01b81526001600160a01b039091169063d06ca61f90611c41908490600c90600401613e41565b60006040518083038186803b158015611c5957600080fd5b505afa158015611c6d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c959190810190613c6b565b600181518110611ca757611ca7613fc8565b6020908102919091010151939092509050565b6005546001600160a01b03163314611ce45760405162461bcd60e51b8152600401610c7f90613eb7565b6025805460ff19166001179055565b6005546001600160a01b03163314611d1d5760405162461bcd60e51b8152600401610c7f90613eb7565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b600080600a60009054906101000a90046001600160a01b03166001600160a01b03166365a76e1d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611db857600080fd5b505afa158015611dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df09190613d6b565b6012546040516307c0329d60e21b81529192506000916001600160a01b0390911690631f00ca7490611e29908590600d90600401613e41565b60006040518083038186803b158015611e4157600080fd5b505afa158015611e55573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e7d9190810190613c6b565b600181518110611e8f57611e8f613fc8565b60200260200101519050809250505090565b6005546001600160a01b03163314611ecb5760405162461bcd60e51b8152600401610c7f90613eb7565b602255565b6011546001600160a01b03163314611f1c5760405162461bcd60e51b815260206004820152600f60248201526e2737ba102337b6b7902937baba32b960891b6044820152606401610c7f565b602454600114611f665760405162461bcd60e51b815260206004820152601560248201527411549493d48e88105b9d1a4b5499595b9d1c985b9d605a1b6044820152606401610c7f565b6000602455601f546021544391611f7c91613eec565b10611fba5760405162461bcd60e51b815260206004820152600e60248201526d4e6f742074696d6520796574202160901b6044820152606401610c7f565b6000306001600160a01b031663ea6779156040518163ffffffff1660e01b8152600401604080518083038186803b158015611ff457600080fd5b505afa158015612008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202c9190613da6565b9150506000612710826006546120429190613f26565b61204c9190613f04565b905080600660008282546120609190613f45565b909155505043602155600a54604051636bbc346d60e11b8152600481018390526001600160a01b039091169063d77868da90602401600060405180830381600087803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b5050600a546120de92506001600160a01b0316905082612bde565b6120ea33601854612bde565b60408051828152602081018490527fb42c60ce49e3f5238bb3f3f4412d79af6d5cc67f6dc154b4f07fbcaed922ea4b9101610e94565b6005546001600160a01b0316331461214a5760405162461bcd60e51b8152600401610c7f90613eb7565b610258811015801561215e57506112c08111155b6121975760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601f55565b6009546001600160a01b03163314806121bf5750600a546001600160a01b031633145b806121d457506010546001600160a01b031633145b6122115760405162461bcd60e51b815260206004820152600e60248201526d556e617574686f72697a6564202160901b6044820152606401610c7f565b80600660008282546122239190613eec565b909155505060408051338152602081018390527f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a910160405180910390a150565b6005546001600160a01b0316331461228e5760405162461bcd60e51b8152600401610c7f90613eb7565b61012c81101580156122a257506103e88111155b6122db5760405162461bcd60e51b815260206004820152600a602482015269486172644c696d69747360b01b6044820152606401610c7f565b601b55565b606060048054610eb490613f5c565b6005546001600160a01b031633146123195760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b03811661235e5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314806123a357506009546001600160a01b031633145b806123b85750600a546001600160a01b031633145b806123cd5750600f546001600160a01b031633145b61240a5760405162461bcd60e51b815260206004820152600e60248201526d556e617574686f72697a6564202160901b6044820152606401610c7f565b6001600160a01b03811661244f5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156124f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c7f565b61250233856114b68685613f45565b5060019392505050565b6005546001600160a01b031633146125365760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b03811661257b5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f44338484612e28565b6005546001600160a01b031633146125d45760405162461bcd60e51b8152600401610c7f90613eb7565b60255460ff161561261f5760405162461bcd60e51b81526020600482015260156024820152744d6967726174696f6e2068617320656e646564202160581b6044820152606401610c7f565b8281146126615760405162461bcd60e51b815260206004820152601060248201526f098cadccee8d0409ad2e6e6dac2e8c6d60831b6044820152606401610c7f565b60005b8381101561190b576126c085858381811061268157612681613fc8565b90506020020160208101906126969190613b44565b6009546001600160a01b03168585858181106126b4576126b4613fc8565b905060200201356136fc565b6009546001600160a01b0316630ecaea738686848181106126e3576126e3613fc8565b90506020020160208101906126f89190613b44565b85858581811061270a5761270a613fc8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401602060405180830381600087803b15801561277157600080fd5b505af1158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a99190613d6b565b50806127b481613f97565b915050612664565b6005546001600160a01b031633146127e65760405162461bcd60e51b8152600401610c7f90613eb7565b60255460ff16156128315760405162461bcd60e51b81526020600482015260156024820152744d6967726174696f6e2068617320656e646564202160581b6044820152606401610c7f565b8281146128725760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d0409ad2e6dac2e8c6d608b1b6044820152606401610c7f565b60005b8381101561190b5784848281811061288f5761288f613fc8565b90506020020160208101906128a49190613b44565b6001600160a01b031673af61230352bd52cf9957a2de095b11320c40bd7b6001600160a01b0316146129a95760008585838181106128e4576128e4613fc8565b90506020020160208101906128f99190613b44565b6001600160a01b03161415801561295c575084848281811061291d5761291d613fc8565b90506020020160208101906129329190613b44565b6001600160a01b031673f19a0a7bdabd710fa2c33df432760c9bec1950116001600160a01b031614155b156129a9576129a985858381811061297657612976613fc8565b905060200201602081019061298b9190613b44565b84848481811061299d5761299d613fc8565b905060200201356138d4565b806129b381613f97565b915050612875565b60008042601c54620d2f006129d09190613eec565b11156129e0575060509160039150565b42601c54621a5e006129f29190613eec565b1015612a025750605a9160049150565b42601c546234bc00612a149190613eec565b1015612a24575060649160059150565b42601c54624f1a00612a369190613eec565b1015612a465750606e9160069150565b5060789160079150565b6005546001600160a01b03163314612a7a5760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b038116612adf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c7f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314612b655760405162461bcd60e51b8152600401610c7f90613eb7565b6001600160a01b038116612baa5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610c7f565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000601e54602054610c329190613eec565b600f546001600160a01b03838116911614612c4d576a0422ca8b0a00a4250000008110612c4d5760405162461bcd60e51b815260206004820152601c60248201527f43616e2774206d696e742074686174206d75636820646567656e2021000000006044820152606401610c7f565b6116ad82826138d4565b6001600160a01b038316612cb95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c7f565b6001600160a01b038216612d1a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c7f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600954604051630ecaea7360e01b81526001600160a01b038481166004830152602482018490526000921690630ecaea7390604401602060405180830381600087803b158015612dcb57600080fd5b505af1158015612ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e039190613d6b565b90508015612e2357600954612e239084906001600160a01b0316846136fc565b505050565b6127108111612e795760405162461bcd60e51b815260206004820152601760248201527f4572726f723a2053656e64204d6f726520546f6b656e730000000000000000006044820152606401610c7f565b6001600160a01b038316301480612e9d57506009546001600160a01b038381169116145b80612eb557506009546001600160a01b038481169116145b80612ecd5750600a546001600160a01b038381169116145b80612ee55750600a546001600160a01b038481169116145b80612efd5750600f546001600160a01b038481169116145b80612f1557506010546001600160a01b038481169116145b80612f2d57506011546001600160a01b038381169116145b80612f4557506010546001600160a01b038381169116145b80612f6857506001600160a01b0383166000908152601d602052604090205460ff165b80612f8b57506001600160a01b0382166000908152601d602052604090205460ff165b15612f9b57612e238383836136fc565b600e546001600160a01b038481169116148015612fc557506012546001600160a01b038381169116145b80612fdd57506007546001600160a01b038481169116145b15612fed57612e238383836136fc565b6023544310156131005760125460405163d06ca61f60e01b81526001600160a01b039091169063d06ca61f9061303290670de0b6b3a764000090600c90600401613e41565b60006040518083038186803b15801561304a57600080fd5b505afa15801561305e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130869190810190613c6b565b60018151811061309857613098613fc8565b60200260200101518111156131005760405162461bcd60e51b815260206004820152602860248201527f4d6178205472616e73616374696f6e20416d6f756e7420526561636865643a20604482015267547279206c65737360c01b6064820152608401610c7f565b600e546001600160a01b03838116911614156131af576000612710601b54836131299190613f26565b6131339190613f04565b90508015613153576010546131539085906001600160a01b0316836136fc565b61316784846131628486613f45565b6136fc565b604080516001600160a01b0386168152602081018490527fae92ab4b6f8f401ead768d3273e6bb937a13e39827d19c6376e8fd4512a05d9a910160405180910390a150505050565b6000806000306001600160a01b03166320a730bc6040518163ffffffff1660e01b815260040160606040518083038186803b1580156131ed57600080fd5b505afa158015613201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132259190613dca565b91945092509050600061271061323b8587613f26565b6132459190613f04565b9050600082156132695761271061325c8488613f26565b6132669190613f04565b90505b61327c886132778484613eec565b6135ad565b600084156132b6576127106132918689613f26565b61329b9190613f04565b6010549091506132b6908a906001600160a01b0316836136fc565b6000816132c38585613eec565b6132cd9190613eec565b6132d79089613f45565b905083600660008282546132eb9190613eec565b909155506132fc90508a8a836136fc565b600e546001600160a01b038b8116911614156135a1576012546040516307c0329d60e21b81526000916001600160a01b031690631f00ca7490613346908c90600c90600401613e41565b60006040518083038186803b15801561335e57600080fd5b505afa158015613372573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261339a9190810190613c6b565b6000815181106133ac576133ac613fc8565b6020908102919091010151600a546040516370a0823160e01b81526001600160a01b038d81166004830152929350600092909116906370a082319060240160206040518083038186803b15801561340257600080fd5b505afa158015613416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343a9190613d6b565b11156134ae57600a54604051631219778b60e01b81526001600160a01b038c81166004830152602482018490526044820185905290911690631219778b90606401600060405180830381600087803b15801561349557600080fd5b505af11580156134a9573d6000803e3d6000fd5b505050505b604080516001600160a01b038d168152602081018490529081018290527f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed9060600160405180910390a160175481101580156135825750600a546040516330ae91d160e21b81526001600160a01b038c811660048301529091169063c2ba47449060240160206040518083038186803b15801561354a57600080fd5b505afa15801561355e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135829190613d30565b801561358f57503a602254145b1561359f5761359f8a82846139b3565b505b50505050505050505050565b6001600160a01b03821661360d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c7f565b6001600160a01b038216600090815260208190526040902054818110156136815760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c7f565b61368b8282613f45565b6001600160a01b038416600090815260208190526040812091909155600280548492906136b9908490613f45565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612d6f565b6001600160a01b0383166137605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c7f565b6001600160a01b0382166137c25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c7f565b6001600160a01b0383166000908152602081905260409020548181101561383a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c7f565b6138448282613f45565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061387a908490613eec565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138c691815260200190565b60405180910390a350505050565b6001600160a01b03821661392a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c7f565b806002600082825461393c9190613eec565b90915550506001600160a01b03821660009081526020819052604081208054839290613969908490613eec565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600a5460408051632ed595ff60e21b815290516000926001600160a01b03169163bb5657fc916004808301926020929190829003018186803b1580156139f857600080fd5b505afa158015613a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a309190613d6b565b9050808310613ad657600a546040516305165da360e41b81526001600160a01b03868116600483015260248201869052604482018590526000921690635165da3090606401602060405180830381600087803b158015613a8f57600080fd5b505af1158015613aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac79190613d6b565b9050801561190b576017829055505b50505050565b80356001600160a01b0381168114613af357600080fd5b919050565b60008083601f840112613b0a57600080fd5b50813567ffffffffffffffff811115613b2257600080fd5b6020830191508360208260051b8501011115613b3d57600080fd5b9250929050565b600060208284031215613b5657600080fd5b613b5f82613adc565b9392505050565b60008060408385031215613b7957600080fd5b613b8283613adc565b9150613b9060208401613adc565b90509250929050565b600080600060608486031215613bae57600080fd5b613bb784613adc565b9250613bc560208501613adc565b9150604084013590509250925092565b60008060408385031215613be857600080fd5b613bf183613adc565b946020939093013593505050565b60008060008060408587031215613c1557600080fd5b843567ffffffffffffffff80821115613c2d57600080fd5b613c3988838901613af8565b90965094506020870135915080821115613c5257600080fd5b50613c5f87828801613af8565b95989497509550505050565b60006020808385031215613c7e57600080fd5b825167ffffffffffffffff80821115613c9657600080fd5b818501915085601f830112613caa57600080fd5b815181811115613cbc57613cbc613fde565b8060051b604051601f19603f83011681018181108582111715613ce157613ce1613fde565b604052828152858101935084860182860187018a1015613d0057600080fd5b600095505b83861015613d23578051855260019590950194938601938601613d05565b5098975050505050505050565b600060208284031215613d4257600080fd5b81518015158114613b5f57600080fd5b600060208284031215613d6457600080fd5b5035919050565b600060208284031215613d7d57600080fd5b5051919050565b60008060408385031215613d9757600080fd5b50508035926020909101359150565b60008060408385031215613db957600080fd5b505080516020909101519092909150565b600080600060608486031215613ddf57600080fd5b8351925060208401519150604084015190509250925092565b6000815480845260208085019450836000528060002060005b83811015613e365781546001600160a01b031687529582019560019182019101613e11565b509495945050505050565b828152604060208201526000613e5a6040830184613df8565b949350505050565b600060208083528351808285015260005b81811015613e8f57858101830151858201604001528201613e73565b81811115613ea1576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115613eff57613eff613fb2565b500190565b600082613f2157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613f4057613f40613fb2565b500290565b600082821015613f5757613f57613fb2565b500390565b600181811c90821680613f7057607f821691505b60208210811415613f9157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613fab57613fab613fb2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212209fcebaa7a5d9dd37fd32270dff8bf0d20d95842f40111b4e581a1a25bf5903da64736f6c63430008050033

Deployed ByteCode Sourcemap

19316:17887:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34085:97;;;;;;;;;;;;;:::i;:::-;;;18524:25:1;;;18512:2;18497:18;34085:97:0;;;;;;;;30504:553;;;;;;;;;;;;;:::i;6323:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8490:169::-;;;;;;;;;;-1:-1:-1;8490:169:0;;;;;:::i;:::-;;:::i;:::-;;;6598:14:1;;6591:22;6573:41;;6561:2;6546:18;8490:169:0;6528:92:1;28537:409:0;;;;;;;;;;-1:-1:-1;28537:409:0;;;;;:::i;:::-;;:::i;20508:25::-;;;;;;;;;;;;;;;;33636:203;;;;;;;;;;;;;:::i;:::-;;;;19076:25:1;;;19132:2;19117:18;;19110:34;;;;19049:18;33636:203:0;19031:119:1;7443:108:0;;;;;;;;;;-1:-1:-1;7531:12:0;;7443:108;;20002:34;;;;;;;;;;-1:-1:-1;20002:34:0;;;;-1:-1:-1;;;;;20002:34:0;;;;;;-1:-1:-1;;;;;5691:55:1;;;5673:74;;5661:2;5646:18;20002:34:0;5628:125:1;19927:29:0;;;;;;;;;;-1:-1:-1;19927:29:0;;;;-1:-1:-1;;;;;19927:29:0;;;28954:308;;;;;;;;;;;;;:::i;:::-;;;;19357:25:1;;;19413:2;19398:18;;19391:34;;;;19441:18;;;19434:34;19345:2;19330:18;28954:308:0;19312:162:1;34826:220:0;;;;;;;;;;-1:-1:-1;34826:220:0;;;;;:::i;:::-;;:::i;9141:422::-;;;;;;;;;;-1:-1:-1;9141:422:0;;;;;:::i;:::-;;:::i;19378:23::-;;;;;;;;;;;;;;;;19597:81;;;;;;;;;;;;19636:42;19597:81;;7285:93;;;;;;;;;;-1:-1:-1;7285:93:0;;7368:2;19621:36:1;;19609:2;19594:18;7285:93:0;19576:87:1;9972:215:0;;;;;;;;;;-1:-1:-1;9972:215:0;;;;;:::i;:::-;;:::i;33178:197::-;;;;;;;;;;;;;:::i;33847:112::-;;;;;;;;;;;;;:::i;32685:189::-;;;;;;;;;;-1:-1:-1;32685:189:0;;;;;:::i;:::-;;:::i;36701:160::-;;;;;;;;;;-1:-1:-1;36701:160:0;;;;;:::i;:::-;;:::i;32586:91::-;;;;;;;;;;-1:-1:-1;32586:91:0;;;;;:::i;:::-;;:::i;35282:161::-;;;;;;;;;;-1:-1:-1;35282:161:0;;;;;:::i;:::-;;:::i;24085:497::-;;;;;;;;;;-1:-1:-1;24085:497:0;;;;;:::i;:::-;;:::i;19513:77::-;;;;;;;;;;-1:-1:-1;19513:77:0;;;;-1:-1:-1;;;;;19513:77:0;;;36364:156;;;;;;;;;;-1:-1:-1;36364:156:0;;;;;:::i;:::-;;:::i;19735:45::-;;;;;;;;;;-1:-1:-1;19735:45:0;;;;-1:-1:-1;;;;;19735:45:0;;;20540:28;;;;;;;;;;;;;;;;19687:41;;;;;;;;;;-1:-1:-1;19687:41:0;;;;-1:-1:-1;;;;;19687:41:0;;;36869:234;;;;;;;;;;-1:-1:-1;36869:234:0;;;;;:::i;:::-;;:::i;34626:192::-;;;;;;;;;;-1:-1:-1;34626:192:0;;;;;:::i;:::-;;:::i;36195:161::-;;;;;;;;;;-1:-1:-1;36195:161:0;;;;;:::i;:::-;;:::i;20775:27::-;;;;;;;;;;;;;;;;34415:203;;;;;;;;;;-1:-1:-1;34415:203:0;;;;;:::i;:::-;;:::i;31650:552::-;;;;;;;;;;;;;:::i;24590:85::-;;;;;;;;;;;;;:::i;7614:127::-;;;;;;;;;;-1:-1:-1;7614:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7715:18:0;7688:7;7715:18;;;;;;;;;;;;7614:127;1926:148;;;;;;;;;;;;;:::i;33383:245::-;;;;;;;;;;;;;:::i;34316:91::-;;;;;;;;;;-1:-1:-1;34316:91:0;;;;;:::i;:::-;;:::i;31076:566::-;;;;;;;;;;;;;:::i;22839:26::-;;;;;;;;;;-1:-1:-1;22839:26:0;;;;;;;;35054:220;;;;;;;;;;-1:-1:-1;35054:220:0;;;;;:::i;:::-;;:::i;32210:345::-;;;;;;;;;;-1:-1:-1;32210:345:0;;;;;:::i;:::-;;:::i;35451:161::-;;;;;;;;;;-1:-1:-1;35451:161:0;;;;;:::i;:::-;;:::i;34190:99::-;;;;;;;;;;-1:-1:-1;34266:15:0;;-1:-1:-1;;;;;34266:15:0;34190:99;;1275:87;;;;;;;;;;-1:-1:-1;1348:6:0;;-1:-1:-1;;;;;1348:6:0;1275:87;;6542:104;;;;;;;;;;;;;:::i;20475:26::-;;;;;;;;;;;;;;;;36008:179;;;;;;;;;;-1:-1:-1;36008:179:0;;;;;:::i;:::-;;:::i;35646:163::-;;;;;;;;;;-1:-1:-1;35646:163:0;;;;;:::i;:::-;;:::i;10690:377::-;;;;;;;;;;-1:-1:-1;10690:377:0;;;;;:::i;:::-;;:::i;36528:165::-;;;;;;;;;;-1:-1:-1;36528:165:0;;;;;:::i;:::-;;:::i;20260:41::-;;;;;;;;;;;;;;;;7954:175;;;;;;;;;;-1:-1:-1;7954:175:0;;;;;:::i;:::-;;:::i;19438:68::-;;;;;;;;;;-1:-1:-1;19438:68:0;;;;-1:-1:-1;;;;;19438:68:0;;;19890:30;;;;;;;;;;-1:-1:-1;19890:30:0;;;;-1:-1:-1;;;;;19890:30:0;;;19963:32;;;;;;;;;;-1:-1:-1;19963:32:0;;;;-1:-1:-1;;;;;19963:32:0;;;23532:545;;;;;;;;;;-1:-1:-1;23532:545:0;;;;;:::i;:::-;;:::i;20394:42::-;;;;;;;;;;;;;;;;22874:650;;;;;;;;;;-1:-1:-1;22874:650:0;;;;;:::i;:::-;;:::i;8192:151::-;;;;;;;;;;-1:-1:-1;8192:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8308:18:0;;;8281:7;8308:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8192:151;19787:29;;;;;;;;;;-1:-1:-1;19787:29:0;;;;-1:-1:-1;;;;;19787:29:0;;;20575:26;;;;;;;;;;;;;;;;20809:27;;;;;;;;;;;;;;;;29270:512;;;;;;;;;;;;;:::i;2229:244::-;;;;;;;;;;-1:-1:-1;2229:244:0;;;;;:::i;:::-;;:::i;35817:183::-;;;;;;;;;;-1:-1:-1;35817:183:0;;;;;:::i;:::-;;:::i;33967:110::-;;;;;;;;;;;;;:::i;34085:97::-;34132:7;34170:4;34159:8;;:15;;;;:::i;:::-;34152:22;;34085:97;:::o;30504:553::-;22751:19;;-1:-1:-1;;;;;22751:19:0;22737:10;:33;22729:61;;;;-1:-1:-1;;;22729:61:0;;13699:2:1;22729:61:0;;;13681:21:1;13738:2;13718:18;;;13711:30;-1:-1:-1;;;13757:18:1;;;13750:45;13812:18;;22729:61:0;;;;;;;;;22277:8:::1;;22289:1;22277:13;22269:47;;;::::0;-1:-1:-1;;;22269:47:0;;15222:2:1;22269:47:0::1;::::0;::::1;15204:21:1::0;15261:2;15241:18;;;15234:30;-1:-1:-1;;;15280:18:1;;;15273:51;15341:18;;22269:47:0::1;15194:171:1::0;22269:47:0::1;22338:1;22327:8;:12:::0;30610:10:::2;::::0;30592:15:::2;::::0;30623:12:::2;::::0;30592:28:::2;::::0;::::2;:::i;:::-;:43;30584:70;;;::::0;-1:-1:-1;;;30584:70:0;;16380:2:1;30584:70:0::2;::::0;::::2;16362:21:1::0;16419:2;16399:18;;;16392:30;-1:-1:-1;;;16438:18:1;;;16431:44;16492:18;;30584:70:0::2;16352:164:1::0;30584:70:0::2;30668:15;30688:4;-1:-1:-1::0;;;;;30688:30:0::2;;:32;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30667:53;;;30731:12;30770:5;30757:10;30746:8;;:21;;;;:::i;:::-;:29;;;;:::i;:::-;30731:44;;30800:7;30788:8;;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;30836:12:0::2;30818:15;:30:::0;30861:18:::2;::::0;:42:::2;::::0;-1:-1:-1;;;30861:42:0;;::::2;::::0;::::2;18524:25:1::0;;;-1:-1:-1;;;;;30861:18:0;;::::2;::::0;:33:::2;::::0;18497:18:1;;30861:42:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;30928:18:0::2;::::0;30914:43:::2;::::0;-1:-1:-1;;;;;;30928:18:0::2;::::0;-1:-1:-1;30949:7:0;30914:5:::2;:43::i;:::-;30968:33;30974:10;30986:9;;30998:2;30986:14;;;;:::i;:::-;30968:5;:33::i;:::-;31019:30;::::0;;19076:25:1;;;19132:2;19117:18;;19110:34;;;31019:30:0::2;::::0;19049:18:1;31019:30:0::2;;;;;;;;-1:-1:-1::0;;22373:1:0::1;22362:8;:12:::0;30504:553::o;6323:100::-;6377:13;6410:5;6403:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6323:100;:::o;8490:169::-;8573:4;8590:39;749:10;8613:7;8622:6;8590:8;:39::i;:::-;-1:-1:-1;8647:4:0;8490:169;;;;:::o;28537:409::-;22751:19;;-1:-1:-1;;;;;22751:19:0;22737:10;:33;22729:61;;;;-1:-1:-1;;;22729:61:0;;13699:2:1;22729:61:0;;;13681:21:1;13738:2;13718:18;;;13711:30;-1:-1:-1;;;13757:18:1;;;13750:45;13812:18;;22729:61:0;13671:165:1;22729:61:0;22277:8:::1;;22289:1;22277:13;22269:47;;;::::0;-1:-1:-1;;;22269:47:0;;15222:2:1;22269:47:0::1;::::0;::::1;15204:21:1::0;15261:2;15241:18;;;15234:30;-1:-1:-1;;;15280:18:1;;;15273:51;15341:18;;22269:47:0::1;15194:171:1::0;22269:47:0::1;22338:1;22327:8;:12:::0;;;28670:27:::2;::::0;;-1:-1:-1;;;28670:27:0;;;;:4:::2;::::0;:25:::2;::::0;:27:::2;::::0;;::::2;::::0;;;;;;;:4;:27;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;28728:24:0::2;::::0;-1:-1:-1;;;28728:24:0;;-1:-1:-1;;;;;5691:55:1;;28728:24:0::2;::::0;::::2;5673:74:1::0;28644:53:0;;-1:-1:-1;28644:53:0;;28728:4:::2;::::0;:14:::2;::::0;5646:18:1;;28728:24:0::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;:93;;;;-1:-1:-1::0;28785:18:0::2;::::0;:36:::2;::::0;-1:-1:-1;;;28785:36:0;;-1:-1:-1;;;;;5691:55:1;;;28785:36:0::2;::::0;::::2;5673:74:1::0;28785:18:0;;::::2;::::0;:26:::2;::::0;5646:18:1;;28785:36:0::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28728:136;;;;;28853:11;28838;;:26;28728:136;28710:229;;;28891:36;28904:8;28914:12;28891;:36::i;:::-;-1:-1:-1::0;;22373:1:0::1;22362:8;:12:::0;28537:409::o;33636:203::-;33724:7;;:51;;-1:-1:-1;;;33724:51:0;;33687:7;;;;-1:-1:-1;;;;;33724:7:0;;;;:20;;:51;;20372:4;;33770;;33724:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33724:51:0;;;;;;;;;;;;:::i;:::-;33776:1;33724:54;;;;;;;;:::i;:::-;;;;;;;;;;;33780:7;;33801:19;;33780:47;;-1:-1:-1;;;33780:47:0;;-1:-1:-1;;;;;33780:7:0;;;;:20;;:47;;33822:4;;33780:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33780:47:0;;;;;;;;;;;;:::i;:::-;33828:1;33780:50;;;;;;;;:::i;:::-;;;;;;;33716:115;;;;33636:203;;:::o;28954:308::-;29006:4;29012;29018;29034:26;29102:5;29074:4;-1:-1:-1;;;;;29074:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:25;;29095:4;29074:25;:::i;:::-;:33;;;;:::i;:::-;29063:8;;:44;29034:73;;29124:21;29120:135;;;-1:-1:-1;;29170:8:0;;29180:6;;29170:8;;29180:6;;-1:-1:-1;29188:1:0;;-1:-1:-1;28954:308:0:o;29120:135::-;-1:-1:-1;29231:3:0;;29236:1;;-1:-1:-1;29239:3:0;;-1:-1:-1;28954:308:0;-1:-1:-1;28954:308:0:o;34826:220::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;34946:5:::1;34936:6;:15;;:34;;;;;34965:5;34955:6;:15;;34936:34;34914:94;;;::::0;-1:-1:-1;;;34914:94:0;;13008:2:1;34914:94:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;34914:94:0::1;12980:160:1::0;34914:94:0::1;35019:10;:19:::0;34826:220::o;9141:422::-;9247:4;9264:36;9274:6;9282:9;9293:6;9264:9;:36::i;:::-;-1:-1:-1;;;;;9340:19:0;;9313:24;9340:19;;;:11;:19;;;;;;;;749:10;9340:33;;;;;;;;9392:26;;;;9384:79;;;;-1:-1:-1;;;9384:79:0;;14452:2:1;9384:79:0;;;14434:21:1;14491:2;14471:18;;;14464:30;14530:34;14510:18;;;14503:62;-1:-1:-1;;;14581:18:1;;;14574:38;14629:19;;9384:79:0;14424:230:1;9384:79:0;9474:57;9483:6;749:10;9505:25;9524:6;9505:16;:25;:::i;:::-;9474:8;:57::i;:::-;-1:-1:-1;9551:4:0;;9141:422;-1:-1:-1;;;;9141:422:0:o;9972:215::-;749:10;10060:4;10109:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10109:34:0;;;;;;;;;;10060:4;;10077:80;;10100:7;;10109:47;;10146:10;;10109:47;:::i;33178:197::-;33232:8;33242:9;33263:7;33273:18;;;;;;;;;-1:-1:-1;;;;;33273:18:0;-1:-1:-1;;;;;33273:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33332:7;;:31;;-1:-1:-1;;;33332:31:0;;33263:46;;-1:-1:-1;33263:46:0;;-1:-1:-1;;;;;33332:7:0;;;;:21;;:31;;33263:46;;33358:4;;33332:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33332:31:0;;;;;;;;;;;;:::i;:::-;33364:1;33332:34;;;;;;;;:::i;:::-;;;;;;;33320:47;;;;;33178:197;;:::o;33847:112::-;33899:4;33941:10;;33923:15;;:28;;;;:::i;32685:189::-;32770:18;;-1:-1:-1;;;;;32770:18:0;32793:10;32762:41;32754:77;;;;-1:-1:-1;;;32754:77:0;;9706:2:1;32754:77:0;;;9688:21:1;9745:2;9725:18;;;9718:30;9784:25;9764:18;;;9757:53;9827:18;;32754:77:0;9678:173:1;32754:77:0;32842:24;32848:8;32858:7;32842:5;:24::i;:::-;32685:189;;:::o;36701:160::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36780:19:0;::::1;36772:43;;;::::0;-1:-1:-1;;;36772:43:0;;11570:2:1;36772:43:0::1;::::0;::::1;11552:21:1::0;11609:2;11589:18;;;11582:30;-1:-1:-1;;;11628:18:1;;;11621:41;11679:18;;36772:43:0::1;11542:161:1::0;36772:43:0::1;36826:19;:27:::0;;-1:-1:-1;;;;;;36826:27:0::1;-1:-1:-1::0;;;;;36826:27:0;;;::::1;::::0;;;::::1;::::0;;36701:160::o;32586:91::-;32637:32;32649:10;32661:7;32637:11;:32::i;:::-;32586:91;:::o;35282:161::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;35367:4:::1;35356:7;:15;;:34;;;;;35386:4;35375:7;:15;;35356:34;35348:57;;;::::0;-1:-1:-1;;;35348:57:0;;13008:2:1;35348:57:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;35348:57:0::1;12980:160:1::0;35348:57:0::1;35416:9;:19:::0;35282:161::o;24085:497::-;24165:14;;;;24164:15;24156:49;;;;-1:-1:-1;;;24156:49:0;;12317:2:1;24156:49:0;;;12299:21:1;12356:2;12336:18;;;12329:30;-1:-1:-1;;;12375:18:1;;;12368:51;12436:18;;24156:49:0;12289:171:1;24156:49:0;24238:14;;-1:-1:-1;;;;;24238:14:0;24224:10;:28;24216:54;;;;-1:-1:-1;;;24216:54:0;;17128:2:1;24216:54:0;;;17110:21:1;17167:2;17147:18;;;17140:30;-1:-1:-1;;;17186:18:1;;;17179:43;17239:18;;24216:54:0;17100:163:1;24216:54:0;24281:31;24287:10;24299:12;24281:5;:31::i;:::-;24398:25;24418:4;24398:12;:25;:::i;:::-;24375:20;:48;24508:18;;24494:40;;-1:-1:-1;;;;;24508:18:0;24529:4;24494:5;:40::i;:::-;24545:18;;;;;;;;;-1:-1:-1;;;;;24545:18:0;-1:-1:-1;;;;;24545:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24085:497;:::o;36364:156::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36443:19:0;::::1;36435:44;;;::::0;-1:-1:-1;;;36435:44:0;;12667:2:1;36435:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;36435:44:0::1;12639:162:1::0;36435:44:0::1;36490:14;:22:::0;;-1:-1:-1;;;;;;36490:22:0::1;-1:-1:-1::0;;;;;36490:22:0;;;::::1;::::0;;;::::1;::::0;;36364:156::o;36869:234::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;36950:8:::1;:16:::0;;-1:-1:-1;;;;;36950:16:0;;::::1;-1:-1:-1::0;;;;;;36950:16:0;;::::1;::::0;::::1;::::0;;;36977:17:::1;:27:::0;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;37017:7:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;37056:8:::1;:39:::0;;;;::::1;;::::0;;36869:234::o;34626:192::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;34740:4:::1;34733:3;:11;;:26;;;;;34755:4;34748:3;:11;;34733:26;34725:49;;;::::0;-1:-1:-1;;;34725:49:0;;13008:2:1;34725:49:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;34725:49:0::1;12980:160:1::0;34725:49:0::1;34785:19;:25:::0;34626:192::o;36195:161::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36276:19:0;::::1;36268:44;;;::::0;-1:-1:-1;;;36268:44:0;;12667:2:1;36268:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;36268:44:0::1;12639:162:1::0;36268:44:0::1;36323:17;:25:::0;;-1:-1:-1;;;;;;36323:25:0::1;-1:-1:-1::0;;;;;36323:25:0;;;::::1;::::0;;;::::1;::::0;;36195:161::o;34415:203::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;34530:3:::1;34503:23;34517:9:::0;34503:11;:23:::1;:::i;:::-;:30;;34495:53;;;::::0;-1:-1:-1;;;34495:53:0;;13008:2:1;34495:53:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;34495:53:0::1;12980:160:1::0;34495:53:0::1;34559:8;:22:::0;;;;34592:6:::1;:18:::0;34415:203::o;31650:552::-;31705:16;31723:13;31749:16;31768:19;;31749:38;;31959:4;31947:8;;:16;31943:150;;31980:16;32033:10;;32019:11;;32011:4;32000:8;;:15;;;;:::i;:::-;31999:31;;;;:::i;:::-;:44;;;;:::i;:::-;31980:63;-1:-1:-1;32058:23:0;31980:63;32058:23;;:::i;:::-;;;31965:128;31943:150;32116:7;;:37;;-1:-1:-1;;;32116:37:0;;-1:-1:-1;;;;;32116:7:0;;;;:21;;:37;;32138:8;;32148:4;;32116:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;32116:37:0;;;;;;;;;;;;:::i;:::-;32154:1;32116:40;;;;;;;;:::i;:::-;;;;;;;;;;;;32185:8;;-1:-1:-1;31650:552:0;-1:-1:-1;31650:552:0:o;24590:85::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;24644:14:::1;:21:::0;;-1:-1:-1;;24644:21:0::1;24661:4;24644:21;::::0;;24590:85::o;1926:148::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;2017:6:::1;::::0;1996:40:::1;::::0;2033:1:::1;::::0;-1:-1:-1;;;;;2017:6:0::1;::::0;1996:40:::1;::::0;2033:1;;1996:40:::1;2047:6;:19:::0;;-1:-1:-1;;;;;;2047:19:0::1;::::0;;1926:148::o;33383:245::-;33449:4;33465:13;33481:18;;;;;;;;;-1:-1:-1;;;;;33481:18:0;-1:-1:-1;;;;;33481:38:0;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33548:7;;:41;;-1:-1:-1;;;33548:41:0;;33465:56;;-1:-1:-1;33532:13:0;;-1:-1:-1;;;;;33548:7:0;;;;:20;;:41;;33465:56;;33579:9;;33548:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33548:41:0;;;;;;;;;;;;:::i;:::-;33590:1;33548:44;;;;;;;;:::i;:::-;;;;;;;33532:60;;33612:8;33605:15;;;;33383:245;:::o;34316:91::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;34381:11:::1;:18:::0;34316:91::o;31076:566::-;22751:19;;-1:-1:-1;;;;;22751:19:0;22737:10;:33;22729:61;;;;-1:-1:-1;;;22729:61:0;;13699:2:1;22729:61:0;;;13681:21:1;13738:2;13718:18;;;13711:30;-1:-1:-1;;;13757:18:1;;;13750:45;13812:18;;22729:61:0;13671:165:1;22729:61:0;22277:8:::1;;22289:1;22277:13;22269:47;;;::::0;-1:-1:-1;;;22269:47:0;;15222:2:1;22269:47:0::1;::::0;::::1;15204:21:1::0;15261:2;15241:18;;;15234:30;-1:-1:-1;;;15280:18:1;;;15273:51;15341:18;;22269:47:0::1;15194:171:1::0;22269:47:0::1;22338:1;22327:8;:12:::0;31186:10:::2;::::0;31168:15:::2;::::0;31199:12:::2;::::0;31168:28:::2;::::0;::::2;:::i;:::-;:43;31160:70;;;::::0;-1:-1:-1;;;31160:70:0;;16380:2:1;31160:70:0::2;::::0;::::2;16362:21:1::0;16419:2;16399:18;;;16392:30;-1:-1:-1;;;16438:18:1;;;16431:44;16492:18;;31160:70:0::2;16352:164:1::0;31160:70:0::2;31245:19;31268:4;-1:-1:-1::0;;;;;31268:30:0::2;;:32;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31243:57;;;31311:12;31354:5;31337:14;31326:8;;:25;;;;:::i;:::-;:33;;;;:::i;:::-;31311:48;;31384:7;31372:8;;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;31420:12:0::2;31402:15;:30:::0;31445:18:::2;::::0;:42:::2;::::0;-1:-1:-1;;;31445:42:0;;::::2;::::0;::::2;18524:25:1::0;;;-1:-1:-1;;;;;31445:18:0;;::::2;::::0;:33:::2;::::0;18497:18:1;;31445:42:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;31512:18:0::2;::::0;31498:43:::2;::::0;-1:-1:-1;;;;;;31512:18:0::2;::::0;-1:-1:-1;31533:7:0;31498:5:::2;:43::i;:::-;31552:28;31558:10;31570:9;;31552:5;:28::i;:::-;31596:38;::::0;;19076:25:1;;;19132:2;19117:18;;19110:34;;;31596:38:0::2;::::0;19049:18:1;31596:38:0::2;19031:119:1::0;35054:220:0;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;35177:3:::1;35167:6;:13;;:31;;;;;35194:4;35184:6;:14;;35167:31;35145:91;;;::::0;-1:-1:-1;;;35145:91:0;;13008:2:1;35145:91:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;35145:91:0::1;12980:160:1::0;35145:91:0::1;35247:10;:19:::0;35054:220::o;32210:345::-;32310:18;;-1:-1:-1;;;;;32310:18:0;32288:10;:41;;:99;;-1:-1:-1;32368:18:0;;-1:-1:-1;;;;;32368:18:0;32346:10;:41;32288:99;:147;;;-1:-1:-1;32418:17:0;;-1:-1:-1;;;;;32418:17:0;32404:10;:31;32288:147;32266:201;;;;-1:-1:-1;;;32266:201:0;;8960:2:1;32266:201:0;;;8942:21:1;8999:2;8979:18;;;8972:30;-1:-1:-1;;;9018:18:1;;;9011:44;9072:18;;32266:201:0;8932:164:1;32266:201:0;32490:7;32478:8;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;32513:34:0;;;32527:10;5932:74:1;;6037:2;6022:18;;6015:34;;;32513::0;;5905:18:1;32513:34:0;;;;;;;32210:345;:::o;35451:161::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;35532:3:::1;35522:6;:13;;:31;;;;;35549:4;35539:6;:14;;35522:31;35514:54;;;::::0;-1:-1:-1;;;35514:54:0;;13008:2:1;35514:54:0::1;::::0;::::1;12990:21:1::0;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:40;13116:18;;35514:54:0::1;12980:160:1::0;35514:54:0::1;35579:16;:25:::0;35451:161::o;6542:104::-;6598:13;6631:7;6624:14;;;;;:::i;36008:179::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36089:19:0;::::1;36081:44;;;::::0;-1:-1:-1;;;36081:44:0;;12667:2:1;36081:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;36081:44:0::1;12639:162:1::0;36081:44:0::1;36136:18;:43:::0;;-1:-1:-1;;;;;;36136:43:0::1;-1:-1:-1::0;;;;;36136:43:0;;;::::1;::::0;;;::::1;::::0;;36008:179::o;35646:163::-;1348:6;;-1:-1:-1;;;;;1348:6:0;22451:10;:21;;:79;;-1:-1:-1;22511:18:0;;-1:-1:-1;;;;;22511:18:0;22489:10;:41;22451:79;:137;;;-1:-1:-1;22569:18:0;;-1:-1:-1;;;;;22569:18:0;22547:10;:41;22451:137;:182;;;-1:-1:-1;22619:14:0;;-1:-1:-1;;;;;22619:14:0;22605:10;:28;22451:182;22429:236;;;;-1:-1:-1;;;22429:236:0;;8960:2:1;22429:236:0;;;8942:21:1;8999:2;8979:18;;;8972:30;-1:-1:-1;;;9018:18:1;;;9011:44;9072:18;;22429:236:0;8932:164:1;22429:236:0;-1:-1:-1;;;;;35731:19:0;::::1;35723:44;;;::::0;-1:-1:-1;;;35723:44:0;;12667:2:1;35723:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;35723:44:0::1;12639:162:1::0;35723:44:0::1;35778:15;:23:::0;;-1:-1:-1;;;;;;35778:23:0::1;-1:-1:-1::0;;;;;35778:23:0;;;::::1;::::0;;;::::1;::::0;;35646:163::o;10690:377::-;749:10;10783:4;10827:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10827:34:0;;;;;;;;;;10880:35;;;;10872:85;;;;-1:-1:-1;;;10872:85:0;;17814:2:1;10872:85:0;;;17796:21:1;17853:2;17833:18;;;17826:30;17892:34;17872:18;;;17865:62;-1:-1:-1;;;17943:18:1;;;17936:35;17988:19;;10872:85:0;17786:227:1;10872:85:0;10968:67;749:10;10991:7;11000:34;11019:15;11000:16;:34;:::i;10968:67::-;-1:-1:-1;11055:4:0;;10690:377;-1:-1:-1;;;10690:377:0:o;36528:165::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36607:19:0;::::1;36599:44;;;::::0;-1:-1:-1;;;36599:44:0;;12667:2:1;36599:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;36599:44:0::1;12639:162:1::0;36599:44:0::1;36654:14;:31:::0;;-1:-1:-1;;;;;;36654:31:0::1;-1:-1:-1::0;;;;;36654:31:0;;;::::1;::::0;;;::::1;::::0;;36528:165::o;7954:175::-;8040:4;8057:42;749:10;8081:9;8092:6;8057:9;:42::i;23532:545::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;23661:14:::1;::::0;::::1;;23660:15;23652:49;;;::::0;-1:-1:-1;;;23652:49:0;;12317:2:1;23652:49:0::1;::::0;::::1;12299:21:1::0;12356:2;12336:18;;;12329:30;-1:-1:-1;;;12375:18:1;;;12368:51;12436:18;;23652:49:0::1;12289:171:1::0;23652:49:0::1;23720:35:::0;;::::1;23712:64;;;::::0;-1:-1:-1;;;23712:64:0;;10868:2:1;23712:64:0::1;::::0;::::1;10850:21:1::0;10907:2;10887:18;;;10880:30;-1:-1:-1;;;10926:18:1;;;10919:46;10982:18;;23712:64:0::1;10840:166:1::0;23712:64:0::1;23794:6;23789:281;23806:20:::0;;::::1;23789:281;;;23890:71;23906:9;;23916:1;23906:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23928:18;::::0;-1:-1:-1;;;;;23928:18:0::1;23949:8:::0;;23958:1;23949:11;;::::1;;;;;:::i;:::-;;;;;;;23890:15;:71::i;:::-;24006:18;::::0;-1:-1:-1;;;;;24006:18:0::1;:25;24032:9:::0;;24042:1;24032:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;24046:8;;24055:1;24046:11;;;;;;;:::i;:::-;24006:52;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5950:55:1;;;24006:52:0::1;::::0;::::1;5932:74:1::0;24046:11:0::1;;::::0;;;::::1;;6022:18:1::0;;;6015:34;-1:-1:-1;5905:18:1;;24006:52:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23828:3:0;::::1;::::0;::::1;:::i;:::-;;;;23789:281;;22874:650:::0;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;22998:14:::1;::::0;::::1;;22997:15;22989:49;;;::::0;-1:-1:-1;;;22989:49:0;;12317:2:1;22989:49:0::1;::::0;::::1;12299:21:1::0;12356:2;12336:18;;;12329:30;-1:-1:-1;;;12375:18:1;;;12368:51;12436:18;;22989:49:0::1;12289:171:1::0;22989:49:0::1;23057:35:::0;;::::1;23049:63;;;::::0;-1:-1:-1;;;23049:63:0;;17470:2:1;23049:63:0::1;::::0;::::1;17452:21:1::0;17509:2;17489:18;;;17482:30;-1:-1:-1;;;17528:18:1;;;17521:45;17583:18;;23049:63:0::1;17442:165:1::0;23049:63:0::1;23130:6;23125:392;23142:20:::0;;::::1;23125:392;;;23237:9;;23247:1;23237:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23237:58:0::1;23253:42;-1:-1:-1::0;;;;;23237:58:0::1;;23233:273;;23344:1;23320:9:::0;;23330:1;23320:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23320:26:0::1;;;:88;;;;;23350:9;;23360:1;23350:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23350:58:0::1;23366:42;-1:-1:-1::0;;;;;23350:58:0::1;;;23320:88;23316:175;;;23433:38;23445:9;;23455:1;23445:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23459:8;;23468:1;23459:11;;;;;;;:::i;:::-;;;;;;;23433;:38::i;:::-;23164:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23125:392;;29270:512:::0;29328:4;29334;29382:15;29355:14;;29372:7;29355:24;;;;:::i;:::-;:42;29351:424;;;-1:-1:-1;29422:2:0;;29426:1;;-1:-1:-1;29270:512:0:o;29351:424::-;29477:15;29450:14;;29467:7;29450:24;;;;:::i;:::-;:42;29446:329;;;-1:-1:-1;29517:2:0;;29521:1;;-1:-1:-1;29270:512:0:o;29446:329::-;29572:15;29545:14;;29562:7;29545:24;;;;:::i;:::-;:42;29541:234;;;-1:-1:-1;29612:3:0;;29617:1;;-1:-1:-1;29270:512:0:o;29541:234::-;29668:15;29641:14;;29658:7;29641:24;;;;:::i;:::-;:42;29637:138;;;-1:-1:-1;29708:3:0;;29713:1;;-1:-1:-1;29270:512:0:o;29637:138::-;-1:-1:-1;29756:3:0;;29761:1;;-1:-1:-1;29270:512:0:o;2229:244::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2318:22:0;::::1;2310:73;;;::::0;-1:-1:-1;;;2310:73:0;;10058:2:1;2310:73:0::1;::::0;::::1;10040:21:1::0;10097:2;10077:18;;;10070:30;10136:34;10116:18;;;10109:62;-1:-1:-1;;;10187:18:1;;;10180:36;10233:19;;2310:73:0::1;10030:228:1::0;2310:73:0::1;2420:6;::::0;2399:38:::1;::::0;-1:-1:-1;;;;;2399:38:0;;::::1;::::0;2420:6:::1;::::0;2399:38:::1;::::0;2420:6:::1;::::0;2399:38:::1;2448:6;:17:::0;;-1:-1:-1;;;;;;2448:17:0::1;-1:-1:-1::0;;;;;2448:17:0;;;::::1;::::0;;;::::1;::::0;;2229:244::o;35817:183::-;1348:6;;-1:-1:-1;;;;;1348:6:0;749:10;1495:23;1487:68;;;;-1:-1:-1;;;1487:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;35898:19:0;::::1;35890:44;;;::::0;-1:-1:-1;;;35890:44:0;;12667:2:1;35890:44:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:42;12777:18;;35890:44:0::1;12639:162:1::0;35890:44:0::1;35945:18;:47:::0;;-1:-1:-1;;;;;;35945:47:0::1;-1:-1:-1::0;;;;;35945:47:0;;;::::1;::::0;;;::::1;::::0;;35817:183::o;33967:110::-;34017:4;34059:10;;34041:15;;:28;;;;:::i;32882:260::-;32996:14;;-1:-1:-1;;;;;32984:26:0;;;32996:14;;32984:26;32980:114;;33045:4;33035:7;:14;33027:55;;;;-1:-1:-1;;;33027:55:0;;11213:2:1;33027:55:0;;;11195:21:1;11252:2;11232:18;;;11225:30;11291;11271:18;;;11264:58;11339:18;;33027:55:0;11185:178:1;33027:55:0;33104:30;33116:8;33126:7;33104:11;:30::i;14046:346::-;-1:-1:-1;;;;;14148:19:0;;14140:68;;;;-1:-1:-1;;;14140:68:0;;16723:2:1;14140:68:0;;;16705:21:1;16762:2;16742:18;;;16735:30;16801:34;16781:18;;;16774:62;-1:-1:-1;;;16852:18:1;;;16845:34;16896:19;;14140:68:0;16695:226:1;14140:68:0;-1:-1:-1;;;;;14227:21:0;;14219:68;;;;-1:-1:-1;;;14219:68:0;;10465:2:1;14219:68:0;;;10447:21:1;10504:2;10484:18;;;10477:30;10543:34;10523:18;;;10516:62;-1:-1:-1;;;10594:18:1;;;10587:32;10636:19;;14219:68:0;10437:224:1;14219:68:0;-1:-1:-1;;;;;14300:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14352:32;;18524:25:1;;;14352:32:0;;18497:18:1;14352:32:0;;;;;;;;14046:346;;;:::o;29790:270::-;29884:18;;:48;;-1:-1:-1;;;29884:48:0;;-1:-1:-1;;;;;5950:55:1;;;29884:48:0;;;5932:74:1;6022:18;;;6015:34;;;29871:10:0;;29884:18;;:25;;5905:18:1;;29884:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29871:61;-1:-1:-1;29947:10:0;;29943:110;;30008:18;;29974:67;;29990:8;;-1:-1:-1;;;;;30008:18:0;30029:11;29974:15;:67::i;:::-;29860:200;29790:270;;:::o;24704:3825::-;24814:5;24804:7;:15;24796:51;;;;-1:-1:-1;;;24796:51:0;;13347:2:1;24796:51:0;;;13329:21:1;13386:2;13366:18;;;13359:30;13425:25;13405:18;;;13398:53;13468:18;;24796:51:0;13319:173:1;24796:51:0;-1:-1:-1;;;;;25128:24:0;;25147:4;25128:24;;:75;;-1:-1:-1;25184:18:0;;-1:-1:-1;;;;;25169:34:0;;;25184:18;;25169:34;25128:75;:130;;;-1:-1:-1;25239:18:0;;-1:-1:-1;;;;;25220:38:0;;;25239:18;;25220:38;25128:130;:181;;;-1:-1:-1;25290:18:0;;-1:-1:-1;;;;;25275:34:0;;;25290:18;;25275:34;25128:181;:236;;;-1:-1:-1;25345:18:0;;-1:-1:-1;;;;;25326:38:0;;;25345:18;;25326:38;25128:236;:278;;;-1:-1:-1;25392:14:0;;-1:-1:-1;;;;;25381:25:0;;;25392:14;;25381:25;25128:278;:323;;;-1:-1:-1;25434:17:0;;-1:-1:-1;;;;;25423:28:0;;;25434:17;;25423:28;25128:323;:366;;;-1:-1:-1;25475:19:0;;-1:-1:-1;;;;;25468:26:0;;;25475:19;;25468:26;25128:366;:407;;;-1:-1:-1;25518:17:0;;-1:-1:-1;;;;;25511:24:0;;;25518:17;;25511:24;25128:407;:458;;;-1:-1:-1;;;;;;25552:34:0;;;;;;:25;:34;;;;;;;;25128:458;:505;;;-1:-1:-1;;;;;;25603:30:0;;;;;;:25;:30;;;;;;;;25128:505;25110:621;;;25660:38;25676:7;25685:3;25690:7;25660:15;:38::i;25110:621::-;25831:15;;-1:-1:-1;;;;;25820:26:0;;;25831:15;;25820:26;:53;;;;-1:-1:-1;25865:7:0;;-1:-1:-1;;;;;25850:23:0;;;25865:7;;25850:23;25820:53;:85;;;-1:-1:-1;25896:8:0;;-1:-1:-1;;;;;25877:28:0;;;25896:8;;25877:28;25820:85;25816:177;;;25922:38;25938:7;25947:3;25952:7;25922:15;:38::i;25816:177::-;26117:20;;26102:12;:35;26098:168;;;26173:7;;:33;;-1:-1:-1;;;26173:33:0;;-1:-1:-1;;;;;26173:7:0;;;;:21;;:33;;26195:4;;26201;;26173:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26173:33:0;;;;;;;;;;;;:::i;:::-;26207:1;26173:36;;;;;;;;:::i;:::-;;;;;;;26162:7;:47;;26154:100;;;;-1:-1:-1;;;26154:100:0;;14043:2:1;26154:100:0;;;14025:21:1;14082:2;14062:18;;;14055:30;14121:34;14101:18;;;14094:62;-1:-1:-1;;;14172:18:1;;;14165:38;14220:19;;26154:100:0;14015:230:1;26154:100:0;26320:15;;-1:-1:-1;;;;;26313:22:0;;;26320:15;;26313:22;26309:2213;;;26352:16;26400:5;26381:16;;26371:7;:26;;;;:::i;:::-;:34;;;;:::i;:::-;26352:53;-1:-1:-1;26424:15:0;;26420:112;;26485:17;;26460:56;;26476:7;;-1:-1:-1;;;;;26485:17:0;26504:11;26460:15;:56::i;:::-;26546:54;26562:7;26571:3;26577:21;26587:11;26577:7;:21;:::i;:::-;26546:15;:54::i;:::-;26620:22;;;-1:-1:-1;;;;;5950:55:1;;5932:74;;6037:2;6022:18;;6015:34;;;26620:22:0;;5905:18:1;26620:22:0;;;;;;;26337:317;29860:200;29790:270;;:::o;26309:2213::-;26720:19;26741:17;26760:20;26784:4;-1:-1:-1;;;;;26784:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26719:89;;-1:-1:-1;26719:89:0;-1:-1:-1;26719:89:0;-1:-1:-1;26823:21:0;26874:5;26847:24;26719:89;26847:7;:24;:::i;:::-;:32;;;;:::i;:::-;26823:56;-1:-1:-1;26894:17:0;26930:19;;26926:105;;27010:5;26982:25;26992:15;26982:7;:25;:::i;:::-;:33;;;;:::i;:::-;26970:45;;26926:105;27047:47;27059:7;27068:25;27080:13;27068:9;:25;:::i;:::-;27047:11;:47::i;:::-;27111:13;27143:16;;27139:170;;27216:5;27191:22;27201:12;27191:7;:22;:::i;:::-;:30;;;;:::i;:::-;27265:17;;27180:41;;-1:-1:-1;27240:53:0;;27256:7;;-1:-1:-1;;;;;27265:17:0;27180:41;27240:15;:53::i;:::-;27327:16;27385:8;27357:25;27369:13;27357:9;:25;:::i;:::-;:36;;;;:::i;:::-;27346:48;;:7;:48;:::i;:::-;27327:67;;27421:13;27409:8;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;27449:42:0;;-1:-1:-1;27465:7:0;27474:3;27479:11;27449:15;:42::i;:::-;27628:15;;-1:-1:-1;;;;;27617:26:0;;;27628:15;;27617:26;27613:883;;;27687:7;;:35;;-1:-1:-1;;;27687:35:0;;27668:16;;-1:-1:-1;;;;;27687:7:0;;:20;;:35;;27708:7;;27717:4;;27687:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27687:35:0;;;;;;;;;;;;:::i;:::-;27723:1;27687:38;;;;;;;;:::i;:::-;;;;;;;;;;;27791:18;;:33;;-1:-1:-1;;;27791:33:0;;-1:-1:-1;;;;;5691:55:1;;;27791:33:0;;;5673:74:1;27687:38:0;;-1:-1:-1;27827:1:0;;27791:18;;;;:28;;5646:18:1;;27791:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;27787:153;;;27857:18;;:59;;-1:-1:-1;;;27857:59:0;;-1:-1:-1;;;;;6280:55:1;;;27857:59:0;;;6262:74:1;6352:18;;;6345:34;;;6395:18;;;6388:34;;;27857:18:0;;;;:28;;6235:18:1;;27857:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27787:153;27969:38;;;-1:-1:-1;;;;;6280:55:1;;6262:74;;6367:2;6352:18;;6345:34;;;6395:18;;;6388:34;;;27969:38:0;;6250:2:1;6235:18;27969:38:0;;;;;;;28221:23;;28206:11;:38;;:98;;;;-1:-1:-1;28273:18:0;;:31;;-1:-1:-1;;;28273:31:0;;-1:-1:-1;;;;;5691:55:1;;;28273:31:0;;;5673:74:1;28273:18:0;;;;:26;;5646:18:1;;28273:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28206:153;;;;;28348:11;28333;;:26;28206:153;28176:301;;;28410:43;28423:3;28428:11;28441;28410:12;:43::i;:::-;27645:851;27613:883;26660:1862;;;;;;;24704:3825;;;:::o;13114:494::-;-1:-1:-1;;;;;13198:21:0;;13190:67;;;;-1:-1:-1;;;13190:67:0;;15572:2:1;13190:67:0;;;15554:21:1;15611:2;15591:18;;;15584:30;15650:34;15630:18;;;15623:62;-1:-1:-1;;;15701:18:1;;;15694:31;15742:19;;13190:67:0;15544:223:1;13190:67:0;-1:-1:-1;;;;;13357:18:0;;13332:22;13357:18;;;;;;;;;;;13394:24;;;;13386:71;;;;-1:-1:-1;;;13386:71:0;;9303:2:1;13386:71:0;;;9285:21:1;9342:2;9322:18;;;9315:30;9381:34;9361:18;;;9354:62;-1:-1:-1;;;9432:18:1;;;9425:32;9474:19;;13386:71:0;9275:224:1;13386:71:0;13489:23;13506:6;13489:14;:23;:::i;:::-;-1:-1:-1;;;;;13468:18:0;;:9;:18;;;;;;;;;;:44;;;;13523:12;:22;;13539:6;;13468:9;13523:22;;13539:6;;13523:22;:::i;:::-;;;;-1:-1:-1;;13563:37:0;;18524:25:1;;;13589:1:0;;-1:-1:-1;;;;;13563:37:0;;;;;18512:2:1;18497:18;13563:37:0;18479:76:1;11557:604:0;-1:-1:-1;;;;;11663:20:0;;11655:70;;;;-1:-1:-1;;;11655:70:0;;15974:2:1;11655:70:0;;;15956:21:1;16013:2;15993:18;;;15986:30;16052:34;16032:18;;;16025:62;-1:-1:-1;;;16103:18:1;;;16096:35;16148:19;;11655:70:0;15946:227:1;11655:70:0;-1:-1:-1;;;;;11744:23:0;;11736:71;;;;-1:-1:-1;;;11736:71:0;;8556:2:1;11736:71:0;;;8538:21:1;8595:2;8575:18;;;8568:30;8634:34;8614:18;;;8607:62;-1:-1:-1;;;8685:18:1;;;8678:33;8728:19;;11736:71:0;8528:225:1;11736:71:0;-1:-1:-1;;;;;11904:17:0;;11880:21;11904:17;;;;;;;;;;;11940:23;;;;11932:74;;;;-1:-1:-1;;;11932:74:0;;11910:2:1;11932:74:0;;;11892:21:1;11949:2;11929:18;;;11922:30;11988:34;11968:18;;;11961:62;-1:-1:-1;;;12039:18:1;;;12032:36;12085:19;;11932:74:0;11882:228:1;11932:74:0;12037:22;12053:6;12037:13;:22;:::i;:::-;-1:-1:-1;;;;;12017:17:0;;;:9;:17;;;;;;;;;;;:42;;;;12070:20;;;;;;;;:30;;12094:6;;12017:9;12070:30;;12094:6;;12070:30;:::i;:::-;;;;;;;;12135:9;-1:-1:-1;;;;;12118:35:0;12127:6;-1:-1:-1;;;;;12118:35:0;;12146:6;12118:35;;;;18524:25:1;;18512:2;18497:18;;18479:76;12118:35:0;;;;;;;;11644:517;11557:604;;;:::o;12443:338::-;-1:-1:-1;;;;;12527:21:0;;12519:65;;;;-1:-1:-1;;;12519:65:0;;18220:2:1;12519:65:0;;;18202:21:1;18259:2;18239:18;;;18232:30;18298:33;18278:18;;;18271:61;18349:18;;12519:65:0;18192:181:1;12519:65:0;12675:6;12659:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12692:18:0;;:9;:18;;;;;;;;;;:28;;12714:6;;12692:9;:28;;12714:6;;12692:28;:::i;:::-;;;;-1:-1:-1;;12736:37:0;;18524:25:1;;;-1:-1:-1;;;;;12736:37:0;;;12753:1;;12736:37;;18512:2:1;18497:18;12736:37:0;;;;;;;12443:338;;:::o;30068:397::-;30182:18;;:36;;;-1:-1:-1;;;30182:36:0;;;;30168:11;;-1:-1:-1;;;;;30182:18:0;;:34;;:36;;;;;;;;;;;;;;:18;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30168:50;;30251:6;30235:12;:22;30231:227;;30287:18;;:62;;-1:-1:-1;;;30287:62:0;;-1:-1:-1;;;;;6280:55:1;;;30287:62:0;;;6262:74:1;6352:18;;;6345:34;;;6395:18;;;6388:34;;;30274:10:0;;30287:18;;:25;;6235:18:1;;30287:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30274:75;-1:-1:-1;30368:10:0;;30364:83;;30399:23;:32;;;30259:199;30231:227;30157:308;30068:397;;;:::o;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:2;;200:1;197;190:12;111:2;63:147;;;:::o;215:367::-;278:8;288:6;342:3;335:4;327:6;323:17;319:27;309:2;;360:1;357;350:12;309:2;-1:-1:-1;383:20:1;;426:18;415:30;;412:2;;;458:1;455;448:12;412:2;495:4;487:6;483:17;471:29;;555:3;548:4;538:6;535:1;531:14;523:6;519:27;515:38;512:47;509:2;;;572:1;569;562:12;509:2;299:283;;;;;:::o;587:186::-;646:6;699:2;687:9;678:7;674:23;670:32;667:2;;;715:1;712;705:12;667:2;738:29;757:9;738:29;:::i;:::-;728:39;657:116;-1:-1:-1;;;657:116:1:o;778:260::-;846:6;854;907:2;895:9;886:7;882:23;878:32;875:2;;;923:1;920;913:12;875:2;946:29;965:9;946:29;:::i;:::-;936:39;;994:38;1028:2;1017:9;1013:18;994:38;:::i;:::-;984:48;;865:173;;;;;:::o;1043:328::-;1120:6;1128;1136;1189:2;1177:9;1168:7;1164:23;1160:32;1157:2;;;1205:1;1202;1195:12;1157:2;1228:29;1247:9;1228:29;:::i;:::-;1218:39;;1276:38;1310:2;1299:9;1295:18;1276:38;:::i;:::-;1266:48;;1361:2;1350:9;1346:18;1333:32;1323:42;;1147:224;;;;;:::o;1376:254::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1544:29;1563:9;1544:29;:::i;:::-;1534:39;1620:2;1605:18;;;;1592:32;;-1:-1:-1;;;1463:167:1:o;1635:773::-;1757:6;1765;1773;1781;1834:2;1822:9;1813:7;1809:23;1805:32;1802:2;;;1850:1;1847;1840:12;1802:2;1890:9;1877:23;1919:18;1960:2;1952:6;1949:14;1946:2;;;1976:1;1973;1966:12;1946:2;2015:70;2077:7;2068:6;2057:9;2053:22;2015:70;:::i;:::-;2104:8;;-1:-1:-1;1989:96:1;-1:-1:-1;2192:2:1;2177:18;;2164:32;;-1:-1:-1;2208:16:1;;;2205:2;;;2237:1;2234;2227:12;2205:2;;2276:72;2340:7;2329:8;2318:9;2314:24;2276:72;:::i;:::-;1792:616;;;;-1:-1:-1;2367:8:1;-1:-1:-1;;;;1792:616:1:o;2413:1116::-;2508:6;2539:2;2582;2570:9;2561:7;2557:23;2553:32;2550:2;;;2598:1;2595;2588:12;2550:2;2631:9;2625:16;2660:18;2701:2;2693:6;2690:14;2687:2;;;2717:1;2714;2707:12;2687:2;2755:6;2744:9;2740:22;2730:32;;2800:7;2793:4;2789:2;2785:13;2781:27;2771:2;;2822:1;2819;2812:12;2771:2;2851;2845:9;2873:2;2869;2866:10;2863:2;;;2879:18;;:::i;:::-;2925:2;2922:1;2918:10;2957:2;2951:9;3020:2;3016:7;3011:2;3007;3003:11;2999:25;2991:6;2987:38;3075:6;3063:10;3060:22;3055:2;3043:10;3040:18;3037:46;3034:2;;;3086:18;;:::i;:::-;3122:2;3115:22;3172:18;;;3206:15;;;;-1:-1:-1;3241:11:1;;;3271;;;3267:20;;3264:33;-1:-1:-1;3261:2:1;;;3310:1;3307;3300:12;3261:2;3332:1;3323:10;;3342:156;3356:2;3353:1;3350:9;3342:156;;;3413:10;;3401:23;;3374:1;3367:9;;;;;3444:12;;;;3476;;3342:156;;;-1:-1:-1;3517:6:1;2519:1010;-1:-1:-1;;;;;;;;2519:1010:1:o;3534:277::-;3601:6;3654:2;3642:9;3633:7;3629:23;3625:32;3622:2;;;3670:1;3667;3660:12;3622:2;3702:9;3696:16;3755:5;3748:13;3741:21;3734:5;3731:32;3721:2;;3777:1;3774;3767:12;3816:180;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:2;;;3944:1;3941;3934:12;3896:2;-1:-1:-1;3967:23:1;;3886:110;-1:-1:-1;3886:110:1:o;4001:184::-;4071:6;4124:2;4112:9;4103:7;4099:23;4095:32;4092:2;;;4140:1;4137;4130:12;4092:2;-1:-1:-1;4163:16:1;;4082:103;-1:-1:-1;4082:103:1:o;4190:248::-;4258:6;4266;4319:2;4307:9;4298:7;4294:23;4290:32;4287:2;;;4335:1;4332;4325:12;4287:2;-1:-1:-1;;4358:23:1;;;4428:2;4413:18;;;4400:32;;-1:-1:-1;4277:161:1:o;4443:245::-;4522:6;4530;4583:2;4571:9;4562:7;4558:23;4554:32;4551:2;;;4599:1;4596;4589:12;4551:2;-1:-1:-1;;4622:16:1;;4678:2;4663:18;;;4657:25;4622:16;;4657:25;;-1:-1:-1;4541:147:1:o;4693:306::-;4781:6;4789;4797;4850:2;4838:9;4829:7;4825:23;4821:32;4818:2;;;4866:1;4863;4856:12;4818:2;4895:9;4889:16;4879:26;;4945:2;4934:9;4930:18;4924:25;4914:35;;4989:2;4978:9;4974:18;4968:25;4958:35;;4808:191;;;;;:::o;5004:518::-;5065:3;5103:5;5097:12;5130:6;5125:3;5118:19;5156:4;5185:2;5180:3;5176:12;5169:19;;5207:5;5204:1;5197:16;5249:2;5246:1;5236:16;5270:1;5280:217;5294:6;5291:1;5288:13;5280:217;;;5359:13;;-1:-1:-1;;;;;5355:62:1;5343:75;;5438:12;;;;5485:1;5473:14;;;;5309:9;5280:217;;;-1:-1:-1;5513:3:1;;5073:449;-1:-1:-1;;;;;5073:449:1:o;7384:363::-;7614:6;7603:9;7596:25;7657:2;7652;7641:9;7637:18;7630:30;7577:4;7677:64;7737:2;7726:9;7722:18;7714:6;7677:64;:::i;:::-;7669:72;7586:161;-1:-1:-1;;;;7586:161:1:o;7752:597::-;7864:4;7893:2;7922;7911:9;7904:21;7954:6;7948:13;7997:6;7992:2;7981:9;7977:18;7970:34;8022:1;8032:140;8046:6;8043:1;8040:13;8032:140;;;8141:14;;;8137:23;;8131:30;8107:17;;;8126:2;8103:26;8096:66;8061:10;;8032:140;;;8190:6;8187:1;8184:13;8181:2;;;8260:1;8255:2;8246:6;8235:9;8231:22;8227:31;8220:42;8181:2;-1:-1:-1;8333:2:1;8312:15;-1:-1:-1;;8308:29:1;8293:45;;;;8340:2;8289:54;;7873:476;-1:-1:-1;;;7873:476:1:o;14659:356::-;14861:2;14843:21;;;14880:18;;;14873:30;14939:34;14934:2;14919:18;;14912:62;15006:2;14991:18;;14833:182::o;19668:128::-;19708:3;19739:1;19735:6;19732:1;19729:13;19726:2;;;19745:18;;:::i;:::-;-1:-1:-1;19781:9:1;;19716:80::o;19801:217::-;19841:1;19867;19857:2;;19911:10;19906:3;19902:20;19899:1;19892:31;19946:4;19943:1;19936:15;19974:4;19971:1;19964:15;19857:2;-1:-1:-1;20003:9:1;;19847:171::o;20023:168::-;20063:7;20129:1;20125;20121:6;20117:14;20114:1;20111:21;20106:1;20099:9;20092:17;20088:45;20085:2;;;20136:18;;:::i;:::-;-1:-1:-1;20176:9:1;;20075:116::o;20196:125::-;20236:4;20264:1;20261;20258:8;20255:2;;;20269:18;;:::i;:::-;-1:-1:-1;20306:9:1;;20245:76::o;20326:380::-;20405:1;20401:12;;;;20448;;;20469:2;;20523:4;20515:6;20511:17;20501:27;;20469:2;20576;20568:6;20565:14;20545:18;20542:38;20539:2;;;20622:10;20617:3;20613:20;20610:1;20603:31;20657:4;20654:1;20647:15;20685:4;20682:1;20675:15;20539:2;;20381:325;;;:::o;20711:135::-;20750:3;-1:-1:-1;;20771:17:1;;20768:2;;;20791:18;;:::i;:::-;-1:-1:-1;20838:1:1;20827:13;;20758:88::o;20851:127::-;20912:10;20907:3;20903:20;20900:1;20893:31;20943:4;20940:1;20933:15;20967:4;20964:1;20957:15;20983:127;21044:10;21039:3;21035:20;21032:1;21025:31;21075:4;21072:1;21065:15;21099:4;21096:1;21089:15;21115:127;21176:10;21171:3;21167:20;21164:1;21157:31;21207:4;21204:1;21197:15;21231:4;21228:1;21221:15

Swarm Source

ipfs://9fcebaa7a5d9dd37fd32270dff8bf0d20d95842f40111b4e581a1a25bf5903da
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.