      self.raw_gnss_counter = 0
      self.speed_counter = 0
  
  
  def locationd_thread(gctx, addr, disabled_logs):
    poller = zmq.Poller()
  
    #carstate = messaging.sub_sock('carState', poller, addr=addr, conflate=True)
    gpsLocationExternal = messaging.sub_sock('gpsLocationExternal', poller, addr=addr, conflate=True)
    ubloxGnss = messaging.sub_sock('ubloxGnss', poller, addr=addr, conflate=True)
 
</s> remove   ubloxGnss = messaging.sub_sock('ubloxGnss', poller, addr=addr, conflate=True)
  qcomGnss = messaging.sub_sock('qcomGnss', poller, addr=addr, conflate=True)
 </s> add  </s> remove     self.raw_gnss_counter = 0
 </s> add  </s> remove   IN_CAR = os.getenv("IN_CAR", False)
  disabled_logs = os.getenv("DISABLED_LOGS", "").split(",")
  # No speed for now
  disabled_logs.append('carState')
  if IN_CAR:
    addr = "192.168.5.11"
  locationd_thread(gctx, addr, disabled_logs)
 </s> add   locationd_thread(gctx, addr) </s> remove     fix_ecef = predicted_state[0:3]
 </s> add     fix_ecef = predicted_state[States.ECEF_POS]
def locationd_thread(gctx, addr, disabled_logs=[]):
      self.raw_gnss_counter = 0
      self.speed_counter = 0
  
  
def locationd_thread(gctx, addr, disabled_logs=[]):
    poller = zmq.Poller()
  
    #carstate = messaging.sub_sock('carState', poller, addr=addr, conflate=True)
    gpsLocationExternal = messaging.sub_sock('gpsLocationExternal', poller, addr=addr, conflate=True)
    ubloxGnss = messaging.sub_sock('ubloxGnss', poller, addr=addr, conflate=True)
keep keep keep keep replace keep keep keep keep keep
 get ready for live localizer 
selfdrive/locationd/locationd.py