Contract 0xd748fa02d3f106238fe1a0fc90fb674697e4216a 1

 

Contract Overview

Balance:
0.000312499999999772 BNB

BNB Value:
$0.19 (@ $594.76/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd2e4444b09ef6ffd82b46c8cdb43751ea9e9ab8d5e451a526bed1af64db600e7Approve129372222021-11-25 5:57:313 days 8 hrs ago0x3b8325a2d6984a3ebd8404609195b6877758cf1c IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0xb05a8932e763a986cdceb15d04bab1ef52850b6f2f44574a87bd76f7aee6e5d1Approve128918572021-11-23 14:10:005 days 29 mins ago0xe4fb33efc0a2d9f659eb1c4c22e9e545b14d8948 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x4e3cb090fb51283e22f8abac3f912f47083af6d3a3c7493900c058e144e7f758Approve128270902021-11-21 6:38:187 days 8 hrs ago0xa9451f552325f48cbb81cc84fbbdbe5571c294cc IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x44c2a1cc1d5239ca1577ddca31179672b1aa4234631b510a6ce7459e003d10d2Approve127406642021-11-18 3:45:2710 days 10 hrs ago0x87460c434dbd09ad59915fd01bdfe5e4768073a7 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000074445
0xf69c83351501856842fa379c45a06409762cfa4fa532bd9c40eccdb9ac91e49aTransfer127174612021-11-17 7:22:3011 days 7 hrs ago0x4512dcd9ab0ae202061615bf7f4ac3a81a136228 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018547
0x1de9be0a0c474843cc9ff8d8ccc6e522c17664af2d294dff70c2cc3ceae1195aTransfer127172892021-11-17 7:12:3611 days 7 hrs ago0x60f90e94d9c126fef56da2859d1551c006378d3b IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018547
0xd6b0f634b2ff7e32f83c39f2cb3db633dcc8ffb862dcae6ede672b973ecba54dTransfer127098392021-11-17 0:22:2011 days 14 hrs ago0xe31e715c7ad87db18e9df291ae0dca6194b70f91 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018529
0x998e96bd8248240b6ab52dea787771518db2fffdac67e2aa1e11a63fe59f5530Approve126929892021-11-16 9:16:3512 days 5 hrs ago0x6e8a395997d7e9bcbd3836495ea016337ee13181 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000074445
0x2485f43b831b03f0a5738eaa30a48e2a6504a0e27552892c3d724228afa98ee3Approve126872382021-11-16 4:17:1312 days 10 hrs ago0x1cfeb93a1477925e41a2a114d738e0e53c10c1d5 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x3a2d7cdf79ea6026faf9f8f37009ffb5a4681b926f04e66684a6df390e860207Transfer126703512021-11-15 13:27:4413 days 1 hr ago0x141e5a241d5e9938befa4afc13c938046e4d66a7 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000222564
0x282af305c03853cb0b1baf753528fc7b8a84d398fd894545be8b20554d69bb44Approve125822692021-11-12 9:18:3516 days 5 hrs ago0x988cd6cbac7504ee2735ac973627e5c2b76d332d IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x02fa88fd77fc870e0588d4062debf280326d502830941703fa835510493b0687Approve125749272021-11-12 3:03:3916 days 11 hrs ago0x70823e0cd6bbd31cabf9a38a48384831b7d73e6a IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000316127
0x57d4a5dd58051fd030a5a9fc4d3e16ab4abb2eb417c2e05884d651b6d5ea1c71Transfer125476852021-11-11 3:33:2417 days 11 hrs ago0x6f2f8ac0efab8acd4071fff48374ec5f2144fa14 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00011023
0x61c12e547be8fe82dc6b8a8eaa3151c5ab46c19501ba121820959eef285a2675Transfer125446722021-11-11 1:02:2417 days 13 hrs ago0xd1b1351f918e2e9bf163ba1b0fcd437c2bda65f7 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018529
0x81a7d197410a7960c752630510564fe0daeb3d2f27479d68ccb4f7171495e81aApprove125351672021-11-10 16:57:3817 days 21 hrs ago0x75b564dd04430200e1bd1f7686bb59e67fe370ef IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000074445
0xb758cf210f112bff09d538806f5c5705cbbea09b01581a51d0d871b97d9fd7b1Approve125074002021-11-09 16:48:4418 days 21 hrs ago0x707f5a512fea8f6ca5c5d6984c037739af964e9b IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x6d591f76720faf275eaae601f11864aec9b2ab0dde1108654cdf3fb36b4d5d6cTransfer124978442021-11-09 8:40:1919 days 5 hrs ago0x5df5865d55e1c219df50744a056314eed753d76c IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018529
0x13d401b7a077fc125d1e37c7621e307c525d6a82cb82abe882c8d55351d57581Transfer124978182021-11-09 8:39:0119 days 6 hrs ago0x5df5865d55e1c219df50744a056314eed753d76c IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018529
0xf147854f2bdddb2deaa0a42d6f0600236d363cdd658ed53d1ca4251845d6fc87Approve124918422021-11-09 3:38:5919 days 11 hrs ago0x9ac77abba97a7d3d7e2043da5cfd2f2d5a0afba0 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0x56d6e32ace8e85ba25823988738bd66cbb8fc14fef2566779302a3d444ea6bbeTransfer124493792021-11-07 15:58:0420 days 22 hrs ago0x68d7428b5a1e169d410fd10833c1d7c0c7faeed6 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018529
0x61f8f3f4a2d02d285b359dd143f52cab14691437303a9a96ad20b10a66d4d0ecApprove124429022021-11-07 10:32:1921 days 4 hrs ago0xfe2c78162bb7ff8a89065613d0b88929c699a9e7 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000225805
0xa9ab92dece2acdc072cda14b638324587fa116d668d3640354be3b535632bdefApprove123649702021-11-04 16:55:4823 days 21 hrs ago0x43b485b5c682726db0236243ba4f4fd3420515d4 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000270966
0x04b089e488306084c5559b252524bdc81644150f9a290b56232b5dde6ed2f2f7Approve123624712021-11-04 14:47:5723 days 23 hrs ago0xf2791c905d2744f1079f4dce252db2a1c23a6d6c IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000127885
0x1ac1c4e53d77b423130f7333438eea409d860256aec38f2828f3a12f85c28401Transfer123583842021-11-04 11:11:2024 days 3 hrs ago0xe745f7e9fd1eb5badf582a0e4a9b825b85b3a928 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.00018547
0x0f3f13c8b641d3b735a01a141dfe25e4837f6a3bb4e48469288521fc0d0ac349Approve123460152021-11-04 0:21:1424 days 14 hrs ago0x736dba3498784d63d75bae45c8eb86cce450c874 IN  0xd748fa02d3f106238fe1a0fc90fb674697e4216a0 BNB0.000074445
[ Download CSV Export 
Latest 24 internal transactions
Parent Txn Hash Block From To Value
0x1d9264d857e1335a973e88f40923e4f87e14a5e133c2032dbe3e0d41d369cc22113946142021-10-01 13:32:5658 days 1 hr ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.3255 BNB
0x7388c28d0747d6f00e3ffc9a049fba97590c51d1d9703db567a91822acb70929113849082021-10-01 5:24:1258 days 9 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.625 BNB
0x0a1e1a8083e4c7c6e58c15797f175dfaa6799d207691e284edc2bfa06a61173b113600682021-09-30 8:28:2859 days 6 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea5.156 BNB
0x7b091886c6864296e1b0b42b985d75b4bc1fe8f08a71ae2731d84babbeae69fc113093962021-09-28 13:51:4561 days 48 mins ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea4.515 BNB
0xa7761273f40840e18420cc25ae1faeb1c5022b924f267f04d1539e0ca47a4ee1113093962021-09-28 13:51:4561 days 48 mins ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea4.515 BNB
0x66641e0f6158a7233670a6c518caf6deb09d1a163935270f0f82fceab053dc9b112972752021-09-28 3:37:2961 days 11 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.6 BNB
0x8249038afae8845ceca1d71cd0639a62195f8d5745819a096b334faf654c89ff112208972021-09-25 11:23:2264 days 3 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea3.115 BNB
0xb70cada1eb769628ce15e3f14fcc03d4734d4208bf3d35867f8ae4d731d2e260106094642021-09-04 2:41:5385 days 11 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea0.965 BNB
0xba1df7deddd19a5c1a0fb247dc71ce86acfe0cd38539e266b6d55cd2d7de7af3106094332021-09-04 2:40:2085 days 11 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea0.000966 BNB
0x4dad1d3828231c0222092c6adaebbc0e36635a63366b5ef876066a51e016035b104654612021-08-30 0:57:5790 days 13 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.8 BNB
0x8999ef830feb6f82075bc24f06bcb8338462eb408778b4d850bf299b188ac191103789812021-08-26 23:36:4793 days 15 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.402 BNB
0xb2565c39c098b2f2f32147733c0c1bfd5242a31b8d3a2ffb17ded8d6e677686d102757642021-08-23 9:09:4897 days 5 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.32 BNB
0x99d7278dc2eb7c12df96ce031bba2696da6ce80515cbb31ae54647055fd7ae10102083962021-08-21 0:45:5299 days 13 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.33 BNB
0x8a0ab03d3937819945f9516496aa04596c11cdfde89d8da389aa1ad7d322aba4101361942021-08-18 12:08:27102 days 2 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.12 BNB
0xba9da3d6f29281321600867d9ab39665267dd9a4845b9e46d5bfa971d8a4de30100081132021-08-14 1:03:51106 days 13 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.62 BNB
0x9750bf05847c836cf57c3d6b5d3f7df8176ffde5e78fccb38792a44f0c613b8599592812021-08-12 7:34:01108 days 7 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.02 BNB
0xa548773223a5893133c9509ebc438bbb4ca149202d9f66200041283ff6ea13d099269232021-08-11 3:31:03109 days 11 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.12 BNB
0x94a96ad6a990e637e3e6281cbfbf681176a355d5e03a81fd78c97778851a3a1498959002021-08-10 1:06:32110 days 13 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.52 BNB
0x1ad991934584125c97baa7679d47a64a06f1118945aa01870ba5bd8f6feab9bb98666222021-08-09 0:15:38111 days 14 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.715 BNB
0xa460dffe1ae94987f77247db9d6f7fb19526af86301afcd2e31bd7fe381ee52c98101292021-08-06 23:53:28113 days 14 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1 BNB
0xbdd3e6501f77f097a73f661706a8b46dd26ed1e6b6e6f6767d9ef74ab597221897287802021-08-04 1:50:35116 days 12 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.756 BNB
0x04ea9f0d66d29acac6a0fd8ede3554fea720d9944e62965524b6a10cd418582996574572021-08-01 11:39:35119 days 3 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea1.9 BNB
0x0456855cfc111fdb8f5e6f867d4bd3cf38322f9c420a1f01a38fcc2caf4130af95902992021-07-30 2:25:58121 days 12 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.01 BNB
0x85d00174c4adc933fcd8ed241ad3c9e4b6ee11d1a1d330e7e557e14b7b11748095348072021-07-28 0:55:18123 days 13 hrs ago 0xd748fa02d3f106238fe1a0fc90fb674697e4216a0x9017e952efe22525b6f3ca2ab37dbbb70ef400ea2.51 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JavaCoin

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

// File: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 { }
}

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol



pragma solidity ^0.8.0;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol



pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor () {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        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;
    }
}

