    cmd_parser.addOption({"stream", "read can messages from live streaming"});
    cmd_parser.addOption({"zmq", "the ip address on which to receive zmq messages", "zmq"});
    cmd_parser.addOption({"data_dir", "local directory with routes", "data_dir"});
    cmd_parser.addOption({"no-vipc", "do not output video"});
    cmd_parser.process(app);
    const QStringList args = cmd_parser.positionalArguments();
    if (args.empty() && !cmd_parser.isSet("demo") && !cmd_parser.isSet("stream")) {
      cmd_parser.showHelp();
    }
  
 
</s> remove   void loadFile(const QString &fn);
 </s> add 
  cmd_parser.addOption({"dbc", "dbc file to open", "dbc"});
    cmd_parser.addOption({"stream", "read can messages from live streaming"});
    cmd_parser.addOption({"zmq", "the ip address on which to receive zmq messages", "zmq"});
    cmd_parser.addOption({"data_dir", "local directory with routes", "data_dir"});
    cmd_parser.addOption({"no-vipc", "do not output video"});
  cmd_parser.addOption({"dbc", "dbc file to open", "dbc"});
    cmd_parser.process(app);
    const QStringList args = cmd_parser.positionalArguments();
    if (args.empty() && !cmd_parser.isSet("demo") && !cmd_parser.isSet("stream")) {
      cmd_parser.showHelp();
    }
  
keep keep keep add keep keep keep keep keep keep
 cabana: add --dbc command line argument (#27132) 
tools/cabana/cabana.cc