Contract 0x123389C2f0e9194d9bA98c21E63c375B67614108 1

 

Contract Overview

EthereumMax: EMAX Token
Balance:
0.005090535839579524 ETH

ETH Value:
$10.05 (@ $1,974.35/ETH)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9f51c3af7ee4f0ccd03cda9dfad7fa34023a52597e78fe5a1b5a844fbdb01261Approve202334502022-08-14 13:11:063 hrs 31 mins ago0xe7f9999fe412d7c4e621651100f53c75d9ba35fb IN EthereumMax: EMAX Token0 ETH0.000054303797 ETH
0x2938c0489734dd79b8adc07543a7715266d7c5a080038008bb4782d2f4fe71c3Approve201928552022-08-14 1:33:2515 hrs 9 mins ago0x70b0e80682e78452bc6b56e1bdc726315372337a IN EthereumMax: EMAX Token0 ETH0.000068513958 ETH
0x6acd86a6b2240999a06840493259081e557efaf2fb5d384134ce52633864a5b2Transfer201924192022-08-14 1:27:0915 hrs 15 mins ago0x8cb91f79003ba00772e0a1544e9aa84705a03917 IN EthereumMax: EMAX Token0 ETH0.000065429189 ETH
0x06a233799863b5ab15ad5afc56dc37f638ff55b355488f94a6ab38ebe7717a25Transfer201817152022-08-13 20:44:1919 hrs 58 mins ago0x8fef0356ad24dd58281d0c0911963a6220bfb07b IN EthereumMax: EMAX Token0 ETH0.000066041449 ETH
0x79f4cc76c456d4771d8f9077fe942d9bf6ff9e36d33f40fcf16bd23baf9e1ee8Approve201802652022-08-13 20:11:2120 hrs 31 mins ago0xb7d4359a5c5dd1840cfebc8551f2265f2cee37d6 IN EthereumMax: EMAX Token0 ETH0.000082091955 ETH
0xc5a903d4f1794765e8d9492f6208f126d0f1819af27f599b7a138e4545767ef8Transfer201786502022-08-13 19:35:0221 hrs 7 mins ago0x7ee26e96d9041366c7edfd18e07442e5bf8f6735 IN EthereumMax: EMAX Token0 ETH0.000071000916 ETH
0x4094b34265050edea9fb8de15b364d2376c5ebe8bd1e6d7526c5818e5318c86aTransfer201785452022-08-13 19:34:4821 hrs 8 mins ago0x7ee26e96d9041366c7edfd18e07442e5bf8f6735 IN EthereumMax: EMAX Token0 ETH0.000077595037 ETH
0xc8eece45d85a920d2d811db0b85703e42e1fd0e383420c1ca10ffad6c364dc88Approve201760222022-08-13 18:41:5622 hrs 1 min ago0x7ee26e96d9041366c7edfd18e07442e5bf8f6735 IN EthereumMax: EMAX Token0 ETH0.000084716327 ETH
0xe6fa510d1c2de866ac5cfab6b4fe5968a59f8c772d87921e2f36fa963384d8c0Transfer201637992022-08-13 14:46:161 day 1 hr ago0xb7128b6017bc95f5d6c19be6efaf213d61628d4a IN EthereumMax: EMAX Token0 ETH0.000062382327 ETH
0xc659c90f31c1e83fce9d6a0531b64c94f33c4220ce171d2328b5cfc71fe1142cApprove201408772022-08-13 8:29:071 day 8 hrs ago0x008a83fdfed337b9117bbb192005f08c91b0c0a8 IN EthereumMax: EMAX Token0 ETH0.000093144515 ETH
0x46a48ad061371cafd6283fc47f1251d964e53b51403adaf63a96456d00afef8eApprove201209192022-08-13 2:08:411 day 14 hrs ago0x7ee26e96d9041366c7edfd18e07442e5bf8f6735 IN EthereumMax: EMAX Token0 ETH0.000131829013 ETH
0xde5f11ae8048ca003bcf8ea84bd6be67f862c99d8edd389dde5be7a843c06b14Transfer200902382022-08-12 14:54:402 days 1 hr ago0xa17fbe41d597af713a92908fd275774b5021a65a IN EthereumMax: EMAX Token0 ETH0.000112905885 ETH
0xe005f67707880639a07b36e949cf9a66f3dc2637213713969c49f879c18ae99bTransfer200898762022-08-12 14:46:412 days 1 hr ago0x745c433cf1f8ae0f39caabe9609da6fbb47b7445 IN EthereumMax: EMAX Token0 ETH0.000109191471 ETH
0xcbf54daa1f3be3099b87d8fbdf57bf40159dad007bc133af400e94b454306f6cTransfer200525432022-08-12 3:04:562 days 13 hrs ago0x95cd262db022978c4fa24a39244608fdd9820513 IN EthereumMax: EMAX Token0 ETH0.000122202628 ETH
0xb750070153384a3e7632a8a9a6bee57f594be852229472712657dad62929e5aaTransfer200098842022-08-11 13:28:093 days 3 hrs ago0x40fe0c7dc7c6862ef131285df649a4a6c7f2de4a IN EthereumMax: EMAX Token0 ETH0.00011818256 ETH
0x39beca7afc09da39a32f040d181eb9e375a5a48a8abd1d52865118188a54ac07Approve197941522022-08-09 10:44:365 days 5 hrs ago0x7784a71f74bea3e88338c6c5a312ef7134e1ac59 IN EthereumMax: EMAX Token0 ETH0.000091282008 ETH
0x2b1ca63e03883bb3a6216618ca975a7d9f71c0651a9542210c92913789456506Transfer197833982022-08-09 8:09:495 days 8 hrs ago0xcba13a878faa69951014a8c8486d312894eeb4d1 IN EthereumMax: EMAX Token0 ETH0.000084498806 ETH
0xb37f0998d36bceb85d6d9941c9698edb44cfa2ecf74794150e00d5254485bd81Transfer197782322022-08-09 6:43:355 days 9 hrs ago0x2005f6657407ef2336ff372e8eecedd6fcbc46cf IN EthereumMax: EMAX Token0 ETH0.000107677368 ETH
0xfc2837d61f1e7c12ffc9c6c30c053b85318f2ccede76252477e0fc9e9e60aef0Approve197439242022-08-08 18:53:335 days 21 hrs ago0x5e3677f8a56ece623bf33fb62a6bc6e34ace5026 IN EthereumMax: EMAX Token0 ETH0.000098717249 ETH
0x7b0c00f10bfb3d8fe98250ac407235e9148da1636930ed43e04bac57fd017d91Approve197353542022-08-08 16:28:336 days 14 mins ago0x7f1aa52a2889425c303c04580642fc8a360fce6f IN EthereumMax: EMAX Token0 ETH0.000079539062 ETH
0x59486a9373fde32acb12688162afc661b97c7b1a8c11b91f37b771ddac360486Approve196475232022-08-07 18:05:386 days 22 hrs ago0x8e4f8b24e6c553f4d3778722c3d4c7ed1d5eb27d IN EthereumMax: EMAX Token0 ETH0.000059256856 ETH
0x1257700d5f67147a95189663b282d99a5cdc01e68b64ff23f7d55bc1f5be88a0Approve196363072022-08-07 14:57:027 days 1 hr ago0x08f27b47051e88c82b47f50f1768da0a88119274 IN EthereumMax: EMAX Token0 ETH0.000044485065 ETH
0x9a27c8f427bc13bf9d27027bf4410faa1a1d9c079d3fc84cfa425c6d5b84fd6cApprove196321512022-08-07 14:05:347 days 2 hrs ago0xf4727e781a3d10d2b24ac4e05ed1a0502d78f555 IN EthereumMax: EMAX Token0 ETH0.000044483973 ETH
0x124b222e1af0bedfcbce80abf0cd8763aff85a6d2b904c7de484566c2ce9fdf6Approve194218232022-08-05 4:51:489 days 11 hrs ago0xeb82c15bc0f2e99a879077415492539a1d6201ad IN EthereumMax: EMAX Token0 ETH0.000062601613 ETH
0xaae072beaaf7d92882d3908767681b9285f8579c2c0775cecf5df1ec8e55608cTransfer194029082022-08-04 22:53:059 days 17 hrs ago0xbebec0889d029b28bf74cf8021276d6fef3cf634 IN EthereumMax: EMAX Token0 ETH0.000068637605 ETH
[ Download CSV Export 

OVERVIEW

EthereumMax (EMAX) is a progressive ERC-20 token built on the secure Ethereum network and enhanced on the Arbtirum network.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe487d9990442852c5c6f80830ccb552d7351c39f615ad7d27f922692aff1f7a2202457492022-08-14 16:37:045 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0xe487d9990442852c5c6f80830ccb552d7351c39f615ad7d27f922692aff1f7a2202457492022-08-14 16:37:045 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x22096768386756b03cf1451c1ef735ee58d0e83ee3076a0eb1447af48d68b8ff202445732022-08-14 16:13:0329 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x22096768386756b03cf1451c1ef735ee58d0e83ee3076a0eb1447af48d68b8ff202445732022-08-14 16:13:0329 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x76d51417b2714695236f1f4ab25adb5a36bbbc3e8242e8f697504b5642d576f3202396512022-08-14 14:39:572 hrs 3 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x76d51417b2714695236f1f4ab25adb5a36bbbc3e8242e8f697504b5642d576f3202396512022-08-14 14:39:572 hrs 3 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x3756973a9898dec2775d3a80055d709e552c85feffeeb8beb69cf62a6dc07e5b202393112022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x3756973a9898dec2775d3a80055d709e552c85feffeeb8beb69cf62a6dc07e5b202393112022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x081591e6b69022a48a8cb7185e5afbb55117c4d0f784da7122ce2f73174afa26202392822022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x081591e6b69022a48a8cb7185e5afbb55117c4d0f784da7122ce2f73174afa26202392822022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x081591e6b69022a48a8cb7185e5afbb55117c4d0f784da7122ce2f73174afa26202392822022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0xf1473abbb30863490965af029da60c94b96d3416206854e954383f6a3a9c50de202392582022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0xf1473abbb30863490965af029da60c94b96d3416206854e954383f6a3a9c50de202392582022-08-14 14:32:152 hrs 10 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x3c836533fcf89dc35110e0f2b07be76f6efb351bc481930d592e3ff4bd8d065e202379202022-08-14 14:09:192 hrs 33 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x3c836533fcf89dc35110e0f2b07be76f6efb351bc481930d592e3ff4bd8d065e202379202022-08-14 14:09:192 hrs 33 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x2937b7278e4ed4020b01c8ba9b458ecc64f686a580435b1012b80cc434598337202373752022-08-14 14:00:142 hrs 42 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x2937b7278e4ed4020b01c8ba9b458ecc64f686a580435b1012b80cc434598337202373752022-08-14 14:00:142 hrs 42 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x0f6863c0fb77f05f85ccdf1ba3d8707418ccf2f36f0add6bb3e577f4f0d5f5aa202335752022-08-14 13:12:573 hrs 30 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x0f6863c0fb77f05f85ccdf1ba3d8707418ccf2f36f0add6bb3e577f4f0d5f5aa202335752022-08-14 13:12:573 hrs 30 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x5babc4bc7bbd942d16b814f60fb6bacae7dddd6df20005acba86817903b3c57a202324132022-08-14 12:57:383 hrs 45 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x5babc4bc7bbd942d16b814f60fb6bacae7dddd6df20005acba86817903b3c57a202324132022-08-14 12:57:383 hrs 45 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x9f41605977dbf4adaa780d53461885649b496761deabd209d2d8568943049ceb202322812022-08-14 12:56:513 hrs 46 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x9f41605977dbf4adaa780d53461885649b496761deabd209d2d8568943049ceb202322812022-08-14 12:56:513 hrs 46 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x62155750ce48cd471065709710dfc8aaa4e5dedb3007fd2077f4de4885844277202321662022-08-14 12:55:063 hrs 47 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
0x62155750ce48cd471065709710dfc8aaa4e5dedb3007fd2077f4de4885844277202321662022-08-14 12:55:063 hrs 47 mins ago 0x9c5397dbcd8b039c5fc8b1bc2602fa2767567149EthereumMax: EMAX Token0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EMAX

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan on 2022-03-03
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.11;

abstract contract Context {
  function _msgSender() internal view virtual returns (address payable) {
    return payable(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;
  }
}

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;
  }
}

