Contract 0x717C85c3929660d5025406De41cFD088F21a04f8

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5bff263843c47a1c66bdb76bb14c42c362f19eed437a56c8aa43edb7953f005fPurchase84048582021-06-18 13:18:59171 days 7 hrs ago0x15f4eff854da7d26d02742d839b743d331966bed IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xf69afe1a0cef7a95c38770d37436835d0a86d74da7fff8da7bca83880aa7dc5aPurchase82881652021-06-14 11:05:24175 days 9 hrs ago0xa61a93ec21fd2654d65d5e3256837824be4288f7 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x39d10b2d5befae7361f106737f2fe8310f76b29f8c4e5078c1fcef58aa7c2ebcPurchase82518382021-06-13 4:24:46176 days 16 hrs ago0x8093149a6e6f51c1417ece706d143d1d7e6c219b IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x048439478728ed4a0da49c67c3a4e227e92a8db29bb7ba6b04ebe44d237a7353Purchase82217832021-06-12 3:14:17177 days 17 hrs ago0x491642a6c01835577e457cced181311481bdbb1e IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x249eaaa3c8e7b77fb5eece1e903bf85c82da53cb0eb9d5bd188a1603cf96a334Purchase81732072021-06-10 10:35:05179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x1973a9d9a8627ae74556f15cd7f1045526120aec42d93ea34497b7ab4887953bPurchase81731992021-06-10 10:34:41179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x730757ec4f4c1560d1171474e7070f1d1b3e563da67bf8b52babcdf40c2a24a1Purchase81730822021-06-10 10:28:50179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xe5a4500aeb9be1468bdf7d6f094333671edec56c1698da82c33c677c1294fb27Purchase81730362021-06-10 10:26:32179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x5f2ed869790dfa26925fd992738b008d41079dc6cf0bb90d0d4ba1fe138cbe17Purchase81730362021-06-10 10:26:32179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x7ed3d4d9ecc33208621effdd8c78643c76326f45c63bbfc1292cdd1f8249ec59Purchase81730342021-06-10 10:26:26179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x1535393b15d452696d7d0335443a7d94c300cb1a291d9121cd3e2ab7d02b9b49Purchase81728952021-06-10 10:19:29179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x8d50878c6ae8258ca892a9a1c80647208c1cc7ebb09fe63aadcacddc930a88e9Purchase81728702021-06-10 10:18:14179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x236b9e325742f0a19db01fbb26eaa65f2498df9f0477c43cb0b0a9e65f9ac433Purchase81727462021-06-10 10:12:02179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x1591d0a66871ef085d877178c3156031462cfd84453f5213c1508a1f31f53273Purchase81727032021-06-10 10:09:53179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x5a54af4be0f96ad151857e56bf263972ff51829f94fb9ba9c203e3b72c72d9e4Purchase81726792021-06-10 10:08:41179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x9557b0a5afdcc3deb0de87a83a5a3f447682ea7a6002e738cec346c6df2a7148Purchase81723412021-06-10 9:51:47179 days 10 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x09acd6e666d3c13f0649b27d270845391d9dc0ddb57f76a2a5e57fa207fcd0aePurchase81721412021-06-10 9:41:47179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x2a7c6559193cfb74eeeda01b36e9c86e40c401a1dd65c2f2433dc4f63199bfb1Purchase81719872021-06-10 9:34:05179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xa9183b39effcf16d1e0a1079158c3bded2ad17a75775d6320243620dfdacf191Purchase81719422021-06-10 9:31:50179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xfde18fa8fb1e80acc4bef0ea589811352653415c62266bdf466223c2cba4ca27Purchase81718382021-06-10 9:26:38179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xea8f096eea66f497c4f23132133b744c1c9c45ed452d0774bfde15d2b27116b8Purchase81717912021-06-10 9:24:17179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0x407babca3fa99072105d94e2022a17a3082da46b8bd9de0854f53f8e9a21df13Purchase81717192021-06-10 9:20:41179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xe85a27930292954cbdfdca7813a6472de934d3861b2f5c25d006dc007118a4dbPurchase81716172021-06-10 9:15:35179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xc6503677aaa17128998a8a34568052742cd315b760e5b02b58ef9d585f3f8287Purchase81715072021-06-10 9:10:05179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
0xa12d44517b74c07f8e82777da719a28a16e6d4b787aa09eb630554b43e8a9b7ePurchase81714722021-06-10 9:08:20179 days 11 hrs ago0xa74f531bfafcde1e3e03a6f604ba88afeffbd072 IN  0x717c85c3929660d5025406de41cfd088f21a04f81 BNB0.00011326
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb7371e092b21e308ed4df836a4b75f77d92b894b36736de1b5b815436fe5c06a81552572021-06-09 19:34:24180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x9314501df593b7af61f36825108515a812609798cb187a92916c2f6cf25e9ccd81552432021-06-09 19:33:42180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x549a1082bda50c91136dc3c9f0c8d114332ae8483f7efeb8577d7e1be57edf3381552362021-06-09 19:33:21180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x571ca5a403f7fb4fe44cd8d6206b0a58ca0128af7862dfffafb63f05e2e780f681552262021-06-09 19:32:51180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x75d291fd93aeb66f71c570c29f741de5b7913ec9c55e2e12fac2f9adb491518681552202021-06-09 19:32:33180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x35ea3b735577c13e3afe0181ebc2b05607880e4a39a61e7832513c2e8cd38b8281552082021-06-09 19:31:57180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x53ec7e06e2134cb5a427cb6439a6a80346b5835448c4a7be2688801ff12f764081552012021-06-09 19:31:36180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x8c9f2b0a0aea2e6a74ab7d6fcf99dd6dcd6daf4f1cdcf6a72b1e499faf834f7a81551952021-06-09 19:31:18180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x789e0c57863a205b7e986fe5cabcba9ed8ca8ce94ba8de58cea3ad9435a5d91881551812021-06-09 19:30:36180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0xa5bdb795d594b29cd54a9b874531b4bbb702f5979e3d233114c26b9ac0cedf6481551722021-06-09 19:30:09180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x16dfee0f80a063dbb5d4c7a26bbe2c042148c364cdff7f1a6fad21300541026e81551462021-06-09 19:28:51180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x3cddc06d4ffcd91924e70be2ab378d11e7fe5f98d3cee9131cc982e64a4be61d81551242021-06-09 19:27:45180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0xf540ff25a7137f587610f439d9f2b34cc78f0a587ac51556106ea963cb8dd48a81551082021-06-09 19:26:57180 days 1 hr ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0xda1b867b59412584ae3d76d80a43c498d2700b158315c1caa7e87461927addf681539892021-06-09 18:30:56180 days 2 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x6d74d4dce62d9c65cacf548f4166579a74ef3bc0ebb9d8ce2b2123acb2dfec8981538582021-06-09 18:24:23180 days 2 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f8 PancakeSwap: Router v27 BNB
0x3a0d7a0238b8223f45c04227d372597a689da7c77c838685af27715c5c04a4c981530892021-06-09 17:45:55180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x773f07ddb242177441f879df76620471e1ae05ea0.05 BNB
0x3a0d7a0238b8223f45c04227d372597a689da7c77c838685af27715c5c04a4c981530892021-06-09 17:45:55180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x8bc055bc263ca52f496b232da63fdf989cc352d70.45 BNB
0xfc9060f13ec45c3e221a9bbf8329c7fb00fbe51b82a9cc7e93d23e39a3fbac5081530772021-06-09 17:45:19180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x773f07ddb242177441f879df76620471e1ae05ea0.05 BNB
0xfc9060f13ec45c3e221a9bbf8329c7fb00fbe51b82a9cc7e93d23e39a3fbac5081530772021-06-09 17:45:19180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x8bc055bc263ca52f496b232da63fdf989cc352d70.45 BNB
0xee4f99fcfbbd98e02fb3846292d3a2fe84f6dbadbc691bb5e6e9c623df3e4a0c81528742021-06-09 17:35:10180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x773f07ddb242177441f879df76620471e1ae05ea0.05 BNB
0xee4f99fcfbbd98e02fb3846292d3a2fe84f6dbadbc691bb5e6e9c623df3e4a0c81528742021-06-09 17:35:10180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x8bc055bc263ca52f496b232da63fdf989cc352d70.45 BNB
0x76bc629a86d4f15135785a60f8e56e00f14d81a96bfde3148360f9663cde478a81527802021-06-09 17:30:28180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x773f07ddb242177441f879df76620471e1ae05ea0.05 BNB
0x76bc629a86d4f15135785a60f8e56e00f14d81a96bfde3148360f9663cde478a81527802021-06-09 17:30:28180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x8bc055bc263ca52f496b232da63fdf989cc352d70.45 BNB
0x1a62b07fb8d10e5f5c014e0eedd2e8d23b112646a06a59c10d567ad071fc437781527792021-06-09 17:30:25180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x773f07ddb242177441f879df76620471e1ae05ea0.05 BNB
0x1a62b07fb8d10e5f5c014e0eedd2e8d23b112646a06a59c10d567ad071fc437781527792021-06-09 17:30:25180 days 3 hrs ago 0x717c85c3929660d5025406de41cfd088f21a04f80x8bc055bc263ca52f496b232da63fdf989cc352d70.45 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-26
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.6.12;

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address account) external view returns (uint256);
  function transfer(address recipient, uint256 amount) external returns (bool);
  function allowance(address owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, "SafeMath: addition overflow");

    return c;
  }
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    return sub(a, b, "SafeMath: subtraction overflow");
  }
  function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b <= a, errorMessage);
    uint256 c = a - b;

    return c;
  }
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b, "SafeMath: multiplication overflow");

    return c;
  }
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return div(a, b, "SafeMath: division by zero");
  }
  function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b > 0, errorMessage);
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    return mod(a, b, "SafeMath: modulo by zero");
  }
  function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b != 0, errorMessage);
    return a % b;
  }
}

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

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


