  
            smsg.roadCameraState.image = bts
  
            extra = (smsg.roadCameraState.frameId, smsg.roadCameraState.timestampSof, smsg.roadCameraState.timestampEof)
            data_socket.send_pyobj((cookie, VIPC_TYP, msg.logMonoTime, route_time, extra), flags=zmq.SNDMORE)
            data_socket.send(bts, copy=False)
  
        data_socket.send_pyobj((cookie, typ, msg.logMonoTime, route_time), flags=zmq.SNDMORE)
        data_socket.send(smsg.to_bytes(), copy=False)
  
 
</s> remove VIPC_TYP = "vipc"
 </s> add VIPC_RGB = "rgb"
VIPC_YUV = "yuv" </s> remove 
    if QCOM_REPLAY:
      cflags += ["-DQCOM_REPLAY"]
      cxxflags += ["-DQCOM_REPLAY"]
 </s> add  </s> remove QCOM_REPLAY = arch == "aarch64" and os.getenv("QCOM_REPLAY") is not None
 </s> add  </s> remove   compiler = lenv.Program('thneed/compile', ["thneed/compile.cc" ]+common_model, LIBS=libs)
 </s> add   compiler = lenv.Program('thneed/compile', ["thneed/compile.cc"]+common_model, LIBS=libs)
          data_socket.send_pyobj((cookie, VIPC_RGB, msg.logMonoTime, route_time, extra), flags=zmq.SNDMORE)
  
            smsg.roadCameraState.image = bts
  
            extra = (smsg.roadCameraState.frameId, smsg.roadCameraState.timestampSof, smsg.roadCameraState.timestampEof)
          data_socket.send_pyobj((cookie, VIPC_RGB, msg.logMonoTime, route_time, extra), flags=zmq.SNDMORE)
            data_socket.send(bts, copy=False)
  
        data_socket.send_pyobj((cookie, typ, msg.logMonoTime, route_time), flags=zmq.SNDMORE)
        data_socket.send(smsg.to_bytes(), copy=False)
  
keep keep keep keep replace keep keep keep keep keep
 fix up model tests + tools (#21071)

* unlogger: send yuv stream

* fix up model test tools

* fix unlogger

* rename model replay

* bump cereal

* test in actions

* no ci for now 
tools/replay/unlogger.py