library Address {
  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);
  }

  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");
  }

  function functionCall(address target, bytes memory data) internal returns (bytes memory) {
    return functionCall(target, data, "Address: low-level call failed");
  }

  function functionCall(
    address target,
    bytes memory data,
    string memory errorMessage
  ) internal returns (bytes memory) {
    return _functionCallWithValue(target, data, 0, errorMessage);
  }

  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");
  }

  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");

    (bool success, bytes memory returndata) = target.call{value: weiValue}(data);
    if (success) {
      return returndata;
    } else {
      if (returndata.length > 0) {
        assembly {
          let returndata_size := mload(returndata)
          revert(add(32, returndata), returndata_size)
        }
      } else {
        revert(errorMessage);
      }
    }
  }
}

contract Ownable is Context {
  address private _owner;
  address private _previousOwner;
  uint256 private _lockTime;

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

  constructor() public {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

  function owner() public view returns (address) {
    return _owner;
  }

  modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
  }

  function renounceOwnership() public virtual onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  function transferOwnership(address newOwner) public virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

// pragma solidity >=0.5.0;

interface IV2Factory {
  event PairCreated(address indexed token0, address indexed token1, address pair, uint256);

  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(uint256) external view returns (address pair);

  function allPairsLength() external view returns (uint256);

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

  function setFeeTo(address) external;

  function setFeeToSetter(address) external;
}

// pragma solidity >=0.5.0;

interface IV2Pair {
  event Approval(address indexed owner, address indexed spender, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

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

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 value) external returns (bool);

  function transfer(address to, uint256 value) external returns (bool);

  function transferFrom(
    address from,
    address to,
    uint256 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 (uint256);

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

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

  function MINIMUM_LIQUIDITY() external pure returns (uint256);

  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 (uint256);

  function price1CumulativeLast() external view returns (uint256);

  function kLast() external view returns (uint256);

  function burn(address to) external returns (uint256 amount0, uint256 amount1);

  function swap(
    uint256 amount0Out,
    uint256 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 IV2Router01 {
  function factory() external pure returns (address);

  function WETH() external pure returns (address);

  function addLiquidity(
    address tokenA,
    address tokenB,
    uint256 amountADesired,
    uint256 amountBDesired,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  )
    external
    returns (
      uint256 amountA,
      uint256 amountB,
      uint256 liquidity
    );

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

  function removeLiquidity(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountA, uint256 amountB);

  function removeLiquidityETH(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountToken, uint256 amountETH);

  function removeLiquidityWithPermit(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountA, uint256 amountB);

  function removeLiquidityETHWithPermit(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountToken, uint256 amountETH);

  function swapExactTokensForTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapTokensForExactTokens(
    uint256 amountOut,
    uint256 amountInMax,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapExactETHForTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable returns (uint256[] memory amounts);

  function swapTokensForExactETH(
    uint256 amountOut,
    uint256 amountInMax,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapExactTokensForETH(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapETHForExactTokens(
    uint256 amountOut,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable returns (uint256[] memory amounts);

  function quote(
    uint256 amountA,
    uint256 reserveA,
    uint256 reserveB
  ) external pure returns (uint256 amountB);

  function getAmountOut(
    uint256 amountIn,
    uint256 reserveIn,
    uint256 reserveOut
  ) external pure returns (uint256 amountOut);

  function getAmountIn(
    uint256 amountOut,
    uint256 reserveIn,
    uint256 reserveOut
  ) external pure returns (uint256 amountIn);

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

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

// pragma solidity >=0.6.2;

interface IRouterV2 is IV2Router01 {
  function removeLiquidityETHSupportingFeeOnTransferTokens(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountETH);

  function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountETH);

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

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

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

contract EMAX is Context, Ownable, IERC20 {
  using SafeMath for uint256;
  using Address for address;

  address payable private treasuryWallet = payable(0xfF23A7d437D1a36e47C91A6287F78D04E8D55506); // treasury  Wallet

  uint256 public deadBlocks = 2;
  uint256 public launchedAt;

  mapping(address => uint256) private _balances;
  mapping(address => bool) private _isExcludedFromFee;
  mapping(address => bool) private _isMaxWalletExempt;
  mapping(address => bool) private _isTrusted;
  mapping(address => mapping(address => uint256)) private _allowances;
  mapping(address => bool) private _isSniper;
  mapping(address => uint256) public wards;
  mapping(address => uint256) public nonces;

  address DEAD = 0x000000000000000000000000000000000000dEaD;

  uint8 private constant _decimals = 18;

  uint256 private constant MAX = ~uint256(0);
  uint256 public _totalSupply;

  string public constant _name = "EthereumMax";
  string public constant _symbol = "EMAX";
  string public constant version = "1";

  uint256 public _buyLiquidityFee = 10;
  uint256 public _buytreasuryFee = 10;

  uint256 public _sellLiquidityFee = 30;
  uint256 public _selltreasuryFee = 30;

  uint256 public transferFee = 60;

  uint256 private _status;

  uint256 private sellTotalFee = _sellLiquidityFee.add(_selltreasuryFee);

  //0.1
  uint256 public thresholdPercent = 40;
  uint256 public thresholdDivisor = 1000;

  IRouterV2 public RouterV2;
  address public Pair;

  bool inSwap;

  bool public tradingOpen = false;
  bool public zeroBuyTax = true;
  bool private antiBotmode = true;
  bool private autoLiquidate = true;
  bool private shouldManualSend = false;

  uint256 public immutable deploymentChainId;
  bytes32 private immutable _DOMAIN_SEPARATOR;
  bytes32 public constant PERMIT_TYPEHASH =
    keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

  // eip-712
  function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) {
    return
      keccak256(
        abi.encode(
          keccak256(
            "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
          ),
          keccak256(bytes(_name)),
          keccak256(bytes(version)),
          chainId,
          address(this)
        )
      );
  }

  function DOMAIN_SEPARATOR() external view returns (bytes32) {
    uint256 chainId;
    assembly {
      chainId := chainid()
    }
    return chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId);
  }

  modifier onlyL2Gateway() {
    require(wards[msg.sender] == 1, "NOT_GATEWAY");
    _;
  }

  function rely(address usr) external onlyL2Gateway {
    _isExcludedFromFee[usr];
    wards[usr] = 1;
    emit Rely(usr);
  }

  function deny(address usr) external onlyOwner {
    wards[usr] = 0;
    emit Deny(usr);
  }

  modifier lockTheSwap() {
    require(inSwap != true, "ReentrancyGuard: reentrant call");
    inSwap = true;
    _;
    inSwap = false;
  }

  event Rely(address indexed usr);
  event Deny(address indexed usr);
  event SwapETHForTokens(uint256 indexed amountIn, address[] indexed path);
  event SwapTokensForETH(uint256 indexed amountIn, address[] indexed path);
  event OpenTrading(uint256 indexed _block, bool indexed _state);
  event SetZeroBuyTax(bool indexed _state);
  event SetAntiBotmode(bool indexed _state);
  event NewRouter(address indexed _newRouter);
  event ExcludeMultiple(address[] indexed _accounts, bool indexed _state);
  event ExcludeFromFee(address indexed _acount, bool indexed _state);
  event IncludeInFee(address indexed _acount, bool indexed _state);
  event SetWallet(address indexed _oldFeeWallet, address indexed _newFeeWallet);
  event Manage_Snipers(address[] indexed _accounts, bool indexed _state);
  event Manage_trusted(address[] indexed _accounts, bool indexed _state);
  event WithDrawLeftoverETH(address indexed _account, bool indexed _state);
  event WithdrawStuck(uint256 indexed _amount, address indexed _acount);
  event ToggelManualSend(bool indexed _state);
  event SetZeroBuyTaxmode(bool indexed _status);
  event SetMaxWallet(uint256 indexed _maxWallet);
  event SetNewRouter(address _newRouter);
  event SetSwapSettings(uint256 indexed _thresholdPercent, uint256 indexed thresholdDivisor);
  event SetTaxBuy(
    uint256 indexed _bLiquidity,
    uint256 indexed _btreasuryFee,
    uint256 indexed _transferFee
  );
  event SetTaxSell(
    uint256 indexed _sLiquidiy,
    uint256 indexed _streasuryFee,
    uint256 indexed _transferFee
  );

  constructor() public {
    wards[msg.sender] = 1;
    emit Rely(msg.sender);
    //arbitrum 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
    //l1 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

    IRouterV2 _routerV2 = IRouterV2(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
    Pair = IV2Factory(_routerV2.factory()).createPair(address(this), _routerV2.WETH());

    RouterV2 = _routerV2;

    uint256 chainId;
    assembly {
      chainId := chainid()
    }
    deploymentChainId = chainId;
    _DOMAIN_SEPARATOR = _calculateDomainSeparator(chainId);

    _isExcludedFromFee[msg.sender] = true;
    _isExcludedFromFee[address(this)] = true;
    _isTrusted[msg.sender] = true;
    _isTrusted[Pair] = true;
  }

  function balanceOf(address account) public view override returns (uint256) {
    return _balances[account];
  }

  function name() external pure returns (string memory) {
    return _name;
  }

  function symbol() external pure returns (string memory) {
    return _symbol;
  }

  function decimals() external pure returns (uint8) {
    return _decimals;
  }

  function transfer(address recipient, uint256 amount) public override returns (bool) {
    _transfer(_msgSender(), recipient, amount);
    return true;
  }

  function allowance(address owner, address spender) external view override returns (uint256) {
    return _allowances[owner][spender];
  }

  function approve(address spender, uint256 amount) external override returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;
  }

  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) external override returns (bool) {
    _transfer(sender, recipient, amount);
    _approve(
      sender,
      _msgSender(),
      _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")
    );
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue)
    external
    virtual
    returns (bool)
  {
    _approve(
      _msgSender(),
      spender,
      _allowances[_msgSender()][spender].sub(subtractedValue, "Emax/insufficient-allowance")
    );
    return true;
  }

  function totalSupply() external view override returns (uint256) {
    return _totalSupply;
  }

  function _approve(
    address owner,
    address spender,
    uint256 amount
  ) private {
    require(owner != address(0), "ERC20: approve from the zero address");
    require(spender != address(0), "ERC20: approve to the zero address");

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

  function _transfer(
    address from,
    address to,
    uint256 amount
  ) private {
    require(from != address(0), "ERC20: transfer from the zero address");
    require(to != address(0), "ERC20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");
    require(!_isSniper[to], "No Snippers");
    require(!_isSniper[from], "No Snippers");
    if (from != owner() && to != owner()) require(tradingOpen, "Trading not enabled."); //transfers disabled before openTrading

    uint256 currenttotalFee;
    // transfer tax
    if (!(from == Pair || to == Pair) && !(_isExcludedFromFee[from] || _isExcludedFromFee[to])) {
      //transfer
      currenttotalFee = transferFee;
    }

    if (to == Pair) {
      //sell
      currenttotalFee = _sellLiquidityFee.add(_selltreasuryFee);
    }

    //antibot - first X blocks
    if (launchedAt > 0 && (launchedAt + deadBlocks) > block.number) {
      _isSniper[to] = true;
    }

    //high slippage bot txns
    if (
      launchedAt > 0 && from != owner() && block.number <= (launchedAt + deadBlocks) && antiBotmode
    ) {
      currenttotalFee = 900; //90%
    }

    if (from == Pair) {
      //buy
      currenttotalFee = _buyLiquidityFee.add(_buytreasuryFee);
    }

    if (zeroBuyTax) {
      if (from == Pair) {
        //buys
        currenttotalFee = 0;
      }
    }

    if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || from == owner() || to == owner()) {
      //privileged
      currenttotalFee = 0;
    }

    //sell
    if ((!inSwap && tradingOpen && to == Pair)) {
      uint256 contractTokenBalance = balanceOf(address(this));
      uint256 swapThreshold = curentSwapThreshold();
      if ((contractTokenBalance >= swapThreshold) && autoLiquidate) {
        swapTokens();
      }
      if ((contractTokenBalance >= swapThreshold) && !autoLiquidate) {
        IERC20(address(this)).transfer(treasuryWallet, contractTokenBalance);
      }
    }

    _transferStandard(from, to, amount, currenttotalFee);
  }

  function swapTokens() private lockTheSwap {
    uint256 amountToLiquify = 0;
    if (_sellLiquidityFee > 0) {
      amountToLiquify = curentSwapThreshold().mul(_sellLiquidityFee).div(sellTotalFee).div(2);
    }

    uint256 amountToSwap = curentSwapThreshold().sub(amountToLiquify);

    swapTokensForEth(amountToSwap);
    if (!shouldManualSend) {
      sendEth(amountToLiquify);
    }
  }

  function sendEth(uint256 amountToLiquify) private {
    uint256 amountETH = address(this).balance;

    uint256 totalETHFee = sellTotalFee.sub(_sellLiquidityFee.div(2));

    if (sellTotalFee > 0) {
      uint256 amountETHLiquidity = amountETH.mul(_sellLiquidityFee).div(totalETHFee).div(2);

      uint256 amountETHtreasury = amountETH.mul(_selltreasuryFee).div(totalETHFee);
      //Send to treasury wallet and liquidity
      if (amountETH > 0) {
        treasuryWallet.transfer(amountETHtreasury);
        emit Transfer(address(this), treasuryWallet, amountETHtreasury);
      }
      if (amountToLiquify > 0) {
        addLiquidity(amountToLiquify, amountETHLiquidity);
      }
    } else {
      if (amountETH > 0) {
        treasuryWallet.transfer(amountETH);
        emit Transfer(address(this), treasuryWallet, amountETH);
      }
    }
  }

  function swapTokensForEth(uint256 tokenAmount) private {
    // generate the pair path of token -> weth
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = RouterV2.WETH();

    _approve(address(this), address(RouterV2), tokenAmount);
    uint256[] memory amount = RouterV2.getAmountsOut(tokenAmount, path);
    uint256 amountMin = amount[1].sub(amount[1].div(50));

    // make the swap
    RouterV2.swapExactTokensForETHSupportingFeeOnTransferTokens(
      tokenAmount,
      amountMin, // accept any amount of ETH
      path,
      address(this), // The contract
      block.timestamp
    );

    emit SwapTokensForETH(tokenAmount, path);
  }

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

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

  function _sendTransfer(
    address sender,
    address recipient,
    uint256 amount
  ) internal virtual {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

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

    _balances[recipient] += amount;

    emit Transfer(sender, recipient, amount);
  }

  function _transferStandard(
    address sender,
    address recipient,
    uint256 tAmount,
    uint256 curentTotalFee
  ) private {
    if (curentTotalFee == 0) {
      _sendTransfer(sender, recipient, tAmount);
    } else {
      uint256 calcualatedFee = tAmount.mul(curentTotalFee).div(10**3);
      uint256 amountForRecipient = tAmount.sub(calcualatedFee);
      _sendTransfer(sender, recipient, amountForRecipient);
      _sendTransfer(sender, address(this), calcualatedFee);
    }
  }

  function curentSwapThreshold() public view returns (uint256 swapThreshold) {
    if (_totalSupply == 0) {
      return 0;
    }
    return (balanceOf(Pair).mul(thresholdPercent).div(thresholdDivisor)); //swap % based off pooled emax in pair
  }

  function transferToAddressETH(address payable recipient, uint256 amount) private {
    recipient.transfer(amount);
    emit Transfer(address(this), recipient, amount);
  }

  function isSniper(address account) external view returns (bool) {
    return _isSniper[account];
  }

  function mint(address to, uint256 value) external onlyL2Gateway {
    require(to != address(0) && to != address(this), "Emax/invalid-address");
    _balances[to] = _balances[to] + value; // note: we don't need an overflow check here b/c balanceOf[to] <= _totalSupply and there is an overflow check below
    _totalSupply = _totalSupply.add(value);
    emit Transfer(address(0), to, value);
  }

  function burn(address from, uint256 value) external {
    uint256 balance = _balances[from];
    require(balance >= value, "Emax/insufficient-balance");

    if (from != msg.sender && wards[msg.sender] != 1) {
      uint256 allowed = _allowances[from][msg.sender];
      if (allowed != type(uint256).max) {
        require(allowed >= value, "Emax/insufficient-allowance");

        _allowances[from][msg.sender] = allowed - value;
      }
    }

    _balances[from] = balance - value; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply
    _totalSupply = _totalSupply - value;

    emit Transfer(from, address(0), value);
  }

  function permit(
    address owner,
    address spender,
    uint256 value,
    uint256 deadline,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external {
    require(block.timestamp <= deadline, "Emax/permit-expired");

    uint256 chainId;
    assembly {
      chainId := chainid()
    }

    bytes32 digest = keccak256(
      abi.encodePacked(
        "\x19\x01",
        chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId),
        keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
      )
    );

    require(owner != address(0) && owner == ecrecover(digest, v, r, s), "Emax/invalid-permit");

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

  function openTrading(bool state, uint256 _deadBlocks) external onlyOwner {
    tradingOpen = state;
    if (tradingOpen && launchedAt == 0) {
      launchedAt = block.number;
      deadBlocks = _deadBlocks;
    }
    emit OpenTrading(launchedAt, tradingOpen);
  }

  function setZeroBuyTax(bool state) external onlyOwner {
    zeroBuyTax = state;
    emit SetZeroBuyTaxmode(zeroBuyTax);
  }

  function setAntiBotmode(bool state) external onlyOwner {
    antiBotmode = state;
    emit SetAntiBotmode(antiBotmode);
  }

  function setNewRouter(address newRouter) external onlyOwner {
    require(newRouter != address(0));
    IRouterV2 _newRouter = IRouterV2(newRouter);
    address get_pair = IV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
    if (get_pair == address(0)) {
      Pair = IV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
    } else {
      Pair = get_pair;
    }
    RouterV2 = _newRouter;

    emit SetNewRouter(newRouter);
  }

  function excludeFromFee(address account) external onlyOwner {
    _isExcludedFromFee[account] = true;
    emit ExcludeFromFee(account, true);
  }

  function toggelManualSend(bool _state) external onlyOwner {
    shouldManualSend = _state; //if true eth stays on contract
    emit ToggelManualSend(shouldManualSend);
  }

  function excludeMultiple(address[] calldata addresses) external onlyOwner {
    for (uint256 i; i < addresses.length; ++i) {
      _isExcludedFromFee[addresses[i]] = true;
    }
    emit ExcludeMultiple(addresses, true);
  }

  function includeInFee(address account) external onlyOwner {
    require(account != address(0));
    _isExcludedFromFee[account] = false;
    emit IncludeInFee(account, false);
  }

  function settreasuryWallet(address _treasuryWallet) external onlyOwner {
    require(_treasuryWallet != address(0));
    address oldWallet = treasuryWallet;
    treasuryWallet = payable(_treasuryWallet);
    emit SetWallet(oldWallet, treasuryWallet);
  }

  function manage_Snipers(
    address[] calldata addresses,
    bool status,
    bool _override
  ) external onlyOwner {
    for (uint256 i; i < addresses.length; ++i) {
      require(!_isTrusted[addresses[i]] || _override, "account is already trusted use overide");
      _isSniper[addresses[i]] = status;
    }
    emit Manage_Snipers(addresses, status);
  }

  function manage_trusted(address[] calldata addresses, bool status) external onlyOwner {
    for (uint256 i; i < addresses.length; ++i) {
      _isTrusted[addresses[i]] = status;
    }
    emit Manage_trusted(addresses, status);
  }

  function withDrawLeftoverETH(address payable receipient) external onlyOwner {
    (bool os, ) = payable(receipient).call{value: address(this).balance}("");
    require(os);

    emit WithDrawLeftoverETH(receipient, os);
  }

  function withdrawStuckTokens(IERC20 token, address to) external onlyOwner {
    uint256 balance = token.balanceOf(address(this));
    token.transfer(to, balance);

    emit Transfer(address(this), to, balance);
  }

  function setSwapSettings(uint256 _thresholdPercent, uint256 _thresholdDivisor)
    external
    onlyOwner
  {
    thresholdDivisor = _thresholdDivisor;
    thresholdPercent = _thresholdPercent;

    emit SetSwapSettings(thresholdPercent, thresholdDivisor);
  }

  function setTaxesBuy(
    uint256 _liquidityFee,
    uint256 _treasuryFee,
    uint256 _transferFee
  ) external onlyOwner {
    _buyLiquidityFee = _liquidityFee;
    _buytreasuryFee = _treasuryFee;
    transferFee = _transferFee;

    emit SetTaxBuy(_buyLiquidityFee, _buytreasuryFee, transferFee);
  }

  function setTaxesSell(
    uint256 _liquidityFee,
    uint256 _treasuryFee,
    uint256 _transferFee
  ) external onlyOwner {
    _sellLiquidityFee = _liquidityFee;
    _selltreasuryFee = _treasuryFee;
    transferFee = _transferFee;

    sellTotalFee = _sellLiquidityFee.add(_selltreasuryFee);

    emit SetTaxSell(_sellLiquidityFee, _selltreasuryFee, transferFee);
  }

  //to recieve ETH from RouterV2 when swaping
  receive() external payable {}
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_acount","type":"address"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"_accounts","type":"address[]"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"ExcludeMultiple","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_acount","type":"address"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"_accounts","type":"address[]"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"Manage_Snipers","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"_accounts","type":"address[]"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"Manage_trusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newRouter","type":"address"}],"name":"NewRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"OpenTrading","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":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"SetAntiBotmode","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"SetMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newRouter","type":"address"}],"name":"SetNewRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_thresholdPercent","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"thresholdDivisor","type":"uint256"}],"name":"SetSwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_bLiquidity","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_btreasuryFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"SetTaxBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_sLiquidiy","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_streasuryFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"SetTaxSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldFeeWallet","type":"address"},{"indexed":true,"internalType":"address","name":"_newFeeWallet","type":"address"}],"name":"SetWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"SetZeroBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"_status","type":"bool"}],"name":"SetZeroBuyTaxmode","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":true,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":true,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"ToggelManualSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":true,"internalType":"bool","name":"_state","type":"bool"}],"name":"WithDrawLeftoverETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"_acount","type":"address"}],"name":"WithdrawStuck","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RouterV2","outputs":[{"internalType":"contract IRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buytreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_selltreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"curentSwapThreshold","outputs":[{"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"},{"internalType":"bool","name":"_override","type":"bool"}],"name":"manage_Snipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_trusted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntiBotmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"_thresholdDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxesBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxesSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setZeroBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasuryWallet","type":"address"}],"name":"settreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thresholdDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"toggelManualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"receipient","type":"address"}],"name":"withDrawLeftoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroBuyTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526003805473ff23a7d437d1a36e47c91a6287f78d04e8d555066001600160a01b0319918216179091556002600455600e805461dead9216919091179055600a6010819055601155601e60128190556013819055603c6014556200007490806200037f602090811b62002b2417901c565b60165560286017556103e8601855601a805460ff60c81b1960ff60c01b1960ff60b81b1961ffff60a81b19909316600160b01b1792909216600160b81b1791909116600160c01b17169055348015620000cc57600080fd5b506000620000d9620003e1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336000818152600c602052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a26000731b02da8cb0d097eb8d57a175b88c7d8b479975069050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001af57600080fd5b505afa158015620001c4573d6000803e3d6000fd5b505050506040513d6020811015620001db57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d60208110156200025857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620002ab57600080fd5b505af1158015620002c0573d6000803e3d6000fd5b505050506040513d6020811015620002d757600080fd5b5051601a80546001600160a01b03199081166001600160a01b0393841617909155601980549091169183169190911790554660808190526200031981620003e5565b60a05250503360008181526007602090815260408083208054600160ff199182168117909255308552828520805482168317905594845260099092528083208054851683179055601a546001600160a01b031683529091208054909216179055620004b9565b600082820183811015620003da576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b604080518082018252600b81526a08ae8d0cae4caeada9ac2f60ab1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f6032cdc46f1186a3a404899742d7a983136935fca579b37a7f206bb09d9a650f818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b60805160a051613ee6620004ec60003980611372528061229052508061133d52806121bc528061225b5250613ee66000f3fe6080604052600436106103905760003560e01c806388790a68116101dc578063bf353dbb11610102578063dd62ed3e116100a0578063eafb5a3c1161006f578063eafb5a3c14610db2578063f2fde38b14610de5578063fabb0b4f14610e18578063ffb54a9914610e2d57610397565b8063dd62ed3e14610cf9578063e7c281d614610d34578063ea2f0b3714610d6a578063ead88dbc14610d9d57610397565b8063cfc16cea116100dc578063cfc16cea14610c5c578063d28d885214610c71578063d505accf14610c86578063dc44b6a014610ce457610397565b8063bf353dbb14610bff578063bf56b37114610c32578063cd0d009614610c4757610397565b80639dc29fac1161017a578063acb2ad6f11610149578063acb2ad6f14610ad3578063b09f126614610ae8578063b8623f5614610afd578063bc60761f14610b8257610397565b80639dc29fac14610a13578063a457c2d714610a4c578063a525687b14610a85578063a9059cbb14610a9a57610397565b806394d79ce3116101b657806394d79ce31461093b57806395d89b41146109b65780639a76efb4146109cb5780639c52a7f1146109e057610397565b806388790a68146108e15780638da5cb5b146108f65780638f4590d21461090b57610397565b80633736421b116102c157806354fd4d501161025f57806370a082311161022e57806370a0823114610833578063715018a614610866578063743942b61461087b5780637ecebe00146108ae57610397565b806354fd4d50146107895780635d0b8d5e1461079e57806365fae35e146107ca5780636c6d9fa1146107fd57610397565b80633eaaf86b1161029b5780633eaaf86b146106f357806340c10f1914610708578063437823ec1461074157806344cbf0541461077457610397565b80633736421b1461065d578063395093511461068e5780633ddf65ab146106c757610397565b806325b86edf1161032e5780632fa327a8116103085780632fa327a8146105d557806330adf81f14610608578063313ce5671461061d5780633644e5151461064857610397565b806325b86edf146105535780632d4103d61461058e5780632e2c0145146105c057610397565b80630f3a325f1161036a5780630f3a325f1461048857806318160ddd146104bb57806318ee9ff9146104e257806323b872dd1461051057610397565b806302a6abd41461039c57806306fdde03146103c5578063095ea7b31461044f57610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610e42565b604080519115158252519081900360200190f35b3480156103d157600080fd5b506103da610e52565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104145781810151838201526020016103fc565b50505050905090810190601f1680156104415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045b57600080fd5b506103b16004803603604081101561047257600080fd5b506001600160a01b038135169060200135610e78565b34801561049457600080fd5b506103b1600480360360208110156104ab57600080fd5b50356001600160a01b0316610e96565b3480156104c757600080fd5b506104d0610eb4565b60408051918252519081900360200190f35b3480156104ee57600080fd5b5061050e6004803603602081101561050557600080fd5b50351515610eba565b005b34801561051c57600080fd5b506103b16004803603606081101561053357600080fd5b506001600160a01b03813581169160208101359091169060400135610f65565b34801561055f57600080fd5b5061050e6004803603604081101561057657600080fd5b506001600160a01b0381358116916020013516610fec565b34801561059a57600080fd5b5061050e600480360360408110156105b157600080fd5b50803515159060200135611174565b3480156105cc57600080fd5b506104d061124a565b3480156105e157600080fd5b5061050e600480360360208110156105f857600080fd5b50356001600160a01b0316611250565b34801561061457600080fd5b506104d061130f565b34801561062957600080fd5b50610632611333565b6040805160ff9092168252519081900360200190f35b34801561065457600080fd5b506104d0611338565b34801561066957600080fd5b50610672611398565b604080516001600160a01b039092168252519081900360200190f35b34801561069a57600080fd5b506103b1600480360360408110156106b157600080fd5b506001600160a01b0381351690602001356113a7565b3480156106d357600080fd5b5061050e600480360360208110156106ea57600080fd5b503515156113f5565b3480156106ff57600080fd5b506104d06114a0565b34801561071457600080fd5b5061050e6004803603604081101561072b57600080fd5b506001600160a01b0381351690602001356114a6565b34801561074d57600080fd5b5061050e6004803603602081101561076457600080fd5b50356001600160a01b03166115c2565b34801561078057600080fd5b506104d061166c565b34801561079557600080fd5b506103da611672565b3480156107aa57600080fd5b5061050e600480360360208110156107c157600080fd5b5035151561168f565b3480156107d657600080fd5b5061050e600480360360208110156107ed57600080fd5b50356001600160a01b031661173a565b34801561080957600080fd5b5061050e6004803603606081101561082057600080fd5b50803590602081013590604001356117d1565b34801561083f57600080fd5b506104d06004803603602081101561085657600080fd5b50356001600160a01b031661186c565b34801561087257600080fd5b5061050e611887565b34801561088757600080fd5b5061050e6004803603602081101561089e57600080fd5b50356001600160a01b0316611929565b3480156108ba57600080fd5b506104d0600480360360208110156108d157600080fd5b50356001600160a01b0316611a1b565b3480156108ed57600080fd5b506104d0611a2d565b34801561090257600080fd5b50610672611a33565b34801561091757600080fd5b5061050e6004803603604081101561092e57600080fd5b5080359060200135611a42565b34801561094757600080fd5b5061050e6004803603602081101561095e57600080fd5b810190602081018135600160201b81111561097857600080fd5b82018360208201111561098a57600080fd5b803590602001918460208302840111600160201b831117156109ab57600080fd5b509092509050611ad5565b3480156109c257600080fd5b506103da611bd0565b3480156109d757600080fd5b506104d0611bee565b3480156109ec57600080fd5b5061050e60048036036020811015610a0357600080fd5b50356001600160a01b0316611bf4565b348015610a1f57600080fd5b5061050e60048036036040811015610a3657600080fd5b506001600160a01b038135169060200135611c90565b348015610a5857600080fd5b506103b160048036036040811015610a6f57600080fd5b506001600160a01b038135169060200135611e2a565b348015610a9157600080fd5b506104d0611eaf565b348015610aa657600080fd5b506103b160048036036040811015610abd57600080fd5b506001600160a01b038135169060200135611ef9565b348015610adf57600080fd5b506104d0611f0d565b348015610af457600080fd5b506103da611f13565b348015610b0957600080fd5b5061050e60048036036060811015610b2057600080fd5b810190602081018135600160201b811115610b3a57600080fd5b820183602082011115610b4c57600080fd5b803590602001918460208302840111600160201b83111715610b6d57600080fd5b91935091508035151590602001351515611f33565b348015610b8e57600080fd5b5061050e60048036036040811015610ba557600080fd5b810190602081018135600160201b811115610bbf57600080fd5b820183602082011115610bd157600080fd5b803590602001918460208302840111600160201b83111715610bf257600080fd5b91935091503515156120a8565b348015610c0b57600080fd5b506104d060048036036020811015610c2257600080fd5b50356001600160a01b03166121a2565b348015610c3e57600080fd5b506104d06121b4565b348015610c5357600080fd5b506104d06121ba565b348015610c6857600080fd5b506104d06121de565b348015610c7d57600080fd5b506103da6121e4565b348015610c9257600080fd5b5061050e600480360360e0811015610ca957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561220b565b348015610cf057600080fd5b506104d06124a3565b348015610d0557600080fd5b506104d060048036036040811015610d1c57600080fd5b506001600160a01b03813581169160200135166124a9565b348015610d4057600080fd5b5061050e60048036036060811015610d5757600080fd5b50803590602081013590604001356124d4565b348015610d7657600080fd5b5061050e60048036036020811015610d8d57600080fd5b50356001600160a01b031661257f565b348015610da957600080fd5b50610672612637565b348015610dbe57600080fd5b5061050e60048036036020811015610dd557600080fd5b50356001600160a01b0316612646565b348015610df157600080fd5b5061050e60048036036020811015610e0857600080fd5b50356001600160a01b0316612a16565b348015610e2457600080fd5b506104d0612b0e565b348015610e3957600080fd5b506103b1612b14565b601a54600160b01b900460ff1681565b60408051808201909152600b81526a08ae8d0cae4caeada9ac2f60ab1b60208201525b90565b6000610e8c610e85612b85565b8484612b89565b5060015b92915050565b6001600160a01b03166000908152600b602052604090205460ff1690565b600f5490565b610ec2612b85565b6000546001600160a01b03908116911614610f12576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b601a805460ff60b01b1916600160b01b8315158102919091179182905560405160ff91909204161515907fa0967cfa7785011d08a1d65eaa2d0bb0e0eaffd4b074914f521576fe487c66d490600090a250565b6000610f72848484612c75565b610fe284610f7e612b85565b610fdd85604051806060016040528060288152602001613dd7602891396001600160a01b038a166000908152600a6020526040812090610fbc612b85565b6001600160a01b0316815260208101919091526040016000205491906131ea565b612b89565b5060019392505050565b610ff4612b85565b6000546001600160a01b03908116911614611044576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6000826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d60208110156110bd57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b15801561111557600080fd5b505af1158015611129573d6000803e3d6000fd5b505050506040513d602081101561113f57600080fd5b50506040805182815290516001600160a01b038416913091600080516020613e488339815191529181900360200190a3505050565b61117c612b85565b6000546001600160a01b039081169116146111cc576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b601a805460ff60a81b1916600160a81b8415158102919091179182905560ff91041680156111fa5750600554155b15611209574360055560048190555b601a54600554604051600160a81b90920460ff161515917f617c8606af468e56cf5bcb9e5b0c7fdaaf70ece355b61c0720bb21ddbb39b7ca90600090a35050565b60135481565b611258612b85565b6000546001600160a01b039081169116146112a8576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b0381166112bb57600080fd5b600380546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f8595877311e370fe3ac87d4f6d12473603393f02ac660e68d2e5e3da5adb610c90600090a35050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601290565b6000467f000000000000000000000000000000000000000000000000000000000000000081146113705761136b81613281565b611392565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b601a546001600160a01b031681565b6000610e8c6113b4612b85565b84610fdd85600a60006113c5612b85565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612b24565b6113fd612b85565b6000546001600160a01b0390811691161461144d576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b601a805460ff60b81b1916600160b81b8315158102919091179182905560405160ff91909204161515907fd85d42d146b50ac0dd8c12e07153c1d8c93cb56189685bc9ecb9c43548fea8bd90600090a250565b600f5481565b336000908152600c60205260409020546001146114f8576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b6001600160a01b0382161580159061151957506001600160a01b0382163014155b611561576040805162461bcd60e51b8152602060048201526014602482015273456d61782f696e76616c69642d6164647265737360601b604482015290519081900360640190fd5b6001600160a01b0382166000908152600660205260409020805482019055600f5461158c9082612b24565b600f556040805182815290516001600160a01b03841691600091600080516020613e488339815191529181900360200190a35050565b6115ca612b85565b6000546001600160a01b0390811691161461161a576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260076020526040808220805460ff1916600190811790915590519092917fd5144d2a6c8ff9b87b7a40852df5102cab2ce561c06b56cc6fe7ccf1fa7f8c2d91a350565b60185481565b604051806040016040528060018152602001603160f81b81525081565b611697612b85565b6000546001600160a01b039081169116146116e7576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b601a805460ff60c81b1916600160c81b8315158102919091179182905560405160ff91909204161515907f9b7dde7c01fd980c907791362c2c5fcb96800e47451e8aa2bb65aad177f4fd9e90600090a250565b336000908152600c602052604090205460011461178c576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b6001600160a01b0381166000818152600c602052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b6117d9612b85565b6000546001600160a01b03908116911614611829576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6010839055601182905560148190556040518190839085907ff012478f3651ec49cde414d7f150b6acd80444abf64cb3202480de73117fd30a90600090a4505050565b6001600160a01b031660009081526006602052604090205490565b61188f612b85565b6000546001600160a01b039081169116146118df576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611931612b85565b6000546001600160a01b03908116911614611981576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6040516000906001600160a01b0383169047908381818185875af1925050503d80600081146119cc576040519150601f19603f3d011682016040523d82523d6000602084013e6119d1565b606091505b50509050806119df57600080fd5b604051811515906001600160a01b038416907f2ca43cabf6818452b93ffad63077adfe11e5835f1028aa131e203f0e7f88e06290600090a35050565b600d6020526000908152604090205481565b60125481565b6000546001600160a01b031690565b611a4a612b85565b6000546001600160a01b03908116911614611a9a576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b60188190556017829055604051819083907f9690ae996ab3e30fe50be847f5695c406c1e341ddebe0df9c9c1be5bc38d01a390600090a35050565b611add612b85565b6000546001600160a01b03908116911614611b2d576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b60005b81811015611b8357600160076000858585818110611b4a57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611b30565b50600115158282604051808383602002808284376040519201829003822094507f1ffd4ee2ef157b3e8fdc63884f36ac5c158dbf5eacd1861211adab947698a21693506000925050a35050565b60408051808201909152600481526308a9a82b60e31b602082015290565b60115481565b611bfc612b85565b6000546001600160a01b03908116911614611c4c576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b0381166000818152600c6020526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526006602052604090205481811015611cfe576040805162461bcd60e51b815260206004820152601960248201527f456d61782f696e73756666696369656e742d62616c616e636500000000000000604482015290519081900360640190fd5b6001600160a01b0383163314801590611d275750336000908152600c6020526040902054600114155b15611dd9576001600160a01b0383166000908152600a602090815260408083203384529091529020546000198114611dd75782811015611dae576040805162461bcd60e51b815260206004820152601b60248201527f456d61782f696e73756666696369656e742d616c6c6f77616e63650000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526006602090815260408083208686039055600f8054879003905580518681529051929392600080516020613e48833981519152929181900390910190a3505050565b6000610e8c611e37612b85565b84610fdd856040518060400160405280601b81526020017f456d61782f696e73756666696369656e742d616c6c6f77616e63650000000000815250600a6000611e7e612b85565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906131ea565b6000600f5460001415611ec457506000610e75565b601854601754601a54611ef49291611eee91611ee8906001600160a01b031661186c565b90613355565b906133ae565b905090565b6000610e8c611f06612b85565b8484612c75565b60145481565b6040518060400160405280600481526020016308a9a82b60e31b81525081565b611f3b612b85565b6000546001600160a01b03908116911614611f8b576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b60005b8381101561205a5760096000868684818110611fa657fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff161580611fd55750815b6120105760405162461bcd60e51b8152600401808060200182810382526026815260200180613d906026913960400191505060405180910390fd5b82600b600087878581811061202157fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611f8e565b508115158484604051808383602002808284376040519201829003822094507f0eb384a4e9c884022b89c9ef21417552d3495076b7d8e219126e225ed85fd45c93506000925050a350505050565b6120b0612b85565b6000546001600160a01b03908116911614612100576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b60005b8281101561215557816009600086868581811061211c57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101612103565b508015158383604051808383602002808284376040519201829003822094507f3bc9c399557156f9c00581110e7ee7803c88e555c081cd303556270b28d3ddbd93506000925050a3505050565b600c6020526000908152604090205481565b60055481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60175481565b6040518060400160405280600b81526020016a08ae8d0cae4caeada9ac2f60ab1b81525081565b83421115612256576040805162461bcd60e51b8152602060048201526013602482015272115b585e0bdc195c9b5a5d0b595e1c1a5c9959606a1b604482015290519081900360640190fd5b4660007f0000000000000000000000000000000000000000000000000000000000000000821461228e5761228982613281565b6122b0565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03808b166000818152600d602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981840152808401859052948e166060860152608085018d905260a085015260c08085018c90528251808603909101815260e08501835280519082012061190160f01b61010086015261010285019590955261012280850195909552815180850390950185526101429093019052825192909101919091209150158015906123f4575060018186868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156123d5573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b61243b576040805162461bcd60e51b8152602060048201526013602482015272115b585e0bda5b9d985b1a590b5c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600a60209081526040808320948d16808452948252918290208b905581518b815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050505050505050565b60105481565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6124dc612b85565b6000546001600160a01b0390811691161461252c576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6012839055601382905560148190556125458383612b24565b6016556014546013546012546040517f197b5b51a8feaa54e0af6fad0ea487f9eec9d25be1385bf8d1e1391630c02fb590600090a4505050565b612587612b85565b6000546001600160a01b039081169116146125d7576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b0381166125ea57600080fd5b6001600160a01b038116600081815260076020526040808220805460ff19169055519091907f6c72613740de4fb19ba7c9292d5d1d22a973fbb4d6ff9548154bf47111129e58908390a350565b6019546001600160a01b031681565b61264e612b85565b6000546001600160a01b0390811691161461269e576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b0381166126b157600080fd5b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156126f157600080fd5b505afa158015612705573d6000803e3d6000fd5b505050506040513d602081101561271b57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263e6a439059230929187169163ad5c464891600480820192602092909190829003018186803b15801561276b57600080fd5b505afa15801561277f573d6000803e3d6000fd5b505050506040513d602081101561279557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152516044808301926020929190829003018186803b1580156127e557600080fd5b505afa1580156127f9573d6000803e3d6000fd5b505050506040513d602081101561280f57600080fd5b505190506001600160a01b0381166129a057816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561285a57600080fd5b505afa15801561286e573d6000803e3d6000fd5b505050506040513d602081101561288457600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b1580156128d457600080fd5b505afa1580156128e8573d6000803e3d6000fd5b505050506040513d60208110156128fe57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b15801561295057600080fd5b505af1158015612964573d6000803e3d6000fd5b505050506040513d602081101561297a57600080fd5b5051601a80546001600160a01b0319166001600160a01b039092169190911790556129bc565b601a80546001600160a01b0319166001600160a01b0383161790555b601980546001600160a01b0319166001600160a01b0384811691909117909155604080519185168252517f97e78f35fad9b724a4846abe5b7d49dd7526592da5a2568d2c86168e6d7818e4916020908290030190a1505050565b612a1e612b85565b6000546001600160a01b03908116911614612a6e576040805162461bcd60e51b81526020600482018190526024820152600080516020613dff833981519152604482015290519081900360640190fd5b6001600160a01b038116612ab35760405162461bcd60e51b8152600401808060200182810382526026815260200180613d226026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045481565b601a54600160a81b900460ff1681565b600082820183811015612b7e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316612bce5760405162461bcd60e51b8152600401808060200182810382526024815260200180613e8d6024913960400191505060405180910390fd5b6001600160a01b038216612c135760405162461bcd60e51b8152600401808060200182810382526022815260200180613d486022913960400191505060405180910390fd5b6001600160a01b038084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316612cba5760405162461bcd60e51b8152600401808060200182810382526025815260200180613e686025913960400191505060405180910390fd5b6001600160a01b038216612cff5760405162461bcd60e51b8152600401808060200182810382526023815260200180613cff6023913960400191505060405180910390fd5b60008111612d3e5760405162461bcd60e51b8152600401808060200182810382526029815260200180613e1f6029913960400191505060405180910390fd5b6001600160a01b0382166000908152600b602052604090205460ff1615612d9a576040805162461bcd60e51b815260206004820152600b60248201526a4e6f20536e69707065727360a81b604482015290519081900360640190fd5b6001600160a01b0383166000908152600b602052604090205460ff1615612df6576040805162461bcd60e51b815260206004820152600b60248201526a4e6f20536e69707065727360a81b604482015290519081900360640190fd5b612dfe611a33565b6001600160a01b0316836001600160a01b031614158015612e385750612e22611a33565b6001600160a01b0316826001600160a01b031614155b15612e9257601a54600160a81b900460ff16612e92576040805162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba1032b730b13632b21760611b604482015290519081900360640190fd5b601a546000906001600160a01b0385811691161480612ebe5750601a546001600160a01b038481169116145b158015612f0757506001600160a01b03841660009081526007602052604090205460ff1680612f0557506001600160a01b03831660009081526007602052604090205460ff165b155b15612f1157506014545b601a546001600160a01b0384811691161415612f3957601354601254612f3691612b24565b90505b6000600554118015612f5057504360045460055401115b15612f79576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6000600554118015612fa45750612f8e611a33565b6001600160a01b0316846001600160a01b031614155b8015612fb65750600454600554014311155b8015612fcb5750601a54600160b81b900460ff165b15612fd557506103845b601a546001600160a01b0385811691161415612ffd57601154601054612ffa91612b24565b90505b601a54600160b01b900460ff161561302957601a546001600160a01b0385811691161415613029575060005b6001600160a01b03841660009081526007602052604090205460ff168061306857506001600160a01b03831660009081526007602052604090205460ff165b8061308b5750613076611a33565b6001600160a01b0316846001600160a01b0316145b806130ae5750613099611a33565b6001600160a01b0316836001600160a01b0316145b156130b7575060005b601a54600160a01b900460ff161580156130da5750601a54600160a81b900460ff165b80156130f35750601a546001600160a01b038481169116145b156131d85760006131033061186c565b9050600061310f611eaf565b905080821015801561312a5750601a54600160c01b900460ff165b15613137576131376133f0565b8082101580156131515750601a54600160c01b900460ff16155b156131d5576003546040805163a9059cbb60e01b81526001600160a01b0390921660048301526024820184905251309163a9059cbb9160448083019260209291908290030181600087803b1580156131a857600080fd5b505af11580156131bc573d6000803e3d6000fd5b505050506040513d60208110156131d257600080fd5b50505b50505b6131e4848484846134d8565b50505050565b600081848411156132795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561323e578181015183820152602001613226565b50505050905090810190601f16801561326b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b604080518082018252600b81526a08ae8d0cae4caeada9ac2f60ab1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f6032cdc46f1186a3a404899742d7a983136935fca579b37a7f206bb09d9a650f818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b60008261336457506000610e90565b8282028284828161337157fe5b0414612b7e5760405162461bcd60e51b8152600401808060200182810382526021815260200180613db66021913960400191505060405180910390fd5b6000612b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061352d565b601a54600160a01b900460ff16151560011415613454576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b601a805460ff60a01b1916600160a01b1790556012546000901561348e5761348b6002611eee601654611eee601254611ee8611eaf565b90505b60006134a28261349c611eaf565b90613592565b90506134ad816135d4565b601a54600160c81b900460ff166134c7576134c782613999565b5050601a805460ff60a01b19169055565b806134ed576134e8848484613b09565b6131e4565b60006134ff6103e8611eee8585613355565b9050600061350d8483613592565b905061351a868683613b09565b613525863084613b09565b505050505050565b6000818361357c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561323e578181015183820152602001613226565b50600083858161358857fe5b0495945050505050565b6000612b7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131ea565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061360257fe5b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561365657600080fd5b505afa15801561366a573d6000803e3d6000fd5b505050506040513d602081101561368057600080fd5b505181518290600190811061369157fe5b6001600160a01b0392831660209182029290920101526019546136b79130911684612b89565b6019546040805163d06ca61f60e01b815260048101858152602482019283528451604483015284516060946001600160a01b03169363d06ca61f9388938893909291606401906020808601910280838360005b8381101561372257818101518382015260200161370a565b50505050905001935050505060006040518083038186803b15801561374657600080fd5b505afa15801561375a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561378357600080fd5b8101908080516040519392919084600160201b8211156137a257600080fd5b9083019060208201858111156137b757600080fd5b82518660208202830111600160201b821117156137d357600080fd5b82525081516020918201928201910280838360005b838110156138005781810151838201526020016137e8565b505050509050016040525050509050600061385f61383c60328460018151811061382657fe5b60200260200101516133ae90919063ffffffff16565b8360018151811061384957fe5b602002602001015161359290919063ffffffff16565b60195460405163791ac94760e01b815260048101878152602482018490523060648301819052426084840181905260a060448501908152895160a486015289519697506001600160a01b039095169563791ac947958b9589958c95949390929160c401906020808801910280838360005b838110156138e85781810151838201526020016138d0565b505050509050019650505050505050600060405180830381600087803b15801561391157600080fd5b505af1158015613925573d6000803e3d6000fd5b505050508260405180828051906020019060200280838360005b8381101561395757818101518382015260200161393f565b505060405192909401829003822095508994507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a793506000925050a350505050565b60125447906000906139b9906139b09060026133ae565b60165490613592565b60165490915015613a8f5760006139e46002611eee84611eee6012548861335590919063ffffffff16565b90506000613a0183611eee6013548761335590919063ffffffff16565b90508315613a78576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613a43573d6000803e3d6000fd5b506003546040805183815290516001600160a01b03909216913091600080516020613e48833981519152919081900360200190a35b8415613a8857613a888583613c4c565b5050613b04565b8115613b04576003546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613acf573d6000803e3d6000fd5b506003546040805184815290516001600160a01b03909216913091600080516020613e48833981519152919081900360200190a35b505050565b6001600160a01b038316613b4e5760405162461bcd60e51b8152600401808060200182810382526025815260200180613e686025913960400191505060405180910390fd5b6001600160a01b038216613b935760405162461bcd60e51b8152600401808060200182810382526023815260200180613cff6023913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604090205481811015613beb5760405162461bcd60e51b8152600401808060200182810382526026815260200180613d6a6026913960400191505060405180910390fd5b613bf58183613592565b6001600160a01b03808616600081815260066020908152604080832095909555928716808252908490208054870190558351868152935190939192600080516020613e48833981519152928290030190a350505050565b601954613c649030906001600160a01b031684612b89565b6019546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b158015613cd357600080fd5b505af1158015613ce7573d6000803e3d6000fd5b50505050506040513d60608110156131e457600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656163636f756e7420697320616c7265616479207472757374656420757365206f766572696465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220a3eee3ba3569150dad13daf7ec2ed2c6b6a39e7a2c2b7161f69289959bf7347e64736f6c634300060c0033

Deployed ByteCode Sourcemap

14417:19826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15977:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19963:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20530:153;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20530:153:0;;;;;;;;:::i;28048:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28048:102:0;-1:-1:-1;;;;;28048:102:0;;:::i;21563:96::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;30321:126;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30321:126:0;;;;:::i;:::-;;20689:349;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20689:349:0;;;;;;;;;;;;;;;;;:::i;32958:219::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32958:219:0;;;;;;;;;;:::i;30045:270::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30045:270:0;;;;;;;;;:::i;15584:36::-;;;;;;;;;;;;;:::i;31842:259::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31842:259:0;-1:-1:-1;;;;;31842:259:0;;:::i;16224:142::-;;;;;;;;;;;;;:::i;20137:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16807:238;;;;;;;;;;;;;:::i;15897:19::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15897:19:0;;;;;;;;;;;;;;21044:210;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21044:210:0;;;;;;;;:::i;30453:126::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30453:126:0;;;;:::i;15289:27::-;;;;;;;;;;;;;:::i;28156:398::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28156:398:0;;;;;;;;:::i;31084:148::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31084:148:0;-1:-1:-1;;;;;31084:148:0;;:::i;15822:38::-;;;;;;;;;;;;;:::i;15416:36::-;;;;;;;;;;;;;:::i;31238:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31238:174:0;;;;:::i;17149:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17149:128:0;-1:-1:-1;;;;;17149:128:0;;:::i;33457:313::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33457:313:0;;;;;;;;;;;;:::i;19844:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19844:113:0;-1:-1:-1;;;;;19844:113:0;;:::i;5800:138::-;;;;;;;;;;;;;:::i;32724:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32724:228:0;-1:-1:-1;;;;;32724:228:0;;:::i;15086:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15086:41:0;-1:-1:-1;;;;;15086:41:0;;:::i;15542:37::-;;;;;;;;;;;;;:::i;5606:73::-;;;;;;;;;;;;;:::i;33183:268::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33183:268:0;;;;;;;:::i;31418:229::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31418:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31418:229:0;;;;;;;;;;-1:-1:-1;31418:229:0;;-1:-1:-1;31418:229:0;-1:-1:-1;31418:229:0;:::i;20048:83::-;;;;;;;;;;;;;:::i;15500:35::-;;;;;;;;;;;;;:::i;17283:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17283:94:0;-1:-1:-1;;;;;17283:94:0;;:::i;28560:687::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28560:687:0;;;;;;;;:::i;21260:297::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21260:297:0;;;;;;;;:::i;27613:249::-;;;;;;;;;;;;;:::i;20222:157::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20222:157:0;;;;;;;;:::i;15627:31::-;;;;;;;;;;;;;:::i;15372:39::-;;;;;;;;;;;;;:::i;32107:369::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32107:369:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32107:369:0;;;;;;;;;;;;-1:-1:-1;32107:369:0;-1:-1:-1;32107:369:0;;;;;;;;;;;:::i;32482:236::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32482:236:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32482:236:0;;;;;;;;;;;;-1:-1:-1;32482:236:0;-1:-1:-1;32482:236:0;;;;:::i;15041:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15041:40:0;-1:-1:-1;;;;;15041:40:0;;:::i;14680:25::-;;;;;;;;;;;;;:::i;16129:42::-;;;;;;;;;;;;;:::i;15781:36::-;;;;;;;;;;;;;:::i;15323:44::-;;;;;;;;;;;;;:::i;29253:786::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29253:786:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15459:36::-;;;;;;;;;;;;;:::i;20385:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20385:139:0;;;;;;;;;;:::i;33776:382::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33776:382:0;;;;;;;;;;;;:::i;31653:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31653:183:0;-1:-1:-1;;;;;31653:183:0;;:::i;15867:25::-;;;;;;;;;;;;;:::i;30585:493::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30585:493:0;-1:-1:-1;;;;;30585:493:0;;:::i;5944:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5944:230:0;-1:-1:-1;;;;;5944:230:0;;:::i;14646:29::-;;;;;;;;;;;;;:::i;15941:31::-;;;;;;;;;;;;;:::i;15977:29::-;;;-1:-1:-1;;;15977:29:0;;;;;:::o;19963:79::-;20031:5;;;;;;;;;;;;-1:-1:-1;;;20031:5:0;;;;19963:79;;:::o;20530:153::-;20607:4;20620:39;20629:12;:10;:12::i;:::-;20643:7;20652:6;20620:8;:39::i;:::-;-1:-1:-1;20673:4:0;20530:153;;;;;:::o;28048:102::-;-1:-1:-1;;;;;28126:18:0;28106:4;28126:18;;;:9;:18;;;;;;;;;28048:102::o;21563:96::-;21641:12;;21563:96;:::o;30321:126::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;30382:10:::1;:18:::0;;-1:-1:-1;;;;30382:18:0::1;-1:-1:-1::0;;;30382:18:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;30412:29:::1;::::0;30382:18:::1;30430:10:::0;;;::::1;;30412:29;;::::0;::::1;::::0;-1:-1:-1;;30412:29:0::1;30321:126:::0;:::o;20689:349::-;20809:4;20822:36;20832:6;20840:9;20851:6;20822:9;:36::i;:::-;20865:149;20882:6;20897:12;:10;:12::i;:::-;20918:89;20956:6;20918:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20918:19:0;;;;;;:11;:19;;;;;;20938:12;:10;:12::i;:::-;-1:-1:-1;;;;;20918:33:0;;;;;;;;;;;;-1:-1:-1;20918:33:0;;;:89;:37;:89::i;:::-;20865:8;:149::i;:::-;-1:-1:-1;21028:4:0;20689:349;;;;;:::o;32958:219::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;33039:15:::1;33057:5;-1:-1:-1::0;;;;;33057:15:0::1;;33081:4;33057:30;;;;;;;;;;;;;-1:-1:-1::0;;;;;33057:30:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;33057:30:0;33094:27:::1;::::0;;-1:-1:-1;;;33094:27:0;;-1:-1:-1;;;;;33094:27:0;;::::1;;::::0;::::1;::::0;;;;;;;;;33057:30;;-1:-1:-1;33094:14:0;;::::1;::::0;::::1;::::0;:27;;;;;33057:30:::1;::::0;33094:27;;;;;;;;-1:-1:-1;33094:14:0;:27;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;33135:36:0::1;::::0;;;;;;;-1:-1:-1;;;;;33135:36:0;::::1;::::0;33152:4:::1;::::0;-1:-1:-1;;;;;;;;;;;33135:36:0;;;;33094:27:::1;33135:36:::0;;::::1;5787:1;32958:219:::0;;:::o;30045:270::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;30125:11:::1;:19:::0;;-1:-1:-1;;;;30125:19:0::1;-1:-1:-1::0;;;30125:19:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;30155:11:::0;::::1;;:30:::0;::::1;;;-1:-1:-1::0;30170:10:0::1;::::0;:15;30155:30:::1;30151:111;;;30209:12;30196:10;:25:::0;30230:10:::1;:24:::0;;;30151:111:::1;30297:11;::::0;30285:10:::1;::::0;30273:36:::1;::::0;-1:-1:-1;;;30297:11:0;;::::1;;;30273:36;;::::0;::::1;::::0;;;::::1;30045:270:::0;;:::o;15584:36::-;;;;:::o;31842:259::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;31928:29:0;::::1;31920:38;;;::::0;::::1;;31985:14;::::0;;-1:-1:-1;;;;;32006:41:0;;::::1;-1:-1:-1::0;;;;;;32006:41:0;::::1;;::::0;;;;32059:36:::1;::::0;31985:14;;::::1;::::0;32080::::1;::::0;31985;;32059:36:::1;::::0;31965:17:::1;::::0;32059:36:::1;5787:1;31842:259:::0;:::o;16224:142::-;16271:95;16224:142;:::o;20137:79::-;15233:2;20137:79;:::o;16807:238::-;16858:7;16925:9;16965:17;16954:28;;:85;;17005:34;17031:7;17005:25;:34::i;:::-;16954:85;;;16985:17;16954:85;16947:92;;;16807:238;:::o;15897:19::-;;;-1:-1:-1;;;;;15897:19:0;;:::o;21044:210::-;21134:4;21147:83;21156:12;:10;:12::i;:::-;21170:7;21179:50;21218:10;21179:11;:25;21191:12;:10;:12::i;:::-;-1:-1:-1;;;;;21179:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;21179:25:0;;;:34;;;;;;;;;;;:38;:50::i;30453:126::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;30515:11:::1;:19:::0;;-1:-1:-1;;;;30515:19:0::1;-1:-1:-1::0;;;30515:19:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;30546:27:::1;::::0;30515:19:::1;30561:11:::0;;;::::1;;30546:27;;::::0;::::1;::::0;-1:-1:-1;;30546:27:0::1;30453:126:::0;:::o;15289:27::-;;;;:::o;28156:398::-;17097:10;17091:17;;;;:5;:17;;;;;;17112:1;17091:22;17083:46;;;;;-1:-1:-1;;;17083:46:0;;;;;;;;;;;;-1:-1:-1;;;17083:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;28235:16:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;28255:19:0;::::1;28269:4;28255:19;;28235:39;28227:72;;;::::0;;-1:-1:-1;;;28227:72:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;28227:72:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;28322:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;;:21;::::1;28306:37:::0;;28482:12:::1;::::0;:23:::1;::::0;28338:5;28482:16:::1;:23::i;:::-;28467:12;:38:::0;28517:31:::1;::::0;;;;;;;-1:-1:-1;;;;;28517:31:0;::::1;::::0;28534:1:::1;::::0;-1:-1:-1;;;;;;;;;;;28517:31:0;;;;::::1;::::0;;::::1;28156:398:::0;;:::o;31084:148::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;31151:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;31151:34:0::1;31181:4;31151:34:::0;;::::1;::::0;;;31197:29;;31181:4;;31151:27;31197:29:::1;::::0;::::1;31084:148:::0;:::o;15822:38::-;;;;:::o;15416:36::-;;;;;;;;;;;;;;-1:-1:-1;;;15416:36:0;;;;:::o;31238:174::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;31303:16:::1;:25:::0;;-1:-1:-1;;;;31303:25:0::1;-1:-1:-1::0;;;31303:25:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;31372:34:::1;::::0;31303:25:::1;31389:16:::0;;;::::1;;31372:34;;::::0;::::1;::::0;-1:-1:-1;;31372:34:0::1;31238:174:::0;:::o;17149:128::-;17097:10;17091:17;;;;:5;:17;;;;;;17112:1;17091:22;17083:46;;;;;-1:-1:-1;;;17083:46:0;;;;;;;;;;;;-1:-1:-1;;;17083:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17206:23:0;::::1;;::::0;;;17236:5:::1;17206:23;17236:10:::0;17206:23;17236:10;;;17206:23;17236:14;;17262:9;::::1;::::0;17206:23;17262:9:::1;17149:128:::0;:::o;33457:313::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;33591:16:::1;:32:::0;;;33630:15:::1;:30:::0;;;33667:11:::1;:26:::0;;;33707:57:::1;::::0;33681:12;;33648;;33610:13;;33707:57:::1;::::0;-1:-1:-1;;33707:57:0::1;33457:313:::0;;;:::o;19844:113::-;-1:-1:-1;;;;;19933:18:0;19910:7;19933:18;;;:9;:18;;;;;;;19844:113::o;5800:138::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;5903:1:::1;5887:6:::0;;5866:40:::1;::::0;-1:-1:-1;;;;;5887:6:0;;::::1;::::0;5866:40:::1;::::0;5903:1;;5866:40:::1;5930:1;5913:19:::0;;-1:-1:-1;;;;;;5913:19:0::1;::::0;;5800:138::o;32724:228::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;32821:58:::1;::::0;32808:7:::1;::::0;-1:-1:-1;;;;;32821:24:0;::::1;::::0;32853:21:::1;::::0;32808:7;32821:58;32808:7;32821:58;32853:21;32821:24;:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32807:72;;;32894:2;32886:11;;;::::0;::::1;;32911:35;::::0;;::::1;;::::0;-1:-1:-1;;;;;32911:35:0;::::1;::::0;::::1;::::0;;;::::1;5787:1;32724:228:::0;:::o;15086:41::-;;;;;;;;;;;;;:::o;15542:37::-;;;;:::o;5606:73::-;5644:7;5667:6;-1:-1:-1;;;;;5667:6:0;5606:73;:::o;33183:268::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;33301:16:::1;:36:::0;;;33344:16:::1;:36:::0;;;33394:51:::1;::::0;33320:17;;33363;;33394:51:::1;::::0;-1:-1:-1;;33394:51:0::1;33183:268:::0;;:::o;31418:229::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;31504:9:::1;31499:99;31515:20:::0;;::::1;31499:99;;;31586:4;31551:18;:32;31570:9;;31580:1;31570:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;31570:12:0::1;31551:32:::0;;-1:-1:-1;31551:32:0;::::1;::::0;;;;;;-1:-1:-1;31551:32:0;:39;;-1:-1:-1;;31551:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;31537:3:0::1;31499:99;;;;31636:4;31609:32;;31625:9;;31609:32;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;31609:32:0::1;::::0;-1:-1:-1;31609:32:0;;-1:-1:-1;;31609:32:0::1;31418:229:::0;;:::o;20048:83::-;20118:7;;;;;;;;;;;;-1:-1:-1;;;20118:7:0;;;;20048:83;:::o;15500:35::-;;;;:::o;17283:94::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17336:10:0;::::1;17349:1;17336:10:::0;;;:5:::1;:10;::::0;;;;;:14;;;17362:9;::::1;::::0;17349:1;17362:9:::1;17283:94:::0;:::o;28560:687::-;-1:-1:-1;;;;;28637:15:0;;28619;28637;;;:9;:15;;;;;;28667:16;;;;28659:54;;;;;-1:-1:-1;;;28659:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28726:18:0;;28734:10;28726:18;;;;:44;;-1:-1:-1;28754:10:0;28748:17;;;;:5;:17;;;;;;28769:1;28748:22;;28726:44;28722:293;;;-1:-1:-1;;;;;28799:17:0;;28781:15;28799:17;;;:11;:17;;;;;;;;28817:10;28799:29;;;;;;;;-1:-1:-1;;28841:28:0;;28837:171;;28901:5;28890:7;:16;;28882:56;;;;;-1:-1:-1;;;28882:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28951:17:0;;;;;;:11;:17;;;;;;;;28969:10;28951:29;;;;;;;28983:15;;;28951:47;;28837:171;28722:293;;-1:-1:-1;;;;;29023:15:0;;;;;;:9;:15;;;;;;;;29041;;;29023:33;;29174:12;;;:20;;;29159:35;;29208:33;;;;;;;29023:15;;;-1:-1:-1;;;;;;;;;;;29208:33:0;;;;;;;;;;28560:687;;;:::o;21260:297::-;21370:4;21386:147;21403:12;:10;:12::i;:::-;21424:7;21440:86;21479:15;21440:86;;;;;;;;;;;;;;;;;:11;:25;21452:12;:10;:12::i;:::-;-1:-1:-1;;;;;21440:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;21440:25:0;;;:34;;;;;;;;;;;:86;:38;:86::i;27613:249::-;27665:21;27699:12;;27715:1;27699:17;27695:48;;;-1:-1:-1;27734:1:0;27727:8;;27695:48;27799:16;;27777;;27767:4;;27757:59;;27799:16;27757:37;;:15;;-1:-1:-1;;;;;27767:4:0;27757:9;:15::i;:::-;:19;;:37::i;:::-;:41;;:59::i;:::-;27749:68;;27613:249;:::o;20222:157::-;20300:4;20313:42;20323:12;:10;:12::i;:::-;20337:9;20348:6;20313:9;:42::i;15627:31::-;;;;:::o;15372:39::-;;;;;;;;;;;;;;-1:-1:-1;;;15372:39:0;;;;:::o;32107:369::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;32241:9:::1;32236:190;32252:20:::0;;::::1;32236:190;;;32297:10;:24;32308:9;;32318:1;32308:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;32308:12:0::1;32297:24:::0;;-1:-1:-1;32297:24:0;::::1;::::0;;;;;;-1:-1:-1;32297:24:0;;::::1;;32296:25;::::0;:38:::1;;;32325:9;32296:38;32288:89;;;;-1:-1:-1::0;;;32288:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32412:6;32386:9;:23;32396:9;;32406:1;32396:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;32396:12:0::1;32386:23:::0;;-1:-1:-1;32386:23:0;::::1;::::0;;;;;;-1:-1:-1;32386:23:0;:32;;-1:-1:-1;;32386:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;32274:3:0::1;32236:190;;;;32463:6;32437:33;;32452:9;;32437:33;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;32437:33:0::1;::::0;-1:-1:-1;32437:33:0;;-1:-1:-1;;32437:33:0::1;32107:369:::0;;;;:::o;32482:236::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;32580:9:::1;32575:93;32591:20:::0;;::::1;32575:93;;;32654:6;32627:10;:24;32638:9;;32648:1;32638:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;32638:12:0::1;32627:24:::0;;-1:-1:-1;32627:24:0;::::1;::::0;;;;;;-1:-1:-1;32627:24:0;:33;;-1:-1:-1;;32627:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;32613:3:0::1;32575:93;;;;32705:6;32679:33;;32694:9;;32679:33;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;32679:33:0::1;::::0;-1:-1:-1;32679:33:0;;-1:-1:-1;;32679:33:0::1;32482:236:::0;;;:::o;15041:40::-;;;;;;;;;;;;;:::o;14680:25::-;;;;:::o;16129:42::-;;;:::o;15781:36::-;;;;:::o;15323:44::-;;;;;;;;;;;;;;-1:-1:-1;;;15323:44:0;;;;:::o;29253:786::-;29448:8;29429:15;:27;;29421:59;;;;;-1:-1:-1;;;29421:59:0;;;;;;;;;;;;-1:-1:-1;;;29421:59:0;;;;;;;;;;;;;;;29540:9;29489:15;29658:17;29647:28;;:85;;29698:34;29724:7;29698:25;:34::i;:::-;29647:85;;;29678:17;29647:85;-1:-1:-1;;;;;29804:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;29753:77;;16271:95;29753:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29743:88;;;;;;-1:-1:-1;;;29599:241:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29581:266;;;;;;;;;;;-1:-1:-1;29864:19:0;;;;:58;;;29896:26;29906:6;29914:1;29917;29920;29896:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29887:35:0;:5;-1:-1:-1;;;;;29887:35:0;;29864:58;29856:90;;;;;-1:-1:-1;;;29856:90:0;;;;;;;;;;;;-1:-1:-1;;;29856:90:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;29955:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;30002:31;;;;;;;;;;;;;;;;;29253:786;;;;;;;;;:::o;15459:36::-;;;;:::o;20385:139::-;-1:-1:-1;;;;;20491:18:0;;;20468:7;20491:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20385:139::o;33776:382::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;33911:17:::1;:33:::0;;;33951:16:::1;:31:::0;;;33989:11:::1;:26:::0;;;34039:39:::1;33931:13:::0;33970:12;34039:21:::1;:39::i;:::-;34024:12;:54:::0;34140:11:::1;::::0;34122:16:::1;::::0;34103:17:::1;::::0;34092:60:::1;::::0;::::1;::::0;;;::::1;33776:382:::0;;;:::o;31653:183::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;31726:21:0;::::1;31718:30;;;::::0;::::1;;-1:-1:-1::0;;;;;31755:27:0;::::1;31785:5;31755:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;31755:35:0::1;::::0;;31802:28;31785:5;;31755:27;31802:28:::1;::::0;31785:5;;31802:28:::1;31653:183:::0;:::o;15867:25::-;;;-1:-1:-1;;;;;15867:25:0;;:::o;30585:493::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;30660:23:0;::::1;30652:32;;;::::0;::::1;;30691:20;30724:9;30691:43;;30741:16;30771:10;-1:-1:-1::0;;;;;30771:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30771:20:0;30816:17:::1;::::0;;-1:-1:-1;;;30816:17:0;;;;-1:-1:-1;;;;;30760:40:0;;::::1;::::0;::::1;::::0;30809:4:::1;::::0;30816:15;;::::1;::::0;::::1;::::0;:17:::1;::::0;;::::1;::::0;30771:20:::1;::::0;30816:17;;;;;;;;:15;:17;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30816:17:0;30760:74:::1;::::0;;-1:-1:-1;;;;;;30760:74:0::1;::::0;;;;;;-1:-1:-1;;;;;30760:74:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;30816:17:::1;::::0;30760:74;;;;;;;;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30760:74:0;;-1:-1:-1;;;;;;30845:22:0;::::1;30841:167;;30896:10;-1:-1:-1::0;;;;;30896:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30896:20:0;30944:17:::1;::::0;;-1:-1:-1;;;30944:17:0;;;;-1:-1:-1;;;;;30885:43:0;;::::1;::::0;::::1;::::0;30937:4:::1;::::0;30944:15;;::::1;::::0;::::1;::::0;:17:::1;::::0;;::::1;::::0;30896:20:::1;::::0;30944:17;;;;;;;;:15;:17;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30944:17:0;30885:77:::1;::::0;;-1:-1:-1;;;;;;30885:77:0::1;::::0;;;;;;-1:-1:-1;;;;;30885:77:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;30944:17:::1;::::0;30885:77;;;;;;;-1:-1:-1;30885:77:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30885:77:0;30878:4:::1;:84:::0;;-1:-1:-1;;;;;;30878:84:0::1;-1:-1:-1::0;;;;;30878:84:0;;::::1;::::0;;;::::1;::::0;;30841:167:::1;;;30985:4;:15:::0;;-1:-1:-1;;;;;;30985:15:0::1;-1:-1:-1::0;;;;;30985:15:0;::::1;;::::0;;30841:167:::1;31014:8;:21:::0;;-1:-1:-1;;;;;;31014:21:0::1;-1:-1:-1::0;;;;;31014:21:0;;::::1;::::0;;;::::1;::::0;;;31049:23:::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;::::1;5787:1;;30585:493:::0;:::o;5944:230::-;5731:12;:10;:12::i;:::-;5721:6;;-1:-1:-1;;;;;5721:6:0;;;:22;;;5713:67;;;;;-1:-1:-1;;;5713:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5713:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6029:22:0;::::1;6021:73;;;;-1:-1:-1::0;;;6021:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6127:6;::::0;;6106:38:::1;::::0;-1:-1:-1;;;;;6106:38:0;;::::1;::::0;6127:6;::::1;::::0;6106:38:::1;::::0;::::1;6151:6;:17:::0;;-1:-1:-1;;;;;;6151:17:0::1;-1:-1:-1::0;;;;;6151:17:0;;;::::1;::::0;;;::::1;::::0;;5944:230::o;14646:29::-;;;;:::o;15941:31::-;;;-1:-1:-1;;;15941:31:0;;;;;:::o;1152:167::-;1210:7;1238:5;;;1258:6;;;;1250:46;;;;;-1:-1:-1;;;1250:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:1;1152:167;-1:-1:-1;;;1152:167:0:o;92:109::-;184:10;92:109;:::o;21665:339::-;-1:-1:-1;;;;;21774:19:0;;21766:68;;;;-1:-1:-1;;;21766:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21849:21:0;;21841:68;;;;-1:-1:-1;;;21841:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21918:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21966:32;;;;;;;;;;;;;;;;;21665:339;;;:::o;22010:2091::-;-1:-1:-1;;;;;22114:18:0;;22106:68;;;;-1:-1:-1;;;22106:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22189:16:0;;22181:64;;;;-1:-1:-1;;;22181:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22269:1;22260:6;:10;22252:64;;;;-1:-1:-1;;;22252:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22332:13:0;;;;;;:9;:13;;;;;;;;22331:14;22323:38;;;;;-1:-1:-1;;;22323:38:0;;;;;;;;;;;;-1:-1:-1;;;22323:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22377:15:0;;;;;;:9;:15;;;;;;;;22376:16;22368:40;;;;;-1:-1:-1;;;22368:40:0;;;;;;;;;;;;-1:-1:-1;;;22368:40:0;;;;;;;;;;;;;;;22427:7;:5;:7::i;:::-;-1:-1:-1;;;;;22419:15:0;:4;-1:-1:-1;;;;;22419:15:0;;;:32;;;;;22444:7;:5;:7::i;:::-;-1:-1:-1;;;;;22438:13:0;:2;-1:-1:-1;;;;;22438:13:0;;;22419:32;22415:82;;;22461:11;;-1:-1:-1;;;22461:11:0;;;;22453:44;;;;;-1:-1:-1;;;22453:44:0;;;;;;;;;;;;-1:-1:-1;;;22453:44:0;;;;;;;;;;;;;;;22611:4;;22546:23;;-1:-1:-1;;;;;22603:12:0;;;22611:4;;22603:12;;:26;;-1:-1:-1;22625:4:0;;-1:-1:-1;;;;;22619:10:0;;;22625:4;;22619:10;22603:26;22601:29;:86;;;;-1:-1:-1;;;;;;22636:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;22664:22:0;;;;;;:18;:22;;;;;;;;22636:50;22634:53;22601:86;22597:156;;;-1:-1:-1;22734:11:0;;22597:156;22771:4;;-1:-1:-1;;;;;22765:10:0;;;22771:4;;22765:10;22761:104;;;22840:16;;22818:17;;:39;;:21;:39::i;:::-;22800:57;;22761:104;22922:1;22909:10;;:14;:58;;;;;22955:12;22941:10;;22928;;:23;22927:40;22909:58;22905:101;;;-1:-1:-1;;;;;22978:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;22978:20:0;22994:4;22978:20;;;22905:101;23069:1;23056:10;;:14;:33;;;;;23082:7;:5;:7::i;:::-;-1:-1:-1;;;;;23074:15:0;:4;-1:-1:-1;;;;;23074:15:0;;;23056:33;:78;;;;;23123:10;;23110;;:23;23093:12;:41;;23056:78;:93;;;;-1:-1:-1;23138:11:0;;-1:-1:-1;;;23138:11:0;;;;23056:93;23044:157;;;-1:-1:-1;23184:3:0;23044:157;23221:4;;-1:-1:-1;;;;;23213:12:0;;;23221:4;;23213:12;23209:103;;;23288:15;;23267:16;;:37;;:20;:37::i;:::-;23249:55;;23209:103;23324:10;;-1:-1:-1;;;23324:10:0;;;;23320:106;;;23357:4;;-1:-1:-1;;;;;23349:12:0;;;23357:4;;23349:12;23345:74;;;-1:-1:-1;23408:1:0;23345:74;-1:-1:-1;;;;;23438:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;23466:22:0;;;;;;:18;:22;;;;;;;;23438:50;:69;;;;23500:7;:5;:7::i;:::-;-1:-1:-1;;;;;23492:15:0;:4;-1:-1:-1;;;;;23492:15:0;;23438:69;:86;;;;23517:7;:5;:7::i;:::-;-1:-1:-1;;;;;23511:13:0;:2;-1:-1:-1;;;;;23511:13:0;;23438:86;23434:148;;;-1:-1:-1;23573:1:0;23434:148;23608:6;;-1:-1:-1;;;23608:6:0;;;;23607:7;:22;;;;-1:-1:-1;23618:11:0;;-1:-1:-1;;;23618:11:0;;;;23607:22;:36;;;;-1:-1:-1;23639:4:0;;-1:-1:-1;;;;;23633:10:0;;;23639:4;;23633:10;23607:36;23602:433;;;23655:28;23686:24;23704:4;23686:9;:24::i;:::-;23655:55;;23719:21;23743;:19;:21::i;:::-;23719:45;;23802:13;23778:20;:37;;23777:56;;;;-1:-1:-1;23820:13:0;;-1:-1:-1;;;23820:13:0;;;;23777:56;23773:95;;;23846:12;:10;:12::i;:::-;23905:13;23881:20;:37;;23880:57;;;;-1:-1:-1;23924:13:0;;-1:-1:-1;;;23924:13:0;;;;23923:14;23880:57;23876:152;;;23981:14;;23950:68;;;-1:-1:-1;;;23950:68:0;;-1:-1:-1;;;;;23981:14:0;;;23950:68;;;;;;;;;;;23965:4;;23950:30;;:68;;;;;;;;;;;;;;-1:-1:-1;23965:4:0;23950:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23876:152:0;23602:433;;;24043:52;24061:4;24067:2;24071:6;24079:15;24043:17;:52::i;:::-;22010:2091;;;;:::o;1461:198::-;1567:7;1599:12;1591:6;;;;1583:29;;;;-1:-1:-1;;;1583:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1631:5:0;;;1461:198::o;16387:414::-;16684:5;;;;;;;;;;;-1:-1:-1;;;16684:5:0;;;;;16720:7;;;;;;;;;;-1:-1:-1;;;16720:7:0;;;;16511:275;;16534:121;16511:275;;;;16668:23;16511:275;;;;16704:25;16511:275;;;;;;;;;;;16770:4;16511:275;;;;;;;;;;;;;;;;;;;;;;;;;16491:304;;;;;;16387:414::o;1665:222::-;1723:7;1743:6;1739:37;;-1:-1:-1;1767:1:0;1760:8;;1739:37;1796:5;;;1800:1;1796;:5;:1;1816:5;;;;;:10;1808:56;;;;-1:-1:-1;;;1808:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1893:126;1951:7;1974:39;1978:1;1981;1974:39;;;;;;;;;;;;;;;;;:3;:39::i;24107:402::-;17421:6;;-1:-1:-1;;;17421:6:0;;;;:14;;17431:4;17421:14;;17413:58;;;;;-1:-1:-1;;;17413:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17478:6;:13;;-1:-1:-1;;;;17478:13:0;-1:-1:-1;;;17478:13:0;;;24194:17:::1;::::0;17478:13;;24194:21;24190:131:::1;;24244:69;24311:1;24244:62;24293:12;;24244:44;24270:17;;24244:21;:19;:21::i;:69::-;24226:87;;24190:131;24329:20;24352:42;24378:15;24352:21;:19;:21::i;:::-;:25:::0;::::1;:42::i;:::-;24329:65;;24403:30;24420:12;24403:16;:30::i;:::-;24445:16;::::0;-1:-1:-1;;;24445:16:0;::::1;;;24440:64;;24472:24;24480:15;24472:7;:24::i;:::-;-1:-1:-1::0;;17506:6:0;:14;;-1:-1:-1;;;;17506:14:0;;;24107:402::o;27103:504::-;27250:19;27246:356;;27280:41;27294:6;27302:9;27313:7;27280:13;:41::i;:::-;27246:356;;;27344:22;27369:38;27401:5;27369:27;:7;27381:14;27369:11;:27::i;:38::-;27344:63;-1:-1:-1;27416:26:0;27445:27;:7;27344:63;27445:11;:27::i;:::-;27416:56;;27481:52;27495:6;27503:9;27514:18;27481:13;:52::i;:::-;27542;27556:6;27572:4;27579:14;27542:13;:52::i;:::-;27246:356;;27103:504;;;;:::o;2025:280::-;2131:7;2162:12;2155:5;2147:28;;;;-1:-1:-1;;;2147:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2182:9;2198:1;2194;:5;;;;;;;2025:280;-1:-1:-1;;;;;2025:280:0:o;1325:130::-;1383:7;1406:43;1410:1;1413;1406:43;;;;;;;;;;;;;;;;;:3;:43::i;25393:702::-;25527:16;;;25541:1;25527:16;;;25503:21;25527:16;;;;;25503:21;25527:16;;;;;;;;;;-1:-1:-1;25527:16:0;25503:40;;25568:4;25550;25555:1;25550:7;;;;;;;;-1:-1:-1;;;;;25550:23:0;;;:7;;;;;;;;;;:23;;;;25590:8;;:15;;;-1:-1:-1;;;25590:15:0;;;;:8;;;;;:13;;:15;;;;;25550:7;;25590:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25590:15:0;25580:7;;:4;;25585:1;;25580:7;;;;;;-1:-1:-1;;;;;25580:25:0;;;:7;;;;;;;;;:25;25646:8;;25614:55;;25631:4;;25646:8;25657:11;25614:8;:55::i;:::-;25702:8;;:41;;;-1:-1:-1;;;25702:41:0;;;;;;;;;;;;;;;;;;;;;;25676:23;;-1:-1:-1;;;;;25702:8:0;;:22;;25725:11;;25738:4;;25702:41;;;;;;;;;;;;;;;:8;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25702:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25702:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25702:41:0;;;;;;;;;;;;-1:-1:-1;25702:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25676:67;;25750:17;25770:32;25784:17;25798:2;25784:6;25791:1;25784:9;;;;;;;;;;;;;;:13;;:17;;;;:::i;:::-;25770:6;25777:1;25770:9;;;;;;;;;;;;;;:13;;:32;;;;:::i;:::-;25833:8;;:207;;-1:-1:-1;;;25833:207:0;;;;;;;;;;;;;;25988:4;25833:207;;;;;;26018:15;25833:207;;;;;;;;;;;;;;;;;;;;;25750:52;;-1:-1:-1;;;;;;25833:8:0;;;;:59;;25901:11;;25750:52;;25967:4;;25988;26018:15;25833:207;;;;;;;;;;;;;;;:8;:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26084:4;26054:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26054:35:0;;;;;;;;;;;;-1:-1:-1;26071:11:0;;-1:-1:-1;26054:35:0;;-1:-1:-1;26054:35:0;;-1:-1:-1;;26054:35:0;25393:702;;;;:::o;24515:872::-;24661:17;;24592:21;;24572:17;;24644:42;;24661:24;;24683:1;24661:21;:24::i;:::-;24644:12;;;:16;:42::i;:::-;24699:12;;24622:64;;-1:-1:-1;24699:16:0;24695:687;;24726:26;24755:56;24809:1;24755:49;24792:11;24755:32;24769:17;;24755:9;:13;;:32;;;;:::i;:56::-;24726:85;;24822:25;24850:48;24886:11;24850:31;24864:16;;24850:9;:13;;:31;;;;:::i;:48::-;24822:76;-1:-1:-1;24958:13:0;;24954:156;;24984:14;;:42;;-1:-1:-1;;;;;24984:14:0;;;;:42;;;;;25008:17;;24984:14;:42;:14;:42;25008:17;24984:14;:42;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25066:14:0;;25042:58;;;;;;;;-1:-1:-1;;;;;25066:14:0;;;;25059:4;;-1:-1:-1;;;;;;;;;;;25042:58:0;;;;;;;;;24954:156;25122:19;;25118:95;;25154:49;25167:15;25184:18;25154:12;:49::i;:::-;24695:687;;;;;25239:13;;25235:140;;25265:14;;:34;;-1:-1:-1;;;;;25265:14:0;;;;:34;;;;;25289:9;;25265:14;:34;:14;:34;25289:9;25265:14;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25339:14:0;;25315:50;;;;;;;;-1:-1:-1;;;;;25339:14:0;;;;25332:4;;-1:-1:-1;;;;;;;;;;;25315:50:0;;;;;;;;;25235:140;24515:872;;;:::o;26554:543::-;-1:-1:-1;;;;;26680:20:0;;26672:70;;;;-1:-1:-1;;;26672:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26757:23:0;;26749:71;;;;-1:-1:-1;;;26749:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26853:17:0;;26829:21;26853:17;;;:9;:17;;;;;;26885:23;;;;26877:74;;;;-1:-1:-1;;;26877:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26978:25;:13;26996:6;26978:17;:25::i;:::-;-1:-1:-1;;;;;26958:17:0;;;;;;;:9;:17;;;;;;;;:45;;;;27012:20;;;;;;;;;;:30;;;;;;27056:35;;;;;;;27012:20;;26958:17;;-1:-1:-1;;;;;;;;;;;27056:35:0;;;;;;;26554:543;;;;:::o;26101:447::-;26273:8;;26241:55;;26258:4;;-1:-1:-1;;;;;26273:8:0;26284:11;26241:8;:55::i;:::-;26331:8;;:211;;;-1:-1:-1;;;26331:211:0;;26390:4;26331:211;;;;;;;;;;;;:8;:211;;;;;;;;;;;;;;26520:15;26331:211;;;;;;-1:-1:-1;;;;;26331:8:0;;;;:24;;26363:9;;26331:211;;;;;;;;;;;;;;26363:9;26331:8;:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Metadata Hash

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