library Address {
  /**
  * @dev Returns true if `account` is a contract.
  *
  * [IMPORTANT]
  * ====
  * It is unsafe to assume that an address for which this function returns
  * false is an externally-owned account (EOA) and not a contract.
  *
  * Among others, `isContract` will return false for the following
  * types of addresses:
  *
  *  - an externally-owned account
  *  - a contract in construction
  *  - an address where a contract will be created
  *  - an address where a contract lived, but was destroyed
  * ====
  */
  function isContract(address account) internal view returns (bool) {
    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    // solhint-disable-next-line no-inline-assembly
    assembly { codehash := extcodehash(account) }
    return (codehash != accountHash && codehash != 0x0);
  }

  /**
  * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
  * `recipient`, forwarding all available gas and reverting on errors.
  *
  * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
  * of certain opcodes, possibly making contracts go over the 2300 gas limit
  * imposed by `transfer`, making them unable to receive funds via
  * `transfer`. {sendValue} removes this limitation.
  *
  * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
  *
  * IMPORTANT: because control is transferred to `recipient`, care must be
  * taken to not create reentrancy vulnerabilities. Consider using
  * {ReentrancyGuard} or the
  * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
  */
  function sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, "Address: insufficient balance");

    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{ value: amount }("");
    require(success, "Address: unable to send value, recipient may have reverted");
  }

  /**
  * @dev Performs a Solidity function call using a low level `call`. A
  * plain`call` is an unsafe replacement for a function call: use this
  * function instead.
  *
  * If `target` reverts with a revert reason, it is bubbled up by this
  * function (like regular Solidity function calls).
  *
  * Returns the raw returned data. To convert to the expected return value,
  * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
  *
  * Requirements:
  *
  * - `target` must be a contract.
  * - calling `target` with `data` must not revert.
  *
  * _Available since v3.1._
  */
  function functionCall(address target, bytes memory data) internal returns (bytes memory) {
    return functionCall(target, data, "Address: low-level call failed");
  }

  /**
  * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
  * `errorMessage` as a fallback revert reason when `target` reverts.
  *
  * _Available since v3.1._
  */
  function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
    return _functionCallWithValue(target, data, 0, errorMessage);
  }

  /**
  * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
  * but also transferring `value` wei to `target`.
  *
  * Requirements:
  *
  * - the calling contract must have an ETH balance of at least `value`.
  * - the called Solidity function must be `payable`.
  *
  * _Available since v3.1._
  */
  function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
    return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
  }

  /**
  * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
  * with `errorMessage` as a fallback revert reason when `target` reverts.
  *
  * _Available since v3.1._
  */
  function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
    require(address(this).balance >= value, "Address: insufficient balance for call");
    return _functionCallWithValue(target, data, value, errorMessage);
  }

  function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
    require(isContract(target), "Address: call to non-contract");

    // solhint-disable-next-line avoid-low-level-calls
    (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
    if (success) {
      return returndata;
    } else {
      // Look for revert reason and bubble it up if present
      if (returndata.length > 0) {
        // The easiest way to bubble the revert reason is using memory via assembly

        // solhint-disable-next-line no-inline-assembly
        assembly {
          let returndata_size := mload(returndata)
          revert(add(32, returndata), returndata_size)
        }
      } else {
        revert(errorMessage);
      }
    }
  }
}

/**
* @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.
*/
contract Ownable is Context {
  address private _owner;
  address private _previousOwner;
  uint256 private _lockTime;

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

  /**
  * @dev Initializes the contract setting the deployer as the initial owner.
  */
  constructor () internal {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

  /**
  * @dev Returns the address of the current owner.
  */
  function owner() public view 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;
  }

  function geUnlockTime() public view returns (uint256) {
    return _lockTime;
  }

  //Locks the contract for owner for the amount of time provided
  function lock(uint256 time) public virtual onlyOwner {
    _previousOwner = _owner;
    _owner = address(0);
    _lockTime = now + time;
    emit OwnershipTransferred(_owner, address(0));
  }

  //Unlocks the contract for owner when _lockTime is exceeds
  function unlock() public virtual {
    require(_previousOwner == msg.sender, "You don't have permission to unlock");
    require(now > _lockTime , "Contract is locked until 7 days");
    emit OwnershipTransferred(_owner, _previousOwner);
    _owner = _previousOwner;
  }
}

// pragma solidity >=0.5.0;

interface IUniswapV2Factory {
  event PairCreated(address indexed token0, address indexed token1, address pair, uint);

  function feeTo() external view returns (address);
  function feeToSetter() external view returns (address);

