Source code for irfpy.pep.juice_spice

''' JUICE orbit using SPICE

.. warning::

    Deprecated and replaced by :mod:`irfpy.juice.jspice`.

The JUICE orbit information from SPICE.
Presently (2012-01-14), only preliminary data is considered.

The kernel is not in the repository, because they are very large in size
and this may not used for future investigations.
Thus, the kernel files should be prepared separately.
Refer to Futaana for the kernel files with statement ``Futaana to refer to folder 111125-juice-orbit.```

.. todo::

    Archive the data, not in the repository but not in the master repository.
    Some other way is better.

.. todo::

    At least, spice kernel files and associated modules must be re-sorted
    and re-factored for future simplicity.
'''

import os
import glob
import logging
logging.basicConfig()
import datetime
import dateutil.parser
import bisect

from pkg_resources import resource_filename

import numpy as np

try:
    import spiceypy as spice
except ImportError:
    import spice


import warnings
warnings.warn('This module is deprecated and replced by irfpy.juice.jspice module.',
    DeprecationWarning)

from irfpy.util import timeinterval


[docs]class JuiceSpice: __default_instance = None juice_id = -999 juice_name = "JUICE_SPACECRAFT"
[docs] @classmethod def get_default_instance(cls): if cls.__default_instance == None: cls.__default_instance = JuiceSpice() cls.__default_instance.load_default_kernels() return cls.__default_instance
def __init__(self): self.logger = logging.getLogger('JuiceSpice') self.logger.setLevel(logging.INFO) # self.logger.setLevel(logging.DEBUG)
[docs] def load_kernel(self, kernel_filename): ''' Load a kernel. Wrapper to spice.furnsh(). ''' self.logger.info('Furnsh: %s' % kernel_filename) spice.furnsh(kernel_filename)
[docs] def load_default_kernels(self): ''' Load default kernels. ''' ### Use pkg_resource while kernel files are not in the repository. kernsdir = resource_filename(__name__, os.path.join('spice_juice')) kerns = ['naif0010.tls', 'pck00009.tpc', 'mantra.jgo_2020_001_ipc_cal_pso_res_e40_562_200.bsp', 'de405.bsp', 'jup230.bsp'] for k in kerns: kern = os.path.join(kernsdir, k) self.load_kernel(kern) kernsdir = resource_filename(__name__, os.path.join('spice')) kern = os.path.join(kernsdir, 'jse_111130.tf') self.load_kernel(kern) self.logger.info("Define JUICE_SPACECRAFT") spice.boddef(self.juice_name, self.juice_id)
[docs] def get_position(self, t, relative_to="JUPITER", frame="JSE"): self.logger.debug('%s -> ' % (t.strftime('%FT%T'))) et0 = spice.str2et(t.strftime('%FT%T')) self.logger.debug(' %.3f' % (et0)) self.logger.debug(' -> %s' % spice.et2utc(et0, "ISOC", 3)) relative_to_id = spice.bodn2c(relative_to) try: posvel, lt = spice.spkez(-999, et0, frame, "LT+S", relative_to_id) except spice.SpiceException as e: self.logger.warn('Spice returned exception. t=%s. et=%.3f.\n### %s' % ( t, et0, e)) return np.array([np.nan, np.nan, np.nan]) return np.array(posvel[0:3])
[docs] def get_velocity(self, t, relative_to="JUPITER", frame="JSE"): ''' Return the Juice orbiter's velocity vector. :param t: Time :type t: ``datetime.datetime`` :keyword relative_to: The SPICE name of the body to calculate the relative velocity :type relative_to: String :keyword frame: Frame of the velocity vector :type frame: String :returns: Return the Juice orbiter's velocity vector in the given frame :rtype: ``np.array`` ''' et0 = spice.str2et(t.strftime('%FT%T')) posvel, lt = spice.spkezr('JUICE SPACECRAFT', et0, frame, 'LT+S', relative_to) return np.array(posvel[3:])
[docs] def get_positions(self, tlist): return np.array([self.get_position(t) for t in tlist])
[docs]class OrbitNumber001: ''' Pseudo orbit number data for ``mantra.jgo_2020_001_ipc_cal_pso_res_e40_562_200.bsp`` kernel. The data is produced from the script in ``../../scripts/juice_ganymede_pseudo_orbitnr.py``. ''' def __init__(self): ''' >>> onr = OrbitNumber001() >>> print(onr.get_starttime(50)) 2028-10-15 17:05:00 >>> print(onr.get_stoptime(49)) 2028-10-15 17:05:00 >>> print(onr.get_orbitnumber(datetime.datetime(2028, 9, 25, 10, 28))) 7 >>> print(onr.get_orbitnumber(datetime.datetime(2028, 9, 25, 10, 29))) 8 >>> print(onr.get_orbitnumber(datetime.datetime(2028, 9, 25, 10, 30))) 8 ''' pseudo_onr_dict = { 1: dateutil.parser.parse("2028-09-21 23:29:00"), 2: dateutil.parser.parse("2028-09-22 11:19:00"), 3: dateutil.parser.parse("2028-09-22 23:02:00"), 4: dateutil.parser.parse("2028-09-23 10:46:00"), 5: dateutil.parser.parse("2028-09-23 22:37:00"), 6: dateutil.parser.parse("2028-09-24 10:34:00"), 7: dateutil.parser.parse("2028-09-24 22:33:00"), 8: dateutil.parser.parse("2028-09-25 10:29:00"), 9: dateutil.parser.parse("2028-09-25 22:18:00"), 10: dateutil.parser.parse("2028-09-26 10:03:00"), 11: dateutil.parser.parse("2028-09-26 21:49:00"), 12: dateutil.parser.parse("2028-09-27 09:39:00"), 13: dateutil.parser.parse("2028-09-27 21:34:00"), 14: dateutil.parser.parse("2028-09-28 09:31:00"), 15: dateutil.parser.parse("2028-09-28 21:27:00"), 16: dateutil.parser.parse("2028-09-29 09:19:00"), 17: dateutil.parser.parse("2028-09-29 21:06:00"), 18: dateutil.parser.parse("2028-09-30 08:52:00"), 19: dateutil.parser.parse("2028-09-30 20:42:00"), 20: dateutil.parser.parse("2028-10-01 08:36:00"), 21: dateutil.parser.parse("2028-10-01 20:32:00"), 22: dateutil.parser.parse("2028-10-02 08:29:00"), 23: dateutil.parser.parse("2028-10-02 20:22:00"), 24: dateutil.parser.parse("2028-10-03 04:00:00"), # datagap 25: dateutil.parser.parse("2028-10-03 08:11:00"), 26: dateutil.parser.parse("2028-10-03 19:58:00"), 27: dateutil.parser.parse("2028-10-04 07:47:00"), 28: dateutil.parser.parse("2028-10-04 19:40:00"), 29: dateutil.parser.parse("2028-10-05 07:37:00"), 30: dateutil.parser.parse("2028-10-05 19:34:00"), 31: dateutil.parser.parse("2028-10-06 07:28:00"), 32: dateutil.parser.parse("2028-10-06 19:18:00"), 33: dateutil.parser.parse("2028-10-07 07:06:00"), 34: dateutil.parser.parse("2028-10-07 18:55:00"), 35: dateutil.parser.parse("2028-10-08 06:48:00"), 36: dateutil.parser.parse("2028-10-08 18:44:00"), 37: dateutil.parser.parse("2028-10-09 06:41:00"), 38: dateutil.parser.parse("2028-10-09 18:37:00"), 39: dateutil.parser.parse("2028-10-10 06:29:00"), 40: dateutil.parser.parse("2028-10-10 18:18:00"), 41: dateutil.parser.parse("2028-10-11 06:06:00"), 42: dateutil.parser.parse("2028-10-11 17:58:00"), 43: dateutil.parser.parse("2028-10-12 05:54:00"), 44: dateutil.parser.parse("2028-10-12 17:51:00"), 45: dateutil.parser.parse("2028-10-13 05:48:00"), 46: dateutil.parser.parse("2028-10-13 17:41:00"), 47: dateutil.parser.parse("2028-10-14 05:30:00"), 48: dateutil.parser.parse("2028-10-14 17:19:00"), 49: dateutil.parser.parse("2028-10-15 05:10:00"), 50: dateutil.parser.parse("2028-10-15 17:05:00"), 51: dateutil.parser.parse("2028-10-16 05:03:00"), 52: dateutil.parser.parse("2028-10-16 17:00:00"), 53: dateutil.parser.parse("2028-10-17 04:55:00"), 54: dateutil.parser.parse("2028-10-17 16:45:00"), 55: dateutil.parser.parse("2028-10-18 04:34:00"), 56: dateutil.parser.parse("2028-10-18 16:24:00"), 57: dateutil.parser.parse("2028-10-19 04:18:00"), 58: dateutil.parser.parse("2028-10-19 16:16:00"), 59: dateutil.parser.parse("2028-10-20 04:14:00"), 60: dateutil.parser.parse("2028-10-20 16:09:00"), 61: dateutil.parser.parse("2028-10-21 04:00:00"), 62: dateutil.parser.parse("2028-10-21 15:49:00"), 63: dateutil.parser.parse("2028-10-22 03:39:00"), 64: dateutil.parser.parse("2028-10-22 15:32:00"), 65: dateutil.parser.parse("2028-10-23 03:30:00"), 66: dateutil.parser.parse("2028-10-23 11:00:00"), # datagap 67: dateutil.parser.parse("2028-10-23 15:28:00"), 68: dateutil.parser.parse("2028-10-24 03:24:00"), 69: dateutil.parser.parse("2028-10-24 15:16:00"), 70: dateutil.parser.parse("2028-10-25 03:05:00"), 71: dateutil.parser.parse("2028-10-25 14:55:00"), 72: dateutil.parser.parse("2028-10-26 02:47:00"), 73: dateutil.parser.parse("2028-10-26 14:44:00"), 74: dateutil.parser.parse("2028-10-27 02:43:00"), 75: dateutil.parser.parse("2028-10-27 14:39:00"), 76: dateutil.parser.parse("2028-10-28 02:32:00"), 77: dateutil.parser.parse("2028-10-28 14:22:00"), 78: dateutil.parser.parse("2028-10-29 02:11:00"), 79: dateutil.parser.parse("2028-10-29 14:03:00"), 80: dateutil.parser.parse("2028-10-30 01:59:00"), 81: dateutil.parser.parse("2028-10-30 13:57:00"), 82: dateutil.parser.parse("2028-10-31 01:55:00"), 83: dateutil.parser.parse("2028-10-31 13:49:00"), 84: dateutil.parser.parse("2028-11-01 01:39:00"), 85: dateutil.parser.parse("2028-11-01 13:28:00"), 86: dateutil.parser.parse("2028-11-02 01:19:00"), 87: dateutil.parser.parse("2028-11-02 13:14:00"), 88: dateutil.parser.parse("2028-11-03 01:12:00"), 89: dateutil.parser.parse("2028-11-03 13:10:00"), 90: dateutil.parser.parse("2028-11-04 01:05:00"), 91: dateutil.parser.parse("2028-11-04 12:56:00"), 92: dateutil.parser.parse("2028-11-05 00:45:00"), 93: dateutil.parser.parse("2028-11-05 12:35:00"), 94: dateutil.parser.parse("2028-11-06 00:30:00"), 95: dateutil.parser.parse("2028-11-06 12:28:00"), 96: dateutil.parser.parse("2028-11-07 00:26:00"), 97: dateutil.parser.parse("2028-11-07 12:22:00"), 98: dateutil.parser.parse("2028-11-08 00:13:00"), 99: dateutil.parser.parse("2028-11-08 12:02:00"), 100: dateutil.parser.parse("2028-11-08 23:52:00"), 101: dateutil.parser.parse("2028-11-09 11:46:00"), 102: dateutil.parser.parse("2028-11-09 23:43:00"), 103: dateutil.parser.parse("2028-11-10 11:42:00"), 104: dateutil.parser.parse("2028-11-10 23:38:00"), 105: dateutil.parser.parse("2028-11-11 11:30:00"), 106: dateutil.parser.parse("2028-11-11 23:20:00"), 107: dateutil.parser.parse("2028-11-12 11:09:00"), 108: dateutil.parser.parse("2028-11-12 19:00:00"), # datagap 109: dateutil.parser.parse("2028-11-12 23:02:00"), 110: dateutil.parser.parse("2028-11-13 10:58:00"), 111: dateutil.parser.parse("2028-11-13 22:57:00"), 112: dateutil.parser.parse("2028-11-14 10:54:00"), 113: dateutil.parser.parse("2028-11-14 22:47:00"), 114: dateutil.parser.parse("2028-11-15 10:37:00"), 115: dateutil.parser.parse("2028-11-15 22:26:00"), 116: dateutil.parser.parse("2028-11-16 10:18:00"), 117: dateutil.parser.parse("2028-11-16 22:14:00"), 118: dateutil.parser.parse("2028-11-17 10:13:00"), 119: dateutil.parser.parse("2028-11-17 22:10:00"), 120: dateutil.parser.parse("2028-11-18 10:04:00"), 121: dateutil.parser.parse("2028-11-18 21:55:00"), 122: dateutil.parser.parse("2028-11-19 09:44:00"), 123: dateutil.parser.parse("2028-11-19 21:35:00"), 124: dateutil.parser.parse("2028-11-20 09:30:00"), 125: dateutil.parser.parse("2028-11-20 21:28:00"), 126: dateutil.parser.parse("2028-11-21 09:26:00"), 127: dateutil.parser.parse("2028-11-21 21:21:00"), 128: dateutil.parser.parse("2028-11-22 09:12:00"), 129: dateutil.parser.parse("2028-11-22 21:01:00"), 130: dateutil.parser.parse("2028-11-23 08:52:00"), 131: dateutil.parser.parse("2028-11-23 20:46:00"), 132: dateutil.parser.parse("2028-11-24 08:44:00"), 133: dateutil.parser.parse("2028-11-24 20:42:00"), 134: dateutil.parser.parse("2028-11-25 08:38:00"), 135: dateutil.parser.parse("2028-11-25 20:29:00"), 136: dateutil.parser.parse("2028-11-26 08:19:00"), 137: dateutil.parser.parse("2028-11-26 20:08:00"), 138: dateutil.parser.parse("2028-11-27 08:02:00"), 139: dateutil.parser.parse("2028-11-27 19:59:00"), 140: dateutil.parser.parse("2028-11-28 07:58:00"), 141: dateutil.parser.parse("2028-11-28 19:54:00"), 142: dateutil.parser.parse("2028-11-29 07:47:00"), 143: dateutil.parser.parse("2028-11-29 19:36:00"), 144: dateutil.parser.parse("2028-11-30 07:26:00"), 145: dateutil.parser.parse("2028-11-30 19:18:00"), 146: dateutil.parser.parse("2028-12-01 07:15:00"), 147: dateutil.parser.parse("2028-12-01 19:13:00"), 148: dateutil.parser.parse("2028-12-02 07:11:00"), 149: dateutil.parser.parse("2028-12-02 19:04:00"), 150: dateutil.parser.parse("2028-12-03 02:00:00"), # datagap 151: dateutil.parser.parse("2028-12-03 06:54:00"), 152: dateutil.parser.parse("2028-12-03 18:43:00"), 153: dateutil.parser.parse("2028-12-04 06:34:00"), 154: dateutil.parser.parse("2028-12-04 18:30:00"), 155: dateutil.parser.parse("2028-12-05 06:29:00"), 156: dateutil.parser.parse("2028-12-05 18:27:00"), 157: dateutil.parser.parse("2028-12-06 06:21:00"), 158: dateutil.parser.parse("2028-12-06 18:11:00"), 159: dateutil.parser.parse("2028-12-07 06:00:00"), 160: dateutil.parser.parse("2028-12-07 17:51:00"), 161: dateutil.parser.parse("2028-12-08 05:46:00"), 162: dateutil.parser.parse("2028-12-08 17:44:00"), 163: dateutil.parser.parse("2028-12-09 05:42:00"), 164: dateutil.parser.parse("2028-12-09 17:37:00"), 165: dateutil.parser.parse("2028-12-10 05:28:00"), 166: dateutil.parser.parse("2028-12-10 17:17:00"), 167: dateutil.parser.parse("2028-12-11 05:08:00"), 168: dateutil.parser.parse("2028-12-11 17:02:00"), 169: dateutil.parser.parse("2028-12-12 05:00:00"), 170: dateutil.parser.parse("2028-12-12 16:58:00"), 171: dateutil.parser.parse("2028-12-13 04:54:00"), 172: dateutil.parser.parse("2028-12-13 16:45:00"), 173: dateutil.parser.parse("2028-12-14 04:35:00"), 174: dateutil.parser.parse("2028-12-14 16:24:00"), 175: dateutil.parser.parse("2028-12-15 04:18:00"), 176: dateutil.parser.parse("2028-12-15 16:15:00"), 177: dateutil.parser.parse("2028-12-16 04:13:00"), 178: dateutil.parser.parse("2028-12-16 16:10:00"), 179: dateutil.parser.parse("2028-12-17 04:02:00"), 180: dateutil.parser.parse("2028-12-17 15:52:00"), 181: dateutil.parser.parse("2028-12-18 03:41:00"), 182: dateutil.parser.parse("2028-12-18 15:33:00"), 183: dateutil.parser.parse("2028-12-19 03:30:00"), 184: dateutil.parser.parse("2028-12-19 15:28:00"), 185: dateutil.parser.parse("2028-12-20 03:25:00"), 186: dateutil.parser.parse("2028-12-20 15:19:00"), 187: dateutil.parser.parse("2028-12-21 03:09:00"), 188: dateutil.parser.parse("2028-12-21 14:58:00"), 189: dateutil.parser.parse("2028-12-22 02:49:00"), 190: dateutil.parser.parse("2028-12-22 14:45:00"), 191: dateutil.parser.parse("2028-12-23 02:43:00"), 192: dateutil.parser.parse("2028-12-23 10:00:00"), # datagap 193: dateutil.parser.parse("2028-12-23 14:41:00"), 194: dateutil.parser.parse("2028-12-24 02:35:00"), 195: dateutil.parser.parse("2028-12-24 14:25:00"), 196: dateutil.parser.parse("2028-12-25 02:14:00"), 197: dateutil.parser.parse("2028-12-25 14:04:00"), 198: dateutil.parser.parse("2028-12-26 01:59:00"), 199: dateutil.parser.parse("2028-12-26 13:57:00"), 200: dateutil.parser.parse("2028-12-27 01:55:00"), 201: dateutil.parser.parse("2028-12-27 13:50:00"), 202: dateutil.parser.parse("2028-12-28 01:41:00"), 203: dateutil.parser.parse("2028-12-28 13:30:00"), 204: dateutil.parser.parse("2028-12-29 01:20:00"), 205: dateutil.parser.parse("2028-12-29 13:13:00"), 206: dateutil.parser.parse("2028-12-30 01:10:00"), 207: dateutil.parser.parse("2028-12-30 13:08:00"), 208: dateutil.parser.parse("2028-12-31 01:04:00"), 209: dateutil.parser.parse("2028-12-31 12:56:00"), 210: dateutil.parser.parse("2029-01-01 00:44:00"), 211: dateutil.parser.parse("2029-01-01 12:34:00"), 212: dateutil.parser.parse("2029-01-02 00:26:00"), 213: dateutil.parser.parse("2029-01-02 12:23:00"), 214: dateutil.parser.parse("2029-01-03 00:21:00"), 215: dateutil.parser.parse("2029-01-03 12:17:00"), 216: dateutil.parser.parse("2029-01-04 00:09:00"), 217: dateutil.parser.parse("2029-01-04 11:58:00"), 218: dateutil.parser.parse("2029-01-04 23:47:00"), 219: dateutil.parser.parse("2029-01-05 11:38:00"), 220: dateutil.parser.parse("2029-01-05 23:34:00"), 221: dateutil.parser.parse("2029-01-06 11:31:00"), 222: dateutil.parser.parse("2029-01-06 23:28:00"), 223: dateutil.parser.parse("2029-01-07 11:21:00"), 224: dateutil.parser.parse("2029-01-07 23:10:00"), 225: dateutil.parser.parse("2029-01-08 10:58:00"), 226: dateutil.parser.parse("2029-01-08 22:49:00"), 227: dateutil.parser.parse("2029-01-09 10:43:00"), 228: dateutil.parser.parse("2029-01-09 22:40:00"), 229: dateutil.parser.parse("2029-01-10 10:37:00"), 230: dateutil.parser.parse("2029-01-10 22:30:00"), 231: dateutil.parser.parse("2029-01-11 10:20:00"), 232: dateutil.parser.parse("2029-01-11 22:08:00"), 233: dateutil.parser.parse("2029-01-12 09:57:00"), 234: dateutil.parser.parse("2029-01-12 18:30:00"), # datagap 235: dateutil.parser.parse("2029-01-12 21:50:00"), 236: dateutil.parser.parse("2029-01-13 09:46:00"), 237: dateutil.parser.parse("2029-01-13 21:43:00"), 238: dateutil.parser.parse("2029-01-14 09:37:00"), 239: dateutil.parser.parse("2029-01-14 21:27:00"), 240: dateutil.parser.parse("2029-01-15 09:14:00"), 241: dateutil.parser.parse("2029-01-15 21:02:00"), 242: dateutil.parser.parse("2029-01-16 08:53:00"), 243: dateutil.parser.parse("2029-01-16 20:48:00"), 244: dateutil.parser.parse("2029-01-17 08:46:00"), 245: dateutil.parser.parse("2029-01-17 20:41:00"), 246: dateutil.parser.parse("2029-01-18 08:32:00"), 247: dateutil.parser.parse("2029-01-18 20:19:00"), 248: dateutil.parser.parse("2029-01-19 08:04:00"), 249: dateutil.parser.parse("2029-01-19 19:53:00"), 250: dateutil.parser.parse("2029-01-20 07:48:00"), 251: dateutil.parser.parse("2029-01-20 19:46:00"), 252: dateutil.parser.parse("2029-01-21 07:43:00"), 253: dateutil.parser.parse("2029-01-21 19:34:00"), 254: dateutil.parser.parse("2029-01-22 07:20:00"), 255: dateutil.parser.parse("2029-01-22 19:04:00"), 256: dateutil.parser.parse("2029-01-23 06:51:00"), 257: dateutil.parser.parse("2029-01-23 18:47:00"), 258: dateutil.parser.parse("2029-01-23 23:42:00"), 259: dateutil.parser.parse("2029-01-24 04:38:00"), 260: dateutil.parser.parse("2029-01-24 09:33:00"), 261: dateutil.parser.parse("2029-01-24 14:28:00"), 262: dateutil.parser.parse("2029-01-24 19:23:00"), 263: dateutil.parser.parse("2029-01-25 00:18:00"), 264: dateutil.parser.parse("2029-01-25 05:13:00"), 265: dateutil.parser.parse("2029-01-25 10:07:00"), 266: dateutil.parser.parse("2029-01-25 15:02:00"), 267: dateutil.parser.parse("2029-01-25 19:57:00"), 268: dateutil.parser.parse("2029-01-25 23:02:00"), 269: dateutil.parser.parse("2029-01-26 02:06:00"), 270: dateutil.parser.parse("2029-01-26 05:11:00"), 271: dateutil.parser.parse("2029-01-26 08:16:00"), 272: dateutil.parser.parse("2029-01-26 11:20:00"), 273: dateutil.parser.parse("2029-01-26 14:25:00"), 274: dateutil.parser.parse("2029-01-26 17:29:00"), 275: dateutil.parser.parse("2029-01-26 20:34:00"), 276: dateutil.parser.parse("2029-01-26 23:38:00"), 277: dateutil.parser.parse("2029-01-27 02:43:00"), 278: dateutil.parser.parse("2029-01-27 05:48:00"), 279: dateutil.parser.parse("2029-01-27 08:52:00"), 280: dateutil.parser.parse("2029-01-27 11:57:00"), 281: dateutil.parser.parse("2029-01-27 15:02:00"), 282: dateutil.parser.parse("2029-01-27 18:06:00"), 283: dateutil.parser.parse("2029-01-27 21:11:00"), 284: dateutil.parser.parse("2029-01-28 00:16:00"), 285: dateutil.parser.parse("2029-01-28 03:20:00"), 286: dateutil.parser.parse("2029-01-28 06:25:00"), 287: dateutil.parser.parse("2029-01-28 09:30:00"), 288: dateutil.parser.parse("2029-01-28 12:34:00"), 289: dateutil.parser.parse("2029-01-28 15:39:00"), 290: dateutil.parser.parse("2029-01-28 18:43:00"), 291: dateutil.parser.parse("2029-01-28 21:48:00"), 292: dateutil.parser.parse("2029-01-29 00:52:00"), 293: dateutil.parser.parse("2029-01-29 03:57:00"), 294: dateutil.parser.parse("2029-01-29 07:01:00"), 295: dateutil.parser.parse("2029-01-29 10:06:00"), 296: dateutil.parser.parse("2029-01-29 13:10:00"), 297: dateutil.parser.parse("2029-01-29 16:15:00"), 298: dateutil.parser.parse("2029-01-29 19:20:00"), 299: dateutil.parser.parse("2029-01-29 22:24:00"), 300: dateutil.parser.parse("2029-01-30 01:29:00"), 301: dateutil.parser.parse("2029-01-30 04:33:00"), 302: dateutil.parser.parse("2029-01-30 07:38:00"), 303: dateutil.parser.parse("2029-01-30 10:42:00"), 304: dateutil.parser.parse("2029-01-30 13:47:00"), 305: dateutil.parser.parse("2029-01-30 16:51:00"), 306: dateutil.parser.parse("2029-01-30 19:56:00"), 307: dateutil.parser.parse("2029-01-30 23:01:00"), 308: dateutil.parser.parse("2029-01-31 02:05:00"), 309: dateutil.parser.parse("2029-01-31 05:10:00"), 310: dateutil.parser.parse("2029-01-31 08:15:00"), 311: dateutil.parser.parse("2029-01-31 11:19:00"), 312: dateutil.parser.parse("2029-01-31 14:24:00"), 313: dateutil.parser.parse("2029-01-31 17:29:00"), 314: dateutil.parser.parse("2029-01-31 20:33:00"), 315: dateutil.parser.parse("2029-01-31 23:38:00"), 316: dateutil.parser.parse("2029-02-01 02:43:00"), 317: dateutil.parser.parse("2029-02-01 05:47:00"), 318: dateutil.parser.parse("2029-02-01 08:52:00"), 319: dateutil.parser.parse("2029-02-01 11:56:00"), 320: dateutil.parser.parse("2029-02-01 15:01:00"), 321: dateutil.parser.parse("2029-02-01 18:05:00"), 322: dateutil.parser.parse("2029-02-01 21:10:00"), 323: dateutil.parser.parse("2029-02-02 00:14:00"), 324: dateutil.parser.parse("2029-02-02 03:19:00"), 325: dateutil.parser.parse("2029-02-02 06:24:00"), 326: dateutil.parser.parse("2029-02-02 09:28:00"), 327: dateutil.parser.parse("2029-02-02 12:33:00"), 328: dateutil.parser.parse("2029-02-02 15:37:00"), 329: dateutil.parser.parse("2029-02-02 18:42:00"), 330: dateutil.parser.parse("2029-02-02 21:46:00"), 331: dateutil.parser.parse("2029-02-03 00:51:00"), 332: dateutil.parser.parse("2029-02-03 03:55:00"), 333: dateutil.parser.parse("2029-02-03 07:00:00"), 334: dateutil.parser.parse("2029-02-03 10:05:00"), 335: dateutil.parser.parse("2029-02-03 13:09:00"), 336: dateutil.parser.parse("2029-02-03 16:14:00"), 337: dateutil.parser.parse("2029-02-03 19:19:00"), 338: dateutil.parser.parse("2029-02-03 22:23:00"), 339: dateutil.parser.parse("2029-02-04 01:28:00"), 340: dateutil.parser.parse("2029-02-04 04:33:00"), 341: dateutil.parser.parse("2029-02-04 07:37:00"), 342: dateutil.parser.parse("2029-02-04 10:42:00"), 343: dateutil.parser.parse("2029-02-04 13:47:00"), 344: dateutil.parser.parse("2029-02-04 16:51:00"), 345: dateutil.parser.parse("2029-02-04 19:56:00"), 346: dateutil.parser.parse("2029-02-04 23:00:00"), 347: dateutil.parser.parse("2029-02-05 02:05:00"), 348: dateutil.parser.parse("2029-02-05 05:09:00"), 349: dateutil.parser.parse("2029-02-05 08:14:00"), 350: dateutil.parser.parse("2029-02-05 11:18:00"), 351: dateutil.parser.parse("2029-02-05 14:23:00"), 352: dateutil.parser.parse("2029-02-05 17:27:00"), 353: dateutil.parser.parse("2029-02-05 20:32:00"), 354: dateutil.parser.parse("2029-02-05 23:37:00"), 355: dateutil.parser.parse("2029-02-06 02:41:00"), 356: dateutil.parser.parse("2029-02-06 05:46:00"), 357: dateutil.parser.parse("2029-02-06 08:50:00"), 358: dateutil.parser.parse("2029-02-06 11:55:00"), 359: dateutil.parser.parse("2029-02-06 14:59:00"), 360: dateutil.parser.parse("2029-02-06 18:04:00"), 361: dateutil.parser.parse("2029-02-06 21:09:00"), 362: dateutil.parser.parse("2029-02-07 00:13:00"), 363: dateutil.parser.parse("2029-02-07 03:18:00"), 364: dateutil.parser.parse("2029-02-07 06:22:00"), 365: dateutil.parser.parse("2029-02-07 09:27:00"), 366: dateutil.parser.parse("2029-02-07 12:32:00"), 367: dateutil.parser.parse("2029-02-07 15:37:00"), 368: dateutil.parser.parse("2029-02-07 18:41:00"), 369: dateutil.parser.parse("2029-02-07 21:46:00"), 370: dateutil.parser.parse("2029-02-08 00:50:00"), 371: dateutil.parser.parse("2029-02-08 03:55:00"), 372: dateutil.parser.parse("2029-02-08 07:00:00"), 373: dateutil.parser.parse("2029-02-08 10:04:00"), 374: dateutil.parser.parse("2029-02-08 13:09:00"), 375: dateutil.parser.parse("2029-02-08 16:13:00"), 376: dateutil.parser.parse("2029-02-08 19:18:00"), 377: dateutil.parser.parse("2029-02-08 22:22:00"), 378: dateutil.parser.parse("2029-02-09 01:27:00"), 379: dateutil.parser.parse("2029-02-09 04:32:00"), 380: dateutil.parser.parse("2029-02-09 07:36:00"), 381: dateutil.parser.parse("2029-02-09 10:41:00"), 382: dateutil.parser.parse("2029-02-09 13:45:00"), 383: dateutil.parser.parse("2029-02-09 16:50:00"), 384: dateutil.parser.parse("2029-02-09 19:54:00"), 385: dateutil.parser.parse("2029-02-09 22:59:00"), 386: dateutil.parser.parse("2029-02-10 02:03:00"), 387: dateutil.parser.parse("2029-02-10 05:08:00"), 388: dateutil.parser.parse("2029-02-10 08:12:00"), 389: dateutil.parser.parse("2029-02-10 11:17:00"), 390: dateutil.parser.parse("2029-02-10 14:22:00"), 391: dateutil.parser.parse("2029-02-10 17:26:00"), 392: dateutil.parser.parse("2029-02-10 20:31:00"), 393: dateutil.parser.parse("2029-02-10 23:36:00"), 394: dateutil.parser.parse("2029-02-11 02:40:00"), 395: dateutil.parser.parse("2029-02-11 05:45:00"), 396: dateutil.parser.parse("2029-02-11 08:50:00"), 397: dateutil.parser.parse("2029-02-11 11:54:00"), 398: dateutil.parser.parse("2029-02-11 14:59:00"), 399: dateutil.parser.parse("2029-02-11 18:04:00"), 400: dateutil.parser.parse("2029-02-11 21:08:00"), 401: dateutil.parser.parse("2029-02-12 00:13:00"), 402: dateutil.parser.parse("2029-02-12 03:17:00"), 403: dateutil.parser.parse("2029-02-12 06:22:00"), 404: dateutil.parser.parse("2029-02-12 09:26:00"), 405: dateutil.parser.parse("2029-02-12 12:31:00"), 406: dateutil.parser.parse("2029-02-12 15:36:00"), 407: dateutil.parser.parse("2029-02-12 18:40:00"), 408: dateutil.parser.parse("2029-02-12 21:45:00"), 409: dateutil.parser.parse("2029-02-13 00:49:00"), 410: dateutil.parser.parse("2029-02-13 03:54:00"), 411: dateutil.parser.parse("2029-02-13 06:58:00"), 412: dateutil.parser.parse("2029-02-13 10:03:00"), 413: dateutil.parser.parse("2029-02-13 13:07:00"), 414: dateutil.parser.parse("2029-02-13 16:12:00"), 415: dateutil.parser.parse("2029-02-13 19:16:00"), 416: dateutil.parser.parse("2029-02-13 22:21:00"), 417: dateutil.parser.parse("2029-02-14 01:26:00"), 418: dateutil.parser.parse("2029-02-14 04:30:00"), 419: dateutil.parser.parse("2029-02-14 07:35:00"), 420: dateutil.parser.parse("2029-02-14 10:40:00"), 421: dateutil.parser.parse("2029-02-14 13:44:00"), 422: dateutil.parser.parse("2029-02-14 16:49:00"), 423: dateutil.parser.parse("2029-02-14 19:54:00"), 424: dateutil.parser.parse("2029-02-14 22:58:00"), 425: dateutil.parser.parse("2029-02-15 02:03:00"), 426: dateutil.parser.parse("2029-02-15 05:08:00"), 427: dateutil.parser.parse("2029-02-15 08:12:00"), 428: dateutil.parser.parse("2029-02-15 11:17:00"), 429: dateutil.parser.parse("2029-02-15 14:21:00"), 430: dateutil.parser.parse("2029-02-15 17:26:00"), 431: dateutil.parser.parse("2029-02-15 20:30:00"), 432: dateutil.parser.parse("2029-02-15 23:35:00"), 433: dateutil.parser.parse("2029-02-16 02:40:00"), 434: dateutil.parser.parse("2029-02-16 05:44:00"), 435: dateutil.parser.parse("2029-02-16 08:49:00"), 436: dateutil.parser.parse("2029-02-16 11:53:00"), 437: dateutil.parser.parse("2029-02-16 14:58:00"), 438: dateutil.parser.parse("2029-02-16 18:02:00"), 439: dateutil.parser.parse("2029-02-16 21:07:00"), 440: dateutil.parser.parse("2029-02-17 00:11:00"), 441: dateutil.parser.parse("2029-02-17 03:16:00"), 442: dateutil.parser.parse("2029-02-17 06:20:00"), 443: dateutil.parser.parse("2029-02-17 09:25:00"), 444: dateutil.parser.parse("2029-02-17 12:29:00"), 445: dateutil.parser.parse("2029-02-17 15:34:00"), 446: dateutil.parser.parse("2029-02-17 18:39:00"), 447: dateutil.parser.parse("2029-02-17 21:43:00"), 448: dateutil.parser.parse("2029-02-18 00:48:00"), 449: dateutil.parser.parse("2029-02-18 03:53:00"), 450: dateutil.parser.parse("2029-02-18 06:57:00"), 451: dateutil.parser.parse("2029-02-18 10:02:00"), 452: dateutil.parser.parse("2029-02-18 13:07:00"), 453: dateutil.parser.parse("2029-02-18 16:11:00"), 454: dateutil.parser.parse("2029-02-18 19:16:00"), 455: dateutil.parser.parse("2029-02-18 22:21:00"), 456: dateutil.parser.parse("2029-02-19 01:25:00"), 457: dateutil.parser.parse("2029-02-19 04:30:00"), 458: dateutil.parser.parse("2029-02-19 07:34:00"), 459: dateutil.parser.parse("2029-02-19 10:39:00"), 460: dateutil.parser.parse("2029-02-19 13:43:00"), 461: dateutil.parser.parse("2029-02-19 16:48:00"), 462: dateutil.parser.parse("2029-02-19 19:53:00"), 463: dateutil.parser.parse("2029-02-19 22:57:00"), 464: dateutil.parser.parse("2029-02-20 02:02:00"), 465: dateutil.parser.parse("2029-02-20 05:06:00"), 466: dateutil.parser.parse("2029-02-20 08:11:00"), 467: dateutil.parser.parse("2029-02-20 11:15:00"), 468: dateutil.parser.parse("2029-02-20 14:20:00"), 469: dateutil.parser.parse("2029-02-20 17:24:00"), 470: dateutil.parser.parse("2029-02-20 20:29:00"), 471: dateutil.parser.parse("2029-02-20 23:33:00"), 472: dateutil.parser.parse("2029-02-21 02:38:00"), 473: dateutil.parser.parse("2029-02-21 05:43:00"), 474: dateutil.parser.parse("2029-02-21 08:47:00"), 475: dateutil.parser.parse("2029-02-21 11:52:00"), 476: dateutil.parser.parse("2029-02-21 14:57:00"), 477: dateutil.parser.parse("2029-02-21 18:01:00"), 478: dateutil.parser.parse("2029-02-21 21:06:00"), 479: dateutil.parser.parse("2029-02-22 00:11:00"), 480: dateutil.parser.parse("2029-02-22 03:15:00"), 481: dateutil.parser.parse("2029-02-22 06:20:00"), 482: dateutil.parser.parse("2029-02-22 09:25:00"), 483: dateutil.parser.parse("2029-02-22 12:29:00"), 484: dateutil.parser.parse("2029-02-22 15:34:00"), 485: dateutil.parser.parse("2029-02-22 18:38:00"), 486: dateutil.parser.parse("2029-02-22 21:43:00"), 487: dateutil.parser.parse("2029-02-23 00:47:00"), 488: dateutil.parser.parse("2029-02-23 03:52:00"), 489: dateutil.parser.parse("2029-02-23 06:57:00"), 490: dateutil.parser.parse("2029-02-23 10:01:00"), 491: dateutil.parser.parse("2029-02-23 13:06:00"), 492: dateutil.parser.parse("2029-02-23 16:10:00"), 493: dateutil.parser.parse("2029-02-23 19:15:00"), 494: dateutil.parser.parse("2029-02-23 22:19:00"), 495: dateutil.parser.parse("2029-02-24 01:24:00"), 496: dateutil.parser.parse("2029-02-24 04:28:00"), 497: dateutil.parser.parse("2029-02-24 07:33:00"), 498: dateutil.parser.parse("2029-02-24 10:37:00"), 499: dateutil.parser.parse("2029-02-24 13:42:00"), 500: dateutil.parser.parse("2029-02-24 16:46:00"), 501: dateutil.parser.parse("2029-02-24 19:51:00"), 502: dateutil.parser.parse("2029-02-24 22:56:00"), 503: dateutil.parser.parse("2029-02-25 02:00:00"), 504: dateutil.parser.parse("2029-02-25 05:05:00"), 505: dateutil.parser.parse("2029-02-25 08:10:00"), 506: dateutil.parser.parse("2029-02-25 11:14:00"), 507: dateutil.parser.parse("2029-02-25 14:19:00"), 508: dateutil.parser.parse("2029-02-25 17:24:00"), 509: dateutil.parser.parse("2029-02-25 20:28:00"), 510: dateutil.parser.parse("2029-02-25 23:33:00"), 511: dateutil.parser.parse("2029-02-26 02:38:00"), 512: dateutil.parser.parse("2029-02-26 05:42:00"), 513: dateutil.parser.parse("2029-02-26 08:47:00"), 514: dateutil.parser.parse("2029-02-26 11:51:00"), 515: dateutil.parser.parse("2029-02-26 14:56:00"), 516: dateutil.parser.parse("2029-02-26 18:01:00"), 517: dateutil.parser.parse("2029-02-26 21:05:00"), 518: dateutil.parser.parse("2029-02-27 00:10:00"), 519: dateutil.parser.parse("2029-02-27 03:14:00"), 520: dateutil.parser.parse("2029-02-27 06:19:00"), 521: dateutil.parser.parse("2029-02-27 09:23:00"), 522: dateutil.parser.parse("2029-02-27 12:28:00"), 523: dateutil.parser.parse("2029-02-27 15:32:00"), 524: dateutil.parser.parse("2029-02-27 18:37:00"), 525: dateutil.parser.parse("2029-02-27 21:41:00"), 526: dateutil.parser.parse("2029-02-28 00:46:00"), 527: dateutil.parser.parse("2029-02-28 03:50:00"), 528: dateutil.parser.parse("2029-02-28 06:55:00"), 529: dateutil.parser.parse("2029-02-28 10:00:00"), 530: dateutil.parser.parse("2029-02-28 13:04:00"), 531: dateutil.parser.parse("2029-02-28 16:09:00"), 532: dateutil.parser.parse("2029-02-28 19:14:00"), 533: dateutil.parser.parse("2029-02-28 22:18:00"), 534: dateutil.parser.parse("2029-03-01 01:23:00"), 535: dateutil.parser.parse("2029-03-01 04:28:00"), 536: dateutil.parser.parse("2029-03-01 07:32:00"), 537: dateutil.parser.parse("2029-03-01 10:37:00"), 538: dateutil.parser.parse("2029-03-01 13:42:00"), 539: dateutil.parser.parse("2029-03-01 16:46:00"), 540: dateutil.parser.parse("2029-03-01 18:00:00"), # datagap 541: dateutil.parser.parse("2029-03-01 23:02:00"), 542: dateutil.parser.parse("2029-03-02 02:00:00"), 543: dateutil.parser.parse("2029-03-02 05:04:00"), 544: dateutil.parser.parse("2029-03-02 08:09:00"), 545: dateutil.parser.parse("2029-03-02 11:13:00"), 546: dateutil.parser.parse("2029-03-02 14:18:00"), 547: dateutil.parser.parse("2029-03-02 17:22:00"), 548: dateutil.parser.parse("2029-03-02 20:27:00"), 549: dateutil.parser.parse("2029-03-02 23:31:00"), 550: dateutil.parser.parse("2029-03-03 02:36:00"), 551: dateutil.parser.parse("2029-03-03 05:40:00"), 552: dateutil.parser.parse("2029-03-03 08:45:00"), 553: dateutil.parser.parse("2029-03-03 11:49:00"), 554: dateutil.parser.parse("2029-03-03 14:54:00"), 555: dateutil.parser.parse("2029-03-03 17:58:00"), 556: dateutil.parser.parse("2029-03-03 21:03:00"), 557: dateutil.parser.parse("2029-03-04 00:07:00"), 558: dateutil.parser.parse("2029-03-04 03:12:00"), 559: dateutil.parser.parse("2029-03-04 06:16:00"), 560: dateutil.parser.parse("2029-03-04 09:21:00"), 561: dateutil.parser.parse("2029-03-04 12:26:00"), 562: dateutil.parser.parse("2029-03-04 15:30:00"), 563: dateutil.parser.parse("2029-03-04 18:35:00"), 564: dateutil.parser.parse("2029-03-04 21:40:00"), 565: dateutil.parser.parse("2029-03-05 00:44:00"), 566: dateutil.parser.parse("2029-03-05 03:49:00"), 567: dateutil.parser.parse("2029-03-05 06:53:00"), 568: dateutil.parser.parse("2029-03-05 09:58:00"), 569: dateutil.parser.parse("2029-03-05 13:02:00"), 570: dateutil.parser.parse("2029-03-05 16:07:00"), 571: dateutil.parser.parse("2029-03-05 19:11:00"), 572: dateutil.parser.parse("2029-03-05 22:16:00"), 573: dateutil.parser.parse("2029-03-06 01:20:00"), 574: dateutil.parser.parse("2029-03-06 04:25:00"), 575: dateutil.parser.parse("2029-03-06 07:29:00"), 576: dateutil.parser.parse("2029-03-06 10:34:00"), 577: dateutil.parser.parse("2029-03-06 13:38:00"), 578: dateutil.parser.parse("2029-03-06 16:43:00"), 579: dateutil.parser.parse("2029-03-06 19:47:00"), 580: dateutil.parser.parse("2029-03-06 22:52:00"), 581: dateutil.parser.parse("2029-03-07 01:56:00"), 582: dateutil.parser.parse("2029-03-07 05:01:00"), 583: dateutil.parser.parse("2029-03-07 08:05:00"), 584: dateutil.parser.parse("2029-03-07 11:10:00"), 585: dateutil.parser.parse("2029-03-07 14:14:00"), 586: dateutil.parser.parse("2029-03-07 17:19:00"), 587: dateutil.parser.parse("2029-03-07 20:23:00"), 588: dateutil.parser.parse("2029-03-07 23:28:00"), 589: dateutil.parser.parse("2029-03-08 02:33:00"), 590: dateutil.parser.parse("2029-03-08 05:37:00"), 591: dateutil.parser.parse("2029-03-08 08:42:00"), 592: dateutil.parser.parse("2029-03-08 11:47:00"), 593: dateutil.parser.parse("2029-03-08 14:51:00"), 594: dateutil.parser.parse("2029-03-08 17:56:00"), 595: dateutil.parser.parse("2029-03-08 21:00:00"), 596: dateutil.parser.parse("2029-03-09 00:05:00"), 597: dateutil.parser.parse("2029-03-09 03:09:00"), 598: dateutil.parser.parse("2029-03-09 06:14:00"), 599: dateutil.parser.parse("2029-03-09 09:18:00"), 600: dateutil.parser.parse("2029-03-09 12:23:00"), 601: dateutil.parser.parse("2029-03-09 15:27:00"), 602: dateutil.parser.parse("2029-03-09 18:32:00"), 603: dateutil.parser.parse("2029-03-09 21:36:00"), 604: dateutil.parser.parse("2029-03-10 00:41:00"), 605: dateutil.parser.parse("2029-03-10 03:45:00"), 606: dateutil.parser.parse("2029-03-10 06:50:00"), 607: dateutil.parser.parse("2029-03-10 09:54:00"), 608: dateutil.parser.parse("2029-03-10 12:59:00"), 609: dateutil.parser.parse("2029-03-10 16:03:00"), 610: dateutil.parser.parse("2029-03-10 19:08:00"), 611: dateutil.parser.parse("2029-03-10 22:12:00"), 612: dateutil.parser.parse("2029-03-11 01:17:00"), 613: dateutil.parser.parse("2029-03-11 04:21:00"), 614: dateutil.parser.parse("2029-03-11 07:26:00"), 615: dateutil.parser.parse("2029-03-11 10:30:00"), 616: dateutil.parser.parse("2029-03-11 13:35:00"), 617: dateutil.parser.parse("2029-03-11 16:40:00"), 618: dateutil.parser.parse("2029-03-11 19:44:00"), 619: dateutil.parser.parse("2029-03-11 22:49:00"), 620: dateutil.parser.parse("2029-03-12 01:54:00"), 621: dateutil.parser.parse("2029-03-12 04:58:00"), 622: dateutil.parser.parse("2029-03-12 08:03:00"), 623: dateutil.parser.parse("2029-03-12 11:07:00"), 624: dateutil.parser.parse("2029-03-12 14:12:00"), 625: dateutil.parser.parse("2029-03-12 17:16:00"), 626: dateutil.parser.parse("2029-03-12 20:21:00"), 627: dateutil.parser.parse("2029-03-12 23:25:00"), 628: dateutil.parser.parse("2029-03-13 02:30:00"), 629: dateutil.parser.parse("2029-03-13 05:34:00"), 630: dateutil.parser.parse("2029-03-13 08:39:00"), 631: dateutil.parser.parse("2029-03-13 11:43:00"), 632: dateutil.parser.parse("2029-03-13 14:48:00"), 633: dateutil.parser.parse("2029-03-13 17:52:00"), 634: dateutil.parser.parse("2029-03-13 20:57:00"), 635: dateutil.parser.parse("2029-03-14 00:01:00"), 636: dateutil.parser.parse("2029-03-14 03:06:00"), 637: dateutil.parser.parse("2029-03-14 06:10:00"), 638: dateutil.parser.parse("2029-03-14 09:15:00"), 639: dateutil.parser.parse("2029-03-14 12:19:00"), 640: dateutil.parser.parse("2029-03-14 15:24:00"), 641: dateutil.parser.parse("2029-03-14 18:28:00"), 642: dateutil.parser.parse("2029-03-14 21:33:00"), 643: dateutil.parser.parse("2029-03-15 00:37:00"), 644: dateutil.parser.parse("2029-03-15 03:42:00"), 645: dateutil.parser.parse("2029-03-15 06:47:00"), 646: dateutil.parser.parse("2029-03-15 09:51:00"), 647: dateutil.parser.parse("2029-03-15 12:56:00"), 648: dateutil.parser.parse("2029-03-15 16:01:00"), 649: dateutil.parser.parse("2029-03-15 19:05:00"), 650: dateutil.parser.parse("2029-03-15 22:10:00"), 651: dateutil.parser.parse("2029-03-16 01:14:00"), 652: dateutil.parser.parse("2029-03-16 04:19:00"), 653: dateutil.parser.parse("2029-03-16 07:23:00"), 654: dateutil.parser.parse("2029-03-16 10:28:00"), 655: dateutil.parser.parse("2029-03-16 13:32:00"), 656: dateutil.parser.parse("2029-03-16 16:37:00"), 657: dateutil.parser.parse("2029-03-16 19:41:00"), 658: dateutil.parser.parse("2029-03-16 22:46:00"), 659: dateutil.parser.parse("2029-03-17 01:50:00"), 660: dateutil.parser.parse("2029-03-17 04:55:00"), 661: dateutil.parser.parse("2029-03-17 07:59:00"), 662: dateutil.parser.parse("2029-03-17 11:04:00"), 663: dateutil.parser.parse("2029-03-17 14:08:00"), 664: dateutil.parser.parse("2029-03-17 17:13:00"), 665: dateutil.parser.parse("2029-03-17 20:17:00"), 666: dateutil.parser.parse("2029-03-17 23:22:00"), 667: dateutil.parser.parse("2029-03-18 02:26:00"), 668: dateutil.parser.parse("2029-03-18 05:31:00"), 669: dateutil.parser.parse("2029-03-18 08:35:00"), 670: dateutil.parser.parse("2029-03-18 11:40:00"), 671: dateutil.parser.parse("2029-03-18 14:44:00"), 672: dateutil.parser.parse("2029-03-18 17:49:00"), 673: dateutil.parser.parse("2029-03-18 20:54:00"), 674: dateutil.parser.parse("2029-03-18 23:58:00"), 675: dateutil.parser.parse("2029-03-19 03:03:00"), 676: dateutil.parser.parse("2029-03-19 06:08:00"), 677: dateutil.parser.parse("2029-03-19 09:12:00"), 678: dateutil.parser.parse("2029-03-19 12:17:00"), 679: dateutil.parser.parse("2029-03-19 15:21:00"), 680: dateutil.parser.parse("2029-03-19 18:26:00"), 681: dateutil.parser.parse("2029-03-19 21:30:00"), 682: dateutil.parser.parse("2029-03-20 00:35:00"), 683: dateutil.parser.parse("2029-03-20 03:39:00"), 684: dateutil.parser.parse("2029-03-20 06:44:00"), 685: dateutil.parser.parse("2029-03-20 09:48:00"), 686: dateutil.parser.parse("2029-03-20 12:53:00"), 687: dateutil.parser.parse("2029-03-20 15:57:00"), 688: dateutil.parser.parse("2029-03-20 19:02:00"), 689: dateutil.parser.parse("2029-03-20 22:06:00"), 690: dateutil.parser.parse("2029-03-21 01:11:00"), 691: dateutil.parser.parse("2029-03-21 04:15:00"), 692: dateutil.parser.parse("2029-03-21 07:20:00"), 693: dateutil.parser.parse("2029-03-21 10:24:00"), 694: dateutil.parser.parse("2029-03-21 13:29:00"), 695: dateutil.parser.parse("2029-03-21 16:33:00"), 696: dateutil.parser.parse("2029-03-21 19:38:00"), 697: dateutil.parser.parse("2029-03-21 22:42:00"), 698: dateutil.parser.parse("2029-03-22 01:47:00"), 699: dateutil.parser.parse("2029-03-22 04:52:00"), 700: dateutil.parser.parse("2029-03-22 07:56:00"), 701: dateutil.parser.parse("2029-03-22 11:01:00"), 702: dateutil.parser.parse("2029-03-22 14:05:00"), 703: dateutil.parser.parse("2029-03-22 17:10:00"), 704: dateutil.parser.parse("2029-03-22 20:15:00"), 705: dateutil.parser.parse("2029-03-22 23:19:00"), 706: dateutil.parser.parse("2029-03-23 02:24:00"), 707: dateutil.parser.parse("2029-03-23 05:28:00"), 708: dateutil.parser.parse("2029-03-23 08:33:00"), 709: dateutil.parser.parse("2029-03-23 11:37:00"), 710: dateutil.parser.parse("2029-03-23 14:42:00"), 711: dateutil.parser.parse("2029-03-23 17:46:00"), 712: dateutil.parser.parse("2029-03-23 20:51:00"), 713: dateutil.parser.parse("2029-03-23 23:55:00"), 714: dateutil.parser.parse("2029-03-24 03:00:00"), 715: dateutil.parser.parse("2029-03-24 06:04:00"), 716: dateutil.parser.parse("2029-03-24 09:09:00"), 717: dateutil.parser.parse("2029-03-24 12:13:00"), 718: dateutil.parser.parse("2029-03-24 15:18:00"), 719: dateutil.parser.parse("2029-03-24 18:22:00"), 720: dateutil.parser.parse("2029-03-24 21:27:00"), 721: dateutil.parser.parse("2029-03-25 00:31:00"), 722: dateutil.parser.parse("2029-03-25 03:36:00"), 723: dateutil.parser.parse("2029-03-25 06:40:00"), 724: dateutil.parser.parse("2029-03-25 09:45:00"), 725: dateutil.parser.parse("2029-03-25 12:49:00"), 726: dateutil.parser.parse("2029-03-25 15:54:00"), 727: dateutil.parser.parse("2029-03-25 18:59:00"), 728: dateutil.parser.parse("2029-03-25 22:03:00"), 729: dateutil.parser.parse("2029-03-26 01:08:00"), 730: dateutil.parser.parse("2029-03-26 04:12:00"), 731: dateutil.parser.parse("2029-03-26 07:17:00"), 732: dateutil.parser.parse("2029-03-26 10:22:00"), 733: dateutil.parser.parse("2029-03-26 13:26:00"), 734: dateutil.parser.parse("2029-03-26 16:31:00"), 735: dateutil.parser.parse("2029-03-26 19:35:00"), 736: dateutil.parser.parse("2029-03-26 22:40:00"), 737: dateutil.parser.parse("2029-03-27 01:44:00"), 738: dateutil.parser.parse("2029-03-27 04:49:00"), 739: dateutil.parser.parse("2029-03-27 07:53:00"), 740: dateutil.parser.parse("2029-03-27 10:58:00"), 741: dateutil.parser.parse("2029-03-27 14:02:00"), 742: dateutil.parser.parse("2029-03-27 17:07:00"), 743: dateutil.parser.parse("2029-03-27 20:11:00"), 744: dateutil.parser.parse("2029-03-27 23:16:00"), 745: dateutil.parser.parse("2029-03-28 02:20:00"), 746: dateutil.parser.parse("2029-03-28 05:25:00"), 747: dateutil.parser.parse("2029-03-28 08:29:00"), 748: dateutil.parser.parse("2029-03-28 11:33:00"), 749: dateutil.parser.parse("2029-03-28 14:38:00"), 750: dateutil.parser.parse("2029-03-28 17:43:00"), 751: dateutil.parser.parse("2029-03-28 20:47:00"), 752: dateutil.parser.parse("2029-03-28 23:52:00"), 753: dateutil.parser.parse("2029-03-29 02:56:00"), 754: dateutil.parser.parse("2029-03-29 06:01:00"), 755: dateutil.parser.parse("2029-03-29 09:06:00"), 756: dateutil.parser.parse("2029-03-29 12:10:00"), 757: dateutil.parser.parse("2029-03-29 15:15:00"), 758: dateutil.parser.parse("2029-03-29 18:19:00"), 759: dateutil.parser.parse("2029-03-29 21:24:00"), 760: dateutil.parser.parse("2029-03-30 00:29:00"), 761: dateutil.parser.parse("2029-03-30 03:33:00"), 762: dateutil.parser.parse("2029-03-30 06:38:00"), 763: dateutil.parser.parse("2029-03-30 09:42:00"), 764: dateutil.parser.parse("2029-03-30 12:47:00"), 765: dateutil.parser.parse("2029-03-30 15:51:00"), 766: dateutil.parser.parse("2029-03-30 18:56:00"), 767: dateutil.parser.parse("2029-03-30 22:00:00"), 768: dateutil.parser.parse("2029-03-31 01:05:00"), 769: dateutil.parser.parse("2029-03-31 04:09:00"), 770: dateutil.parser.parse("2029-03-31 07:14:00"), 771: dateutil.parser.parse("2029-03-31 10:18:00"), 772: dateutil.parser.parse("2029-03-31 13:23:00"), 773: dateutil.parser.parse("2029-03-31 16:27:00"), 774: dateutil.parser.parse("2029-03-31 19:32:00"), 775: dateutil.parser.parse("2029-03-31 22:36:00"), 776: dateutil.parser.parse("2029-04-01 01:41:00"), 777: dateutil.parser.parse("2029-04-01 04:45:00"), 778: dateutil.parser.parse("2029-04-01 07:50:00"), 779: dateutil.parser.parse("2029-04-01 10:54:00"), 780: dateutil.parser.parse("2029-04-01 13:59:00"), 781: dateutil.parser.parse("2029-04-01 17:03:00"), 782: dateutil.parser.parse("2029-04-01 20:08:00"), 783: dateutil.parser.parse("2029-04-01 23:13:00"), 784: dateutil.parser.parse("2029-04-02 02:17:00"), 785: dateutil.parser.parse("2029-04-02 05:22:00"), 786: dateutil.parser.parse("2029-04-02 08:26:00"), 787: dateutil.parser.parse("2029-04-02 11:31:00"), 788: dateutil.parser.parse("2029-04-02 14:36:00"), 789: dateutil.parser.parse("2029-04-02 17:40:00"), 790: dateutil.parser.parse("2029-04-02 20:45:00"), 791: dateutil.parser.parse("2029-04-02 23:49:00"), 792: dateutil.parser.parse("2029-04-03 02:54:00"), 793: dateutil.parser.parse("2029-04-03 05:58:00"), 794: dateutil.parser.parse("2029-04-03 09:03:00"), 795: dateutil.parser.parse("2029-04-03 12:07:00"), 796: dateutil.parser.parse("2029-04-03 15:12:00"), 797: dateutil.parser.parse("2029-04-03 18:16:00"), 798: dateutil.parser.parse("2029-04-03 21:21:00"), 799: dateutil.parser.parse("2029-04-04 00:25:00"), 800: dateutil.parser.parse("2029-04-04 03:30:00"), 801: dateutil.parser.parse("2029-04-04 06:34:00"), 802: dateutil.parser.parse("2029-04-04 09:39:00"), 803: dateutil.parser.parse("2029-04-04 12:43:00"), 804: dateutil.parser.parse("2029-04-04 15:47:00"), 805: dateutil.parser.parse("2029-04-04 18:52:00"), 806: dateutil.parser.parse("2029-04-04 21:57:00"), 807: dateutil.parser.parse("2029-04-05 01:01:00"), 808: dateutil.parser.parse("2029-04-05 04:06:00"), 809: dateutil.parser.parse("2029-04-05 07:10:00"), 810: dateutil.parser.parse("2029-04-05 10:15:00"), 811: dateutil.parser.parse("2029-04-05 13:20:00"), 812: dateutil.parser.parse("2029-04-05 16:24:00"), 813: dateutil.parser.parse("2029-04-05 18:00:00"), # datagap 814: dateutil.parser.parse("2029-04-05 22:33:00"), 815: dateutil.parser.parse("2029-04-06 01:38:00"), 816: dateutil.parser.parse("2029-04-06 04:42:00"), 817: dateutil.parser.parse("2029-04-06 07:47:00"), 818: dateutil.parser.parse("2029-04-06 10:51:00"), 819: dateutil.parser.parse("2029-04-06 13:56:00"), 820: dateutil.parser.parse("2029-04-06 17:00:00"), 821: dateutil.parser.parse("2029-04-06 20:05:00"), 822: dateutil.parser.parse("2029-04-06 23:09:00"), 823: dateutil.parser.parse("2029-04-07 02:14:00"), 824: dateutil.parser.parse("2029-04-07 05:18:00"), 825: dateutil.parser.parse("2029-04-07 08:22:00"), 826: dateutil.parser.parse("2029-04-07 11:27:00"), 827: dateutil.parser.parse("2029-04-07 14:31:00"), 828: dateutil.parser.parse("2029-04-07 17:36:00"), 829: dateutil.parser.parse("2029-04-07 20:40:00"), 830: dateutil.parser.parse("2029-04-07 23:44:00"), 831: dateutil.parser.parse("2029-04-08 02:49:00"), 832: dateutil.parser.parse("2029-04-08 05:53:00"), 833: dateutil.parser.parse("2029-04-08 08:58:00"), 834: dateutil.parser.parse("2029-04-08 12:02:00"), 835: dateutil.parser.parse("2029-04-08 15:07:00"), 836: dateutil.parser.parse("2029-04-08 18:11:00"), 837: dateutil.parser.parse("2029-04-08 21:16:00"), 838: dateutil.parser.parse("2029-04-09 00:20:00"), 839: dateutil.parser.parse("2029-04-09 03:25:00"), 840: dateutil.parser.parse("2029-04-09 06:29:00"), 841: dateutil.parser.parse("2029-04-09 09:34:00"), 842: dateutil.parser.parse("2029-04-09 12:38:00"), 843: dateutil.parser.parse("2029-04-09 15:43:00"), 844: dateutil.parser.parse("2029-04-09 18:47:00"), 845: dateutil.parser.parse("2029-04-09 21:52:00"), 846: dateutil.parser.parse("2029-04-10 00:56:00"), 847: dateutil.parser.parse("2029-04-10 04:01:00"), 848: dateutil.parser.parse("2029-04-10 07:05:00"), 849: dateutil.parser.parse("2029-04-10 10:10:00"), 850: dateutil.parser.parse("2029-04-10 13:14:00"), 851: dateutil.parser.parse("2029-04-10 16:19:00"), 852: dateutil.parser.parse("2029-04-10 19:23:00"), 853: dateutil.parser.parse("2029-04-10 22:27:00"), 854: dateutil.parser.parse("2029-04-11 01:32:00"), 855: dateutil.parser.parse("2029-04-11 04:36:00"), 856: dateutil.parser.parse("2029-04-11 07:40:00"), 857: dateutil.parser.parse("2029-04-11 10:45:00"), 858: dateutil.parser.parse("2029-04-11 13:49:00"), 859: dateutil.parser.parse("2029-04-11 16:54:00"), 860: dateutil.parser.parse("2029-04-11 19:58:00"), 861: dateutil.parser.parse("2029-04-11 23:02:00"), 862: dateutil.parser.parse("2029-04-12 02:07:00"), 863: dateutil.parser.parse("2029-04-12 05:11:00"), 864: dateutil.parser.parse("2029-04-12 08:16:00"), 865: dateutil.parser.parse("2029-04-12 11:20:00"), 866: dateutil.parser.parse("2029-04-12 14:25:00"), 867: dateutil.parser.parse("2029-04-12 17:30:00"), 868: dateutil.parser.parse("2029-04-12 20:34:00"), 869: dateutil.parser.parse("2029-04-12 23:39:00"), 870: dateutil.parser.parse("2029-04-13 02:43:00"), 871: dateutil.parser.parse("2029-04-13 05:48:00"), 872: dateutil.parser.parse("2029-04-13 08:52:00"), 873: dateutil.parser.parse("2029-04-13 11:57:00"), 874: dateutil.parser.parse("2029-04-13 15:01:00"), 875: dateutil.parser.parse("2029-04-13 18:06:00"), 876: dateutil.parser.parse("2029-04-13 21:10:00"), 877: dateutil.parser.parse("2029-04-14 00:15:00"), 878: dateutil.parser.parse("2029-04-14 03:19:00"), 879: dateutil.parser.parse("2029-04-14 06:23:00"), 880: dateutil.parser.parse("2029-04-14 09:28:00"), 881: dateutil.parser.parse("2029-04-14 12:32:00"), 882: dateutil.parser.parse("2029-04-14 15:37:00"), 883: dateutil.parser.parse("2029-04-14 18:41:00"), 884: dateutil.parser.parse("2029-04-14 21:45:00"), 885: dateutil.parser.parse("2029-04-15 00:50:00"), 886: dateutil.parser.parse("2029-04-15 03:54:00"), 887: dateutil.parser.parse("2029-04-15 06:59:00"), 888: dateutil.parser.parse("2029-04-15 10:03:00"), 889: dateutil.parser.parse("2029-04-15 13:07:00"), 890: dateutil.parser.parse("2029-04-15 16:12:00"), 891: dateutil.parser.parse("2029-04-15 19:16:00"), 892: dateutil.parser.parse("2029-04-15 22:21:00"), 893: dateutil.parser.parse("2029-04-16 01:25:00"), 894: dateutil.parser.parse("2029-04-16 04:30:00"), 895: dateutil.parser.parse("2029-04-16 07:34:00"), 896: dateutil.parser.parse("2029-04-16 10:39:00"), 897: dateutil.parser.parse("2029-04-16 13:44:00"), 898: dateutil.parser.parse("2029-04-16 16:48:00"), 899: dateutil.parser.parse("2029-04-16 19:53:00"), 900: dateutil.parser.parse("2029-04-16 22:57:00"), 901: dateutil.parser.parse("2029-04-17 02:02:00"), 902: dateutil.parser.parse("2029-04-17 05:06:00"), 903: dateutil.parser.parse("2029-04-17 08:11:00"), 904: dateutil.parser.parse("2029-04-17 11:15:00"), 905: dateutil.parser.parse("2029-04-17 14:20:00"), 906: dateutil.parser.parse("2029-04-17 17:24:00"), 907: dateutil.parser.parse("2029-04-17 20:28:00"), 908: dateutil.parser.parse("2029-04-17 23:33:00"), 909: dateutil.parser.parse("2029-04-18 02:37:00"), 910: dateutil.parser.parse("2029-04-18 05:41:00"), 911: dateutil.parser.parse("2029-04-18 08:46:00"), 912: dateutil.parser.parse("2029-04-18 11:50:00"), 913: dateutil.parser.parse("2029-04-18 14:55:00"), 914: dateutil.parser.parse("2029-04-18 17:59:00"), 915: dateutil.parser.parse("2029-04-18 21:03:00"), 916: dateutil.parser.parse("2029-04-19 00:08:00"), 917: dateutil.parser.parse("2029-04-19 03:12:00"), 918: dateutil.parser.parse("2029-04-19 06:17:00"), 919: dateutil.parser.parse("2029-04-19 09:21:00"), 920: dateutil.parser.parse("2029-04-19 12:26:00"), 921: dateutil.parser.parse("2029-04-19 15:30:00"), 922: dateutil.parser.parse("2029-04-19 18:35:00"), 923: dateutil.parser.parse("2029-04-19 21:39:00"), 924: dateutil.parser.parse("2029-04-20 00:44:00"), 925: dateutil.parser.parse("2029-04-20 03:49:00"), 926: dateutil.parser.parse("2029-04-20 06:53:00"), 927: dateutil.parser.parse("2029-04-20 09:58:00"), 928: dateutil.parser.parse("2029-04-20 13:02:00"), 929: dateutil.parser.parse("2029-04-20 16:07:00"), 930: dateutil.parser.parse("2029-04-20 19:11:00"), 931: dateutil.parser.parse("2029-04-20 22:16:00"), 932: dateutil.parser.parse("2029-04-21 01:20:00"), 933: dateutil.parser.parse("2029-04-21 04:24:00"), 934: dateutil.parser.parse("2029-04-21 07:29:00"), 935: dateutil.parser.parse("2029-04-21 10:33:00"), 936: dateutil.parser.parse("2029-04-21 13:38:00"), 937: dateutil.parser.parse("2029-04-21 16:42:00"), 938: dateutil.parser.parse("2029-04-21 19:46:00"), 939: dateutil.parser.parse("2029-04-21 22:51:00"), 940: dateutil.parser.parse("2029-04-22 01:55:00"), 941: dateutil.parser.parse("2029-04-22 05:00:00"), 942: dateutil.parser.parse("2029-04-22 08:04:00"), 943: dateutil.parser.parse("2029-04-22 11:08:00"), 944: dateutil.parser.parse("2029-04-22 14:13:00"), 945: dateutil.parser.parse("2029-04-22 17:17:00"), 946: dateutil.parser.parse("2029-04-22 20:22:00"), 947: dateutil.parser.parse("2029-04-22 23:26:00"), 948: dateutil.parser.parse("2029-04-23 02:31:00"), 949: dateutil.parser.parse("2029-04-23 05:35:00"), 950: dateutil.parser.parse("2029-04-23 08:40:00"), 951: dateutil.parser.parse("2029-04-23 11:44:00"), 952: dateutil.parser.parse("2029-04-23 14:49:00"), 953: dateutil.parser.parse("2029-04-23 17:53:00"), 954: dateutil.parser.parse("2029-04-23 20:58:00"), 955: dateutil.parser.parse("2029-04-24 00:03:00"), 956: dateutil.parser.parse("2029-04-24 03:07:00"), 957: dateutil.parser.parse("2029-04-24 06:12:00"), 958: dateutil.parser.parse("2029-04-24 09:16:00"), 959: dateutil.parser.parse("2029-04-24 12:20:00"), 960: dateutil.parser.parse("2029-04-24 15:25:00"), 961: dateutil.parser.parse("2029-04-24 18:29:00"), 962: dateutil.parser.parse("2029-04-24 21:34:00"), 963: dateutil.parser.parse("2029-04-25 00:38:00"), 964: dateutil.parser.parse("2029-04-25 03:43:00"), 965: dateutil.parser.parse("2029-04-25 06:47:00"), 966: dateutil.parser.parse("2029-04-25 09:51:00"), 967: dateutil.parser.parse("2029-04-25 12:56:00"), 968: dateutil.parser.parse("2029-04-25 16:00:00"), 969: dateutil.parser.parse("2029-04-25 19:04:00"), 970: dateutil.parser.parse("2029-04-25 22:09:00"), 971: dateutil.parser.parse("2029-04-26 01:13:00"), 972: dateutil.parser.parse("2029-04-26 04:18:00"), 973: dateutil.parser.parse("2029-04-26 07:22:00"), 974: dateutil.parser.parse("2029-04-26 10:27:00"), 975: dateutil.parser.parse("2029-04-26 13:31:00"), 976: dateutil.parser.parse("2029-04-26 16:36:00"), 977: dateutil.parser.parse("2029-04-26 19:40:00"), 978: dateutil.parser.parse("2029-04-26 22:45:00"), 979: dateutil.parser.parse("2029-04-27 01:49:00"), 980: dateutil.parser.parse("2029-04-27 04:54:00"), 981: dateutil.parser.parse("2029-04-27 07:58:00"), 982: dateutil.parser.parse("2029-04-27 11:03:00"), 983: dateutil.parser.parse("2029-04-27 14:07:00"), 984: dateutil.parser.parse("2029-04-27 17:12:00"), 985: dateutil.parser.parse("2029-04-27 20:16:00"), 986: dateutil.parser.parse("2029-04-27 23:21:00"), 987: dateutil.parser.parse("2029-04-28 02:25:00"), 988: dateutil.parser.parse("2029-04-28 05:30:00"), 989: dateutil.parser.parse("2029-04-28 08:34:00"), 990: dateutil.parser.parse("2029-04-28 11:39:00"), 991: dateutil.parser.parse("2029-04-28 14:43:00"), 992: dateutil.parser.parse("2029-04-28 17:47:00"), 993: dateutil.parser.parse("2029-04-28 20:52:00"), 994: dateutil.parser.parse("2029-04-28 23:56:00"), 995: dateutil.parser.parse("2029-04-29 03:01:00"), 996: dateutil.parser.parse("2029-04-29 06:05:00"), 997: dateutil.parser.parse("2029-04-29 09:09:00"), 998: dateutil.parser.parse("2029-04-29 12:14:00"), 999: dateutil.parser.parse("2029-04-29 15:18:00"), 1000: dateutil.parser.parse("2029-04-29 18:23:00"), 1001: dateutil.parser.parse("2029-04-29 21:27:00"), 1002: dateutil.parser.parse("2029-04-30 00:32:00"), 1003: dateutil.parser.parse("2029-04-30 03:36:00"), 1004: dateutil.parser.parse("2029-04-30 06:41:00"), 1005: dateutil.parser.parse("2029-04-30 09:45:00"), 1006: dateutil.parser.parse("2029-04-30 12:50:00"), 1007: dateutil.parser.parse("2029-04-30 15:54:00"), 1008: dateutil.parser.parse("2029-04-30 18:59:00"), 1009: dateutil.parser.parse("2029-04-30 22:03:00"), 1010: dateutil.parser.parse("2029-05-01 01:08:00"), 1011: dateutil.parser.parse("2029-05-01 04:12:00"), 1012: dateutil.parser.parse("2029-05-01 07:17:00"), 1013: dateutil.parser.parse("2029-05-01 10:21:00"), 1014: dateutil.parser.parse("2029-05-01 13:26:00"), 1015: dateutil.parser.parse("2029-05-01 16:30:00"), 1016: dateutil.parser.parse("2029-05-01 19:35:00"), 1017: dateutil.parser.parse("2029-05-01 22:39:00"), 1018: dateutil.parser.parse("2029-05-02 01:44:00"), 1019: dateutil.parser.parse("2029-05-02 04:48:00"), 1020: dateutil.parser.parse("2029-05-02 07:52:00"), 1021: dateutil.parser.parse("2029-05-02 10:57:00"), 1022: dateutil.parser.parse("2029-05-02 14:01:00"), 1023: dateutil.parser.parse("2029-05-02 17:05:00"), 1024: dateutil.parser.parse("2029-05-02 20:10:00"), 1025: dateutil.parser.parse("2029-05-02 23:14:00"), 1026: dateutil.parser.parse("2029-05-03 02:19:00"), 1027: dateutil.parser.parse("2029-05-03 05:23:00"), 1028: dateutil.parser.parse("2029-05-03 08:28:00"), 1029: dateutil.parser.parse("2029-05-03 11:32:00"), 1030: dateutil.parser.parse("2029-05-03 14:36:00"), 1031: dateutil.parser.parse("2029-05-03 17:41:00"), 1032: dateutil.parser.parse("2029-05-03 20:46:00"), 1033: dateutil.parser.parse("2029-05-03 23:50:00"), 1034: dateutil.parser.parse("2029-05-04 02:55:00"), 1035: dateutil.parser.parse("2029-05-04 05:59:00"), 1036: dateutil.parser.parse("2029-05-04 09:04:00"), 1037: dateutil.parser.parse("2029-05-04 12:08:00"), 1038: dateutil.parser.parse("2029-05-04 15:13:00"), 1039: dateutil.parser.parse("2029-05-04 18:17:00"), 1040: dateutil.parser.parse("2029-05-04 21:22:00"), 1041: dateutil.parser.parse("2029-05-05 00:26:00"), 1042: dateutil.parser.parse("2029-05-05 03:31:00"), 1043: dateutil.parser.parse("2029-05-05 06:35:00"), 1044: dateutil.parser.parse("2029-05-05 09:40:00"), 1045: dateutil.parser.parse("2029-05-05 12:44:00"), 1046: dateutil.parser.parse("2029-05-05 15:49:00"), 1047: dateutil.parser.parse("2029-05-05 18:53:00"), 1048: dateutil.parser.parse("2029-05-05 21:57:00"), 1049: dateutil.parser.parse("2029-05-06 01:02:00"), 1050: dateutil.parser.parse("2029-05-06 04:06:00"), 1051: dateutil.parser.parse("2029-05-06 07:10:00"), 1052: dateutil.parser.parse("2029-05-06 10:15:00"), 1053: dateutil.parser.parse("2029-05-06 13:19:00"), 1054: dateutil.parser.parse("2029-05-06 16:24:00"), 1055: dateutil.parser.parse("2029-05-06 19:28:00"), 1056: dateutil.parser.parse("2029-05-06 22:32:00"), 1057: dateutil.parser.parse("2029-05-07 01:37:00"), 1058: dateutil.parser.parse("2029-05-07 04:41:00"), 1059: dateutil.parser.parse("2029-05-07 07:46:00"), 1060: dateutil.parser.parse("2029-05-07 10:50:00"), 1061: dateutil.parser.parse("2029-05-07 13:55:00"), 1062: dateutil.parser.parse("2029-05-07 17:00:00"), 1063: dateutil.parser.parse("2029-05-07 20:04:00"), 1064: dateutil.parser.parse("2029-05-07 23:09:00"), 1065: dateutil.parser.parse("2029-05-08 02:13:00"), 1066: dateutil.parser.parse("2029-05-08 05:18:00"), 1067: dateutil.parser.parse("2029-05-08 08:22:00"), 1068: dateutil.parser.parse("2029-05-08 11:27:00"), 1069: dateutil.parser.parse("2029-05-08 14:31:00"), 1070: dateutil.parser.parse("2029-05-08 17:36:00"), 1071: dateutil.parser.parse("2029-05-08 20:40:00"), 1072: dateutil.parser.parse("2029-05-08 23:45:00"), 1073: dateutil.parser.parse("2029-05-09 02:49:00"), 1074: dateutil.parser.parse("2029-05-09 05:53:00"), 1075: dateutil.parser.parse("2029-05-09 08:58:00"), 1076: dateutil.parser.parse("2029-05-09 12:02:00"), 1077: dateutil.parser.parse("2029-05-09 15:07:00"), 1078: dateutil.parser.parse("2029-05-09 18:11:00"), 1079: dateutil.parser.parse("2029-05-09 21:15:00"), 1080: dateutil.parser.parse("2029-05-10 00:20:00"), 1081: dateutil.parser.parse("2029-05-10 03:24:00"), 1082: dateutil.parser.parse("2029-05-10 06:29:00"), 1083: dateutil.parser.parse("2029-05-10 09:33:00"), 1084: dateutil.parser.parse("2029-05-10 12:37:00"), 1085: dateutil.parser.parse("2029-05-10 15:42:00"), 1086: dateutil.parser.parse("2029-05-10 16:00:00"), # datagap 1087: dateutil.parser.parse("2029-05-10 22:02:00"), 1088: dateutil.parser.parse("2029-05-11 00:55:00"), 1089: dateutil.parser.parse("2029-05-11 04:00:00"), 1090: dateutil.parser.parse("2029-05-11 07:05:00"), 1091: dateutil.parser.parse("2029-05-11 10:09:00"), 1092: dateutil.parser.parse("2029-05-11 13:14:00"), 1093: dateutil.parser.parse("2029-05-11 16:18:00"), 1094: dateutil.parser.parse("2029-05-11 19:23:00"), 1095: dateutil.parser.parse("2029-05-11 22:27:00"), 1096: dateutil.parser.parse("2029-05-12 01:32:00"), 1097: dateutil.parser.parse("2029-05-12 04:36:00"), 1098: dateutil.parser.parse("2029-05-12 07:41:00"), 1099: dateutil.parser.parse("2029-05-12 10:45:00"), 1100: dateutil.parser.parse("2029-05-12 13:50:00"), 1101: dateutil.parser.parse("2029-05-12 16:54:00"), 1102: dateutil.parser.parse("2029-05-12 19:59:00"), 1103: dateutil.parser.parse("2029-05-12 23:03:00"), 1104: dateutil.parser.parse("2029-05-13 02:08:00"), 1105: dateutil.parser.parse("2029-05-13 05:12:00"), 1106: dateutil.parser.parse("2029-05-13 08:16:00"), 1107: dateutil.parser.parse("2029-05-13 11:21:00"), 1108: dateutil.parser.parse("2029-05-13 14:25:00"), 1109: dateutil.parser.parse("2029-05-13 17:30:00"), 1110: dateutil.parser.parse("2029-05-13 20:34:00"), 1111: dateutil.parser.parse("2029-05-13 23:39:00"), 1112: dateutil.parser.parse("2029-05-14 02:43:00"), 1113: dateutil.parser.parse("2029-05-14 05:48:00"), 1114: dateutil.parser.parse("2029-05-14 08:52:00"), 1115: dateutil.parser.parse("2029-05-14 11:57:00"), 1116: dateutil.parser.parse("2029-05-14 15:01:00"), 1117: dateutil.parser.parse("2029-05-14 18:06:00"), 1118: dateutil.parser.parse("2029-05-14 21:10:00"), 1119: dateutil.parser.parse("2029-05-15 00:15:00"), 1120: dateutil.parser.parse("2029-05-15 03:19:00"), 1121: dateutil.parser.parse("2029-05-15 06:24:00"), 1122: dateutil.parser.parse("2029-05-15 09:29:00"), 1123: dateutil.parser.parse("2029-05-15 12:33:00"), 1124: dateutil.parser.parse("2029-05-15 15:38:00"), 1125: dateutil.parser.parse("2029-05-15 18:42:00"), 1126: dateutil.parser.parse("2029-05-15 21:47:00"), 1127: dateutil.parser.parse("2029-05-16 00:51:00"), 1128: dateutil.parser.parse("2029-05-16 03:56:00"), 1129: dateutil.parser.parse("2029-05-16 07:00:00"), 1130: dateutil.parser.parse("2029-05-16 10:04:00"), 1131: dateutil.parser.parse("2029-05-16 13:09:00"), 1132: dateutil.parser.parse("2029-05-16 16:13:00"), 1133: dateutil.parser.parse("2029-05-16 19:18:00"), 1134: dateutil.parser.parse("2029-05-16 22:22:00"), 1135: dateutil.parser.parse("2029-05-17 01:26:00"), 1136: dateutil.parser.parse("2029-05-17 04:31:00"), 1137: dateutil.parser.parse("2029-05-17 07:35:00"), 1138: dateutil.parser.parse("2029-05-17 10:40:00"), 1139: dateutil.parser.parse("2029-05-17 13:44:00"), 1140: dateutil.parser.parse("2029-05-17 16:49:00"), 1141: dateutil.parser.parse("2029-05-17 19:53:00"), 1142: dateutil.parser.parse("2029-05-17 22:58:00"), 1143: dateutil.parser.parse("2029-05-18 02:02:00"), 1144: dateutil.parser.parse("2029-05-18 05:07:00"), 1145: dateutil.parser.parse("2029-05-18 08:11:00"), 1146: dateutil.parser.parse("2029-05-18 11:16:00"), 1147: dateutil.parser.parse("2029-05-18 14:20:00"), 1148: dateutil.parser.parse("2029-05-18 17:25:00"), 1149: dateutil.parser.parse("2029-05-18 20:30:00"), 1150: dateutil.parser.parse("2029-05-18 23:34:00"), 1151: dateutil.parser.parse("2029-05-19 02:39:00"), 1152: dateutil.parser.parse("2029-05-19 05:43:00"), 1153: dateutil.parser.parse("2029-05-19 08:48:00"), 1154: dateutil.parser.parse("2029-05-19 11:52:00"), 1155: dateutil.parser.parse("2029-05-19 14:57:00"), 1156: dateutil.parser.parse("2029-05-19 18:01:00"), 1157: dateutil.parser.parse("2029-05-19 21:06:00"), 1158: dateutil.parser.parse("2029-05-20 00:10:00"), 1159: dateutil.parser.parse("2029-05-20 03:15:00"), 1160: dateutil.parser.parse("2029-05-20 06:19:00"), 1161: dateutil.parser.parse("2029-05-20 09:23:00"), 1162: dateutil.parser.parse("2029-05-20 12:28:00"), 1163: dateutil.parser.parse("2029-05-20 15:32:00"), 1164: dateutil.parser.parse("2029-05-20 18:37:00"), 1165: dateutil.parser.parse("2029-05-20 21:41:00"), 1166: dateutil.parser.parse("2029-05-21 00:45:00"), 1167: dateutil.parser.parse("2029-05-21 03:50:00"), 1168: dateutil.parser.parse("2029-05-21 06:54:00"), 1169: dateutil.parser.parse("2029-05-21 09:59:00"), 1170: dateutil.parser.parse("2029-05-21 13:03:00"), 1171: dateutil.parser.parse("2029-05-21 16:08:00"), 1172: dateutil.parser.parse("2029-05-21 19:12:00"), 1173: dateutil.parser.parse("2029-05-21 22:17:00"), 1174: dateutil.parser.parse("2029-05-22 01:22:00"), 1175: dateutil.parser.parse("2029-05-22 04:26:00"), 1176: dateutil.parser.parse("2029-05-22 07:31:00"), 1177: dateutil.parser.parse("2029-05-22 10:35:00"), 1178: dateutil.parser.parse("2029-05-22 13:40:00"), 1179: dateutil.parser.parse("2029-05-22 16:44:00"), 1180: dateutil.parser.parse("2029-05-22 19:49:00"), 1181: dateutil.parser.parse("2029-05-22 22:53:00"), 1182: dateutil.parser.parse("2029-05-23 01:58:00"), 1183: dateutil.parser.parse("2029-05-23 05:02:00"), 1184: dateutil.parser.parse("2029-05-23 08:07:00"), 1185: dateutil.parser.parse("2029-05-23 11:11:00"), 1186: dateutil.parser.parse("2029-05-23 14:16:00"), 1187: dateutil.parser.parse("2029-05-23 17:20:00"), 1188: dateutil.parser.parse("2029-05-23 20:25:00"), 1189: dateutil.parser.parse("2029-05-23 23:29:00"), 1190: dateutil.parser.parse("2029-05-24 02:33:00"), 1191: dateutil.parser.parse("2029-05-24 05:38:00"), 1192: dateutil.parser.parse("2029-05-24 08:42:00"), 1193: dateutil.parser.parse("2029-05-24 11:47:00"), 1194: dateutil.parser.parse("2029-05-24 14:51:00"), 1195: dateutil.parser.parse("2029-05-24 17:56:00"), 1196: dateutil.parser.parse("2029-05-24 21:00:00"), 1197: dateutil.parser.parse("2029-05-25 00:05:00"), 1198: dateutil.parser.parse("2029-05-25 03:09:00"), 1199: dateutil.parser.parse("2029-05-25 06:14:00"), 1200: dateutil.parser.parse("2029-05-25 09:18:00"), 1201: dateutil.parser.parse("2029-05-25 12:23:00"), 1202: dateutil.parser.parse("2029-05-25 15:27:00"), 1203: dateutil.parser.parse("2029-05-25 18:32:00"), 1204: dateutil.parser.parse("2029-05-25 21:14:00"), 1205: dateutil.parser.parse("2029-05-25 23:52:00"), 1206: dateutil.parser.parse("2029-05-26 02:31:00"), 1207: dateutil.parser.parse("2029-05-26 05:10:00"), 1208: dateutil.parser.parse("2029-05-26 07:48:00"), 1209: dateutil.parser.parse("2029-05-26 10:27:00"), 1210: dateutil.parser.parse("2029-05-26 13:06:00"), 1211: dateutil.parser.parse("2029-05-26 15:44:00"), 1212: dateutil.parser.parse("2029-05-26 18:23:00"), 1213: dateutil.parser.parse("2029-05-26 21:02:00"), 1214: dateutil.parser.parse("2029-05-26 23:40:00"), 1215: dateutil.parser.parse("2029-05-27 02:19:00"), 1216: dateutil.parser.parse("2029-05-27 04:58:00"), 1217: dateutil.parser.parse("2029-05-27 07:36:00"), 1218: dateutil.parser.parse("2029-05-27 10:15:00"), 1219: dateutil.parser.parse("2029-05-27 12:53:00"), 1220: dateutil.parser.parse("2029-05-27 15:32:00"), 1221: dateutil.parser.parse("2029-05-27 18:10:00"), 1222: dateutil.parser.parse("2029-05-27 20:49:00"), 1223: dateutil.parser.parse("2029-05-27 23:28:00"), 1224: dateutil.parser.parse("2029-05-28 02:06:00"), 1225: dateutil.parser.parse("2029-05-28 04:45:00"), 1226: dateutil.parser.parse("2029-05-28 07:23:00"), 1227: dateutil.parser.parse("2029-05-28 10:02:00"), 1228: dateutil.parser.parse("2029-05-28 12:41:00"), 1229: dateutil.parser.parse("2029-05-28 15:19:00"), 1230: dateutil.parser.parse("2029-05-28 17:58:00"), 1231: dateutil.parser.parse("2029-05-28 20:37:00"), 1232: dateutil.parser.parse("2029-05-28 23:15:00"), 1233: dateutil.parser.parse("2029-05-29 01:54:00"), 1234: dateutil.parser.parse("2029-05-29 04:33:00"), 1235: dateutil.parser.parse("2029-05-29 07:11:00"), 1236: dateutil.parser.parse("2029-05-29 09:50:00"), 1237: dateutil.parser.parse("2029-05-29 12:29:00"), 1238: dateutil.parser.parse("2029-05-29 15:07:00"), 1239: dateutil.parser.parse("2029-05-29 17:46:00"), 1240: dateutil.parser.parse("2029-05-29 20:25:00"), 1241: dateutil.parser.parse("2029-05-29 23:04:00"), 1242: dateutil.parser.parse("2029-05-30 01:42:00"), 1243: dateutil.parser.parse("2029-05-30 04:21:00"), 1244: dateutil.parser.parse("2029-05-30 06:59:00"), 1245: dateutil.parser.parse("2029-05-30 09:38:00"), 1246: dateutil.parser.parse("2029-05-30 12:17:00"), 1247: dateutil.parser.parse("2029-05-30 14:55:00"), 1248: dateutil.parser.parse("2029-05-30 17:34:00"), 1249: dateutil.parser.parse("2029-05-30 20:13:00"), 1250: dateutil.parser.parse("2029-05-30 22:51:00"), 1251: dateutil.parser.parse("2029-05-31 01:30:00"), 1252: dateutil.parser.parse("2029-05-31 04:08:00"), 1253: dateutil.parser.parse("2029-05-31 06:47:00"), 1254: dateutil.parser.parse("2029-05-31 09:25:00"), 1255: dateutil.parser.parse("2029-05-31 12:04:00"), 1256: dateutil.parser.parse("2029-05-31 14:43:00"), 1257: dateutil.parser.parse("2029-05-31 17:21:00"), 1258: dateutil.parser.parse("2029-05-31 20:00:00"), 1259: dateutil.parser.parse("2029-05-31 22:38:00"), 1260: dateutil.parser.parse("2029-06-01 01:17:00"), 1261: dateutil.parser.parse("2029-06-01 03:56:00"), 1262: dateutil.parser.parse("2029-06-01 06:34:00"), 1263: dateutil.parser.parse("2029-06-01 09:13:00"), 1264: dateutil.parser.parse("2029-06-01 11:52:00"), 1265: dateutil.parser.parse("2029-06-01 14:30:00"), 1266: dateutil.parser.parse("2029-06-01 17:09:00"), 1267: dateutil.parser.parse("2029-06-01 19:48:00"), 1268: dateutil.parser.parse("2029-06-01 22:26:00"), 1269: dateutil.parser.parse("2029-06-02 01:05:00"), 1270: dateutil.parser.parse("2029-06-02 03:44:00"), 1271: dateutil.parser.parse("2029-06-02 06:23:00"), 1272: dateutil.parser.parse("2029-06-02 09:01:00"), 1273: dateutil.parser.parse("2029-06-02 11:40:00"), 1274: dateutil.parser.parse("2029-06-02 14:19:00"), 1275: dateutil.parser.parse("2029-06-02 16:57:00"), 1276: dateutil.parser.parse("2029-06-02 19:36:00"), 1277: dateutil.parser.parse("2029-06-02 22:14:00"), 1278: dateutil.parser.parse("2029-06-03 00:53:00"), 1279: dateutil.parser.parse("2029-06-03 03:32:00"), 1280: dateutil.parser.parse("2029-06-03 06:10:00"), 1281: dateutil.parser.parse("2029-06-03 08:49:00"), 1282: dateutil.parser.parse("2029-06-03 11:28:00"), 1283: dateutil.parser.parse("2029-06-03 14:06:00"), 1284: dateutil.parser.parse("2029-06-03 16:45:00"), 1285: dateutil.parser.parse("2029-06-03 19:23:00"), 1286: dateutil.parser.parse("2029-06-03 22:02:00"), 1287: dateutil.parser.parse("2029-06-04 00:40:00"), 1288: dateutil.parser.parse("2029-06-04 03:19:00"), 1289: dateutil.parser.parse("2029-06-04 05:58:00"), 1290: dateutil.parser.parse("2029-06-04 08:36:00"), 1291: dateutil.parser.parse("2029-06-04 11:15:00"), 1292: dateutil.parser.parse("2029-06-04 13:53:00"), 1293: dateutil.parser.parse("2029-06-04 16:32:00"), 1294: dateutil.parser.parse("2029-06-04 19:11:00"), 1295: dateutil.parser.parse("2029-06-04 21:49:00"), 1296: dateutil.parser.parse("2029-06-05 00:28:00"), 1297: dateutil.parser.parse("2029-06-05 03:07:00"), 1298: dateutil.parser.parse("2029-06-05 05:45:00"), 1299: dateutil.parser.parse("2029-06-05 08:24:00"), 1300: dateutil.parser.parse("2029-06-05 11:03:00"), 1301: dateutil.parser.parse("2029-06-05 13:42:00"), 1302: dateutil.parser.parse("2029-06-05 16:20:00"), 1303: dateutil.parser.parse("2029-06-05 18:59:00"), 1304: dateutil.parser.parse("2029-06-05 21:38:00"), 1305: dateutil.parser.parse("2029-06-06 00:16:00"), 1306: dateutil.parser.parse("2029-06-06 02:55:00"), 1307: dateutil.parser.parse("2029-06-06 05:34:00"), 1308: dateutil.parser.parse("2029-06-06 08:12:00"), 1309: dateutil.parser.parse("2029-06-06 10:51:00"), 1310: dateutil.parser.parse("2029-06-06 13:29:00"), 1311: dateutil.parser.parse("2029-06-06 16:08:00"), 1312: dateutil.parser.parse("2029-06-06 18:47:00"), 1313: dateutil.parser.parse("2029-06-06 21:25:00"), 1314: dateutil.parser.parse("2029-06-07 00:04:00"), 1315: dateutil.parser.parse("2029-06-07 02:42:00"), 1316: dateutil.parser.parse("2029-06-07 05:21:00"), 1317: dateutil.parser.parse("2029-06-07 08:00:00"), 1318: dateutil.parser.parse("2029-06-07 10:38:00"), 1319: dateutil.parser.parse("2029-06-07 13:17:00"), 1320: dateutil.parser.parse("2029-06-07 15:55:00"), 1321: dateutil.parser.parse("2029-06-07 18:34:00"), 1322: dateutil.parser.parse("2029-06-07 21:13:00"), 1323: dateutil.parser.parse("2029-06-07 23:51:00"), 1324: dateutil.parser.parse("2029-06-08 02:30:00"), 1325: dateutil.parser.parse("2029-06-08 05:08:00"), 1326: dateutil.parser.parse("2029-06-08 07:47:00"), 1327: dateutil.parser.parse("2029-06-08 10:26:00"), 1328: dateutil.parser.parse("2029-06-08 13:04:00"), 1329: dateutil.parser.parse("2029-06-08 15:43:00"), 1330: dateutil.parser.parse("2029-06-08 18:22:00"), 1331: dateutil.parser.parse("2029-06-08 21:00:00"), 1332: dateutil.parser.parse("2029-06-08 23:39:00"), 1333: dateutil.parser.parse("2029-06-09 02:18:00"), 1334: dateutil.parser.parse("2029-06-09 04:57:00"), 1335: dateutil.parser.parse("2029-06-09 07:35:00"), 1336: dateutil.parser.parse("2029-06-09 10:14:00"), 1337: dateutil.parser.parse("2029-06-09 12:53:00"), 1338: dateutil.parser.parse("2029-06-09 15:31:00"), 1339: dateutil.parser.parse("2029-06-09 18:10:00"), 1340: dateutil.parser.parse("2029-06-09 20:49:00"), 1341: dateutil.parser.parse("2029-06-09 23:27:00"), 1342: dateutil.parser.parse("2029-06-10 02:06:00"), 1343: dateutil.parser.parse("2029-06-10 04:44:00"), 1344: dateutil.parser.parse("2029-06-10 07:23:00"), 1345: dateutil.parser.parse("2029-06-10 10:02:00"), 1346: dateutil.parser.parse("2029-06-10 12:40:00"), 1347: dateutil.parser.parse("2029-06-10 15:19:00"), 1348: dateutil.parser.parse("2029-06-10 17:57:00"), 1349: dateutil.parser.parse("2029-06-10 20:36:00"), 1350: dateutil.parser.parse("2029-06-10 23:15:00"), 1351: dateutil.parser.parse("2029-06-11 01:53:00"), 1352: dateutil.parser.parse("2029-06-11 04:32:00"), 1353: dateutil.parser.parse("2029-06-11 07:10:00"), 1354: dateutil.parser.parse("2029-06-11 09:49:00"), 1355: dateutil.parser.parse("2029-06-11 12:28:00"), 1356: dateutil.parser.parse("2029-06-11 15:06:00"), 1357: dateutil.parser.parse("2029-06-11 17:45:00"), 1358: dateutil.parser.parse("2029-06-11 20:23:00"), 1359: dateutil.parser.parse("2029-06-11 23:02:00"), 1360: dateutil.parser.parse("2029-06-12 01:41:00"), 1361: dateutil.parser.parse("2029-06-12 04:19:00"), 1362: dateutil.parser.parse("2029-06-12 06:58:00"), 1363: dateutil.parser.parse("2029-06-12 09:37:00"), 1364: dateutil.parser.parse("2029-06-12 12:16:00"), 1365: dateutil.parser.parse("2029-06-12 14:54:00"), 1366: dateutil.parser.parse("2029-06-12 17:33:00"), 1367: dateutil.parser.parse("2029-06-12 20:12:00"), 1368: dateutil.parser.parse("2029-06-12 22:50:00"), 1369: dateutil.parser.parse("2029-06-13 01:29:00"), 1370: dateutil.parser.parse("2029-06-13 04:08:00"), 1371: dateutil.parser.parse("2029-06-13 06:46:00"), 1372: dateutil.parser.parse("2029-06-13 09:25:00"), 1373: dateutil.parser.parse("2029-06-13 12:04:00"), 1374: dateutil.parser.parse("2029-06-13 14:42:00"), 1375: dateutil.parser.parse("2029-06-13 17:21:00"), 1376: dateutil.parser.parse("2029-06-13 19:59:00"), 1377: dateutil.parser.parse("2029-06-13 22:38:00"), 1378: dateutil.parser.parse("2029-06-14 01:17:00"), 1379: dateutil.parser.parse("2029-06-14 03:55:00"), 1380: dateutil.parser.parse("2029-06-14 06:34:00"), 1381: dateutil.parser.parse("2029-06-14 09:12:00"), 1382: dateutil.parser.parse("2029-06-14 11:51:00"), 1383: dateutil.parser.parse("2029-06-14 14:30:00"), 1384: dateutil.parser.parse("2029-06-14 17:08:00"), 1385: dateutil.parser.parse("2029-06-14 19:47:00"), 1386: dateutil.parser.parse("2029-06-14 22:25:00"), 1387: dateutil.parser.parse("2029-06-15 01:04:00"), 1388: dateutil.parser.parse("2029-06-15 03:43:00"), 1389: dateutil.parser.parse("2029-06-15 06:21:00"), 1390: dateutil.parser.parse("2029-06-15 09:00:00"), 1391: dateutil.parser.parse("2029-06-15 11:39:00"), 1392: dateutil.parser.parse("2029-06-15 14:17:00"), 1393: dateutil.parser.parse("2029-06-15 16:56:00"), 1394: dateutil.parser.parse("2029-06-15 19:34:00"), 1395: dateutil.parser.parse("2029-06-15 22:13:00"), 1396: dateutil.parser.parse("2029-06-16 00:52:00"), 1397: dateutil.parser.parse("2029-06-16 03:31:00"), 1398: dateutil.parser.parse("2029-06-16 06:09:00"), 1399: dateutil.parser.parse("2029-06-16 08:48:00"), 1400: dateutil.parser.parse("2029-06-16 11:27:00"), 1401: dateutil.parser.parse("2029-06-16 14:05:00"), 1402: dateutil.parser.parse("2029-06-16 16:44:00"), 1403: dateutil.parser.parse("2029-06-16 19:23:00"), 1404: dateutil.parser.parse("2029-06-16 22:01:00"), 1405: dateutil.parser.parse("2029-06-17 00:40:00"), 1406: dateutil.parser.parse("2029-06-17 03:19:00"), 1407: dateutil.parser.parse("2029-06-17 05:57:00"), 1408: dateutil.parser.parse("2029-06-17 08:36:00"), 1409: dateutil.parser.parse("2029-06-17 11:14:00"), 1410: dateutil.parser.parse("2029-06-17 13:53:00"), 1411: dateutil.parser.parse("2029-06-17 16:32:00"), 1412: dateutil.parser.parse("2029-06-17 19:10:00"), 1413: dateutil.parser.parse("2029-06-17 21:49:00"), 1414: dateutil.parser.parse("2029-06-18 00:27:00"), 1415: dateutil.parser.parse("2029-06-18 03:06:00"), 1416: dateutil.parser.parse("2029-06-18 05:45:00"), 1417: dateutil.parser.parse("2029-06-18 08:23:00"), 1418: dateutil.parser.parse("2029-06-18 11:02:00"), 1419: dateutil.parser.parse("2029-06-18 13:40:00"), 1420: dateutil.parser.parse("2029-06-18 16:19:00"), 1421: dateutil.parser.parse("2029-06-18 18:58:00"), 1422: dateutil.parser.parse("2029-06-18 21:36:00"), 1423: dateutil.parser.parse("2029-06-19 00:15:00"), 1424: dateutil.parser.parse("2029-06-19 02:54:00"), 1425: dateutil.parser.parse("2029-06-19 05:32:00"), 1426: dateutil.parser.parse("2029-06-19 08:11:00"), 1427: dateutil.parser.parse("2029-06-19 10:50:00"), 1428: dateutil.parser.parse("2029-06-19 13:28:00"), 1429: dateutil.parser.parse("2029-06-19 16:07:00"), 1430: dateutil.parser.parse("2029-06-19 18:46:00"), 1431: dateutil.parser.parse("2029-06-19 21:24:00"), 1432: dateutil.parser.parse("2029-06-20 00:03:00"), 1433: dateutil.parser.parse("2029-06-20 02:42:00"), 1434: dateutil.parser.parse("2029-06-20 05:20:00"), 1435: dateutil.parser.parse("2029-06-20 07:59:00"), 1436: dateutil.parser.parse("2029-06-20 10:38:00"), 1437: dateutil.parser.parse("2029-06-20 13:16:00"), 1438: dateutil.parser.parse("2029-06-20 15:55:00"), 1439: dateutil.parser.parse("2029-06-20 18:34:00"), 1440: dateutil.parser.parse("2029-06-20 21:12:00"), 1441: dateutil.parser.parse("2029-06-20 23:51:00"), 1442: dateutil.parser.parse("2029-06-21 02:29:00"), 1443: dateutil.parser.parse("2029-06-21 05:08:00"), 1444: dateutil.parser.parse("2029-06-21 07:47:00"), 1445: dateutil.parser.parse("2029-06-21 10:25:00"), 1446: dateutil.parser.parse("2029-06-21 13:04:00"), 1447: dateutil.parser.parse("2029-06-21 15:42:00"), 1448: dateutil.parser.parse("2029-06-21 18:21:00"), 1449: dateutil.parser.parse("2029-06-21 21:00:00"), 1450: dateutil.parser.parse("2029-06-21 23:38:00"), 1451: dateutil.parser.parse("2029-06-22 02:17:00"), 1452: dateutil.parser.parse("2029-06-22 04:55:00"), 1453: dateutil.parser.parse("2029-06-22 07:34:00"), 1454: dateutil.parser.parse("2029-06-22 10:13:00"), 1455: dateutil.parser.parse("2029-06-22 12:51:00"), 1456: dateutil.parser.parse("2029-06-22 15:30:00"), 1457: dateutil.parser.parse("2029-06-22 18:09:00"), 1458: dateutil.parser.parse("2029-06-22 20:47:00"), 1459: dateutil.parser.parse("2029-06-22 23:26:00"), 1460: dateutil.parser.parse("2029-06-23 02:05:00"), 1461: dateutil.parser.parse("2029-06-23 04:43:00"), 1462: dateutil.parser.parse("2029-06-23 07:22:00"), 1463: dateutil.parser.parse("2029-06-23 10:01:00"), 1464: dateutil.parser.parse("2029-06-23 12:39:00"), 1465: dateutil.parser.parse("2029-06-23 15:18:00"), 1466: dateutil.parser.parse("2029-06-23 17:57:00"), 1467: dateutil.parser.parse("2029-06-23 20:35:00"), 1468: dateutil.parser.parse("2029-06-23 23:14:00"), 1469: dateutil.parser.parse("2029-06-24 01:53:00"), 1470: dateutil.parser.parse("2029-06-24 04:31:00"), 1471: dateutil.parser.parse("2029-06-24 07:10:00"), 1472: dateutil.parser.parse("2029-06-24 09:49:00"), 1473: dateutil.parser.parse("2029-06-24 12:27:00"), 1474: dateutil.parser.parse("2029-06-24 15:06:00"), 1475: dateutil.parser.parse("2029-06-24 17:44:00"), 1476: dateutil.parser.parse("2029-06-24 18:00:00"), # datagap 1477: dateutil.parser.parse("2029-06-24 23:02:00"), 1478: dateutil.parser.parse("2029-06-25 01:40:00"), 1479: dateutil.parser.parse("2029-06-25 04:19:00"), 1480: dateutil.parser.parse("2029-06-25 06:58:00"), 1481: dateutil.parser.parse("2029-06-25 09:36:00"), 1482: dateutil.parser.parse("2029-06-25 12:15:00"), 1483: dateutil.parser.parse("2029-06-25 14:54:00"), 1484: dateutil.parser.parse("2029-06-25 17:32:00"), 1485: dateutil.parser.parse("2029-06-25 20:11:00"), 1486: dateutil.parser.parse("2029-06-25 22:50:00"), 1487: dateutil.parser.parse("2029-06-26 01:29:00"), 1488: dateutil.parser.parse("2029-06-26 04:07:00"), 1489: dateutil.parser.parse("2029-06-26 06:46:00"), 1490: dateutil.parser.parse("2029-06-26 09:25:00"), 1491: dateutil.parser.parse("2029-06-26 12:03:00"), 1492: dateutil.parser.parse("2029-06-26 14:42:00"), 1493: dateutil.parser.parse("2029-06-26 17:21:00"), 1494: dateutil.parser.parse("2029-06-26 20:00:00"), 1495: dateutil.parser.parse("2029-06-26 22:39:00"), 1496: dateutil.parser.parse("2029-06-27 01:17:00"), 1497: dateutil.parser.parse("2029-06-27 03:56:00"), 1498: dateutil.parser.parse("2029-06-27 06:35:00"), 1499: dateutil.parser.parse("2029-06-27 09:14:00"), 1500: dateutil.parser.parse("2029-06-27 11:52:00"), 1501: dateutil.parser.parse("2029-06-27 14:31:00"), 1502: dateutil.parser.parse("2029-06-27 17:10:00"), 1503: dateutil.parser.parse("2029-06-27 19:49:00"), 1504: dateutil.parser.parse("2029-06-27 22:27:00"), 1505: dateutil.parser.parse("2029-06-28 01:06:00"), 1506: dateutil.parser.parse("2029-06-28 03:45:00"), 1507: dateutil.parser.parse("2029-06-28 06:23:00"), 1508: dateutil.parser.parse("2029-06-28 09:02:00"), 1509: dateutil.parser.parse("2029-06-28 11:41:00"), 1510: dateutil.parser.parse("2029-06-28 14:19:00"), 1511: dateutil.parser.parse("2029-06-28 16:58:00"), 1512: dateutil.parser.parse("2029-06-28 19:37:00"), 1513: dateutil.parser.parse("2029-06-28 22:15:00"), 1514: dateutil.parser.parse("2029-06-29 00:54:00"), 1515: dateutil.parser.parse("2029-06-29 03:33:00"), 1516: dateutil.parser.parse("2029-06-29 06:11:00"), 1517: dateutil.parser.parse("2029-06-29 08:50:00"), 1518: dateutil.parser.parse("2029-06-29 11:29:00"), 1519: dateutil.parser.parse("2029-06-29 14:07:00"), 1520: dateutil.parser.parse("2029-06-29 16:46:00"), 1521: dateutil.parser.parse("2029-06-29 19:25:00"), 1522: dateutil.parser.parse("2029-06-29 22:04:00"), 1523: dateutil.parser.parse("2029-06-30 00:42:00"), 1524: dateutil.parser.parse("2029-06-30 03:21:00"), 1525: dateutil.parser.parse("2029-06-30 06:00:00"), 1526: dateutil.parser.parse("2029-06-30 08:39:00"), 1527: dateutil.parser.parse("2029-06-30 11:17:00"), 1528: dateutil.parser.parse("2029-06-30 13:56:00"), 1529: dateutil.parser.parse("2029-06-30 16:35:00"), 1530: dateutil.parser.parse("2029-06-30 19:14:00"), 1531: dateutil.parser.parse("2029-06-30 21:53:00"), 1532: dateutil.parser.parse("2029-07-01 00:31:00"), 1533: dateutil.parser.parse("2029-07-01 03:10:00"), 1534: dateutil.parser.parse("2029-07-01 05:49:00"), 1535: dateutil.parser.parse("2029-07-01 08:27:00"), 1536: dateutil.parser.parse("2029-07-01 11:06:00"), 1537: dateutil.parser.parse("2029-07-01 13:45:00"), 1538: dateutil.parser.parse("2029-07-01 16:24:00"), 1539: dateutil.parser.parse("2029-07-01 19:02:00"), 1540: dateutil.parser.parse("2029-07-01 21:41:00"), 1541: dateutil.parser.parse("2029-07-02 00:20:00"), 1542: dateutil.parser.parse("2029-07-02 02:58:00"), 1543: dateutil.parser.parse("2029-07-02 05:37:00"), 1544: dateutil.parser.parse("2029-07-02 08:16:00"), 1545: dateutil.parser.parse("2029-07-02 10:54:00"), 1546: dateutil.parser.parse("2029-07-02 13:33:00"), 1547: dateutil.parser.parse("2029-07-02 16:12:00"), 1548: dateutil.parser.parse("2029-07-02 18:50:00"), 1549: dateutil.parser.parse("2029-07-02 21:29:00"), 1550: dateutil.parser.parse("2029-07-03 00:08:00"), 1551: dateutil.parser.parse("2029-07-03 02:46:00"), 1552: dateutil.parser.parse("2029-07-03 05:25:00"), 1553: dateutil.parser.parse("2029-07-03 08:04:00"), 1554: dateutil.parser.parse("2029-07-03 10:43:00"), 1555: dateutil.parser.parse("2029-07-03 13:21:00"), 1556: dateutil.parser.parse("2029-07-03 16:00:00"), 1557: dateutil.parser.parse("2029-07-03 18:39:00"), 1558: dateutil.parser.parse("2029-07-03 21:18:00"), 1559: dateutil.parser.parse("2029-07-03 23:56:00"), 1560: dateutil.parser.parse("2029-07-04 02:35:00"), 1561: dateutil.parser.parse("2029-07-04 05:14:00"), 1562: dateutil.parser.parse("2029-07-04 07:53:00"), 1563: dateutil.parser.parse("2029-07-04 10:31:00"), 1564: dateutil.parser.parse("2029-07-04 13:10:00"), 1565: dateutil.parser.parse("2029-07-04 15:49:00"), 1566: dateutil.parser.parse("2029-07-04 18:28:00"), 1567: dateutil.parser.parse("2029-07-04 21:06:00"), 1568: dateutil.parser.parse("2029-07-04 23:45:00"), 1569: dateutil.parser.parse("2029-07-05 02:24:00"), 1570: dateutil.parser.parse("2029-07-05 05:03:00"), 1571: dateutil.parser.parse("2029-07-05 07:41:00"), 1572: dateutil.parser.parse("2029-07-05 10:20:00"), 1573: dateutil.parser.parse("2029-07-05 12:59:00"), 1574: dateutil.parser.parse("2029-07-05 15:37:00"), 1575: dateutil.parser.parse("2029-07-05 18:16:00"), 1576: dateutil.parser.parse("2029-07-05 20:55:00"), 1577: dateutil.parser.parse("2029-07-05 23:33:00"), 1578: dateutil.parser.parse("2029-07-06 02:12:00"), 1579: dateutil.parser.parse("2029-07-06 04:51:00"), 1580: dateutil.parser.parse("2029-07-06 07:29:00"), 1581: dateutil.parser.parse("2029-07-06 10:08:00"), 1582: dateutil.parser.parse("2029-07-06 12:47:00"), 1583: dateutil.parser.parse("2029-07-06 15:25:00"), 1584: dateutil.parser.parse("2029-07-06 18:04:00"), 1585: dateutil.parser.parse("2029-07-06 20:43:00"), 1586: dateutil.parser.parse("2029-07-06 23:21:00"), 1587: dateutil.parser.parse("2029-07-07 02:00:00"), 1588: dateutil.parser.parse("2029-07-07 04:39:00"), 1589: dateutil.parser.parse("2029-07-07 07:18:00"), 1590: dateutil.parser.parse("2029-07-07 09:56:00"), 1591: dateutil.parser.parse("2029-07-07 12:35:00"), 1592: dateutil.parser.parse("2029-07-07 15:14:00"), 1593: dateutil.parser.parse("2029-07-07 17:53:00"), 1594: dateutil.parser.parse("2029-07-07 20:32:00"), 1595: dateutil.parser.parse("2029-07-07 23:10:00"), 1596: dateutil.parser.parse("2029-07-08 01:49:00"), 1597: dateutil.parser.parse("2029-07-08 04:28:00"), 1598: dateutil.parser.parse("2029-07-08 07:07:00"), 1599: dateutil.parser.parse("2029-07-08 09:45:00"), 1600: dateutil.parser.parse("2029-07-08 12:24:00"), 1601: dateutil.parser.parse("2029-07-08 15:03:00"), 1602: dateutil.parser.parse("2029-07-08 17:42:00"), 1603: dateutil.parser.parse("2029-07-08 20:20:00"), 1604: dateutil.parser.parse("2029-07-08 22:59:00"), 1605: dateutil.parser.parse("2029-07-09 01:38:00"), 1606: dateutil.parser.parse("2029-07-09 04:16:00"), 1607: dateutil.parser.parse("2029-07-09 06:55:00"), 1608: dateutil.parser.parse("2029-07-09 09:34:00"), 1609: dateutil.parser.parse("2029-07-09 12:12:00"), 1610: dateutil.parser.parse("2029-07-09 14:51:00"), 1611: dateutil.parser.parse("2029-07-09 17:30:00"), 1612: dateutil.parser.parse("2029-07-09 20:08:00"), 1613: dateutil.parser.parse("2029-07-09 22:47:00"), 1614: dateutil.parser.parse("2029-07-10 01:26:00"), 1615: dateutil.parser.parse("2029-07-10 04:04:00"), 1616: dateutil.parser.parse("2029-07-10 06:43:00"), 1617: dateutil.parser.parse("2029-07-10 09:22:00"), 1618: dateutil.parser.parse("2029-07-10 12:00:00"), 1619: dateutil.parser.parse("2029-07-10 14:39:00"), 1620: dateutil.parser.parse("2029-07-10 17:18:00"), 1621: dateutil.parser.parse("2029-07-10 19:57:00"), 1622: dateutil.parser.parse("2029-07-10 22:35:00"), 1623: dateutil.parser.parse("2029-07-11 01:14:00"), 1624: dateutil.parser.parse("2029-07-11 03:53:00"), 1625: dateutil.parser.parse("2029-07-11 06:32:00"), 1626: dateutil.parser.parse("2029-07-11 09:10:00"), 1627: dateutil.parser.parse("2029-07-11 11:49:00"), 1628: dateutil.parser.parse("2029-07-11 14:28:00"), 1629: dateutil.parser.parse("2029-07-11 17:07:00"), 1630: dateutil.parser.parse("2029-07-11 19:46:00"), 1631: dateutil.parser.parse("2029-07-11 22:24:00"), 1632: dateutil.parser.parse("2029-07-12 01:03:00"), 1633: dateutil.parser.parse("2029-07-12 03:42:00"), 1634: dateutil.parser.parse("2029-07-12 06:20:00"), 1635: dateutil.parser.parse("2029-07-12 08:59:00"), 1636: dateutil.parser.parse("2029-07-12 11:38:00"), 1637: dateutil.parser.parse("2029-07-12 14:17:00"), 1638: dateutil.parser.parse("2029-07-12 16:55:00"), 1639: dateutil.parser.parse("2029-07-12 19:34:00"), 1640: dateutil.parser.parse("2029-07-12 22:13:00"), 1641: dateutil.parser.parse("2029-07-13 00:51:00"), 1642: dateutil.parser.parse("2029-07-13 03:30:00"), 1643: dateutil.parser.parse("2029-07-13 06:09:00"), 1644: dateutil.parser.parse("2029-07-13 08:47:00"), 1645: dateutil.parser.parse("2029-07-13 11:26:00"), 1646: dateutil.parser.parse("2029-07-13 14:05:00"), 1647: dateutil.parser.parse("2029-07-13 16:43:00"), 1648: dateutil.parser.parse("2029-07-13 19:22:00"), 1649: dateutil.parser.parse("2029-07-13 22:01:00"), 1650: dateutil.parser.parse("2029-07-14 00:39:00"), 1651: dateutil.parser.parse("2029-07-14 03:18:00"), 1652: dateutil.parser.parse("2029-07-14 05:57:00"), 1653: dateutil.parser.parse("2029-07-14 08:36:00"), 1654: dateutil.parser.parse("2029-07-14 11:14:00"), 1655: dateutil.parser.parse("2029-07-14 13:53:00"), 1656: dateutil.parser.parse("2029-07-14 16:32:00"), 1657: dateutil.parser.parse("2029-07-14 19:11:00"), 1658: dateutil.parser.parse("2029-07-14 21:49:00"), 1659: dateutil.parser.parse("2029-07-15 00:28:00"), 1660: dateutil.parser.parse("2029-07-15 03:07:00"), 1661: dateutil.parser.parse("2029-07-15 05:46:00"), 1662: dateutil.parser.parse("2029-07-15 08:24:00"), 1663: dateutil.parser.parse("2029-07-15 11:03:00"), 1664: dateutil.parser.parse("2029-07-15 13:42:00"), 1665: dateutil.parser.parse("2029-07-15 16:21:00"), 1666: dateutil.parser.parse("2029-07-15 18:59:00"), 1667: dateutil.parser.parse("2029-07-15 21:38:00"), 1668: dateutil.parser.parse("2029-07-16 00:17:00"), 1669: dateutil.parser.parse("2029-07-16 02:55:00"), 1670: dateutil.parser.parse("2029-07-16 05:34:00"), 1671: dateutil.parser.parse("2029-07-16 08:13:00"), 1672: dateutil.parser.parse("2029-07-16 10:51:00"), 1673: dateutil.parser.parse("2029-07-16 13:30:00"), 1674: dateutil.parser.parse("2029-07-16 16:09:00"), 1675: dateutil.parser.parse("2029-07-16 18:47:00"), 1676: dateutil.parser.parse("2029-07-16 21:26:00"), 1677: dateutil.parser.parse("2029-07-17 00:05:00"), 1678: dateutil.parser.parse("2029-07-17 02:43:00"), 1679: dateutil.parser.parse("2029-07-17 05:22:00"), 1680: dateutil.parser.parse("2029-07-17 08:01:00"), 1681: dateutil.parser.parse("2029-07-17 10:40:00"), 1682: dateutil.parser.parse("2029-07-17 13:18:00"), 1683: dateutil.parser.parse("2029-07-17 15:57:00"), 1684: dateutil.parser.parse("2029-07-17 18:36:00"), 1685: dateutil.parser.parse("2029-07-17 21:14:00"), 1686: dateutil.parser.parse("2029-07-17 23:53:00"), 1687: dateutil.parser.parse("2029-07-18 02:32:00"), 1688: dateutil.parser.parse("2029-07-18 05:11:00"), 1689: dateutil.parser.parse("2029-07-18 07:50:00"), 1690: dateutil.parser.parse("2029-07-18 10:28:00"), 1691: dateutil.parser.parse("2029-07-18 13:07:00"), 1692: dateutil.parser.parse("2029-07-18 15:46:00"), 1693: dateutil.parser.parse("2029-07-18 18:25:00"), 1694: dateutil.parser.parse("2029-07-18 21:03:00"), 1695: dateutil.parser.parse("2029-07-18 23:42:00"), 1696: dateutil.parser.parse("2029-07-19 02:21:00"), 1697: dateutil.parser.parse("2029-07-19 05:00:00"), 1698: dateutil.parser.parse("2029-07-19 07:38:00"), 1699: dateutil.parser.parse("2029-07-19 10:17:00"), 1700: dateutil.parser.parse("2029-07-19 12:56:00"), 1701: dateutil.parser.parse("2029-07-19 15:34:00"), 1702: dateutil.parser.parse("2029-07-19 18:13:00"), 1703: dateutil.parser.parse("2029-07-19 20:52:00"), 1704: dateutil.parser.parse("2029-07-19 23:30:00"), 1705: dateutil.parser.parse("2029-07-20 02:09:00"), 1706: dateutil.parser.parse("2029-07-20 04:48:00"), 1707: dateutil.parser.parse("2029-07-20 07:26:00"), 1708: dateutil.parser.parse("2029-07-20 10:05:00"), 1709: dateutil.parser.parse("2029-07-20 12:44:00"), 1710: dateutil.parser.parse("2029-07-20 15:22:00"), 1711: dateutil.parser.parse("2029-07-20 18:01:00"), 1712: dateutil.parser.parse("2029-07-20 20:40:00"), 1713: dateutil.parser.parse("2029-07-20 23:19:00"), 1714: dateutil.parser.parse("2029-07-21 01:57:00"), 1715: dateutil.parser.parse("2029-07-21 04:36:00"), 1716: dateutil.parser.parse("2029-07-21 07:15:00"), 1717: dateutil.parser.parse("2029-07-21 09:53:00"), 1718: dateutil.parser.parse("2029-07-21 12:32:00"), 1719: dateutil.parser.parse("2029-07-21 15:11:00"), 1720: dateutil.parser.parse("2029-07-21 17:50:00"), 1721: dateutil.parser.parse("2029-07-21 20:28:00"), 1722: dateutil.parser.parse("2029-07-21 23:07:00"), 1723: dateutil.parser.parse("2029-07-22 01:46:00"), 1724: dateutil.parser.parse("2029-07-22 04:25:00"), 1725: dateutil.parser.parse("2029-07-22 07:04:00"), 1726: dateutil.parser.parse("2029-07-22 09:42:00"), 1727: dateutil.parser.parse("2029-07-22 12:21:00"), 1728: dateutil.parser.parse("2029-07-22 15:00:00"), 1729: dateutil.parser.parse("2029-07-22 17:39:00"), 1730: dateutil.parser.parse("2029-07-22 20:17:00"), 1731: dateutil.parser.parse("2029-07-22 22:56:00"), 1732: dateutil.parser.parse("2029-07-23 01:35:00"), 1733: dateutil.parser.parse("2029-07-23 04:13:00"), 1734: dateutil.parser.parse("2029-07-23 06:52:00"), 1735: dateutil.parser.parse("2029-07-23 09:31:00"), 1736: dateutil.parser.parse("2029-07-23 12:09:00"), 1737: dateutil.parser.parse("2029-07-23 14:48:00"), 1738: dateutil.parser.parse("2029-07-23 17:27:00"), 1739: dateutil.parser.parse("2029-07-23 20:05:00"), 1740: dateutil.parser.parse("2029-07-23 22:44:00"), 1741: dateutil.parser.parse("2029-07-24 01:23:00"), 1742: dateutil.parser.parse("2029-07-24 04:01:00"), 1743: dateutil.parser.parse("2029-07-24 06:40:00"), 1744: dateutil.parser.parse("2029-07-24 09:19:00"), 1745: dateutil.parser.parse("2029-07-24 11:57:00"), 1746: dateutil.parser.parse("2029-07-24 14:36:00"), 1747: dateutil.parser.parse("2029-07-24 17:15:00"), 1748: dateutil.parser.parse("2029-07-24 19:54:00"), 1749: dateutil.parser.parse("2029-07-24 20:00:00"), # datagap } self.pseudo_onr = [None for i in range(1750)] for onr in list(pseudo_onr_dict.keys()): self.pseudo_onr[onr] = pseudo_onr_dict[onr] self.t0 = self.pseudo_onr[1] self.t1 = self.pseudo_onr[1749] self.orb0 = 1 self.orb1 = 1748
[docs] def get_starttime(self, onr): if onr < 1 or onr >= 1749: raise ValueError('Orbit number range violation (%d). 1-1748' % onr) return self.pseudo_onr[onr]
[docs] def get_stoptime(self, onr): if onr < 1 or onr >= 1749: raise ValueError('Orbit number range violation (%d). 1-1748' % onr) return self.pseudo_onr[onr + 1]
[docs] def get_orbitnumber(self, t): if t < self.t0 or t >= self.t1: raise ValueError('Orbit time range violation (%s). %s-%s' % (t, self.t0, self.t1)) return bisect.bisect(self.pseudo_onr, t) - 1
interv = None
[docs]def is_valid_interval_mantra001(t): ''' Return the valid interval of the bsp file. The bsp file, named ``mantra.jgo_2020_001_ipc_cal_pso_res_e40_562_200.bsp`` would contain an invalid data (untrustable time period). Thus, this function will give information of a rough hand-made time interval that may be trutable for user. ''' global interv if interv == None: interv = timeinterval.timeinterval(datetime.datetime(2020, 1, 1, 0, 0, 0), datetime.datetime(2032, 1, 1, 0, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 2, 4, 18, 30, 00), datetime.datetime(2026, 2, 4, 20, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 2, 5, 12, 45, 00), datetime.datetime(2026, 2, 5, 13, 40, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 5, 5, 9, 30, 00), datetime.datetime(2026, 5, 7, 0, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 8, 1, 19, 27, 00), datetime.datetime(2026, 8, 1, 21, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 8, 22, 0, 0, 00), datetime.datetime(2026, 9, 4, 3, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 9, 20, 10, 0, 00), datetime.datetime(2026, 9, 21, 18, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 10, 5, 4, 0, 00), datetime.datetime(2026, 10, 11, 0, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 10, 19, 16, 0, 00), datetime.datetime(2026, 10, 20, 12, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 10, 29, 21, 0, 00), datetime.datetime(2026, 11, 3, 20, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 11, 10, 6, 0, 00), datetime.datetime(2026, 11, 11, 2, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 11, 13, 8, 0, 00), datetime.datetime(2026, 11, 13, 22, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 11, 26, 12, 0, 00), datetime.datetime(2026, 11, 27, 8, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 12, 16, 3, 0, 00), datetime.datetime(2026, 12, 17, 3, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 12, 20, 4, 0, 00), datetime.datetime(2026, 12, 21, 1, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2026, 12, 23, 1, 30, 00), datetime.datetime(2026, 12, 23, 19, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 1, 3, 0, 0, 00), datetime.datetime(2027, 1, 3, 10, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 1, 12, 22, 0, 00), datetime.datetime(2027, 1, 13, 14, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 1, 25, 16, 30, 00), datetime.datetime(2027, 1, 26, 15, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 2, 13, 12, 0, 00), datetime.datetime(2027, 2, 15, 12, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 3, 0o4, 22, 0, 00), datetime.datetime(2027, 3, 9, 18, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 3, 18, 14, 0, 00), datetime.datetime(2027, 3, 20, 21, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 4, 1, 21, 30, 00), datetime.datetime(2027, 4, 5, 11, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 4, 11, 10, 00, 00), datetime.datetime(2027, 4, 13, 8, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 6, 8, 6, 00, 00), datetime.datetime(2027, 6, 10, 2, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 6, 26, 19, 00, 00), datetime.datetime(2027, 7, 1, 18, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 7, 10, 17, 00, 00), datetime.datetime(2027, 7, 12, 23, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 7, 21, 12, 00, 00), datetime.datetime(2027, 7, 23, 8, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 7, 26, 11, 30, 00), datetime.datetime(2027, 7, 28, 6, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 8, 8, 15, 00, 00), datetime.datetime(2027, 8, 10, 12, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 8, 12, 14, 00, 00), datetime.datetime(2027, 8, 14, 9, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 8, 22, 00, 00, 00), datetime.datetime(2027, 8, 24, 6, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 8, 28, 18, 00, 00), datetime.datetime(2027, 8, 29, 19, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2027, 10, 26, 12, 00, 00), datetime.datetime(2027, 10, 27, 20, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 2, 10, 13, 00, 00), datetime.datetime(2028, 2, 11, 11, 00, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 2, 25, 10, 00, 00), datetime.datetime(2028, 2, 26, 3, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 3, 7, 11, 00, 00), datetime.datetime(2028, 3, 8, 12, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 4, 5, 23, 00, 00), datetime.datetime(2028, 4, 7, 0, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 5, 3, 6, 00, 00), datetime.datetime(2028, 5, 4, 2, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 5, 10, 16, 00, 00), datetime.datetime(2028, 5, 11, 15, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 5, 24, 13, 00, 00), datetime.datetime(2028, 5, 26, 1, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 6, 1, 4, 00, 00), datetime.datetime(2028, 6, 2, 2, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 8, 25, 16, 00, 00), datetime.datetime(2028, 8, 26, 22, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 9, 1, 21, 00, 00), datetime.datetime(2028, 9, 2, 15, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 10, 3, 4, 00, 00), datetime.datetime(2028, 10, 3, 6, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 10, 23, 11, 00, 00), datetime.datetime(2028, 10, 23, 14, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 11, 12, 19, 00, 00), datetime.datetime(2028, 11, 12, 22, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 12, 0o3, 0o2, 00, 00), datetime.datetime(2028, 12, 0o3, 0o5, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2028, 12, 23, 10, 00, 00), datetime.datetime(2028, 12, 23, 13, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 1, 12, 18, 30, 00), datetime.datetime(2029, 1, 12, 20, 30, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 3, 0o1, 18, 0, 00), datetime.datetime(2029, 3, 0o1, 23, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 4, 5, 18, 0, 00), datetime.datetime(2029, 4, 5, 22, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 5, 10, 16, 0, 00), datetime.datetime(2029, 5, 10, 22, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 6, 24, 18, 0, 00), datetime.datetime(2029, 6, 24, 23, 0, 0)) interv = interv - timeinterval.timeinterval(datetime.datetime(2029, 7, 24, 20, 0, 00), datetime.datetime(2029, 7, 31, 23, 59, 59)) return t in interv
import unittest import doctest
[docs]def doctests(): return unittest.TestSuite(( doctest.DocTestSuite(), ))
if __name__ == '__main__': unittest.main(defaultTest='doctests')