from  struct  import  unpack_from ,  calcsize 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_POSITION_REPORT  =  0x1476 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_GPS_MEASUREMENT_REPORT  =  0x1477 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_CLOCK_REPORT  =  0x1478 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_GLONASS_MEASUREMENT_REPORT  =  0x1480 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_BDS_MEASUREMENT_REPORT  =  0x1756 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_GAL_MEASUREMENT_REPORT  =  0x1886 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_OEMDRE_MEASUREMENT_REPORT  =  0x14DE 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_OEMDRE_SVPOLY_REPORT  =  0x14E1 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_ME_DPO_STATUS  =  0x1838 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_CD_DB_REPORT  =  0x147B 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_PRX_RF_HW_STATUS_REPORT  =  0x147E 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_CGPS_SLOW_CLOCK_CLIB_REPORT  =  0x1488 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOG_GNSS_CONFIGURATION_STATE  =  0x1516 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								oemdre_measurement_report  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  version ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  reason ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  seq_num ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  seq_max ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  rf_loss ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  system_rtc_valid ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  f_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  clock_resets ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint64_t  system_rtc_time ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  gps_leap_seconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  gps_leap_seconds_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  gps_to_glonass_time_bias_milliseconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  gps_to_glonass_time_bias_milliseconds_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  gps_week ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  gps_milliseconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  gps_time_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  gps_clock_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  gps_clock_source ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  glonass_clock_source ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  glonass_year ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  glonass_day ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  glonass_milliseconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  glonass_time_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  glonass_clock_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  frequency_source ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  cdma_clock_info [ 5 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  source ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								oemdre_svpoly_report  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  version ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  sv_id ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int8_t  frequency_index ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  flags ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  iode ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  double  t0 ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  double  xyz0 [ 3 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  double  xyzN [ 9 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  other [ 4 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  position_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  iono_delay ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  iono_dot ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  sbas_iono_delay ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  sbas_iono_dot ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  tropo_delay ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation_dot ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  double  velocity_coeff [ 12 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								oemdre_measurement_report_sv  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_id ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  unkn ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int8_t  glonass_frequency_index ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  observation_state ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  observations ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  good_observations ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  filter_stages ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  predetect_interval ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  cycle_slip_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  postdetections ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  measurement_status ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  measurement_status2 ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  carrier_noise ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  rf_loss ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int16_t  latency ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  filtered_measurement_fraction ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  filtered_measurement_integral ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  filtered_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  filtered_speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  filtered_speed_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_measurement_fraction ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  unfiltered_measurement_integral ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  multipath_estimate_valid ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  multipath_estimate ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  direction_valid ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  azimuth ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  doppler_acceleration ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint64_t  carrier_phase ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  f_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  parity_error_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  good_parity ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								glonass_measurement_report  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  version ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  f_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  glonass_cycle_number ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  glonass_number_of_days ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  milliseconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  time_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								glonass_measurement_report_sv  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_id ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int8_t  frequency_index ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  observation_state ;  / /  SVObservationStates 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  observations ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  good_observations ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  hemming_error_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  filter_stages ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  carrier_noise ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int16_t  latency ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  predetect_interval ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  postdetections ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  unfiltered_measurement_integral ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_measurement_fraction ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  measurement_status ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  misc_status ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  multipath_estimate ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  azimuth ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int32_t  carrier_phase_cycles_integral ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  carrier_phase_cycles_fraction ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  cycle_slip_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  pad ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								gps_measurement_report  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  version ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  f_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  week ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  milliseconds ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  time_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_time_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_bias ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  clock_frequency_uncertainty ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_count ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								gps_measurement_report_sv  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  sv_id ;                               / /  SV  PRN 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  observation_state ;                   / /  SV  Observation  state 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  observations ;                        / /  Count  of  all  observation  ( both  success  and  failure ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  good_observations ;                   / /  Count  of  Good  observations 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  parity_error_count ;                 / /  Carrier  to  Code  filtering  N  count 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  filter_stages ;                       / /  Pre - Detection  ( Coherent )  Interval  ( msecs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  carrier_noise ;                      / /  CNo .  Units  of  0.1  dB 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int16_t  latency ;                             / /  Age  of  the  measurement  in  msecs  ( + ve  meas  Meas  precedes  ref  time ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  predetect_interval ;                  / /  Pre - Detection  ( Coherent )  Interval  ( msecs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  postdetections ;                     / /  Num  Post - Detections  ( uints  of  PreInts 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  uint32_t  unfiltered_measurement_integral ;    / /  Range  of  0  through  ( WEEK_MSECS - 1 )  [ msecs ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_measurement_fraction ;       / /  Range  of  0  through  0.99999  [ msecs ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_time_uncertainty ;           / /  Time  uncertainty  ( msec ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed ;                      / /  Speed  estimate  ( meters / sec ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  unfiltered_speed_uncertainty ;          / /  Speed  uncertainty  estimate  ( meters / sec ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  measurement_status ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  misc_status ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  multipath_estimate ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  azimuth ;                               / /  Azimuth  ( radians ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  elevation ;                             / /  Elevation  ( radians ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int32_t  carrier_phase_cycles_integral ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16_t  carrier_phase_cycles_fraction ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed ;                            / /  Carrier  phase  derived  speed 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  fine_speed_uncertainty ;                / /  Carrier  phase  derived  speed  UNC 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8_t  cycle_slip_count ;                    / /  Increments  when  a  CSlip  is  detected 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32_t  pad ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								position_report  =  """ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_Version ;                 / *  Version  number  of  DM  log  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_Fcount ;                  / *  Local  millisecond  counter  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_PosSource ;               / *  Source  of  position  information  * /  / *   0 :  None  1 :  Weighted  least - squares  2 :  Kalman  filter  3 :  Externally  injected  4 :  Internal  database     * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_Reserved1 ;               / *  Reserved  memory  field  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16       w_PosVelFlag ;              / *  Position  velocity  bit  field :  ( see  DM  log  0x1476  documentation )  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_PosVelFlag2 ;             / *  Position  velocity  2  bit  field :  ( see  DM  log  0x1476  documentation )  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_FailureCode ;             / *  Failure  code :  ( see  DM  log  0x1476  documentation )  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16       w_FixEvents ;               / *  Fix  events  bit  field :  ( see  DM  log  0x1476  documentation )  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32  _fake_align_week_number ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16       w_GpsWeekNumber ;           / *  GPS  week  number  of  position  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_GpsFixTimeMs ;            / *  GPS  fix  time  of  week  of  in  milliseconds  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_GloNumFourYear ;          / *  Number  of  Glonass  four  year  cycles  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16       w_GloNumDaysInFourYear ;    / *  Glonass  calendar  day  in  four  year  cycle  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_GloFixTimeMs ;            / *  Glonass  fix  time  of  day  in  milliseconds  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_PosCount ;                / *  Integer  count  of  the  number  of  unique  positions  reported  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint64       t_DblFinalPosLatLon [ 2 ] ;    / *  Final  latitude  and  longitude  of  position  in  radians  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFinalPosAlt ;          / *  Final  height - above - ellipsoid  altitude  of  position  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltHeadingRad ;           / *  User  heading  in  radians  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltHeadingUncRad ;        / *  User  heading  uncertainty  in  radians  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltVelEnuMps [ 3 ] ;         / *  User  velocity  in  east ,  north ,  up  coordinate  frame .  In  meters  per  second .  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltVelSigmaMps [ 3 ] ;       / *  Gaussian  1 - sigma  value  for  east ,  north ,  up  components  of  user  velocity  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltClockBiasMeters ;      / *  Receiver  clock  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltClockBiasSigmaMeters ;   / *  Gaussian  1 - sigma  value  for  receiver  clock  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGGTBMeters ;           / *  GPS  to  Glonass  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGGTBSigmaMeters ;      / *  Gaussian  1 - sigma  value  for  GPS  to  Glonass  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGBTBMeters ;           / *  GPS  to  BeiDou  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGBTBSigmaMeters ;      / *  Gaussian  1 - sigma  value  for  GPS  to  BeiDou  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltBGTBMeters ;           / *  BeiDou  to  Glonass  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltBGTBSigmaMeters ;      / *  Gaussian  1 - sigma  value  for  BeiDou  to  Glonass  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltGGTBMeters ;       / *  Filtered  GPS  to  Glonass  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltGGTBSigmaMeters ;  / *  Filtered  Gaussian  1 - sigma  value  for  GPS  to  Glonass  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltGBTBMeters ;       / *  Filtered  GPS  to  BeiDou  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltGBTBSigmaMeters ;  / *  Filtered  Gaussian  1 - sigma  value  for  GPS  to  BeiDou  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltBGTBMeters ;       / *  Filtered  BeiDou  to  Glonass  time  bias  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFiltBGTBSigmaMeters ;  / *  Filtered  Gaussian  1 - sigma  value  for  BeiDou  to  Glonass  time  bias  uncertainty  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltSftOffsetSec ;         / *  SFT  offset  as  computed  by  WLS  in  seconds  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltSftOffsetSigmaSec ;    / *  Gaussian  1 - sigma  value  for  SFT  offset  in  seconds  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltClockDriftMps ;        / *  Clock  drift  ( clock  frequency  bias )  in  meters  per  second  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltClockDriftSigmaMps ;   / *  Gaussian  1 - sigma  value  for  clock  drift  in  meters  per  second  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFilteredAlt ;          / *  Filtered  height - above - ellipsoid  altitude  in  meters  as  computed  by  WLS  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltFilteredAltSigma ;     / *  Gaussian  1 - sigma  value  for  filtered  height - above - ellipsoid  altitude  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltRawAlt ;               / *  Raw  height - above - ellipsoid  altitude  in  meters  as  computed  by  WLS  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltRawAltSigma ;          / *  Gaussian  1 - sigma  value  for  raw  height - above - ellipsoid  altitude  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32    align_Flt [ 14 ] ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltPdop ;                 / *  3 D  position  dilution  of  precision  as  computed  from  the  unweighted 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltHdop ;                 / *  Horizontal  position  dilution  of  precision  as  computed  from  the  unweighted  least - squares  covariance  matrix  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltVdop ;                 / *  Vertical  position  dilution  of  precision  as  computed  from  the  unweighted  least - squares  covariance  matrix  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_EllipseConfidence ;       / *  Statistical  measure  of  the  confidence  ( percentage )  associated  with  the  uncertainty  ellipse  values  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltEllipseAngle ;         / *  Angle  of  semimajor  axis  with  respect  to  true  North ,  with  increasing  angles  moving  clockwise  from  North .  In  units  of  degrees .  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltEllipseSemimajorAxis ;   / *  Semimajor  axis  of  final  horizontal  position  uncertainty  error  ellipse .   In  units  of  meters .  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltEllipseSemiminorAxis ;   / *  Semiminor  axis  of  final  horizontal  position  uncertainty  error  ellipse .   In  units  of  meters .  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltPosSigmaVertical ;     / *  Gaussian  1 - sigma  value  for  final  position  height - above - ellipsoid  altitude  in  meters  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_HorizontalReliability ;   / *  Horizontal  position  reliability  0 :  Not  set  1 :  Very  Low  2 :  Low  3 :  Medium  4 :  High     * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_VerticalReliability ;     / *  Vertical  position  reliability  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint16       w_Reserved2 ;               / *  Reserved  memory  field  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGnssHeadingRad ;       / *  User  heading  in  radians  derived  from  GNSS  only  solution   * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_FltGnssHeadingUncRad ;    / *  User  heading  uncertainty  in  radians  derived  from  GNSS  only  solution   * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_SensorDataUsageMask ;     / *  Denotes  which  additional  sensor  data  were  used  to  compute  this  position  fix .   BIT [ 0 ]  0x00000001  < 96 >  Accelerometer  BIT [ 1 ]  0x00000002  < 96 >  Gyro  0x0000FFFC  -  Reserved  A  bit  set  to  1  indicates  that  certain  fields  as  defined  by  the  SENSOR_AIDING_MASK  were  aided  with  sensor  data * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint32       q_SensorAidMask ;          / *  Denotes  which  component  of  the  position  report  was  assisted  with  additional  sensors  defined  in  SENSOR_DATA_USAGE_MASK  BIT [ 0 ]  0x00000001  < 96 >  Heading  aided  with  sensor  data  BIT [ 1 ]  0x00000002  < 96 >  Speed  aided  with  sensor  data  BIT [ 2 ]  0x00000004  < 96 >  Position  aided  with  sensor  data  BIT [ 3 ]  0x00000008  < 96 >  Velocity  aided  with  sensor  data  0xFFFFFFF0  < 96 >  Reserved  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_NumGpsSvsUsed ;           / *  The  number  of  GPS  SVs  used  in  the  fix  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_TotalGpsSvs ;             / *  Total  number  of  GPS  SVs  detected  by  searcher ,  including  ones  not  used  in  position  calculation  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_NumGloSvsUsed ;           / *  The  number  of  Glonass  SVs  used  in  the  fix  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_TotalGloSvs ;             / *  Total  number  of  Glonass  SVs  detected  by  searcher ,  including  ones  not  used  in  position  calculation  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_NumBdsSvsUsed ;           / *  The  number  of  BeiDou  SVs  used  in  the  fix  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  uint8        u_TotalBdsSvs ;             / *  Total  number  of  BeiDou  SVs  detected  by  searcher ,  including  ones  not  used  in  position  calculation  * / 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"""  # noqa: E501 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  name_to_camelcase ( nam ) : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ret  =  [ ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  i  =  0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  while  i  <  len ( nam ) : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  nam [ i ]  ==  " _ " : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ret . append ( nam [ i + 1 ] . upper ( ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      i  + =  2 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ret . append ( nam [ i ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      i  + =  1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ' ' . join ( ret ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  parse_struct ( ss ) : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  st  =  " < " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  nams  =  [ ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  for  l  in  ss . strip ( ) . split ( " \n " ) : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  len ( l . strip ( ) )  ==  0 : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      continue 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    typ ,  nam  =  l . split ( " ; " ) [ 0 ] . split ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    #print(typ, nam) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  typ  ==  " float "  or  ' _Flt '  in  nam : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " f " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  ==  " double "  or  ' _Dbl '  in  nam : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " d " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " uint8 " ,  " uint8_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " B " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " int8 " ,  " int8_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " b " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " uint32 " ,  " uint32_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " I " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " int32 " ,  " int32_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " i " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " uint16 " ,  " uint16_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " H " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " int16 " ,  " int16_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " h " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  typ  in  [ " uint64 " ,  " uint64_t " ] : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  " Q " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      raise  RuntimeError ( f " unknown type  { typ } " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ' [ '  in  nam : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cnt  =  int ( nam . split ( " [ " ) [ 1 ] . split ( " ] " ) [ 0 ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      st  + =  st [ - 1 ] * ( cnt - 1 ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      for  i  in  range ( cnt ) : 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        nams . append ( f ' { nam . split ( " [ " ) [ 0 ] } [ { i } ] ' ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      nams . append ( nam ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  st ,  nams 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  dict_unpacker ( ss ,  camelcase  =  False ) : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  st ,  nams  =  parse_struct ( ss ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  camelcase : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    nams  =  [ name_to_camelcase ( x )  for  x  in  nams ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  sz  =  calcsize ( st ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  lambda  x :  dict ( zip ( nams ,  unpack_from ( st ,  x ) ,  strict = True ) ) ,  sz 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  relist ( dat ) : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  list_keys  =  set ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  for  key  in  dat . keys ( ) : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ' [ '  in  key : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      list_keys . add ( key . split ( ' [ ' ) [ 0 ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  list_dict  =  { } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  for  list_key  in  list_keys : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    list_dict [ list_key ]  =  [ ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    i  =  0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    while  True : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key  =  list_key  +  f ' [ { i } ] ' 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  key  not  in  dat : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        break 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      list_dict [ list_key ] . append ( dat [ key ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      del  dat [ key ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      i  + =  1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  { * * dat ,  * * list_dict }