  function getPair(address tokenA, address tokenB) external view returns (address pair);
  function allPairs(uint) external view returns (address pair);
  function allPairsLength() external view returns (uint);

  function createPair(address tokenA, address tokenB) external returns (address pair);

  function setFeeTo(address) external;
  function setFeeToSetter(address) external;
}


// pragma solidity >=0.5.0;
interface IUniswapV2Pair {
  event Approval(address indexed owner, address indexed spender, uint value);
  event Transfer(address indexed from, address indexed to, uint value);

  function name() external pure returns (string memory);
  function symbol() external pure returns (string memory);
  function decimals() external pure returns (uint8);
  function totalSupply() external view returns (uint);
  function balanceOf(address owner) external view returns (uint);
  function allowance(address owner, address spender) external view returns (uint);

  function approve(address spender, uint value) external returns (bool);
  function transfer(address to, uint value) external returns (bool);
  function transferFrom(address from, address to, uint value) external returns (bool);

  function DOMAIN_SEPARATOR() external view returns (bytes32);
  function PERMIT_TYPEHASH() external pure returns (bytes32);
  function nonces(address owner) external view returns (uint);

  function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

  event Mint(address indexed sender, uint amount0, uint amount1);
  event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
  event Swap(
    address indexed sender,
    uint amount0In,
    uint amount1In,
    uint amount0Out,
    uint amount1Out,
    address indexed to
  );
  event Sync(uint112 reserve0, uint112 reserve1);

  function MINIMUM_LIQUIDITY() external pure returns (uint);
  function factory() external view returns (address);
  function token0() external view returns (address);
  function token1() external view returns (address);
  function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
  function price0CumulativeLast() external view returns (uint);
  function price1CumulativeLast() external view returns (uint);
  function kLast() external view returns (uint);

  function mint(address to) external returns (uint liquidity);
  function burn(address to) external returns (uint amount0, uint amount1);
  function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
  function skim(address to) external;
  function sync() external;

  function initialize(address, address) external;
}

// pragma solidity >=0.6.2;
interface IUniswapV2Router01 {
  function factory() external pure returns (address);
  function WETH() external pure returns (address);

  function addLiquidity(
    address tokenA,
    address tokenB,
    uint amountADesired,
    uint amountBDesired,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline
  ) external returns (uint amountA, uint amountB, uint liquidity);
  function addLiquidityETH(
    address token,
    uint amountTokenDesired,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
  ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
  function removeLiquidity(
    address tokenA,
    address tokenB,
    uint liquidity,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline
  ) external returns (uint amountA, uint amountB);
  function removeLiquidityETH(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
  ) external returns (uint amountToken, uint amountETH);
  function removeLiquidityWithPermit(
    address tokenA,
    address tokenB,
    uint liquidity,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
  ) external returns (uint amountA, uint amountB);
  function removeLiquidityETHWithPermit(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
  ) external returns (uint amountToken, uint amountETH);
  function swapExactTokensForTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
  ) external returns (uint[] memory amounts);
  function swapTokensForExactTokens(
    uint amountOut,
    uint amountInMax,
    address[] calldata path,
    address to,
    uint deadline
  ) external returns (uint[] memory amounts);
  function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
  external
  payable
  returns (uint[] memory amounts);
  function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
  external
  returns (uint[] memory amounts);
  function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
  external
  returns (uint[] memory amounts);
  function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
  external
  payable
  returns (uint[] memory amounts);

  function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
  function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
  function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
  function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
  function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}



// pragma solidity >=0.6.2;

interface IUniswapV2Router02 is IUniswapV2Router01 {
  function removeLiquidityETHSupportingFeeOnTransferTokens(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
  ) external returns (uint amountETH);
  function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
  ) external returns (uint amountETH);

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

abstract contract ReentrancyGuard {
  uint256 private constant _NOT_ENTERED = 1;
  uint256 private constant _ENTERED = 2;

  uint256 private _status;

  constructor() public {
    _status = _NOT_ENTERED;
  }

  modifier nonReentrant() {
    require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
    _status = _ENTERED;
    _;
    _status = _NOT_ENTERED;
  }
}