// File: contracts/JavaCoin.sol


pragma solidity ^0.8.0;

contract JavaCoin is ERC20, Ownable {
    uint256 public aSBlock; 
    uint256 public aEBlock; 
    uint256 public aCap; 
    uint256 public aTot; 
    uint256 public aAmt; 
    uint256 public sSBlock; 
    uint256 public sEBlock; 
    uint256 public sCap; 
    uint256 public sTot; 
    uint256 public sChunk; 
    uint256 public sPrice; 
    constructor() ERC20("Java Coin", "JVC") {
        _mint(msg.sender, 8370000*10**decimals());
        _mint(address(this), 10230000*10**decimals());
        startSale(block.number, 999999999, 0,8000*10**decimals(), 2000000000000);
        startAirdrop(block.number,999999999,6*10**decimals(),2000000000000);
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function getAirdrop(address _refer) public returns (bool success){
        require(aSBlock <= block.number && block.number <= aEBlock);
        require(aTot < aCap || aCap == 0);
        aTot ++;
        if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
          _transfer(address(this), _refer, aAmt);
        }
        _transfer(address(this), msg.sender, aAmt);
        return true;
      }

  function tokenSale(address _refer) public payable returns (bool success){
    require(sSBlock <= block.number && block.number <= sEBlock);
    require(sTot < sCap || sCap == 0);
    uint256 _eth = msg.value;
    uint256 _tkns;
    _tkns = (sPrice*_eth) / 1 ether;
    sTot ++;
    if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
      
      _transfer(address(this), _refer, _tkns);
    }
    
    _transfer(address(this), msg.sender, _tkns);
    return true;
  }

  function viewAirdrop() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 DropCap, uint256 DropCount, uint256 DropAmount){
    return(aSBlock, aEBlock, aCap, aTot, aAmt);
  }
  function viewSale() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 SaleCap, uint256 SaleCount, uint256 ChunkSize, uint256 SalePrice){
    return(sSBlock, sEBlock, sCap, sTot, sChunk, sPrice);
  }
  
  function startAirdrop(uint256 _aSBlock, uint256 _aEBlock, uint256 _aAmt, uint256 _aCap) public onlyOwner {
    aSBlock = _aSBlock;
    aEBlock = _aEBlock;
    aAmt = _aAmt;
    aCap = _aCap;
    aTot = 0;
  }
  function startSale(uint256 _sSBlock, uint256 _sEBlock, uint256 _sChunk, uint256 _sPrice, uint256 _sCap) public onlyOwner{
    sSBlock = _sSBlock;
    sEBlock = _sEBlock;
    sChunk = _sChunk;
    sPrice =_sPrice;
    sCap = _sCap;
    sTot = 0;
  }
    
    function clear(uint amount) public onlyOwner {
        address payable _owner = payable(msg.sender);
        _owner.transfer(amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"aAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"clear","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":[{"internalType":"address","name":"_refer","type":"address"}],"name":"getAirdrop","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sChunk","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_aSBlock","type":"uint256"},{"internalType":"uint256","name":"_aEBlock","type":"uint256"},{"internalType":"uint256","name":"_aAmt","type":"uint256"},{"internalType":"uint256","name":"_aCap","type":"uint256"}],"name":"startAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sSBlock","type":"uint256"},{"internalType":"uint256","name":"_sEBlock","type":"uint256"},{"internalType":"uint256","name":"_sChunk","type":"uint256"},{"internalType":"uint256","name":"_sPrice","type":"uint256"},{"internalType":"uint256","name":"_sCap","type":"uint256"}],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_refer","type":"address"}],"name":"tokenSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewAirdrop","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"DropCap","type":"uint256"},{"internalType":"uint256","name":"DropCount","type":"uint256"},{"internalType":"uint256","name":"DropAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSale","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"SaleCap","type":"uint256"},{"internalType":"uint256","name":"SaleCount","type":"uint256"},{"internalType":"uint256","name":"ChunkSize","type":"uint256"},{"internalType":"uint256","name":"SalePrice","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f4a61766120436f696e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4a564300000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200059b565b508060049080519060200190620000af9291906200059b565b5050506000620000c46200027c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a233620001786200028460201b60201c565b600a620001869190620007d4565b627fb75062000196919062000911565b6200028d60201b60201c565b620001e130620001b76200028460201b60201c565b600a620001c59190620007d4565b629c18f0620001d5919062000911565b6200028d60201b60201c565b6200022d43633b9ac9ff6000620001fd6200028460201b60201c565b600a6200020b9190620007d4565b611f406200021a919062000911565b6501d1a94a2000620003f260201b60201c565b6200027643633b9ac9ff620002476200028460201b60201c565b600a620002559190620007d4565b600662000263919062000911565b6501d1a94a2000620004b360201b60201c565b62000a7c565b600033905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000300576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f790620006cc565b60405180910390fd5b62000314600083836200056c60201b60201c565b80600260008282546200032891906200071c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200037f91906200071c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003e69190620006ee565b60405180910390a35050565b620004026200027c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004286200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000481576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200047890620006aa565b60405180910390fd5b84600b8190555083600c8190555082600f819055508160108190555080600d819055506000600e819055505050505050565b620004c36200027c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004e96200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053990620006aa565b60405180910390fd5b836006819055508260078190555081600a8190555080600881905550600060098190555050505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620005a99062000989565b90600052602060002090601f016020900481019282620005cd576000855562000619565b82601f10620005e857805160ff191683800117855562000619565b8280016001018555821562000619579182015b8281111562000618578251825591602001919060010190620005fb565b5b5090506200062891906200062c565b5090565b5b80821115620006475760008160009055506001016200062d565b5090565b60006200065a6020836200070b565b9150620006678262000a2a565b602082019050919050565b600062000681601f836200070b565b91506200068e8262000a53565b602082019050919050565b620006a48162000972565b82525050565b60006020820190508181036000830152620006c5816200064b565b9050919050565b60006020820190508181036000830152620006e78162000672565b9050919050565b600060208201905062000705600083018462000699565b92915050565b600082825260208201905092915050565b6000620007298262000972565b9150620007368362000972565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200076e576200076d620009bf565b5b828201905092915050565b6000808291508390505b6001851115620007cb57808604811115620007a357620007a2620009bf565b5b6001851615620007b35780820291505b8081029050620007c38562000a1d565b945062000783565b94509492505050565b6000620007e18262000972565b9150620007ee836200097c565b92506200081d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000825565b905092915050565b6000826200083757600190506200090a565b816200084757600090506200090a565b81600181146200086057600281146200086b57620008a1565b60019150506200090a565b60ff84111562000880576200087f620009bf565b5b8360020a9150848211156200089a5762000899620009bf565b5b506200090a565b5060208310610133831016604e8410600b8410161715620008db5782820a905083811115620008d557620008d4620009bf565b5b6200090a565b620008ea848484600162000779565b92509050818404811115620009045762000903620009bf565b5b81810290505b9392505050565b60006200091e8262000972565b91506200092b8362000972565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009675762000966620009bf565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620009a257607f821691505b60208210811415620009b957620009b8620009ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6124f48062000a8c6000396000f3fe6080604052600436106101e35760003560e01c80637d17028311610102578063af5f65ee11610095578063d69b197f11610064578063d69b197f1461070a578063dd62ed3e14610739578063f2fde38b14610776578063fc8847121461079f576101e3565b8063af5f65ee14610660578063c0fe1af81461068b578063c465a3db146106b4578063ced4138a146106df576101e3565b80639d5f9dfb116100d15780639d5f9dfb14610590578063a457c2d7146105bb578063a695cb7f146105f8578063a9059cbb14610623576101e3565b80637d170283146104e45780638da5cb5b1461050f578063933fe6601461053a57806395d89b4114610565576101e3565b8063395093511161017a5780636643ef9f116101495780636643ef9f1461043757806370a0823114610467578063715018a6146104a457806376f25a84146104bb576101e3565b806339509351146103745780634a7781d9146103b15780634d1d03d1146103dc57806354aeebe41461040c576101e3565b806318160ddd116101b657806318160ddd146102b85780631dc4f9ea146102e357806323b872dd1461030c578063313ce56714610349576101e3565b8063069f5bdd146101e857806306fdde0314610225578063095ea7b31461025057806315d8f7e41461028d575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190611918565b6107ca565b60405161021c9190611cd6565b60405180910390f35b34801561023157600080fd5b5061023a6108c5565b6040516102479190611cf1565b60405180910390f35b34801561025c57600080fd5b50610277600480360381019061027291906119cc565b610957565b6040516102849190611cd6565b60405180910390f35b34801561029957600080fd5b506102a2610975565b6040516102af9190611e33565b60405180910390f35b3480156102c457600080fd5b506102cd61097b565b6040516102da9190611e33565b60405180910390f35b3480156102ef57600080fd5b5061030a60048036038101906103059190611a94565b610985565b005b34801561031857600080fd5b50610333600480360381019061032e919061197d565b610a33565b6040516103409190611cd6565b60405180910390f35b34801561035557600080fd5b5061035e610b34565b60405161036b9190611f02565b60405180910390f35b34801561038057600080fd5b5061039b600480360381019061039691906119cc565b610b3d565b6040516103a89190611cd6565b60405180910390f35b3480156103bd57600080fd5b506103c6610be9565b6040516103d39190611e33565b60405180910390f35b3480156103e857600080fd5b506103f1610bef565b60405161040396959493929190611ea1565b60405180910390f35b34801561041857600080fd5b50610421610c1e565b60405161042e9190611e33565b60405180910390f35b610451600480360381019061044c9190611918565b610c24565b60405161045e9190611cd6565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190611918565b610d47565b60405161049b9190611e33565b60405180910390f35b3480156104b057600080fd5b506104b9610d8f565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190611a31565b610ecc565b005b3480156104f057600080fd5b506104f9610f72565b6040516105069190611e33565b60405180910390f35b34801561051b57600080fd5b50610524610f78565b6040516105319190611cbb565b60405180910390f35b34801561054657600080fd5b5061054f610fa2565b60405161055c9190611e33565b60405180910390f35b34801561057157600080fd5b5061057a610fa8565b6040516105879190611cf1565b60405180910390f35b34801561059c57600080fd5b506105a561103a565b6040516105b29190611e33565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd91906119cc565b611040565b6040516105ef9190611cd6565b60405180910390f35b34801561060457600080fd5b5061060d611134565b60405161061a9190611e33565b60405180910390f35b34801561062f57600080fd5b5061064a600480360381019061064591906119cc565b61113a565b6040516106579190611cd6565b60405180910390f35b34801561066c57600080fd5b50610675611158565b6040516106829190611e33565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad9190611a08565b61115e565b005b3480156106c057600080fd5b506106c961122a565b6040516106d69190611e33565b60405180910390f35b3480156106eb57600080fd5b506106f4611230565b6040516107019190611e33565b60405180910390f35b34801561071657600080fd5b5061071f611236565b604051610730959493929190611e4e565b60405180910390f35b34801561074557600080fd5b50610760600480360381019061075b9190611941565b61125e565b60405161076d9190611e33565b60405180910390f35b34801561078257600080fd5b5061079d60048036038101906107989190611918565b6112e5565b005b3480156107ab57600080fd5b506107b4611491565b6040516107c19190611e33565b60405180910390f35b600043600654111580156107e057506007544311155b6107e957600080fd5b60085460095410806107fd57506000600854145b61080657600080fd5b6009600081548092919061081990612108565b91905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156108635750600061086083610d47565b14155b801561089c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156108af576108ae3083600a54611497565b5b6108bc3033600a54611497565b60019050919050565b6060600380546108d4906120d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610900906120d6565b801561094d5780601f106109225761010080835404028352916020019161094d565b820191906000526020600020905b81548152906001019060200180831161093057829003601f168201915b5050505050905090565b600061096b610964611716565b848461171e565b6001905092915050565b60065481565b6000600254905090565b61098d611716565b73ffffffffffffffffffffffffffffffffffffffff166109ab610f78565b73ffffffffffffffffffffffffffffffffffffffff1614610a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f890611db3565b60405180910390fd5b84600b8190555083600c8190555082600f819055508160108190555080600d819055506000600e819055505050505050565b6000610a40848484611497565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8b611716565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611d93565b60405180910390fd5b610b2885610b17611716565b8584610b23919061201a565b61171e565b60019150509392505050565b60006012905090565b6000610bdf610b4a611716565b848460016000610b58611716565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bda9190611f39565b61171e565b6001905092915050565b60105481565b600080600080600080600b54600c54600d54600e54600f54601054955095509550955095509550909192939495565b60095481565b600043600b5411158015610c3a5750600c544311155b610c4357600080fd5b600d54600e541080610c5757506000600d54145b610c6057600080fd5b60003490506000670de0b6b3a764000082601054610c7e9190611fc0565b610c889190611f8f565b9050600e6000815480929190610c9d90612108565b91905055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610ce757506000610ce485610d47565b14155b8015610d205750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610d3157610d30308583611497565b5b610d3c303383611497565b600192505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d97611716565b73ffffffffffffffffffffffffffffffffffffffff16610db5610f78565b73ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290611db3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed4611716565b73ffffffffffffffffffffffffffffffffffffffff16610ef2610f78565b73ffffffffffffffffffffffffffffffffffffffff1614610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90611db3565b60405180910390fd5b836006819055508260078190555081600a8190555080600881905550600060098190555050505050565b600e5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060048054610fb7906120d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe3906120d6565b80156110305780601f1061100557610100808354040283529160200191611030565b820191906000526020600020905b81548152906001019060200180831161101357829003601f168201915b5050505050905090565b600f5481565b6000806001600061104f611716565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390611e13565b60405180910390fd5b611129611117611716565b858584611124919061201a565b61171e565b600191505092915050565b60075481565b600061114e611147611716565b8484611497565b6001905092915050565b600d5481565b611166611716565b73ffffffffffffffffffffffffffffffffffffffff16611184610f78565b73ffffffffffffffffffffffffffffffffffffffff16146111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190611db3565b60405180910390fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611225573d6000803e3d6000fd5b505050565b60085481565b600c5481565b6000806000806000600654600754600854600954600a54945094509450945094509091929394565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112ed611716565b73ffffffffffffffffffffffffffffffffffffffff1661130b610f78565b73ffffffffffffffffffffffffffffffffffffffff1614611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890611db3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890611d33565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90611dd3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90611d13565b60405180910390fd5b6115828383836118e9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90611d73565b60405180910390fd5b8181611614919061201a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116a49190611f39565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117089190611e33565b60405180910390a350505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590611df3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f590611d53565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118dc9190611e33565b60405180910390a3505050565b505050565b6000813590506118fd81612490565b92915050565b600081359050611912816124a7565b92915050565b60006020828403121561192a57600080fd5b6000611938848285016118ee565b91505092915050565b6000806040838503121561195457600080fd5b6000611962858286016118ee565b9250506020611973858286016118ee565b9150509250929050565b60008060006060848603121561199257600080fd5b60006119a0868287016118ee565b93505060206119b1868287016118ee565b92505060406119c286828701611903565b9150509250925092565b600080604083850312156119df57600080fd5b60006119ed858286016118ee565b92505060206119fe85828601611903565b9150509250929050565b600060208284031215611a1a57600080fd5b6000611a2884828501611903565b91505092915050565b60008060008060808587031215611a4757600080fd5b6000611a5587828801611903565b9450506020611a6687828801611903565b9350506040611a7787828801611903565b9250506060611a8887828801611903565b91505092959194509250565b600080600080600060a08688031215611aac57600080fd5b6000611aba88828901611903565b9550506020611acb88828901611903565b9450506040611adc88828901611903565b9350506060611aed88828901611903565b9250506080611afe88828901611903565b9150509295509295909350565b611b148161204e565b82525050565b611b2381612060565b82525050565b6000611b3482611f1d565b611b3e8185611f28565b9350611b4e8185602086016120a3565b611b57816121de565b840191505092915050565b6000611b6f602383611f28565b9150611b7a826121ef565b604082019050919050565b6000611b92602683611f28565b9150611b9d8261223e565b604082019050919050565b6000611bb5602283611f28565b9150611bc08261228d565b604082019050919050565b6000611bd8602683611f28565b9150611be3826122dc565b604082019050919050565b6000611bfb602883611f28565b9150611c068261232b565b604082019050919050565b6000611c1e602083611f28565b9150611c298261237a565b602082019050919050565b6000611c41602583611f28565b9150611c4c826123a3565b604082019050919050565b6000611c64602483611f28565b9150611c6f826123f2565b604082019050919050565b6000611c87602583611f28565b9150611c9282612441565b604082019050919050565b611ca68161208c565b82525050565b611cb581612096565b82525050565b6000602082019050611cd06000830184611b0b565b92915050565b6000602082019050611ceb6000830184611b1a565b92915050565b60006020820190508181036000830152611d0b8184611b29565b905092915050565b60006020820190508181036000830152611d2c81611b62565b9050919050565b60006020820190508181036000830152611d4c81611b85565b9050919050565b60006020820190508181036000830152611d6c81611ba8565b9050919050565b60006020820190508181036000830152611d8c81611bcb565b9050919050565b60006020820190508181036000830152611dac81611bee565b9050919050565b60006020820190508181036000830152611dcc81611c11565b9050919050565b60006020820190508181036000830152611dec81611c34565b9050919050565b60006020820190508181036000830152611e0c81611c57565b9050919050565b60006020820190508181036000830152611e2c81611c7a565b9050919050565b6000602082019050611e486000830184611c9d565b92915050565b600060a082019050611e636000830188611c9d565b611e706020830187611c9d565b611e7d6040830186611c9d565b611e8a6060830185611c9d565b611e976080830184611c9d565b9695505050505050565b600060c082019050611eb66000830189611c9d565b611ec36020830188611c9d565b611ed06040830187611c9d565b611edd6060830186611c9d565b611eea6080830185611c9d565b611ef760a0830184611c9d565b979650505050505050565b6000602082019050611f176000830184611cac565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611f448261208c565b9150611f4f8361208c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f8457611f83612151565b5b828201905092915050565b6000611f9a8261208c565b9150611fa58361208c565b925082611fb557611fb4612180565b5b828204905092915050565b6000611fcb8261208c565b9150611fd68361208c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200f5761200e612151565b5b828202905092915050565b60006120258261208c565b91506120308361208c565b92508282101561204357612042612151565b5b828203905092915050565b60006120598261206c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120c15780820151818401526020810190506120a6565b838111156120d0576000848401525b50505050565b600060028204905060018216806120ee57607f821691505b60208210811415612102576121016121af565b5b50919050565b60006121138261208c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561214657612145612151565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6124998161204e565b81146124a457600080fd5b50565b6124b08161208c565b81146124bb57600080fd5b5056fea2646970667358221220087885ab1fbf0b786ff71d688a41fe79e9f9cc6f593c7677052994d248eb0f9464736f6c63430008040033

Deployed ByteCode Sourcemap

21102:2837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21880:461;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6467:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8634:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21145:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7587:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23527:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9285:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21781:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21429:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23085:216;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;21232:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22347:537;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7758:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20484:148;;;;;;;;;;;;;:::i;:::-;;23309:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21373:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19833:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21286:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21400:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10834:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21175:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8098:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21346:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23794:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21205:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21316:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22890:191;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8336:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20787:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21259:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21880:461;21932:12;21975;21964:7;;:23;;:50;;;;;22007:7;;21991:12;:23;;21964:50;21956:59;;;;;;22041:4;;22034;;:11;:24;;;;22057:1;22049:4;;:9;22034:24;22026:33;;;;;;22070:4;;:7;;;;;;;;;:::i;:::-;;;;;;22105:6;22091:20;;:10;:20;;;;:46;;;;;22136:1;22115:17;22125:6;22115:9;:17::i;:::-;:22;;22091:46;:102;;;;;22151:42;22141:52;;:6;:52;;;;22091:102;22088:169;;;22207:38;22225:4;22232:6;22240:4;;22207:9;:38::i;:::-;22088:169;22267:42;22285:4;22292:10;22304:4;;22267:9;:42::i;:::-;22327:4;22320:11;;21880:461;;;:::o;6467:100::-;6521:13;6554:5;6547:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:100;:::o;8634:169::-;8717:4;8734:39;8743:12;:10;:12::i;:::-;8757:7;8766:6;8734:8;:39::i;:::-;8791:4;8784:11;;8634:169;;;;:::o;21145:22::-;;;;:::o;7587:108::-;7648:7;7675:12;;7668:19;;7587:108;:::o;23527:255::-;20064:12;:10;:12::i;:::-;20053:23;;:7;:5;:7::i;:::-;:23;;;20045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23664:8:::1;23654:7;:18;;;;23689:8;23679:7;:18;;;;23713:7;23704:6;:16;;;;23735:7;23727:6;:15;;;;23756:5;23749:4;:12;;;;23775:1;23768:4;:8;;;;23527:255:::0;;;;;:::o;9285:422::-;9391:4;9408:36;9418:6;9426:9;9437:6;9408:9;:36::i;:::-;9457:24;9484:11;:19;9496:6;9484:19;;;;;;;;;;;;;;;:33;9504:12;:10;:12::i;:::-;9484:33;;;;;;;;;;;;;;;;9457:60;;9556:6;9536:16;:26;;9528:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9618:57;9627:6;9635:12;:10;:12::i;:::-;9668:6;9649:16;:25;;;;:::i;:::-;9618:8;:57::i;:::-;9695:4;9688:11;;;9285:422;;;;;:::o;21781:93::-;21839:5;21864:2;21857:9;;21781:93;:::o;10116:215::-;10204:4;10221:80;10230:12;:10;:12::i;:::-;10244:7;10290:10;10253:11;:25;10265:12;:10;:12::i;:::-;10253:25;;;;;;;;;;;;;;;:34;10279:7;10253:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10221:8;:80::i;:::-;10319:4;10312:11;;10116:215;;;;:::o;21429:21::-;;;;:::o;23085:216::-;23125:18;23145:16;23163:15;23180:17;23199;23218;23250:7;;23259;;23268:4;;23274;;23280:6;;23288;;23243:52;;;;;;;;;;;;23085:216;;;;;;:::o;21232:19::-;;;;:::o;22347:537::-;22406:12;22445;22434:7;;:23;;:50;;;;;22477:7;;22461:12;:23;;22434:50;22426:59;;;;;;22507:4;;22500;;:11;:24;;;;22523:1;22515:4;;:9;22500:24;22492:33;;;;;;22532:12;22547:9;22532:24;;22563:13;22607:7;22599:4;22592:6;;:11;;;;:::i;:::-;22591:23;;;;:::i;:::-;22583:31;;22621:4;;:7;;;;;;;;;:::i;:::-;;;;;;22652:6;22638:20;;:10;:20;;;;:46;;;;;22683:1;22662:17;22672:6;22662:9;:17::i;:::-;:22;;22638:46;:102;;;;;22698:42;22688:52;;:6;:52;;;;22638:102;22635:170;;;22758:39;22776:4;22783:6;22791:5;22758:9;:39::i;:::-;22635:170;22817:43;22835:4;22842:10;22854:5;22817:9;:43::i;:::-;22874:4;22867:11;;;;22347:537;;;:::o;7758:127::-;7832:7;7859:9;:18;7869:7;7859:18;;;;;;;;;;;;;;;;7852:25;;7758:127;;;:::o;20484:148::-;20064:12;:10;:12::i;:::-;20053:23;;:7;:5;:7::i;:::-;:23;;;20045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20591:1:::1;20554:40;;20575:6;;;;;;;;;;;20554:40;;;;;;;;;;;;20622:1;20605:6;;:19;;;;;;;;;;;;;;;;;;20484:148::o:0;23309:214::-;20064:12;:10;:12::i;:::-;20053:23;;:7;:5;:7::i;:::-;:23;;;20045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23431:8:::1;23421:7;:18;;;;23456:8;23446:7;:18;;;;23478:5;23471:4;:12;;;;23497:5;23490:4;:12;;;;23516:1;23509:4;:8;;;;23309:214:::0;;;;:::o;21373:19::-;;;;:::o;19833:87::-;19879:7;19906:6;;;;;;;;;;;19899:13;;19833:87;:::o;21286:22::-;;;;:::o;6686:104::-;6742:13;6775:7;6768:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6686:104;:::o;21400:21::-;;;;:::o;10834:377::-;10927:4;10944:24;10971:11;:25;10983:12;:10;:12::i;:::-;10971:25;;;;;;;;;;;;;;;:34;10997:7;10971:34;;;;;;;;;;;;;;;;10944:61;;11044:15;11024:16;:35;;11016:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11112:67;11121:12;:10;:12::i;:::-;11135:7;11163:15;11144:16;:34;;;;:::i;:::-;11112:8;:67::i;:::-;11199:4;11192:11;;;10834:377;;;;:::o;21175:22::-;;;;:::o;8098:175::-;8184:4;8201:42;8211:12;:10;:12::i;:::-;8225:9;8236:6;8201:9;:42::i;:::-;8261:4;8254:11;;8098:175;;;;:::o;21346:19::-;;;;:::o;23794:142::-;20064:12;:10;:12::i;:::-;20053:23;;:7;:5;:7::i;:::-;:23;;;20045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23850:22:::1;23883:10;23850:44;;23905:6;:15;;:23;23921:6;23905:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20124:1;23794:142:::0;:::o;21205:19::-;;;;:::o;21316:22::-;;;;:::o;22890:191::-;22933:18;22953:16;22971:15;22988:17;23007:18;23040:7;;23049;;23058:4;;23064;;23070;;23033:42;;;;;;;;;;22890:191;;;;;:::o;8336:151::-;8425:7;8452:11;:18;8464:5;8452:18;;;;;;;;;;;;;;;:27;8471:7;8452:27;;;;;;;;;;;;;;;;8445:34;;8336:151;;;;:::o;20787:244::-;20064:12;:10;:12::i;:::-;20053:23;;:7;:5;:7::i;:::-;:23;;;20045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20896:1:::1;20876:22;;:8;:22;;;;20868:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20986:8;20957:38;;20978:6;;;;;;;;;;;20957:38;;;;;;;;;;;;21015:8;21006:6;;:17;;;;;;;;;;;;;;;;;;20787:244:::0;:::o;21259:19::-;;;;:::o;11701:604::-;11825:1;11807:20;;:6;:20;;;;11799:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11909:1;11888:23;;:9;:23;;;;11880:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11964:47;11985:6;11993:9;12004:6;11964:20;:47::i;:::-;12024:21;12048:9;:17;12058:6;12048:17;;;;;;;;;;;;;;;;12024:41;;12101:6;12084:13;:23;;12076:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12197:6;12181:13;:22;;;;:::i;:::-;12161:9;:17;12171:6;12161:17;;;;;;;;;;;;;;;:42;;;;12238:6;12214:9;:20;12224:9;12214:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12279:9;12262:35;;12271:6;12262:35;;;12290:6;12262:35;;;;;;:::i;:::-;;;;;;;;11701:604;;;;:::o;4054:98::-;4107:7;4134:10;4127:17;;4054:98;:::o;14190:346::-;14309:1;14292:19;;:5;:19;;;;14284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14390:1;14371:21;;:7;:21;;;;14363:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14474:6;14444:11;:18;14456:5;14444:18;;;;;;;;;;;;;;;:27;14463:7;14444:27;;;;;;;;;;;;;;;:36;;;;14512:7;14496:32;;14505:5;14496:32;;;14521:6;14496:32;;;;;;:::i;:::-;;;;;;;;14190:346;;;:::o;15139:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;633:6;641;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;1055:6;1063;1071;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;1604:6;1612;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;2008:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:698::-;2303:6;2311;2319;2327;2376:3;2364:9;2355:7;2351:23;2347:33;2344:2;;;2393:1;2390;2383:12;2344:2;2436:1;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2407:117;2563:2;2589:53;2634:7;2625:6;2614:9;2610:22;2589:53;:::i;:::-;2579:63;;2534:118;2691:2;2717:53;2762:7;2753:6;2742:9;2738:22;2717:53;:::i;:::-;2707:63;;2662:118;2819:2;2845:53;2890:7;2881:6;2870:9;2866:22;2845:53;:::i;:::-;2835:63;;2790:118;2334:581;;;;;;;:::o;2921:844::-;3016:6;3024;3032;3040;3048;3097:3;3085:9;3076:7;3072:23;3068:33;3065:2;;;3114:1;3111;3104:12;3065:2;3157:1;3182:53;3227:7;3218:6;3207:9;3203:22;3182:53;:::i;:::-;3172:63;;3128:117;3284:2;3310:53;3355:7;3346:6;3335:9;3331:22;3310:53;:::i;:::-;3300:63;;3255:118;3412:2;3438:53;3483:7;3474:6;3463:9;3459:22;3438:53;:::i;:::-;3428:63;;3383:118;3540:2;3566:53;3611:7;3602:6;3591:9;3587:22;3566:53;:::i;:::-;3556:63;;3511:118;3668:3;3695:53;3740:7;3731:6;3720:9;3716:22;3695:53;:::i;:::-;3685:63;;3639:119;3055:710;;;;;;;;:::o;3771:118::-;3858:24;3876:5;3858:24;:::i;:::-;3853:3;3846:37;3836:53;;:::o;3895:109::-;3976:21;3991:5;3976:21;:::i;:::-;3971:3;3964:34;3954:50;;:::o;4010:364::-;4098:3;4126:39;4159:5;4126:39;:::i;:::-;4181:71;4245:6;4240:3;4181:71;:::i;:::-;4174:78;;4261:52;4306:6;4301:3;4294:4;4287:5;4283:16;4261:52;:::i;:::-;4338:29;4360:6;4338:29;:::i;:::-;4333:3;4329:39;4322:46;;4102:272;;;;;:::o;4380:366::-;4522:3;4543:67;4607:2;4602:3;4543:67;:::i;:::-;4536:74;;4619:93;4708:3;4619:93;:::i;:::-;4737:2;4732:3;4728:12;4721:19;;4526:220;;;:::o;4752:366::-;4894:3;4915:67;4979:2;4974:3;4915:67;:::i;:::-;4908:74;;4991:93;5080:3;4991:93;:::i;:::-;5109:2;5104:3;5100:12;5093:19;;4898:220;;;:::o;5124:366::-;5266:3;5287:67;5351:2;5346:3;5287:67;:::i;:::-;5280:74;;5363:93;5452:3;5363:93;:::i;:::-;5481:2;5476:3;5472:12;5465:19;;5270:220;;;:::o;5496:366::-;5638:3;5659:67;5723:2;5718:3;5659:67;:::i;:::-;5652:74;;5735:93;5824:3;5735:93;:::i;:::-;5853:2;5848:3;5844:12;5837:19;;5642:220;;;:::o;5868:366::-;6010:3;6031:67;6095:2;6090:3;6031:67;:::i;:::-;6024:74;;6107:93;6196:3;6107:93;:::i;:::-;6225:2;6220:3;6216:12;6209:19;;6014:220;;;:::o;6240:366::-;6382:3;6403:67;6467:2;6462:3;6403:67;:::i;:::-;6396:74;;6479:93;6568:3;6479:93;:::i;:::-;6597:2;6592:3;6588:12;6581:19;;6386:220;;;:::o;6612:366::-;6754:3;6775:67;6839:2;6834:3;6775:67;:::i;:::-;6768:74;;6851:93;6940:3;6851:93;:::i;:::-;6969:2;6964:3;6960:12;6953:19;;6758:220;;;:::o;6984:366::-;7126:3;7147:67;7211:2;7206:3;7147:67;:::i;:::-;7140:74;;7223:93;7312:3;7223:93;:::i;:::-;7341:2;7336:3;7332:12;7325:19;;7130:220;;;:::o;7356:366::-;7498:3;7519:67;7583:2;7578:3;7519:67;:::i;:::-;7512:74;;7595:93;7684:3;7595:93;:::i;:::-;7713:2;7708:3;7704:12;7697:19;;7502:220;;;:::o;7728:118::-;7815:24;7833:5;7815:24;:::i;:::-;7810:3;7803:37;7793:53;;:::o;7852:112::-;7935:22;7951:5;7935:22;:::i;:::-;7930:3;7923:35;7913:51;;:::o;7970:222::-;8063:4;8101:2;8090:9;8086:18;8078:26;;8114:71;8182:1;8171:9;8167:17;8158:6;8114:71;:::i;:::-;8068:124;;;;:::o;8198:210::-;8285:4;8323:2;8312:9;8308:18;8300:26;;8336:65;8398:1;8387:9;8383:17;8374:6;8336:65;:::i;:::-;8290:118;;;;:::o;8414:313::-;8527:4;8565:2;8554:9;8550:18;8542:26;;8614:9;8608:4;8604:20;8600:1;8589:9;8585:17;8578:47;8642:78;8715:4;8706:6;8642:78;:::i;:::-;8634:86;;8532:195;;;;:::o;8733:419::-;8899:4;8937:2;8926:9;8922:18;8914:26;;8986:9;8980:4;8976:20;8972:1;8961:9;8957:17;8950:47;9014:131;9140:4;9014:131;:::i;:::-;9006:139;;8904:248;;;:::o;9158:419::-;9324:4;9362:2;9351:9;9347:18;9339:26;;9411:9;9405:4;9401:20;9397:1;9386:9;9382:17;9375:47;9439:131;9565:4;9439:131;:::i;:::-;9431:139;;9329:248;;;:::o;9583:419::-;9749:4;9787:2;9776:9;9772:18;9764:26;;9836:9;9830:4;9826:20;9822:1;9811:9;9807:17;9800:47;9864:131;9990:4;9864:131;:::i;:::-;9856:139;;9754:248;;;:::o;10008:419::-;10174:4;10212:2;10201:9;10197:18;10189:26;;10261:9;10255:4;10251:20;10247:1;10236:9;10232:17;10225:47;10289:131;10415:4;10289:131;:::i;:::-;10281:139;;10179:248;;;:::o;10433:419::-;10599:4;10637:2;10626:9;10622:18;10614:26;;10686:9;10680:4;10676:20;10672:1;10661:9;10657:17;10650:47;10714:131;10840:4;10714:131;:::i;:::-;10706:139;;10604:248;;;:::o;10858:419::-;11024:4;11062:2;11051:9;11047:18;11039:26;;11111:9;11105:4;11101:20;11097:1;11086:9;11082:17;11075:47;11139:131;11265:4;11139:131;:::i;:::-;11131:139;;11029:248;;;:::o;11283:419::-;11449:4;11487:2;11476:9;11472:18;11464:26;;11536:9;11530:4;11526:20;11522:1;11511:9;11507:17;11500:47;11564:131;11690:4;11564:131;:::i;:::-;11556:139;;11454:248;;;:::o;11708:419::-;11874:4;11912:2;11901:9;11897:18;11889:26;;11961:9;11955:4;11951:20;11947:1;11936:9;11932:17;11925:47;11989:131;12115:4;11989:131;:::i;:::-;11981:139;;11879:248;;;:::o;12133:419::-;12299:4;12337:2;12326:9;12322:18;12314:26;;12386:9;12380:4;12376:20;12372:1;12361:9;12357:17;12350:47;12414:131;12540:4;12414:131;:::i;:::-;12406:139;;12304:248;;;:::o;12558:222::-;12651:4;12689:2;12678:9;12674:18;12666:26;;12702:71;12770:1;12759:9;12755:17;12746:6;12702:71;:::i;:::-;12656:124;;;;:::o;12786:664::-;12991:4;13029:3;13018:9;13014:19;13006:27;;13043:71;13111:1;13100:9;13096:17;13087:6;13043:71;:::i;:::-;13124:72;13192:2;13181:9;13177:18;13168:6;13124:72;:::i;:::-;13206;13274:2;13263:9;13259:18;13250:6;13206:72;:::i;:::-;13288;13356:2;13345:9;13341:18;13332:6;13288:72;:::i;:::-;13370:73;13438:3;13427:9;13423:19;13414:6;13370:73;:::i;:::-;12996:454;;;;;;;;:::o;13456:775::-;13689:4;13727:3;13716:9;13712:19;13704:27;;13741:71;13809:1;13798:9;13794:17;13785:6;13741:71;:::i;:::-;13822:72;13890:2;13879:9;13875:18;13866:6;13822:72;:::i;:::-;13904;13972:2;13961:9;13957:18;13948:6;13904:72;:::i;:::-;13986;14054:2;14043:9;14039:18;14030:6;13986:72;:::i;:::-;14068:73;14136:3;14125:9;14121:19;14112:6;14068:73;:::i;:::-;14151;14219:3;14208:9;14204:19;14195:6;14151:73;:::i;:::-;13694:537;;;;;;;;;:::o;14237:214::-;14326:4;14364:2;14353:9;14349:18;14341:26;;14377:67;14441:1;14430:9;14426:17;14417:6;14377:67;:::i;:::-;14331:120;;;;:::o;14457:99::-;14509:6;14543:5;14537:12;14527:22;;14516:40;;;:::o;14562:169::-;14646:11;14680:6;14675:3;14668:19;14720:4;14715:3;14711:14;14696:29;;14658:73;;;;:::o;14737:305::-;14777:3;14796:20;14814:1;14796:20;:::i;:::-;14791:25;;14830:20;14848:1;14830:20;:::i;:::-;14825:25;;14984:1;14916:66;14912:74;14909:1;14906:81;14903:2;;;14990:18;;:::i;:::-;14903:2;15034:1;15031;15027:9;15020:16;;14781:261;;;;:::o;15048:185::-;15088:1;15105:20;15123:1;15105:20;:::i;:::-;15100:25;;15139:20;15157:1;15139:20;:::i;:::-;15134:25;;15178:1;15168:2;;15183:18;;:::i;:::-;15168:2;15225:1;15222;15218:9;15213:14;;15090:143;;;;:::o;15239:348::-;15279:7;15302:20;15320:1;15302:20;:::i;:::-;15297:25;;15336:20;15354:1;15336:20;:::i;:::-;15331:25;;15524:1;15456:66;15452:74;15449:1;15446:81;15441:1;15434:9;15427:17;15423:105;15420:2;;;15531:18;;:::i;:::-;15420:2;15579:1;15576;15572:9;15561:20;;15287:300;;;;:::o;15593:191::-;15633:4;15653:20;15671:1;15653:20;:::i;:::-;15648:25;;15687:20;15705:1;15687:20;:::i;:::-;15682:25;;15726:1;15723;15720:8;15717:2;;;15731:18;;:::i;:::-;15717:2;15776:1;15773;15769:9;15761:17;;15638:146;;;;:::o;15790:96::-;15827:7;15856:24;15874:5;15856:24;:::i;:::-;15845:35;;15835:51;;;:::o;15892:90::-;15926:7;15969:5;15962:13;15955:21;15944:32;;15934:48;;;:::o;15988:126::-;16025:7;16065:42;16058:5;16054:54;16043:65;;16033:81;;;:::o;16120:77::-;16157:7;16186:5;16175:16;;16165:32;;;:::o;16203:86::-;16238:7;16278:4;16271:5;16267:16;16256:27;;16246:43;;;:::o;16295:307::-;16363:1;16373:113;16387:6;16384:1;16381:13;16373:113;;;16472:1;16467:3;16463:11;16457:18;16453:1;16448:3;16444:11;16437:39;16409:2;16406:1;16402:10;16397:15;;16373:113;;;16504:6;16501:1;16498:13;16495:2;;;16584:1;16575:6;16570:3;16566:16;16559:27;16495:2;16344:258;;;;:::o;16608:320::-;16652:6;16689:1;16683:4;16679:12;16669:22;;16736:1;16730:4;16726:12;16757:18;16747:2;;16813:4;16805:6;16801:17;16791:27;;16747:2;16875;16867:6;16864:14;16844:18;16841:38;16838:2;;;16894:18;;:::i;:::-;16838:2;16659:269;;;;:::o;16934:233::-;16973:3;16996:24;17014:5;16996:24;:::i;:::-;16987:33;;17042:66;17035:5;17032:77;17029:2;;;17112:18;;:::i;:::-;17029:2;17159:1;17152:5;17148:13;17141:20;;16977:190;;;:::o;17173:180::-;17221:77;17218:1;17211:88;17318:4;17315:1;17308:15;17342:4;17339:1;17332:15;17359:180;17407:77;17404:1;17397:88;17504:4;17501:1;17494:15;17528:4;17525:1;17518:15;17545:180;17593:77;17590:1;17583:88;17690:4;17687:1;17680:15;17714:4;17711:1;17704:15;17731:102;17772:6;17823:2;17819:7;17814:2;17807:5;17803:14;17799:28;17789:38;;17779:54;;;:::o;17839:222::-;17979:34;17975:1;17967:6;17963:14;17956:58;18048:5;18043:2;18035:6;18031:15;18024:30;17945:116;:::o;18067:225::-;18207:34;18203:1;18195:6;18191:14;18184:58;18276:8;18271:2;18263:6;18259:15;18252:33;18173:119;:::o;18298:221::-;18438:34;18434:1;18426:6;18422:14;18415:58;18507:4;18502:2;18494:6;18490:15;18483:29;18404:115;:::o;18525:225::-;18665:34;18661:1;18653:6;18649:14;18642:58;18734:8;18729:2;18721:6;18717:15;18710:33;18631:119;:::o;18756:227::-;18896:34;18892:1;18884:6;18880:14;18873:58;18965:10;18960:2;18952:6;18948:15;18941:35;18862:121;:::o;18989:182::-;19129:34;19125:1;19117:6;19113:14;19106:58;19095:76;:::o;19177:224::-;19317:34;19313:1;19305:6;19301:14;19294:58;19386:7;19381:2;19373:6;19369:15;19362:32;19283:118;:::o;19407:223::-;19547:34;19543:1;19535:6;19531:14;19524:58;19616:6;19611:2;19603:6;19599:15;19592:31;19513:117;:::o;19636:224::-;19776:34;19772:1;19764:6;19760:14;19753:58;19845:7;19840:2;19832:6;19828:15;19821:32;19742:118;:::o;19866:122::-;19939:24;19957:5;19939:24;:::i;:::-;19932:5;19929:35;19919:2;;19978:1;19975;19968:12;19919:2;19909:79;:::o;19994:122::-;20067:24;20085:5;20067:24;:::i;:::-;20060:5;20057:35;20047:2;;20106:1;20103;20096:12;20047:2;20037:79;:::o

Swarm Source

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