  STEER_ANGLE_SATURATION_THRESHOLD = 2.5  # Degrees
  
  SIMULATION = "SIMULATION" in os.environ
  NOSENSOR = "NOSENSOR" in os.environ
  IGNORE_PROCESSES = {"rtshield", "uploader", "deleter", "loggerd", "logmessaged", "tombstoned",
                      "logcatd", "proclogd", "clocksd", "updated", "timezoned", "manage_athenad"} | \
                      {k for k, v in managed_processes.items() if not v.enabled}
 
</s> remove     # Check for mismatch between openpilot and car's PCM
    cruise_mismatch = CS.cruiseState.enabled and (not self.enabled or not self.CP.pcmCruise)
    self.cruise_mismatch_counter = self.cruise_mismatch_counter + 1 if cruise_mismatch else 0
    if self.cruise_mismatch_counter > int(1. / DT_CTRL):
      self.events.add(EventName.cruiseMismatch)
 </s> add     if not REPLAY:
      # Check for mismatch between openpilot and car's PCM
      cruise_mismatch = CS.cruiseState.enabled and (not self.enabled or not self.CP.pcmCruise)
      self.cruise_mismatch_counter = self.cruise_mismatch_counter + 1 if cruise_mismatch else 0
      if self.cruise_mismatch_counter > int(1. / DT_CTRL):
        self.events.add(EventName.cruiseMismatch)
REPLAY = "REPLAY" in os.environ
  STEER_ANGLE_SATURATION_THRESHOLD = 2.5  # Degrees
  
REPLAY = "REPLAY" in os.environ
  SIMULATION = "SIMULATION" in os.environ
  NOSENSOR = "NOSENSOR" in os.environ
  IGNORE_PROCESSES = {"rtshield", "uploader", "deleter", "loggerd", "logmessaged", "tombstoned",
                      "logcatd", "proclogd", "clocksd", "updated", "timezoned", "manage_athenad"} | \
                      {k for k, v in managed_processes.items() if not v.enabled}
keep add keep keep keep keep keep
 CI: skip cruise mismatch check for can replays 
selfdrive/controls/controlsd.py