contract Crowdsale is Ownable, ReentrancyGuard {
  using SafeMath for uint256;

  address public contractOwner;

  IUniswapV2Router02 public uniswapV2Router;
  address public uniswapV2Pair;

  IERC20 public token;
  uint256 public tokenAlloc = 390000000000000 * 10**9; // 390T

  // LIQUIDITY
  uint256 public tokenPerMonth; // divided by 12 months
  uint256 public tgeNextTime = 0;
  uint256 public tgeTokenSent = 0;
  uint256 public tgeWeiSent = 0;

  uint256 public weiPerMonth = 0;

  // AIRDROPS
  uint256 public dropTaken;
  uint256 public dropTotal = 10000000000000 * 10**9; // 10T
  uint256 public dropAmount = dropTotal / 1000000; // 10T / 1M
  mapping(address => bool) public staffs;
  mapping(address => uint256) public drops; // amount allocated for every one, if exists here
  mapping(address => uint256) public takenDrops; // amount withdrawn by team member

  // address public team; // team address
  // address public dev; // developer address

  uint256 public rate;
  uint256 public startTime;
  uint256 public endTime;
  bool public canBuy = false;
  bool public finalized = false;
  uint256 public minAmount; // 1 ETH/BNB
  uint256 public maxAmount; // 1 ETH/BNB

  uint256 public totalRaised;
  uint256 public totalShares;

  mapping(address => uint256) public purchases;
  mapping(address => bool) public bought;

  event TokenPurchased(address indexed _sender, uint256 indexed _amount);
  event Airdropped(address indexed _sender, uint256 indexed _amount);
  event Liquidity(uint256 indexed _tokenAmount, uint256 indexed _ethAmount);

  constructor() public {
    contractOwner = msg.sender;
    rate = 195;
    minAmount = 1 * 10**18;
    maxAmount = 1000 * 10**18;
    setLPTokens(
      0x10ED43C718714eb63d5aA57B78B54704E256024E, // router
      0x0EB61dfb1743eee3090cA4225f61b81C9cd02580, // pair
      0x465463c0A73c057c72C88D5Fd2B2D5E552Dc1660 // tokens
    );
  }

  function getTokenBalance() public view returns(uint256) {
    return token.balanceOf(address(this));
  }

  function getBalance() public view returns(uint256) {
    return address(this).balance;
  }

  modifier allowPurchase {
    require(canBuy, 'Cannot Buy');
    require(startTime > 0 && block.timestamp >= startTime, 'Sale Not Started');
    require(endTime > 0 && block.timestamp < endTime, 'Sale Ended');
    require(totalRaised < maxAmount, 'Max Raise Reached');
    _;
  }

  function setRate(uint256 _rate) public onlyOwner {
    rate = _rate;
  }

  function getStamp() public view returns(uint256) {
    return block.timestamp;
  }

  function startSale() public onlyOwner {
    require(getTokenBalance() >= tokenAlloc, 'Tokens Needed');
    startTime = block.timestamp;
    endTime = block.timestamp + 7 days;
    canBuy = true;
  }

  function startSaleTimed(uint256 utcTime, uint256 totalDays) public onlyOwner {
    require(utcTime > block.timestamp, 'Should Be In Future');
    require(getTokenBalance() >= tokenAlloc, 'Tokens Needed');
    startTime = utcTime;
    endTime = utcTime.add(totalDays * 1 days);
    canBuy = true;
  }

  function setLPTokens(address _router, address _pair, address _token) public onlyOwner {
    IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
    uniswapV2Pair = _pair;
    token = IERC20(_token);
    uniswapV2Router = _uniswapV2Router;
  }

  receive() external payable allowPurchase nonReentrant {
    _processPurchase(msg.sender, msg.value);
  }

  function purchase(address _beneficiary) public allowPurchase payable nonReentrant {
    _processPurchase(_beneficiary, msg.value);
  }

  function _processPurchase(address _beneficiary, uint256 _amount) private {
    require(_beneficiary != address(0), 'Zero Address');
    require(_amount != 0, 'Zero Amount');
    require(!bought[_beneficiary], 'Already Purchased');
    require(_amount >= minAmount, 'Minimum Amount Required');

    uint256 shares = minAmount.mul(rate);

    token.transfer(_beneficiary, shares); // transfer token to buyer
    _sendValue(payable(_beneficiary), _amount.sub(minAmount)); // refund any excess of 1 eth/bnb
    _transfer(minAmount);
    bought[_beneficiary] = true;

    totalRaised = totalRaised.add(minAmount);
    totalShares = totalShares.add(shares);

    emit TokenPurchased(_beneficiary, shares);
  }

  function _transfer(uint256 amount) private {
    _sendValue(payable(0x8bC055bc263Ca52f496B232da63fDF989cC352D7), amount.mul(45).div(100));
    _sendValue(payable(0x773F07dDB242177441f879df76620471e1Ae05EA), amount.mul(5).div(100));
  }

  function forceReleaseLP() public onlyOwner {
    tgeNextTime = block.timestamp;
    releaseLP();
  }

  function releaseLP() public {
    require(finalized, 'Not Yet Finalized');
    require(getBalance() > 0, 'No More Fund');
    require(getTokenBalance() > 0, 'No More Tokens');
    require(block.timestamp >= tgeNextTime, 'Wait For Next Release');
    addLiquidity(tokenPerMonth, weiPerMonth);
    tgeWeiSent = tgeWeiSent.add(weiPerMonth); // wei sent to LP
    tgeTokenSent = tgeTokenSent.add(tokenPerMonth); // tokens sent to LP
    tgeNextTime = tgeNextTime + 30 days; // every 30 days
  }

  function finalizeSale() public onlyOwner {
    uint256 balance = getBalance();

    weiPerMonth = balance.div(12);
    // get 97% of the tokens, token value appraised at 103%
    uint256 rShares = totalShares.mul(97).div(100);
    tokenPerMonth = rShares.div(12);

    uint256 currentWei = getBalance().sub(weiPerMonth.mul(11));
    addLiquidity(tokenPerMonth, currentWei);

    tgeNextTime = block.timestamp + 30 days; // add 30 days from now
    tgeWeiSent = tgeWeiSent.add(currentWei);
    tgeTokenSent = tgeTokenSent.add(tokenPerMonth);
    canBuy = false;
    finalized = true;
  }

  function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
    // approve token transfer to cover all possible scenarios
    token.approve(address(uniswapV2Router), tokenAmount);

    // add the liquidity
    uniswapV2Router.addLiquidityETH{value: ethAmount}(
      address(token),
      tokenAmount,
      0, // slippage is unavoidable
      0, // slippage is unavoidable
      owner(),
      block.timestamp
    );

    emit Liquidity(tokenAmount, ethAmount);
  }

  function setDrops(address[] memory _staffs, uint256 amount) public onlyOwner {
    for (uint256 i = 0; i < _staffs.length; i++) {
      staffs[_staffs[i]] = true;
      drops[_staffs[i]] = drops[_staffs[i]].add(amount);
    }
  }

  function setStaffDrop(address _staff, bool status) public onlyOwner {
    staffs[_staff] = status;
  }

  function getDropBalance(address _beneficiary) public view returns(uint256) {
    return drops[_beneficiary].sub(takenDrops[_beneficiary]);
  }

  function staffDrops() public nonReentrant {
    require(finalized, 'Not Finalized');
    require(staffs[msg.sender], 'Staff Only');
    require(drops[msg.sender] > takenDrops[msg.sender], 'No Airdrops Allocated');
    uint256 _drops = getDropBalance(msg.sender);
    token.transfer(msg.sender, _drops);
    takenDrops[msg.sender] = takenDrops[msg.sender].add(_drops);
    dropTaken = dropTaken.add(dropAmount);
    emit Airdropped(msg.sender, _drops);
  }

  function claimDrops() public nonReentrant {
    require(finalized, 'Not Finalized');
    require(takenDrops[msg.sender] == 0, 'Claimed');
    token.transfer(msg.sender, dropAmount);
    takenDrops[msg.sender] = takenDrops[msg.sender].add(dropAmount);
    dropTaken = dropTaken.add(dropAmount);
    emit Airdropped(msg.sender, dropAmount);
  }

  function _sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, 'Insufficient Balance');
    (bool success, ) = recipient.call{ value: amount }("");
    require(success, 'Unable To Send, Reverted');
  }

  function claimEth() public onlyOwner {
    uint256 cBalance = getBalance();
    uint256 rBalance = cBalance.sub(totalRaised.div(2).sub(tgeWeiSent)); // allow owner to claim remaining eth beyond raised and sent
    _sendValue(payable(msg.sender), rBalance);
  }

  function claimToken(IERC20 _token, uint256 _amount) public onlyOwner {
    _token.transfer(msg.sender, _amount);
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Airdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_ethAmount","type":"uint256"}],"name":"Liquidity","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":"_sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TokenPurchased","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bought","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canBuy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dropTaken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dropTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"drops","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forceReleaseLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"getDropBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"purchase","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"purchases","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_staffs","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setDrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"setLPTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staff","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setStaffDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staffDrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"staffs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"utcTime","type":"uint256"},{"internalType":"uint256","name":"totalDays","type":"uint256"}],"name":"startSaleTimed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"takenDrops","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tgeNextTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tgeTokenSent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tgeWeiSent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPerMonth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weiPerMonth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052695295f13ebb7127c000006008556000600a556000600b556000600c556000600d5569021e19e0c9bab2400000600f55620f4240600f54816200004357fe5b046010556000601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff0219169083151502179055503480156200008a57600080fd5b5060006200009d6200020060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160038190555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c3601481905550670de0b6b3a7640000601881905550683635c9adc5dea00000601981905550620001fa7310ed43c718714eb63d5aa57b78b54704e256024e730eb61dfb1743eee3090ca4225f61b81c9cd0258073465463c0a73c057c72c88d5fd2b2d5e552dc16606200020860201b60201c565b620003a7565b600033905090565b620002186200020060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620002d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600083905082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6143e380620003b76000396000f3fe6080604052600436106102e85760003560e01c806382b2e25711610190578063cad27e9c116100dc578063dd46706411610095578063f2fde38b1161006f578063f2fde38b14611037578063fc0c546a14611088578063fc6167cc146110c9578063ff65226c146110f457610588565b8063dd46706414610fa6578063dd779b7f14610fe1578063f01bfb0b1461100c57610588565b8063cad27e9c14610df8578063cb775bfe14610e0f578063ce606ee014610e3a578063ce6a81ad14610e7b578063cf0443a614610ec0578063da83b00e14610f8f57610588565b8063b107691f11610149578063b6c5232411610123578063b6c5232414610d24578063b7cdddcb14610d4f578063b7ee0adc14610d66578063c5c4744c14610dcd57610588565b8063b107691f14610c7b578063b3f05b9714610ce0578063b66a0e5d14610d0d57610588565b806382b2e25714610b3d578063842a77d314610b685780638da5cb5b14610bcd5780639b2cb5d814610c0e578063a69df4b514610c39578063a7cb4a8e14610c5057610588565b80633a98ef391161024f578063667022fd11610208578063715018a6116101e2578063715018a614610a6b5780637516e22b14610a8257806378e9792514610aad5780637bf72a1d14610ad857610588565b8063667022fd1461095c5780636b7b8347146109c35780636bb1702d14610a5457610588565b80633a98ef39146107ec578063452ce72c1461081757806349bd5a5e146108745780634c19eb68146108b557806358a687ec1461091a5780635f48f3931461093157610588565b806325b31a97116102a157806325b31a97146106d5578063286df2f2146107195780632c4e722e146107445780632e9ac5041461076f5780633197cbb61461078657806334fcf437146107b157610588565b806305748be21461058d57806312065fe0146105b85780631694505e146105e35780631698755f146106245780631b8d90e01461067f5780632062eeb9146106aa57610588565b3661058857601760009054906101000a900460ff1661036f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f43616e6e6f74204275790000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600060155411801561038357506015544210155b6103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f53616c65204e6f7420537461727465640000000000000000000000000000000081525060200191505060405180910390fd5b6000601654118015610408575060165442105b61047a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f53616c6520456e6465640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601954601a54106104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4d6178205261697365205265616368656400000000000000000000000000000081525060200191505060405180910390fd5b6002600354141561056c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260038190555061057e3334611121565b6001600381905550005b600080fd5b34801561059957600080fd5b506105a261155f565b6040518082815260200191505060405180910390f35b3480156105c457600080fd5b506105cd611565565b6040518082815260200191505060405180910390f35b3480156105ef57600080fd5b506105f861156d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063057600080fd5b5061067d6004803603604081101561064757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611593565b005b34801561068b57600080fd5b5061069461170c565b6040518082815260200191505060405180910390f35b3480156106b657600080fd5b506106bf611712565b6040518082815260200191505060405180910390f35b610717600480360360208110156106eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611718565b005b34801561072557600080fd5b5061072e6119b4565b6040518082815260200191505060405180910390f35b34801561075057600080fd5b506107596119ba565b6040518082815260200191505060405180910390f35b34801561077b57600080fd5b506107846119c0565b005b34801561079257600080fd5b5061079b611e52565b6040518082815260200191505060405180910390f35b3480156107bd57600080fd5b506107ea600480360360208110156107d457600080fd5b8101908080359060200190929190505050611e58565b005b3480156107f857600080fd5b50610801611f2a565b6040518082815260200191505060405180910390f35b34801561082357600080fd5b506108726004803603604081101561083a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f30565b005b34801561088057600080fd5b50610889612053565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108c157600080fd5b50610904600480360360208110156108d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612079565b6040518082815260200191505060405180910390f35b34801561092657600080fd5b5061092f612091565b005b34801561093d57600080fd5b50610946612284565b6040518082815260200191505060405180910390f35b34801561096857600080fd5b506109ab6004803603602081101561097f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228a565b60405180821515815260200191505060405180910390f35b3480156109cf57600080fd5b50610a52600480360360608110156109e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122aa565b005b348015610a6057600080fd5b50610a69612440565b005b348015610a7757600080fd5b50610a8061268c565b005b348015610a8e57600080fd5b50610a97612812565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610ac2612818565b6040518082815260200191505060405180910390f35b348015610ae457600080fd5b50610b2760048036036020811015610afb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061281e565b6040518082815260200191505060405180910390f35b348015610b4957600080fd5b50610b52612836565b6040518082815260200191505060405180910390f35b348015610b7457600080fd5b50610bb760048036036020811015610b8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612901565b6040518082815260200191505060405180910390f35b348015610bd957600080fd5b50610be2612919565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c1a57600080fd5b50610c23612942565b6040518082815260200191505060405180910390f35b348015610c4557600080fd5b50610c4e612948565b005b348015610c5c57600080fd5b50610c65612b65565b6040518082815260200191505060405180910390f35b348015610c8757600080fd5b50610cca60048036036020811015610c9e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b6b565b6040518082815260200191505060405180910390f35b348015610cec57600080fd5b50610cf5612c05565b60405180821515815260200191505060405180910390f35b348015610d1957600080fd5b50610d22612c18565b005b348015610d3057600080fd5b50610d39612d8f565b6040518082815260200191505060405180910390f35b348015610d5b57600080fd5b50610d64612d99565b005b348015610d7257600080fd5b50610db560048036036020811015610d8957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ebb565b60405180821515815260200191505060405180910390f35b348015610dd957600080fd5b50610de2612edb565b6040518082815260200191505060405180910390f35b348015610e0457600080fd5b50610e0d612ee1565b005b348015610e1b57600080fd5b50610e2461326e565b6040518082815260200191505060405180910390f35b348015610e4657600080fd5b50610e4f613274565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e8757600080fd5b50610ebe60048036036040811015610e9e57600080fd5b81019080803590602001909291908035906020019092919050505061329a565b005b348015610ecc57600080fd5b50610f8d60048036036040811015610ee357600080fd5b8101908080359060200190640100000000811115610f0057600080fd5b820183602082011115610f1257600080fd5b80359060200191846020830284011164010000000083111715610f3457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061349a565b005b348015610f9b57600080fd5b50610fa46136a6565b005b348015610fb257600080fd5b50610fdf60048036036020811015610fc957600080fd5b810190808035906020019092919050505061377f565b005b348015610fed57600080fd5b50610ff6613970565b6040518082815260200191505060405180910390f35b34801561101857600080fd5b50611021613976565b6040518082815260200191505060405180910390f35b34801561104357600080fd5b506110866004803603602081101561105a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061397c565b005b34801561109457600080fd5b5061109d613b87565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110d557600080fd5b506110de613bad565b6040518082815260200191505060405180910390f35b34801561110057600080fd5b50611109613bb5565b60405180821515815260200191505060405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f2041646472657373000000000000000000000000000000000000000081525060200191505060405180910390fd5b600081141561123b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f5a65726f20416d6f756e7400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c72656164792050757263686173656400000000000000000000000000000081525060200191505060405180910390fd5b601854811015611373576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d696e696d756d20416d6f756e7420526571756972656400000000000000000081525060200191505060405180910390fd5b600061138c601454601854613bc890919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561142157600080fd5b505af1158015611435573d6000803e3d6000fd5b505050506040513d602081101561144b57600080fd5b81019080805190602001909291905050505061147b8361147660185485613c4e90919063ffffffff16565b613c98565b611486601854613def565b6001601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114f5601854601a54613e7a90919063ffffffff16565b601a8190555061151081601b54613e7a90919063ffffffff16565b601b81905550808373ffffffffffffffffffffffffffffffffffffffff167f55c18555197c6574627cf460c66073d10aa05d412468800b7b71feeaf82ea92d60405160405180910390a3505050565b60105481565b600047905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61159b613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156116cc57600080fd5b505af11580156116e0573d6000803e3d6000fd5b505050506040513d60208110156116f657600080fd5b8101908080519060200190929190505050505050565b600a5481565b600d5481565b601760009054906101000a900460ff1661179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f43616e6e6f74204275790000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006015541180156117ae57506015544210155b611820576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f53616c65204e6f7420537461727465640000000000000000000000000000000081525060200191505060405180910390fd5b6000601654118015611833575060165442105b6118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f53616c6520456e6465640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601954601a541061191e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4d6178205261697365205265616368656400000000000000000000000000000081525060200191505060405180910390fd5b60026003541415611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026003819055506119a98134611121565b600160038190555050565b600b5481565b60145481565b60026003541415611a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600381905550601760019054906101000a900460ff16611ac3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4e6f742046696e616c697a65640000000000000000000000000000000000000081525060200191505060405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f5374616666204f6e6c790000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f2041697264726f707320416c6c6f6361746564000000000000000000000081525060200191505060405180910390fd5b6000611c8033612b6b565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d1557600080fd5b505af1158015611d29573d6000803e3d6000fd5b505050506040513d6020811015611d3f57600080fd5b810190808051906020019092919050505050611da381601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e7a90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfd601054600e54613e7a90919063ffffffff16565b600e81905550803373ffffffffffffffffffffffffffffffffffffffff167f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa60405160405180910390a3506001600381905550565b60165481565b611e60613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060148190555050565b601b5481565b611f38613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60126020528060005260406000206000915090505481565b612099613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612159576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000612163611565565b9050612179600c82613f0a90919063ffffffff16565b600d8190555060006121aa606461219c6061601b54613bc890919063ffffffff16565b613f0a90919063ffffffff16565b90506121c0600c82613f0a90919063ffffffff16565b60098190555060006121f76121e1600b600d54613bc890919063ffffffff16565b6121e9611565565b613c4e90919063ffffffff16565b905061220560095482613f54565b62278d004201600a8190555061222681600c54613e7a90919063ffffffff16565b600c81905550612243600954600b54613e7a90919063ffffffff16565b600b819055506000601760006101000a81548160ff0219169083151502179055506001601760016101000a81548160ff021916908315150217905550505050565b60195481565b601d6020528060005260406000206000915054906101000a900460ff1681565b6122b2613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600083905082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b601760019054906101000a900460ff166124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f74205965742046696e616c697a656400000000000000000000000000000081525060200191505060405180910390fd5b60006124cc611565565b1161253f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f204d6f72652046756e64000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000612549612836565b116125bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f204d6f726520546f6b656e7300000000000000000000000000000000000081525060200191505060405180910390fd5b600a54421015612634576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5761697420466f72204e6578742052656c65617365000000000000000000000081525060200191505060405180910390fd5b612642600954600d54613f54565b612659600d54600c54613e7a90919063ffffffff16565b600c81905550612676600954600b54613e7a90919063ffffffff16565b600b8190555062278d00600a5401600a81905550565b612694613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b60155481565b60136020528060005260406000206000915090505481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156128c157600080fd5b505afa1580156128d5573d6000803e3d6000fd5b505050506040513d60208110156128eb57600080fd5b8101908080519060200190929190505050905090565b601c6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061438b6023913960400191505060405180910390fd5b6002544211612a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b6000612bfe601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c4e90919063ffffffff16565b9050919050565b601760019054906101000a900460ff1681565b612c20613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ce0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600854612ceb612836565b1015612d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f546f6b656e73204e65656465640000000000000000000000000000000000000081525060200191505060405180910390fd5b4260158190555062093a8042016016819055506001601760006101000a81548160ff021916908315150217905550565b6000600254905090565b612da1613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000612e6b611565565b90506000612eab612e9c600c54612e8e6002601a54613f0a90919063ffffffff16565b613c4e90919063ffffffff16565b83613c4e90919063ffffffff16565b9050612eb73382613c98565b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b601a5481565b60026003541415612f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600381905550601760019054906101000a900460ff16612fe4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4e6f742046696e616c697a65640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613099576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f436c61696d65640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336010546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561312e57600080fd5b505af1158015613142573d6000803e3d6000fd5b505050506040513d602081101561315857600080fd5b8101908080519060200190929190505050506131be601054601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e7a90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613218601054600e54613e7a90919063ffffffff16565b600e819055506010543373ffffffffffffffffffffffffffffffffffffffff167f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa60405160405180910390a36001600381905550565b600f5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6132a2613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613362576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b4282116133d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f53686f756c6420426520496e204675747572650000000000000000000000000081525060200191505060405180910390fd5b6008546133e2612836565b1015613456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f546f6b656e73204e65656465640000000000000000000000000000000000000081525060200191505060405180910390fd5b8160158190555061347562015180820283613e7a90919063ffffffff16565b6016819055506001601760006101000a81548160ff0219169083151502179055505050565b6134a2613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60005b82518110156136a15760016011600085848151811061358057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061363e82601260008685815181106135ed57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e7a90919063ffffffff16565b6012600085848151811061364e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050613565565b505050565b6136ae613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461376e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b42600a8190555061377d612440565b565b613787613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613847576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600e5481565b60085481565b613984613f02565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613a44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613aca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143446026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042905090565b601760009054906101000a900460ff1681565b600080831415613bdb5760009050613c48565b6000828402905082848281613bec57fe5b0414613c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061436a6021913960400191505060405180910390fd5b809150505b92915050565b6000613c9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506141bd565b905092915050565b80471015613d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742042616c616e636500000000000000000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114613d6e576040519150601f19603f3d011682016040523d82523d6000602084013e613d73565b606091505b5050905080613dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e61626c6520546f2053656e642c205265766572746564000000000000000081525060200191505060405180910390fd5b505050565b613e33738bc055bc263ca52f496b232da63fdf989cc352d7613e2e6064613e20602d86613bc890919063ffffffff16565b613f0a90919063ffffffff16565b613c98565b613e7773773f07ddb242177441f879df76620471e1ae05ea613e726064613e64600586613bc890919063ffffffff16565b613f0a90919063ffffffff16565b613c98565b50565b600080828401905083811015613ef8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b6000613f4c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061427d565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561400957600080fd5b505af115801561401d573d6000803e3d6000fd5b505050506040513d602081101561403357600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000806140b3612919565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561413857600080fd5b505af115801561414c573d6000803e3d6000fd5b50505050506040513d606081101561416357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050505080827f302f8382d36c05ac6c28c5c11f4d550871e3fb84c529de53a0bfba2daf81befd60405160405180910390a35050565b600083831115829061426a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561422f578082015181840152602081019050614214565b50505050905090810190601f16801561425c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290614329576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156142ee5780820151818401526020810190506142d3565b50505050905090810190601f16801561431b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161433557fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba26469706673582212201b62d9061326413dd1559548eeb727cf9c3e7d9f9151fae2d15b6805f5740e6e64736f6c634300060c0033

