    auto evt = msg.initEvent();
    evt.setValid(comms_healthy);
  
    // populate message
    for (int i = 0; i < num_msg; i++) {
      if (data[i*4] & 4) {
        // extended
        canData[i].setAddress(data[i*4] >> 3);
        //printf("got extended: %x\n", data[i*4] >> 3);
      } else {
 
</s> remove   auto canData = msg.initEvent().initCan(num_msg);
 </s> add   auto evt = msg.initEvent();
  evt.setValid(comms_healthy); </s> remove     auto ps = msg.initEvent().initPandaState();
 </s> add     auto evt = msg.initEvent();
    evt.setValid(panda->comms_healthy);

    auto ps = evt.initPandaState();
  auto canData = evt.initCan(num_msg);
    auto evt = msg.initEvent();
    evt.setValid(comms_healthy);
  
    // populate message
  auto canData = evt.initCan(num_msg);
    for (int i = 0; i < num_msg; i++) {
      if (data[i*4] & 4) {
        // extended
        canData[i].setAddress(data[i*4] >> 3);
        //printf("got extended: %x\n", data[i*4] >> 3);
      } else {
keep keep keep add keep keep keep keep keep keep
 boardd: set can and pandaState valid flags (#20899)

* boardd: set can and pandaState valid flags

* add event

* bump cereal

* consistency 
selfdrive/boardd/panda.cc