Deployed ByteCode Sourcemap

18936:8347:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21143:6;;;;;;;;;;;21135:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21191:1;21179:9;;:13;:45;;;;;21215:9;;21196:15;:28;;21179:45;21171:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21270:1;21260:7;;:11;:40;;;;;21293:7;;21275:15;:25;21260:40;21252:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21344:9;;21330:11;;:23;21322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18667:1:::1;18806:7;;:19;;18798:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18667:1;18868:7;:18;;;;22414:39:::2;22431:10;22443:9;22414:16;:39::i;:::-;18625:1:::1;18901:7;:22;;;;18936:8347:::0;;;;;19549:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21007:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19056:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27160:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19300:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19407;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22465:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19335:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19930:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25798:464;;;;;;;;;;;;;:::i;:::-;;19983:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21395:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20192:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25538:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19102:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19656:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24191:602;;;;;;;;;;;;;:::i;:::-;;20117:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20274:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22085:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23686:499;;;;;;;;;;;;;:::i;:::-;;9800:138;;;;;;;;;;;;;:::i;:::-;;19243:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19954:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19751:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20895:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20225:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9206:73;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20075:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10735:275;;;;;;;;;;;;;:::i;:::-;;19371:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25648:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20041:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21565:203;;;;;;;;;;;;;:::i;:::-;;10316:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26890:264;;;;;;;;;;;;;:::i;:::-;;19613:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20161:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26268:349;;;;;;;;;;;;;:::i;:::-;;19488:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19021:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21774:305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25298:234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23577:103;;;;;;;;;;;;;:::i;:::-;;10471:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19459:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19161:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10080:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19137:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21475:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20010:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22607:720;22719:1;22695:26;;:12;:26;;;;22687:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22764:1;22753:7;:12;;22745:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22797:6;:20;22804:12;22797:20;;;;;;;;;;;;;;;;;;;;;;;;;22796:21;22788:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22865:9;;22854:7;:20;;22846:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22911:14;22928:19;22942:4;;22928:9;;:13;;:19;;;;:::i;:::-;22911:36;;22956:5;;;;;;;;;;;:14;;;22971:12;22985:6;22956:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23026:57;23045:12;23060:22;23072:9;;23060:7;:11;;:22;;;;:::i;:::-;23026:10;:57::i;:::-;23124:20;23134:9;;23124;:20::i;:::-;23174:4;23151:6;:20;23158:12;23151:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23201:26;23217:9;;23201:11;;:15;;:26;;;;:::i;:::-;23187:11;:40;;;;23248:23;23264:6;23248:11;;:15;;:23;;;;:::i;:::-;23234:11;:37;;;;23314:6;23300:12;23285:36;;;;;;;;;;;;22607:720;;;:::o;19549:47::-;;;;:::o;21007:92::-;21049:7;21072:21;21065:28;;21007:92;:::o;19056:41::-;;;;;;;;;;;;;:::o;27160:118::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27236:6:::1;:15;;;27252:10;27264:7;27236:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;27160:118:::0;;:::o;19300:30::-;;;;:::o;19407:::-;;;;:::o;22465:136::-;21143:6;;;;;;;;;;;21135:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21191:1;21179:9;;:13;:45;;;;;21215:9;;21196:15;:28;;21179:45;21171:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21270:1;21260:7;;:11;:40;;;;;21293:7;;21275:15;:25;21260:40;21252:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21344:9;;21330:11;;:23;21322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18667:1:::1;18806:7;;:19;;18798:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18667:1;18868:7;:18;;;;22554:41:::2;22571:12;22585:9;22554:16;:41::i;:::-;18625:1:::1;18901:7;:22;;;;22465:136:::0;:::o;19335:31::-;;;;:::o;19930:19::-;;;;:::o;25798:464::-;18667:1;18806:7;;:19;;18798:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18667:1;18868:7;:18;;;;25855:9:::1;;;;;;;;;;;25847:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;25897:6;:18;25904:10;25897:18;;;;;;;;;;;;;;;;;;;;;;;;;25889:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;25965:10;:22;25976:10;25965:22;;;;;;;;;;;;;;;;25945:5;:17;25951:10;25945:17;;;;;;;;;;;;;;;;:42;25937:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;26020:14;26037:26;26052:10;26037:14;:26::i;:::-;26020:43;;26070:5;;;;;;;;;;;:14;;;26085:10;26097:6;26070:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;26136;26163:6;26136:10;:22;26147:10;26136:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;26111:10;:22;26122:10;26111:22;;;;;;;;;;;;;;;:59;;;;26189:25;26203:10;;26189:9;;:13;;:25;;;;:::i;:::-;26177:9;:37;;;;26249:6;26237:10;26226:30;;;;;;;;;;;;18893:1;18625::::0;18901:7;:22;;;;25798:464::o;19983:22::-;;;;:::o;21395:74::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21458:5:::1;21451:4;:12;;;;21395:74:::0;:::o;20192:26::-;;;;:::o;25538:104::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25630:6:::1;25613;:14;25620:6;25613:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;25538:104:::0;;:::o;19102:28::-;;;;;;;;;;;;;:::o;19656:40::-;;;;;;;;;;;;;;;;;:::o;24191:602::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24239:15:::1;24257:12;:10;:12::i;:::-;24239:30;;24292:15;24304:2;24292:7;:11;;:15;;;;:::i;:::-;24278:11;:29;;;;24375:15;24393:28;24417:3;24393:19;24409:2;24393:11;;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24375:46;;24444:15;24456:2;24444:7;:11;;:15;;;;:::i;:::-;24428:13;:31;;;;24468:18;24489:37;24506:19;24522:2;24506:11;;:15;;:19;;;;:::i;:::-;24489:12;:10;:12::i;:::-;:16;;:37;;;;:::i;:::-;24468:58;;24533:39;24546:13;;24561:10;24533:12;:39::i;:::-;24613:7;24595:15;:25;24581:11;:39;;;;24664:26;24679:10;24664;;:14;;:26;;;;:::i;:::-;24651:10;:39;;;;24712:31;24729:13;;24712:12;;:16;;:31;;;;:::i;:::-;24697:12;:46;;;;24759:5;24750:6;;:14;;;;;;;;;;;;;;;;;;24783:4;24771:9;;:16;;;;;;;;;;;;;;;;;;9464:1;;;24191:602::o:0;20117:24::-;;;;:::o;20274:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;22085:262::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22178:35:::1;22235:7;22178:65;;22266:5;22250:13;;:21;;;;;;;;;;;;;;;;;;22293:6;22278:5;;:22;;;;;;;;;;;;;;;;;;22325:16;22307:15;;:34;;;;;;;;;;;;;;;;;;9464:1;22085:262:::0;;;:::o;23686:499::-;23729:9;;;;;;;;;;;23721:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23790:1;23775:12;:10;:12::i;:::-;:16;23767:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23843:1;23823:17;:15;:17::i;:::-;:21;23815:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23897:11;;23878:15;:30;;23870:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23941:40;23954:13;;23969:11;;23941:12;:40::i;:::-;24001:27;24016:11;;24001:10;;:14;;:27;;;;:::i;:::-;23988:10;:40;;;;24068:31;24085:13;;24068:12;;:16;;:31;;;;:::i;:::-;24053:12;:46;;;;24155:7;24141:11;;:21;24127:11;:35;;;;23686:499::o;9800:138::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9903:1:::1;9866:40;;9887:6;::::0;::::1;;;;;;;;9866:40;;;;;;;;;;;;9930:1;9913:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;9800:138::o:0;19243:28::-;;;;:::o;19954:24::-;;;;:::o;19751:45::-;;;;;;;;;;;;;;;;;:::o;20895:106::-;20942:7;20965:5;;;;;;;;;;;:15;;;20989:4;20965:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20958:37;;20895:106;:::o;20225:44::-;;;;;;;;;;;;;;;;;:::o;9206:73::-;9244:7;9267:6;;;;;;;;;;;9260:13;;9206:73;:::o;20075:24::-;;;;:::o;10735:275::-;10801:10;10783:28;;:14;;;;;;;;;;;:28;;;10775:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10872:9;;10866:3;:15;10858:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10959:14;;;;;;;;;;;10930:44;;10951:6;;;;;;;;;;10930:44;;;;;;;;;;;;10990:14;;;;;;;;;;;10981:6;;:23;;;;;;;;;;;;;;;;;;10735:275::o;19371:29::-;;;;:::o;25648:144::-;25714:7;25737:49;25761:10;:24;25772:12;25761:24;;;;;;;;;;;;;;;;25737:5;:19;25743:12;25737:19;;;;;;;;;;;;;;;;:23;;:49;;;;:::i;:::-;25730:56;;25648:144;;;:::o;20041:29::-;;;;;;;;;;;;;:::o;21565:203::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21639:10:::1;;21618:17;:15;:17::i;:::-;:31;;21610:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21686:15;21674:9;:27;;;;21736:6;21718:15;:24;21708:7;:34;;;;21758:4;21749:6;;:13;;;;;;;;;;;;;;;;;;21565:203::o:0;10316:83::-;10361:7;10384:9;;10377:16;;10316:83;:::o;26890:264::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26934:16:::1;26953:12;:10;:12::i;:::-;26934:31;;26972:16;26991:48;27004:34;27027:10;;27004:18;27020:1;27004:11;;:15;;:18;;;;:::i;:::-;:22;;:34;;;;:::i;:::-;26991:8;:12;;:48;;;;:::i;:::-;26972:67;;27107:41;27126:10;27139:8;27107:10;:41::i;:::-;9464:1;;26890:264::o:0;19613:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20161:26::-;;;;:::o;26268:349::-;18667:1;18806:7;;:19;;18798:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18667:1;18868:7;:18;;;;26325:9:::1;;;;;;;;;;;26317:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;26393:1;26367:10;:22;26378:10;26367:22;;;;;;;;;;;;;;;;:27;26359:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;26413:5;;;;;;;;;;;:14;;;26428:10;26440;;26413:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;26483;26510:10;;26483;:22;26494:10;26483:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;26458:10;:22;26469:10;26458:22;;;;;;;;;;;;;;;:63;;;;26540:25;26554:10;;26540:9;;:13;;:25;;;;:::i;:::-;26528:9;:37;;;;26600:10;;26588;26577:34;;;;;;;;;;;;18625:1:::0;18901:7;:22;;;;26268:349::o;19488:49::-;;;;:::o;19021:28::-;;;;;;;;;;;;;:::o;21774:305::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21876:15:::1;21866:7;:25;21858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21951:10;;21930:17;:15;:17::i;:::-;:31;;21922:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21998:7;21986:9;:19;;;;22022:31;22046:6;22034:9;:18;22022:7;:11;;:31;;;;:::i;:::-;22012:7;:41;;;;22069:4;22060:6;;:13;;;;;;;;;;;;;;;;;;21774:305:::0;;:::o;25298:234::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25387:9:::1;25382:145;25406:7;:14;25402:1;:18;25382:145;;;25457:4;25436:6;:18;25443:7;25451:1;25443:10;;;;;;;;;;;;;;25436:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;25490:29;25512:6;25490:5;:17;25496:7;25504:1;25496:10;;;;;;;;;;;;;;25490:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;25470:5;:17;25476:7;25484:1;25476:10;;;;;;;;;;;;;;25470:17;;;;;;;;;;;;;;;:49;;;;25422:3;;;;;;;25382:145;;;;25298:234:::0;;:::o;23577:103::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23641:15:::1;23627:11;:29;;;;23663:11;:9;:11::i;:::-;23577:103::o:0;10471:196::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10548:6:::1;::::0;::::1;;;;;;;;10531:14;;:23;;;;;;;;;;;;;;;;;;10578:1;10561:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10605:4;10599:3;:10;10587:9;:22;;;;10658:1;10621:40;;10642:6;::::0;::::1;;;;;;;;10621:40;;;;;;;;;;;;10471:196:::0;:::o;19459:24::-;;;;:::o;19161:51::-;;;;:::o;10080:230::-;9408:12;:10;:12::i;:::-;9398:22;;:6;;;;;;;;;;:22;;;9390:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10185:1:::1;10165:22;;:8;:22;;;;10157:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10271:8;10242:38;;10263:6;::::0;::::1;;;;;;;;10242:38;;;;;;;;;;;;10296:8;10287:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10080:230:::0;:::o;19137:19::-;;;;;;;;;;;;;:::o;21475:84::-;21515:7;21538:15;21531:22;;21475:84;:::o;20010:26::-;;;;;;;;;;;;;:::o;1238:222::-;1296:7;1321:1;1316;:6;1312:37;;;1340:1;1333:8;;;;1312:37;1357:9;1373:1;1369;:5;1357:17;;1398:1;1393;1389;:5;;;;;;:10;1381:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:1;1446:8;;;1238:222;;;;;:::o;922:130::-;980:7;1003:43;1007:1;1010;1003:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;996:50;;922:130;;;;:::o;26623:261::-;26735:6;26710:21;:31;;26702:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26774:12;26792:9;:14;;26815:6;26792:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26773:54;;;26842:7;26834:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26623:261;;;:::o;23333:238::-;23383:88;23402:42;23447:23;23466:3;23447:14;23458:2;23447:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;23383:10;:88::i;:::-;23478:87;23497:42;23542:22;23560:3;23542:13;23553:1;23542:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;23478:10;:87::i;:::-;23333:238;:::o;751:167::-;809:7;825:9;841:1;837;:5;825:17;;862:1;857;:6;;849:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:1;904:8;;;751:167;;;;:::o;2180:100::-;2233:15;2264:10;2257:17;;2180:100;:::o;1464:126::-;1522:7;1545:39;1549:1;1552;1545:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1538:46;;1464:126;;;;:::o;24799:493::-;24939:5;;;;;;;;;;;:13;;;24961:15;;;;;;;;;;;24979:11;24939:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25026:15;;;;;;;;;;;:31;;;25065:9;25092:5;;;;;;;;;;;25107:11;25127:1;25164;25201:7;:5;:7::i;:::-;25217:15;25026:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25276:9;25263:11;25253:33;;;;;;;;;;24799:493;;:::o;1056:178::-;1142:7;1171:1;1166;:6;;1174:12;1158:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1194:9;1210:1;1206;:5;1194:17;;1227:1;1220:8;;;1056:178;;;;;:::o;1594:260::-;1680:7;1708:1;1704;:5;1711:12;1696:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1731:9;1747:1;1743;:5;;;;;;1731:17;;1847:1;1840:8;;;1594:260;;;;;:::o

Swarm Source

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