_ZN8usbguard9trimRightERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES8_:
  254|   126k|  {
  255|   126k|    const size_t substr_to = s.find_last_not_of(delimiters);
  256|       |
  257|   126k|    if (substr_to != std::string::npos) {
  ------------------
  |  Branch (257:9): [True: 126k, False: 0]
  ------------------
  258|   126k|      return s.substr(0, substr_to + 1);
  259|   126k|    }
  260|      0|    else {
  261|      0|      return std::string();
  262|      0|    }
  263|   126k|  }
_ZN8usbguard8trimLeftERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES8_:
  266|   126k|  {
  267|   126k|    const size_t substr_from = s.find_first_not_of(delimiters);
  268|       |
  269|   126k|    if (substr_from == std::string::npos) {
  ------------------
  |  Branch (269:9): [True: 0, False: 126k]
  ------------------
  270|      0|      return s;
  271|      0|    }
  272|   126k|    else {
  273|   126k|      return s.substr(substr_from);
  274|   126k|    }
  275|   126k|  }
_ZN8usbguard4trimERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES8_:
  278|   126k|  {
  279|   126k|    return trimRight(trimLeft(s, delimiters), delimiters);
  280|   126k|  }

_ZN8usbguard6UEventC2Ev:
   31|  1.21k|  {
   32|  1.21k|  }
_ZN8usbguard6UEvent10fromStringERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEbb:
   46|  1.21k|  {
   47|  1.21k|    UEvent uevent;
   48|  1.21k|    parseUEventFromString(uevent_string, uevent, attributes_only, trace);
   49|  1.21k|    return uevent;
   50|  1.21k|  }
_ZN8usbguard6UEvent12setAttributeERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_:
   58|   128k|  {
   59|   128k|    USBGUARD_LOG(Trace) << "Setting attribute: " << name << "=" << value;
  ------------------
  |  |  310|   128k|  if (USBGUARD_LOGGER.isEnabled(usbguard::LogStream::Level::level)) \
  |  |  ------------------
  |  |  |  |  305|   128k|#define USBGUARD_LOGGER usbguard::G_logger
  |  |  ------------------
  |  |  |  Branch (310:7): [True: 0, False: 128k]
  |  |  ------------------
  |  |  311|   128k|    USBGUARD_LOGGER(USBGUARD_SOURCE_FILE, __LINE__, USBGUARD_FUNCTION, usbguard::LogStream::Level::level)
  |  |  ------------------
  |  |  |  |  305|      0|#define USBGUARD_LOGGER usbguard::G_logger
  |  |  ------------------
  |  |                   USBGUARD_LOGGER(USBGUARD_SOURCE_FILE, __LINE__, USBGUARD_FUNCTION, usbguard::LogStream::Level::level)
  |  |  ------------------
  |  |  |  |  300|      0|  #define USBGUARD_SOURCE_FILE __BASE_FILE__
  |  |  ------------------
  |  |                   USBGUARD_LOGGER(USBGUARD_SOURCE_FILE, __LINE__, USBGUARD_FUNCTION, usbguard::LogStream::Level::level)
  |  |  ------------------
  |  |  |  |  307|      0|#define USBGUARD_FUNCTION __func__
  |  |  ------------------
  ------------------
   60|   128k|    _attributes[name] = value;
   61|   128k|  }
_ZNK8usbguard6UEvent12getAttributeERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
   64|  2.57k|  {
   65|  2.57k|    auto it = _attributes.find(name);
   66|       |
   67|  2.57k|    if (it == _attributes.end()) {
  ------------------
  |  Branch (67:9): [True: 0, False: 2.57k]
  ------------------
   68|      0|      return std::string();
   69|      0|    }
   70|  2.57k|    else {
   71|  2.57k|      return it->second;
   72|  2.57k|    }
   73|  2.57k|  }

_ZN8usbguard21parseUEventFromStringERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERNS_6UEventEbb:
  150|  1.21k|  {
  151|  1.21k|    if (attributes_only) {
  ------------------
  |  Branch (151:9): [True: 0, False: 1.21k]
  ------------------
  152|      0|      parseUEventFromString<UEventParser::attributes>(uevent_string, uevent, trace);
  153|      0|    }
  154|  1.21k|    else {
  155|  1.21k|      parseUEventFromString<UEventParser::grammar>(uevent_string, uevent, trace);
  156|  1.21k|    }
  157|  1.21k|  }
_ZN8usbguard12UEventParser7actionsINS0_9attributeEE5applyIN3tao5pegtl8internal12action_inputINS6_12memory_inputILNS6_13tracking_modeE0ENS6_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEEEEEvRKT_RNS_6UEventE:
   50|   126k|      {
   51|   126k|        try {
   52|   126k|          const auto p = in.string().find_first_of('=');
   53|       |
   54|   126k|          if (p == std::string::npos || p == (in.string().size() - 1)) {
  ------------------
  |  Branch (54:15): [True: 0, False: 126k]
  |  Branch (54:15): [True: 0, False: 126k]
  |  Branch (54:41): [True: 0, False: 126k]
  ------------------
   55|      0|            throw pegtl::parse_error("invalid attribute format", in);
   56|      0|          }
   57|       |
   58|   126k|          const std::string key = in.string().substr(0, p);
   59|   126k|          const std::string value = trim(in.string().substr(p + 1, std::string::npos), std::string("\n\0", 2));
   60|       |
   61|   126k|          for (const std::string header_key : {
  ------------------
  |  Branch (61:45): [True: 253k, False: 126k]
  ------------------
   62|   126k|              "ACTION", "DEVPATH"
   63|   253k|            }) {
   64|   253k|            if (key == header_key) {
  ------------------
  |  Branch (64:17): [True: 1.28k, False: 252k]
  ------------------
   65|       |              /*
   66|       |               * Sanity check the value only if the value is already assigned,
   67|       |               * because with umockdev device manager we need to parse ACTION
   68|       |               * and DEVPATH from the uevent data and we don't know it before
   69|       |               * that.
   70|       |               */
   71|  1.28k|              if (!uevent.getAttribute(header_key).empty()) {
  ------------------
  |  Branch (71:19): [True: 1.28k, False: 0]
  ------------------
   72|  1.28k|                if (value != uevent.getAttribute(header_key)) {
  ------------------
  |  Branch (72:21): [True: 239, False: 1.05k]
  ------------------
   73|    239|                  throw pegtl::parse_error("header value mismatch", in);
   74|    239|                }
   75|  1.28k|              }
   76|  1.28k|            }
   77|   253k|          }
   78|   126k|          uevent.setAttribute(key, value);
   79|   126k|        }
   80|   126k|        catch (const pegtl::parse_error& ex) {
   81|    239|          throw;
   82|    239|        }
   83|   126k|        catch (const std::exception& ex) {
   84|      0|          throw pegtl::parse_error(ex.what(), in);
   85|      0|        }
   86|   126k|      }
_ZN8usbguard21parseUEventFromStringINS_12UEventParser7grammarEEEvRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERNS_6UEventEb:
  129|  1.21k|  {
  130|  1.21k|    try {
  131|  1.21k|      tao::pegtl::string_input<> in(uevent_string, std::string());
  132|       |
  133|  1.21k|      if (!trace) {
  ------------------
  |  Branch (133:11): [True: 1.21k, False: 0]
  ------------------
  134|  1.21k|        tao::pegtl::parse<G, UEventParser::actions>(in, uevent);
  135|  1.21k|      }
  136|      0|      else {
  137|      0|#if TAO_PEGTL_VERSION_MAJOR >= 3
  138|      0|        tao::pegtl::complete_trace<G, UEventParser::actions>(in, uevent);
  139|       |#else
  140|       |        tao::pegtl::parse<G, UEventParser::actions, tao::pegtl::tracer>(in, uevent);
  141|       |#endif
  142|      0|      }
  143|  1.21k|    }
  144|  1.21k|    catch (...) {
  145|    239|      throw;
  146|    239|    }
  147|  1.21k|  }
_ZN8usbguard12UEventParser7actionsINS0_6actionEE5applyIN3tao5pegtl8internal12action_inputINS6_12memory_inputILNS6_13tracking_modeE0ENS6_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEEEEEvRKT_RNS_6UEventE:
   93|  1.19k|      {
   94|  1.19k|        uevent.setAttribute("ACTION", in.string());
   95|  1.19k|      }
_ZN8usbguard12UEventParser7actionsINS0_7devpathEE5applyIN3tao5pegtl8internal12action_inputINS6_12memory_inputILNS6_13tracking_modeE0ENS6_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEEEEEvRKT_RNS_6UEventE:
  102|  1.08k|      {
  103|  1.08k|        uevent.setAttribute("DEVPATH", in.string());
  104|  1.08k|      }

_ZN8usbguard7LogSinkC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  101|      2|  {
  102|      2|  }
_ZNK8usbguard7LogSink4nameEv:
  109|      2|  {
  110|      2|    return _name;
  111|      2|  }
_ZN8usbguard6LoggerC2Ev:
  280|      2|  {
  281|      2|    const char* const envval = getenv("USBGUARD_DEBUG");
  282|       |
  283|       |    /*
  284|       |     * If USBGUARD_DEBUG=1 is set in the current environment,
  285|       |     * set the debugging level to the highest level.
  286|       |     */
  287|      2|    if (envval != nullptr && strcmp(envval, "1") == 0) {
  ------------------
  |  Branch (287:9): [True: 0, False: 2]
  |  Branch (287:30): [True: 0, False: 0]
  ------------------
  288|      0|      _level = LogStream::Level::Trace;
  289|      0|    }
  290|       |
  291|      2|    setOutputConsole(true);
  292|      2|  }
_ZNK8usbguard6Logger4lockEv:
  299|   128k|  {
  300|   128k|    return std::unique_lock<std::mutex>(_mutex);
  301|   128k|  }
_ZNK8usbguard6Logger9isEnabledENS_9LogStream5LevelE:
  311|   128k|  {
  312|   128k|    auto L = lock();
  313|   128k|    return (_enabled && _level >= level);
  ------------------
  |  Branch (313:13): [True: 128k, False: 0]
  |  Branch (313:25): [True: 0, False: 128k]
  ------------------
  314|   128k|  }
_ZN8usbguard6Logger16setOutputConsoleEb:
  317|      2|  {
  318|      2|    auto L = lock();
  319|       |
  320|      2|    if (state == true) {
  ------------------
  |  Branch (320:9): [True: 2, False: 0]
  ------------------
  321|      2|      std::unique_ptr<LogSink> sink(new ConsoleSink);
  322|      2|      addOutputSink_nolock(sink);
  323|      2|    }
  324|      0|    else {
  325|      0|      delOutputSink_nolock("console");
  326|      0|    }
  327|      2|  }
_ZN8usbguard6Logger20addOutputSink_nolockERNSt3__110unique_ptrINS_7LogSinkENS1_14default_deleteIS3_EEEE:
  375|      2|  {
  376|      2|    _sinks.emplace(sink->name(), std::move(sink));
  377|      2|  }
_ZN8usbguard11ConsoleSinkC2Ev:
  151|      2|    {
  152|      2|    }
_ZN8usbguard11OStreamSinkC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERNS1_13basic_ostreamIcS4_EE:
  122|      2|    {
  123|      2|    }

LLVMFuzzerTestOneInput:
   37|  1.21k|{
   38|  1.21k|  try {
   39|  1.21k|    UEvent uevent = UEvent::fromString(std::string(data, data + size));
   40|  1.21k|  }
   41|  1.21k|  catch (const tao::pegtl::parse_error& ex) {
   42|       |    // Parser errors are ok.
   43|    239|  }
   44|       |
   45|  1.21k|  return 0;
   46|  1.21k|}

_ZN3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEEC2ERKNS1_8iteratorERKSF_:
   29|   129k|      {}
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE6stringEv:
   75|   509k|      {
   76|   509k|         return std::string( begin(), size() );
   77|   509k|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE5beginEv:
   50|  1.01M|      {
   51|  1.01M|         if constexpr( std::is_same_v< iterator_t, const char* > ) {
  ------------------
  |  Branch (51:24): [Folded - Ignored]
  ------------------
   52|  1.01M|            return iterator();
   53|  1.01M|         }
   54|  1.01M|         else {
   55|  1.01M|            return iterator().data;
   56|  1.01M|         }
   57|  1.01M|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE8iteratorEv:
   40|  1.02M|      {
   41|  1.02M|         return m_begin;
   42|  1.02M|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE4sizeEv:
   70|   509k|      {
   71|   509k|         return std::size_t( end() - begin() );
   72|   509k|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE3endEv:
   60|   509k|      {
   61|   509k|         return input().current();
   62|   509k|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE5inputEv:
   45|   510k|      {
   46|   510k|         return m_input;
   47|   510k|      }
_ZNK3tao5pegtl8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEE8positionEv:
   95|    239|      {
   96|    239|         return input().position( iterator() );  // NOTE: Not efficient with lazy inputs.
   97|    239|      }

_ZN3tao5pegtl8internal4bumpERNS1_8iteratorEmi:
   14|   126k|   {
   15|   252k|      for( std::size_t i = 0; i < count; ++i ) {
  ------------------
  |  Branch (15:31): [True: 126k, False: 126k]
  ------------------
   16|   126k|         if( iter.data[ i ] == ch ) {
  ------------------
  |  Branch (16:14): [True: 111k, False: 14.0k]
  ------------------
   17|   111k|            ++iter.line;
   18|   111k|            iter.column = 1;
   19|   111k|         }
   20|  14.0k|         else {
   21|  14.0k|            ++iter.column;
   22|  14.0k|         }
   23|   126k|      }
   24|   126k|      iter.byte += count;
   25|   126k|      iter.data += count;
   26|   126k|   }
_ZN3tao5pegtl8internal17bump_in_this_lineERNS1_8iteratorEm:
   29|  35.8M|   {
   30|  35.8M|      iter.data += count;
   31|  35.8M|      iter.byte += count;
   32|  35.8M|      iter.column += count;
   33|  35.8M|   }

_ZN3tao5pegtl8internal9bump_helpINS1_5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc65ELc90EEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|   126k|   {
   16|   126k|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|   126k|         in.bump( count );
   18|   126k|      }
   19|   126k|      else {
   20|   126k|         in.bump_in_this_line( count );
   21|   126k|      }
   22|   126k|   }
_ZN3tao5pegtl8internal9bump_helpINS1_6rangesINS1_9peek_charEJLc65ELc90ELc48ELc57EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEEEvRT0_m:
   15|  10.1M|   {
   16|  10.1M|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|  10.1M|         in.bump( count );
   18|  10.1M|      }
   19|  10.1M|      else {
   20|  10.1M|         in.bump_in_this_line( count );
   21|  10.1M|      }
   22|  10.1M|   }
_ZN3tao5pegtl8internal9bump_helpINS1_3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc61EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|   126k|   {
   16|   126k|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|   126k|         in.bump( count );
   18|   126k|      }
   19|   126k|      else {
   20|   126k|         in.bump_in_this_line( count );
   21|   126k|      }
   22|   126k|   }
_ZN3tao5pegtl8internal9bump_helpINS1_3oneILNS1_15result_on_foundE0ENS1_9peek_charEJLc0ELc10EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|  11.7M|   {
   16|  11.7M|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|  11.7M|         in.bump( count );
   18|  11.7M|      }
   19|  11.7M|      else {
   20|  11.7M|         in.bump_in_this_line( count );
   21|  11.7M|      }
   22|  11.7M|   }
_ZN3tao5pegtl8internal9bump_helpINS1_3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0ELc10EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|   126k|   {
   16|   126k|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|   126k|         in.bump( count );
   18|   126k|      }
   19|   126k|      else {
   20|   126k|         in.bump_in_this_line( count );
   21|   126k|      }
   22|   126k|   }
_ZN3tao5pegtl8internal9bump_helpINS1_5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc97ELc122EEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|  8.48M|   {
   16|  8.48M|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|  8.48M|         in.bump( count );
   18|  8.48M|      }
   19|  8.48M|      else {
   20|  8.48M|         in.bump_in_this_line( count );
   21|  8.48M|      }
   22|  8.48M|   }
_ZN3tao5pegtl8internal9bump_helpINS1_3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc64EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|  1.09k|   {
   16|  1.09k|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|  1.09k|         in.bump( count );
   18|  1.09k|      }
   19|  1.09k|      else {
   20|  1.09k|         in.bump_in_this_line( count );
   21|  1.09k|      }
   22|  1.09k|   }
_ZN3tao5pegtl8internal9bump_helpINS1_5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc32ELc126EEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|  5.25M|   {
   16|  5.25M|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|  5.25M|         in.bump( count );
   18|  5.25M|      }
   19|  5.25M|      else {
   20|  5.25M|         in.bump_in_this_line( count );
   21|  5.25M|      }
   22|  5.25M|   }
_ZN3tao5pegtl8internal9bump_helpINS1_3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0EEEENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEvRT0_m:
   15|    994|   {
   16|    994|      if constexpr( Rule::template can_match_eol< ParseInput::eol_t::ch > ) {
  ------------------
  |  Branch (16:21): [Folded - Ignored]
  ------------------
   17|    994|         in.bump( count );
   18|    994|      }
   19|    994|      else {
   20|    994|         in.bump_in_this_line( count );
   21|    994|      }
   22|    994|   }

_ZN3tao5pegtl8internal3eof5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEEEbRT_:
   22|  1.89k|      {
   23|  1.89k|         return in.empty();
   24|  1.89k|      }

_ZNK3tao5pegtl8internal10input_pairIcEcvbEv:
   22|  36.2M|      {
   23|  36.2M|         return size > 0;
   24|  36.2M|      }

_ZN3tao5pegtl8internal8iteratorC2EPKc:
   20|  1.21k|      {}

_ZN3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE2EEC2ERKS3_:
   19|  36.7M|      {}
_ZN3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE1EEC2ERS3_:
   44|   257k|      {}
_ZN3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE1EEclEb:
   60|   256k|      {
   61|   256k|         if( result ) {
  ------------------
  |  Branch (61:14): [True: 255k, False: 868]
  ------------------
   62|   255k|            m_input = nullptr;
   63|   255k|            return true;
   64|   255k|         }
   65|    868|         return false;
   66|   256k|      }
_ZN3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE0EEC2ERKS3_:
   19|   386k|      {}
_ZNK3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE0EEclEb:
   30|   386k|      {
   31|   386k|         return result;
   32|   386k|      }
_ZNK3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE1EE8iteratorEv:
   69|   129k|      {
   70|   129k|         return m_saved;
   71|   129k|      }
_ZN3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE1EED2Ev:
   50|   257k|      {
   51|   257k|         if( m_input != nullptr ) {
  ------------------
  |  Branch (51:14): [True: 1.79k, False: 255k]
  ------------------
   52|  1.79k|            ( *m_input ) = m_saved;
   53|  1.79k|         }
   54|   257k|      }
_ZNK3tao5pegtl8internal6markerINS1_8iteratorELNS0_11rewind_modeE2EEclEb:
   30|  36.7M|      {
   31|  36.7M|         return result;
   32|  36.7M|      }

_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc61EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   40|   126k|      {
   41|   126k|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (41:25): [True: 126k, False: 33]
  ------------------
   42|   126k|            if( test( t.data ) ) {
  ------------------
  |  Branch (42:17): [True: 126k, False: 34]
  ------------------
   43|   126k|               bump_help< one >( in, t.size );
   44|   126k|               return true;
   45|   126k|            }
   46|   126k|         }
   47|     67|         return false;
   48|   126k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc61EEE4testEc:
   31|   126k|      {
   32|   126k|         return ( ( c == Cs ) || ... ) == bool( R );
   33|   126k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE0ENS1_9peek_charEJLc0ELc10EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   40|  11.8M|      {
   41|  11.8M|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (41:25): [True: 11.8M, False: 886]
  ------------------
   42|  11.8M|            if( test( t.data ) ) {
  ------------------
  |  Branch (42:17): [True: 11.7M, False: 126k]
  ------------------
   43|  11.7M|               bump_help< one >( in, t.size );
   44|  11.7M|               return true;
   45|  11.7M|            }
   46|  11.8M|         }
   47|   126k|         return false;
   48|  11.8M|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE0ENS1_9peek_charEJLc0ELc10EEE4testEc:
   31|  11.8M|      {
   32|  23.6M|         return ( ( c == Cs ) || ... ) == bool( R );
  ------------------
  |  Branch (32:19): [True: 14.0k, False: 11.8M]
  |  Branch (32:19): [True: 111k, False: 11.7M]
  ------------------
   33|  11.8M|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0ELc10EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   40|   126k|      {
   41|   126k|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (41:25): [True: 126k, False: 637]
  ------------------
   42|   126k|            if( test( t.data ) ) {
  ------------------
  |  Branch (42:17): [True: 126k, False: 0]
  ------------------
   43|   126k|               bump_help< one >( in, t.size );
   44|   126k|               return true;
   45|   126k|            }
   46|   126k|         }
   47|    637|         return false;
   48|   126k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0ELc10EEE4testEc:
   31|   126k|      {
   32|   237k|         return ( ( c == Cs ) || ... ) == bool( R );
  ------------------
  |  Branch (32:19): [True: 14.0k, False: 111k]
  |  Branch (32:19): [True: 111k, False: 0]
  ------------------
   33|   126k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc64EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   40|  1.19k|      {
   41|  1.19k|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (41:25): [True: 1.12k, False: 73]
  ------------------
   42|  1.12k|            if( test( t.data ) ) {
  ------------------
  |  Branch (42:17): [True: 1.09k, False: 27]
  ------------------
   43|  1.09k|               bump_help< one >( in, t.size );
   44|  1.09k|               return true;
   45|  1.09k|            }
   46|  1.12k|         }
   47|    100|         return false;
   48|  1.19k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc64EEE4testEc:
   31|  1.12k|      {
   32|  1.12k|         return ( ( c == Cs ) || ... ) == bool( R );
   33|  1.12k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   40|  1.08k|      {
   41|  1.08k|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (41:25): [True: 1.00k, False: 78]
  ------------------
   42|  1.00k|            if( test( t.data ) ) {
  ------------------
  |  Branch (42:17): [True: 994, False: 15]
  ------------------
   43|    994|               bump_help< one >( in, t.size );
   44|    994|               return true;
   45|    994|            }
   46|  1.00k|         }
   47|     93|         return false;
   48|  1.08k|      }
_ZN3tao5pegtl8internal3oneILNS1_15result_on_foundE1ENS1_9peek_charEJLc0EEE4testEc:
   31|  1.00k|      {
   32|  1.00k|         return ( ( c == Cs ) || ... ) == bool( R );
   33|  1.00k|      }

_ZN3tao5pegtl8internal9peek_char4peekINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEEENS1_10input_pairIcEERT_:
   22|  36.2M|      {
   23|  36.2M|         if( in.empty() ) {
  ------------------
  |  Branch (23:14): [True: 1.91k, False: 36.2M]
  ------------------
   24|  1.91k|            return { 0, 0 };
   25|  1.91k|         }
   26|  36.2M|         return { in.peek_char(), 1 };
   27|  36.2M|      }

_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc65ELc90EE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   39|   127k|      {
   40|   127k|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (40:25): [True: 127k, False: 21]
  ------------------
   41|   127k|            if( test( t.data ) ) {
  ------------------
  |  Branch (41:17): [True: 126k, False: 16]
  ------------------
   42|   126k|               bump_help< range >( in, t.size );
   43|   126k|               return true;
   44|   126k|            }
   45|   127k|         }
   46|     37|         return false;
   47|   127k|      }
_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc65ELc90EE4testEc:
   30|   127k|      {
   31|   127k|         return ( ( Lo <= c ) && ( c <= Hi ) ) == bool( R );
  ------------------
  |  Branch (31:19): [True: 126k, False: 12]
  |  Branch (31:34): [True: 126k, False: 4]
  ------------------
   32|   127k|      }
_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc97ELc122EE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   39|  8.48M|      {
   40|  8.48M|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (40:25): [True: 8.48M, False: 73]
  ------------------
   41|  8.48M|            if( test( t.data ) ) {
  ------------------
  |  Branch (41:17): [True: 8.48M, False: 1.18k]
  ------------------
   42|  8.48M|               bump_help< range >( in, t.size );
   43|  8.48M|               return true;
   44|  8.48M|            }
   45|  8.48M|         }
   46|  1.25k|         return false;
   47|  8.48M|      }
_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc97ELc122EE4testEc:
   30|  8.48M|      {
   31|  8.48M|         return ( ( Lo <= c ) && ( c <= Hi ) ) == bool( R );
  ------------------
  |  Branch (31:19): [True: 8.48M, False: 1.18k]
  |  Branch (31:34): [True: 8.48M, False: 4]
  ------------------
   32|  8.48M|      }
_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc32ELc126EE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEEEbRT_:
   39|  5.25M|      {
   40|  5.25M|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (40:25): [True: 5.25M, False: 80]
  ------------------
   41|  5.25M|            if( test( t.data ) ) {
  ------------------
  |  Branch (41:17): [True: 5.25M, False: 1.01k]
  ------------------
   42|  5.25M|               bump_help< range >( in, t.size );
   43|  5.25M|               return true;
   44|  5.25M|            }
   45|  5.25M|         }
   46|  1.09k|         return false;
   47|  5.25M|      }
_ZN3tao5pegtl8internal5rangeILNS1_15result_on_foundE1ENS1_9peek_charELc32ELc126EE4testEc:
   30|  5.25M|      {
   31|  5.25M|         return ( ( Lo <= c ) && ( c <= Hi ) ) == bool( R );
  ------------------
  |  Branch (31:19): [True: 5.25M, False: 1.01k]
  |  Branch (31:34): [True: 5.25M, False: 2]
  ------------------
   32|  5.25M|      }

_ZN3tao5pegtl8internal6rangesINS1_9peek_charEJLc65ELc90ELc48ELc57EEE5matchINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEEEbRT_:
   59|  10.2M|      {
   60|  10.2M|         if( const auto t = Peek::peek( in ) ) {
  ------------------
  |  Branch (60:25): [True: 10.2M, False: 33]
  ------------------
   61|  10.2M|            if( test( t.data ) ) {
  ------------------
  |  Branch (61:17): [True: 10.1M, False: 126k]
  ------------------
   62|  10.1M|               bump_help< ranges >( in, t.size );
   63|  10.1M|               return true;
   64|  10.1M|            }
   65|  10.2M|         }
   66|   126k|         return false;
   67|  10.2M|      }
_ZN3tao5pegtl8internal6rangesINS1_9peek_charEJLc65ELc90ELc48ELc57EEE4testEc:
   50|  10.2M|      {
   51|  10.2M|         return test( std::make_index_sequence< sizeof...( Cs ) / 2 >(), c );
   52|  10.2M|      }
_ZN3tao5pegtl8internal6rangesINS1_9peek_charEJLc65ELc90ELc48ELc57EEE4testIJLm0ELm1EEEEbNSt3__116integer_sequenceImJXspT_EEEEc:
   39|  10.2M|      {
   40|  10.2M|         constexpr const data_t cs[] = { Cs... };
   41|  10.2M|         if constexpr( sizeof...( Cs ) % 2 == 0 ) {
  ------------------
  |  Branch (41:24): [Folded - Ignored]
  ------------------
   42|  10.4M|            return ( validate_range< data_t, cs[ 2 * Is ], cs[ 2 * Is + 1 ] >( c ) || ... );
  ------------------
  |  Branch (42:22): [True: 10.0M, False: 197k]
  |  Branch (42:22): [True: 70.6k, False: 126k]
  ------------------
   43|  10.2M|         }
   44|  10.2M|         else {
   45|  10.2M|            return ( validate_range< data_t, cs[ 2 * Is ], cs[ 2 * Is + 1 ] >( c ) || ... ) || ( c == cs[ sizeof...( Cs ) - 1 ] );
   46|  10.2M|         }
   47|  10.2M|      }
_ZN3tao5pegtl8internal14validate_rangeIcLc65ELc90EEEbT_:
   23|  10.2M|   {
   24|  10.2M|      static_assert( Lo <= Hi, "invalid range" );
   25|  10.2M|      return ( Lo <= c ) && ( c <= Hi );
  ------------------
  |  Branch (25:14): [True: 10.0M, False: 197k]
  |  Branch (25:29): [True: 10.0M, False: 7]
  ------------------
   26|  10.2M|   }
_ZN3tao5pegtl8internal14validate_rangeIcLc48ELc57EEEbT_:
   23|   197k|   {
   24|   197k|      static_assert( Lo <= Hi, "invalid range" );
   25|   197k|      return ( Lo <= c ) && ( c <= Hi );
  ------------------
  |  Branch (25:14): [True: 197k, False: 22]
  |  Branch (25:29): [True: 70.6k, False: 126k]
  ------------------
   26|   197k|   }

_ZN3tao5pegtl8internal3seqIJN8usbguard12UEventParser3keyENS0_5ascii3oneIJLc61EEEENS4_5valueEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS6_3eol7lf_crlfENSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocatorIcEEEEEEJRNS3_6UEventEEEEbRT3_DpOT4_:
   41|   127k|      {
   42|   127k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|   127k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|   127k|         }
   45|   127k|         else {
   46|   127k|            auto m = in.template mark< M >();
   47|   127k|            using m_t = decltype( m );
   48|   507k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 126k, False: 67]
  |  Branch (48:25): [True: 126k, False: 14]
  |  Branch (48:25): [True: 126k, False: 37]
  ------------------
   49|   127k|         }
   50|   127k|      }
_ZN3tao5pegtl8internal3seqIJNS0_5ascii6rangesIJLc65ELc90EEEENS0_4starINS4_IJLc65ELc90ELc48ELc57EEEEJEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSL_11char_traitsIcEENSL_9allocatorIcEEEEEEJRNSD_6UEventEEEEbRT3_DpOT4_:
   41|   127k|      {
   42|   127k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|   127k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|   127k|         }
   45|   127k|         else {
   46|   127k|            auto m = in.template mark< M >();
   47|   127k|            using m_t = decltype( m );
   48|   254k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 126k, False: 37]
  |  Branch (48:25): [True: 126k, False: 0]
  ------------------
   49|   127k|         }
   50|   127k|      }
_ZN3tao5pegtl8internal3seqIJNS0_5ascii7not_oneIJLc0ELc10EEEENS0_4starIS5_JEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocatorIcEEEEEEJRNSC_6UEventEEEEbRT3_DpOT4_:
   41|   126k|      {
   42|   126k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|   126k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|   126k|         }
   45|   126k|         else {
   46|   126k|            auto m = in.template mark< M >();
   47|   126k|            using m_t = decltype( m );
   48|   253k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 126k, False: 14]
  |  Branch (48:25): [True: 126k, False: 0]
  ------------------
   49|   126k|         }
   50|   126k|      }
_ZN3tao5pegtl8internal3seqIJNS0_5ascii3oneIJLc0ELc10EEEEN8usbguard12UEventParser9attributeEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS7_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNS6_6UEventEEEEbRT3_DpOT4_:
   41|   126k|      {
   42|   126k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|   126k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|   126k|         }
   45|   126k|         else {
   46|   126k|            auto m = in.template mark< M >();
   47|   126k|            using m_t = decltype( m );
   48|   252k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 126k, False: 637]
  |  Branch (48:25): [True: 125k, False: 151]
  ------------------
   49|   126k|         }
   50|   126k|      }
_ZN3tao5pegtl8internal3seqIJN8usbguard12UEventParser6headerENS4_10attributesEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNS3_6UEventEEEEbRT3_DpOT4_:
   41|  1.25k|      {
   42|  1.25k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|  1.25k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|  1.25k|         }
   45|  1.25k|         else {
   46|  1.25k|            auto m = in.template mark< M >();
   47|  1.25k|            using m_t = decltype( m );
   48|  2.25k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 994, False: 264]
  |  Branch (48:25): [True: 679, False: 315]
  ------------------
   49|  1.25k|         }
   50|  1.25k|      }
_ZN3tao5pegtl8internal3seqIJN8usbguard12UEventParser6actionENS0_5ascii3oneIJLc64EEEENS4_7devpathENS7_IJLc0EEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS6_3eol7lf_crlfENSt3__112basic_stringIcNSL_11char_traitsIcEENSL_9allocatorIcEEEEEEJRNS3_6UEventEEEEbRT3_DpOT4_:
   41|  1.25k|      {
   42|  1.25k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|  1.25k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|  1.25k|         }
   45|  1.25k|         else {
   46|  1.25k|            auto m = in.template mark< M >();
   47|  1.25k|            using m_t = decltype( m );
   48|  6.93k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 1.08k, False: 11]
  |  Branch (48:25): [True: 994, False: 93]
  |  Branch (48:25): [True: 1.09k, False: 100]
  |  Branch (48:25): [True: 1.19k, False: 60]
  ------------------
   49|  1.25k|         }
   50|  1.25k|      }
_ZN3tao5pegtl8internal3seqIJNS0_5ascii6rangesIJLc97ELc122EEEENS0_4starIS5_JEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocatorIcEEEEEEJRNSC_6UEventEEEEbRT3_DpOT4_:
   41|  1.25k|      {
   42|  1.25k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|  1.25k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|  1.25k|         }
   45|  1.25k|         else {
   46|  1.25k|            auto m = in.template mark< M >();
   47|  1.25k|            using m_t = decltype( m );
   48|  2.45k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 1.19k, False: 60]
  |  Branch (48:25): [True: 1.19k, False: 0]
  ------------------
   49|  1.25k|         }
   50|  1.25k|      }
_ZN3tao5pegtl8internal3seqIJNS0_5ascii5printENS0_4starIS4_JEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNSB_6UEventEEEEbRT3_DpOT4_:
   41|  1.09k|      {
   42|  1.09k|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|  1.09k|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|  1.09k|         }
   45|  1.09k|         else {
   46|  1.09k|            auto m = in.template mark< M >();
   47|  1.09k|            using m_t = decltype( m );
   48|  2.18k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 1.08k, False: 11]
  |  Branch (48:25): [True: 1.08k, False: 0]
  ------------------
   49|  1.09k|         }
   50|  1.09k|      }
_ZN3tao5pegtl8internal3seqIJN8usbguard12UEventParser9attributeENS1_4starINS0_5ascii3oneIJLc0ELc10EEEEJS5_EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS7_3eol7lf_crlfENSt3__112basic_stringIcNSL_11char_traitsIcEENSL_9allocatorIcEEEEEEJRNS3_6UEventEEEEbRT3_DpOT4_:
   41|    994|      {
   42|    994|         if constexpr( sizeof...( Rules ) == 1 ) {
  ------------------
  |  Branch (42:24): [Folded - Ignored]
  ------------------
   43|    994|            return Control< Rules... >::template match< A, M, Action, Control >( in, st... );
   44|    994|         }
   45|    994|         else {
   46|    994|            auto m = in.template mark< M >();
   47|    994|            using m_t = decltype( m );
   48|  1.78k|            return m( ( Control< Rules >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) && ... ) );
  ------------------
  |  Branch (48:25): [True: 788, False: 206]
  |  Branch (48:25): [True: 679, False: 109]
  ------------------
   49|    994|         }
   50|    994|      }

_ZN3tao5pegtl8internal4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEbRT3_DpOT4_:
   40|   126k|      {
   41|  10.2M|         while( Control< Rule >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (41:17): [True: 10.1M, False: 126k]
  ------------------
   42|  10.1M|         }
   43|   126k|         return true;
   44|   126k|      }
_ZN3tao5pegtl8internal4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEbRT3_DpOT4_:
   40|   126k|      {
   41|  11.7M|         while( Control< Rule >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (41:17): [True: 11.5M, False: 126k]
  ------------------
   42|  11.5M|         }
   43|   126k|         return true;
   44|   126k|      }
_ZN3tao5pegtl8internal4starINS1_3seqIJNS0_5ascii3oneIJLc0ELc10EEEEN8usbguard12UEventParser9attributeEEEEJEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS8_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSL_11char_traitsIcEENSL_9allocatorIcEEEEEEJRNS7_6UEventEEEEbRT3_DpOT4_:
   40|    788|      {
   41|   126k|         while( Control< Rule >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (41:17): [True: 125k, False: 788]
  ------------------
   42|   125k|         }
   43|    788|         return true;
   44|    788|      }
_ZN3tao5pegtl8internal4starINS0_5ascii6rangesIJLc97ELc122EEEEJEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEbRT3_DpOT4_:
   40|  1.19k|      {
   41|  8.48M|         while( Control< Rule >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (41:17): [True: 8.47M, False: 1.19k]
  ------------------
   42|  8.47M|         }
   43|  1.19k|         return true;
   44|  1.19k|      }
_ZN3tao5pegtl8internal4starINS0_5ascii5printEJEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   40|  1.08k|      {
   41|  5.25M|         while( Control< Rule >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (41:17): [True: 5.24M, False: 1.08k]
  ------------------
   42|  5.24M|         }
   43|  1.08k|         return true;
   44|  1.08k|      }

_ZN3tao5pegtl8internal5untilINS0_3eofEJN8usbguard12UEventParser6ueventEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS5_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNS4_6UEventEEEEbRT3_DpOT4_:
   70|  1.21k|      {
   71|  1.21k|         auto m = in.template mark< M >();
   72|  1.21k|         using m_t = decltype( m );
   73|       |
   74|  2.13k|         while( !Control< Cond >::template match< A, rewind_mode::required, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (74:17): [True: 1.25k, False: 876]
  ------------------
   75|  1.25k|            if( !Control< Rule >::template match< A, m_t::next_rewind_mode, Action, Control >( in, st... ) ) {
  ------------------
  |  Branch (75:17): [True: 340, False: 918]
  ------------------
   76|    340|               return false;
   77|    340|            }
   78|  1.25k|         }
   79|    876|         return m( true );
   80|  1.21k|      }

_ZN3tao5pegtl5matchIN8usbguard12UEventParser9attributeELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|   127k|   {
  104|   127k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   127k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   127k|      }
  107|   127k|      else {
  108|   127k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   127k|         using iterator_t = typename ParseInput::iterator_t;
  111|   127k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   127k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   127k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   127k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   127k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   127k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   127k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   127k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   127k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   127k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   127k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   127k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   127k|         }
  128|       |
  129|   127k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   127k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   127k|         }
  132|       |
  133|   127k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   127k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   127k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   127k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   127k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   127k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   127k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   127k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 118]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   127k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 357]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|    357|         else {
  160|    357|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    357|         }
  162|   127k|         (void)m( result );
  163|   127k|         return result;
  164|   127k|      }
  165|   127k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser9attributeELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|   127k|      {
   73|   127k|#if defined( __cpp_exceptions )
   74|   127k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   127k|            try {
   76|   127k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   127k|            }
   78|   127k|            catch( ... ) {
   79|   127k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   127k|               throw;
   81|   127k|            }
   82|   127k|         }
   83|   127k|         else {
   84|   127k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   127k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   127k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser9attributeELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   127k|      {
   44|   127k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   127k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser3keyELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|   127k|   {
  104|   127k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   127k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   127k|      }
  107|   127k|      else {
  108|   127k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   127k|         using iterator_t = typename ParseInput::iterator_t;
  111|   127k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   127k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   127k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   127k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   127k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   127k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   127k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   127k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   127k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   127k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   127k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   127k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   127k|         }
  128|       |
  129|   127k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   127k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   127k|         }
  132|       |
  133|   127k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   127k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   127k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   127k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   127k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   127k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   127k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   127k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 37]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   127k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 37]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|     37|         else {
  160|     37|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     37|         }
  162|   127k|         (void)m( result );
  163|   127k|         return result;
  164|   127k|      }
  165|   127k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser3keyELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|   127k|      {
   73|   127k|#if defined( __cpp_exceptions )
   74|   127k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   127k|            try {
   76|   127k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   127k|            }
   78|   127k|            catch( ... ) {
   79|   127k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   127k|               throw;
   81|   127k|            }
   82|   127k|         }
   83|   127k|         else {
   84|   127k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   127k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   127k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser3keyELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   127k|      {
   44|   127k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   127k|      }
_ZN3tao5pegtl5matchINS0_5ascii6rangesIJLc65ELc90EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|   127k|   {
  104|   127k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   127k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   127k|      }
  107|   127k|      else {
  108|   127k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   127k|         using iterator_t = typename ParseInput::iterator_t;
  111|   127k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   127k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   127k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   127k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   127k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   127k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   127k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   127k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   127k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   127k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   127k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   127k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   127k|         }
  128|       |
  129|   127k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   127k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   127k|         }
  132|       |
  133|   127k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   127k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   127k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   127k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   127k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   127k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   127k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   127k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 37]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   127k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 37]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|     37|         else {
  160|     37|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     37|         }
  162|   127k|         (void)m( result );
  163|   127k|         return result;
  164|   127k|      }
  165|   127k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii6rangesIJLc65ELc90EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|   127k|      {
   73|   127k|#if defined( __cpp_exceptions )
   74|   127k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   127k|            try {
   76|   127k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   127k|            }
   78|   127k|            catch( ... ) {
   79|   127k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   127k|               throw;
   81|   127k|            }
   82|   127k|         }
   83|   127k|         else {
   84|   127k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   127k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   127k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii6rangesIJLc65ELc90EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|   127k|      {
   59|   127k|         return Rule::match( in );
   60|   127k|      }
_ZN3tao5pegtl5matchINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 0]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 0]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|      0|         else {
  160|      0|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|      0|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   126k|      {
   44|   126k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   126k|      }
_ZN3tao5pegtl5matchINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  10.2M|   {
  104|  10.2M|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  10.2M|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  10.2M|      }
  107|  10.2M|      else {
  108|  10.2M|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  10.2M|         using iterator_t = typename ParseInput::iterator_t;
  111|  10.2M|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  10.2M|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  10.2M|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  10.2M|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  10.2M|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  10.2M|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  10.2M|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  10.2M|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  10.2M|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  10.2M|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  10.2M|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  10.2M|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  10.2M|         }
  128|       |
  129|  10.2M|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  10.2M|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  10.2M|         }
  132|       |
  133|  10.2M|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  10.2M|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  10.2M|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  10.2M|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  10.2M|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  10.2M|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  10.2M|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  10.2M|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 10.1M, False: 126k]
  ------------------
  143|  10.1M|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  10.1M|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  10.1M|            }
  146|  10.1M|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  10.1M|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  10.1M|            }
  149|  10.1M|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  10.1M|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  10.1M|            }
  152|  10.1M|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  10.1M|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  10.1M|            }
  155|  10.1M|         }
  156|  10.2M|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 10.1M, False: 126k]
  ------------------
  157|  10.1M|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  10.1M|         }
  159|   126k|         else {
  160|   126k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|   126k|         }
  162|  10.2M|         (void)m( result );
  163|  10.2M|         return result;
  164|  10.2M|      }
  165|  10.2M|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  10.2M|      {
   73|  10.2M|#if defined( __cpp_exceptions )
   74|  10.2M|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  10.2M|            try {
   76|  10.2M|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  10.2M|            }
   78|  10.2M|            catch( ... ) {
   79|  10.2M|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  10.2M|               throw;
   81|  10.2M|            }
   82|  10.2M|         }
   83|  10.2M|         else {
   84|  10.2M|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  10.2M|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  10.2M|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  10.2M|      {
   59|  10.2M|         return Rule::match( in );
   60|  10.2M|      }
_ZN3tao5pegtl5matchINS0_5ascii3oneIJLc61EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 67]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 67]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|     67|         else {
  160|     67|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     67|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii3oneIJLc61EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii3oneIJLc61EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|   126k|      {
   59|   126k|         return Rule::match( in );
   60|   126k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser5valueELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 14]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 14]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|     14|         else {
  160|     14|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     14|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser5valueELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser5valueELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   126k|      {
   44|   126k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   126k|      }
_ZN3tao5pegtl5matchINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 14]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 14]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|     14|         else {
  160|     14|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     14|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|   126k|      {
   59|   126k|         return Rule::match( in );
   60|   126k|      }
_ZN3tao5pegtl5matchINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 0]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 0]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|      0|         else {
  160|      0|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|      0|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   126k|      {
   44|   126k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   126k|      }
_ZN3tao5pegtl5matchINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  11.7M|   {
  104|  11.7M|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  11.7M|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  11.7M|      }
  107|  11.7M|      else {
  108|  11.7M|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  11.7M|         using iterator_t = typename ParseInput::iterator_t;
  111|  11.7M|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  11.7M|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  11.7M|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  11.7M|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  11.7M|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  11.7M|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  11.7M|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  11.7M|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  11.7M|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  11.7M|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  11.7M|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  11.7M|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  11.7M|         }
  128|       |
  129|  11.7M|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  11.7M|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  11.7M|         }
  132|       |
  133|  11.7M|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  11.7M|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  11.7M|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  11.7M|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  11.7M|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  11.7M|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  11.7M|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  11.7M|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 11.5M, False: 126k]
  ------------------
  143|  11.5M|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  11.5M|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  11.5M|            }
  146|  11.5M|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  11.5M|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  11.5M|            }
  149|  11.5M|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  11.5M|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  11.5M|            }
  152|  11.5M|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  11.5M|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  11.5M|            }
  155|  11.5M|         }
  156|  11.7M|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 11.5M, False: 126k]
  ------------------
  157|  11.5M|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  11.5M|         }
  159|   126k|         else {
  160|   126k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|   126k|         }
  162|  11.7M|         (void)m( result );
  163|  11.7M|         return result;
  164|  11.7M|      }
  165|  11.7M|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  11.7M|      {
   73|  11.7M|#if defined( __cpp_exceptions )
   74|  11.7M|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  11.7M|            try {
   76|  11.7M|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  11.7M|            }
   78|  11.7M|            catch( ... ) {
   79|  11.7M|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  11.7M|               throw;
   81|  11.7M|            }
   82|  11.7M|         }
   83|  11.7M|         else {
   84|  11.7M|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  11.7M|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  11.7M|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii7not_oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  11.7M|      {
   59|  11.7M|         return Rule::match( in );
   60|  11.7M|      }
_ZN3tao5pegtl5matchINS0_8internal4starINS0_5ascii3oneIJLc0ELc10EEEEJN8usbguard12UEventParser9attributeEEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS8_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|    788|   {
  104|    788|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|    788|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|    788|      }
  107|    788|      else {
  108|    788|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|    788|         using iterator_t = typename ParseInput::iterator_t;
  111|    788|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  112|    788|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  113|    788|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  114|       |
  115|    788|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  116|    788|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  117|    788|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  118|       |
  119|    788|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|    788|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|    788|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|    788|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|    788|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  126|    788|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|    788|         }
  128|       |
  129|    788|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  130|    788|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|    788|         }
  132|       |
  133|    788|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|    788|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|    788|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|    788|         constexpr bool use_marker = has_apply || has_apply0_bool;
  138|       |
  139|    788|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|    788|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|    788|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|    788|         if( result ) {
  143|    788|            if constexpr( has_apply_void ) {
  144|    788|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    788|            }
  146|    788|            else if constexpr( has_apply_bool ) {
  147|    788|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    788|            }
  149|    788|            else if constexpr( has_apply0_void ) {
  150|    788|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    788|            }
  152|    788|            else if constexpr( has_apply0_bool ) {
  153|    788|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    788|            }
  155|    788|         }
  156|    788|         if( result ) {
  157|    788|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    788|         }
  159|    788|         else {
  160|    788|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    788|         }
  162|    788|         (void)m( result );
  163|    788|         return result;
  164|    788|      }
  165|    788|   }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS1_4starINS0_5ascii3oneIJLc0ELc10EEEEJN8usbguard12UEventParser9attributeEEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS8_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNS7_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|    788|      {
   44|    788|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|    788|      }
_ZN3tao5pegtl5matchINS0_8internal3seqIJNS0_5ascii3oneIJLc0ELc10EEEEN8usbguard12UEventParser9attributeEEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS8_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  143|   126k|            if constexpr( has_apply_void ) {
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|   126k|         else {
  160|   126k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|   126k|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS1_3seqIJNS0_5ascii3oneIJLc0ELc10EEEEN8usbguard12UEventParser9attributeEEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS8_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSJ_11char_traitsIcEENSJ_9allocatorIcEEEEEEJRNS7_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|   126k|      {
   44|   126k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|   126k|      }
_ZN3tao5pegtl5matchINS0_5ascii3oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|   126k|   {
  104|   126k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|   126k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|   126k|      }
  107|   126k|      else {
  108|   126k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|   126k|         using iterator_t = typename ParseInput::iterator_t;
  111|   126k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|   126k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|   126k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|   126k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|   126k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|   126k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|   126k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|   126k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|   126k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|   126k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|   126k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|   126k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|   126k|         }
  128|       |
  129|   126k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|   126k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|   126k|         }
  132|       |
  133|   126k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|   126k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|   126k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|   126k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|   126k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|   126k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|   126k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|   126k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 126k, False: 637]
  ------------------
  143|   126k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|   126k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|   126k|            }
  146|   126k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|   126k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|   126k|            }
  149|   126k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|   126k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|   126k|            }
  152|   126k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|   126k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|   126k|            }
  155|   126k|         }
  156|   126k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 126k, False: 637]
  ------------------
  157|   126k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|   126k|         }
  159|    637|         else {
  160|    637|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    637|         }
  162|   126k|         (void)m( result );
  163|   126k|         return result;
  164|   126k|      }
  165|   126k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii3oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|   126k|      {
   73|   126k|#if defined( __cpp_exceptions )
   74|   126k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|   126k|            try {
   76|   126k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|   126k|            }
   78|   126k|            catch( ... ) {
   79|   126k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|   126k|               throw;
   81|   126k|            }
   82|   126k|         }
   83|   126k|         else {
   84|   126k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|   126k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|   126k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii3oneIJLc0ELc10EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|   126k|      {
   59|   126k|         return Rule::match( in );
   60|   126k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser7grammarELNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|  1.21k|   {
  104|  1.21k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.21k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.21k|      }
  107|  1.21k|      else {
  108|  1.21k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.21k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.21k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.21k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.21k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.21k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.21k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.21k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.21k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.21k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.21k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.21k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.21k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.21k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.21k|         }
  128|       |
  129|  1.21k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.21k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.21k|         }
  132|       |
  133|  1.21k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.21k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.21k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.21k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.21k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.21k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.21k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.21k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 637, False: 579]
  ------------------
  143|    637|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    637|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    637|            }
  146|    637|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    637|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    637|            }
  149|    637|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    637|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    637|            }
  152|    637|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    637|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    637|            }
  155|    637|         }
  156|  1.21k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 637, False: 579]
  ------------------
  157|    637|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    637|         }
  159|    579|         else {
  160|    579|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    579|         }
  162|  1.21k|         (void)m( result );
  163|  1.21k|         return result;
  164|  1.21k|      }
  165|  1.21k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser7grammarELNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|  1.21k|      {
   73|  1.21k|#if defined( __cpp_exceptions )
   74|  1.21k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.21k|            try {
   76|  1.21k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.21k|            }
   78|  1.21k|            catch( ... ) {
   79|  1.21k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.21k|               throw;
   81|  1.21k|            }
   82|  1.21k|         }
   83|  1.21k|         else {
   84|  1.21k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.21k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.21k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser7grammarELNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.21k|      {
   44|  1.21k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.21k|      }
_ZN3tao5pegtl5matchINS0_3eofELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS5_6UEventEEEEDaRT4_DpOT5_:
  103|  1.89k|   {
  104|  1.89k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.89k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.89k|      }
  107|  1.89k|      else {
  108|  1.89k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.89k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.89k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.89k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.89k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.89k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.89k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.89k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.89k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.89k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.89k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.89k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.89k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.89k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.89k|         }
  128|       |
  129|  1.89k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.89k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.89k|         }
  132|       |
  133|  1.89k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.89k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.89k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.89k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.89k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.89k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.89k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.89k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 637, False: 1.25k]
  ------------------
  143|    637|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    637|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    637|            }
  146|    637|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    637|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    637|            }
  149|    637|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    637|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    637|            }
  152|    637|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    637|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    637|            }
  155|    637|         }
  156|  1.89k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 637, False: 1.25k]
  ------------------
  157|    637|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    637|         }
  159|  1.25k|         else {
  160|  1.25k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|  1.25k|         }
  162|  1.89k|         (void)m( result );
  163|  1.89k|         return result;
  164|  1.89k|      }
  165|  1.89k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_3eofELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS6_6UEventEEEEDaRT4_DpOT5_:
   72|  1.89k|      {
   73|  1.89k|#if defined( __cpp_exceptions )
   74|  1.89k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.89k|            try {
   76|  1.89k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.89k|            }
   78|  1.89k|            catch( ... ) {
   79|  1.89k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.89k|               throw;
   81|  1.89k|            }
   82|  1.89k|         }
   83|  1.89k|         else {
   84|  1.89k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.89k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.89k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_3eofELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS6_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  1.89k|      {
   59|  1.89k|         return Rule::match( in );
   60|  1.89k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser6ueventELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|  1.25k|   {
  104|  1.25k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.25k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.25k|      }
  107|  1.25k|      else {
  108|  1.25k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.25k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.25k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.25k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.25k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.25k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.25k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.25k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.25k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.25k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.25k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.25k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.25k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.25k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.25k|         }
  128|       |
  129|  1.25k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.25k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.25k|         }
  132|       |
  133|  1.25k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.25k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.25k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.25k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.25k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.25k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.25k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.25k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 679, False: 579]
  ------------------
  143|    679|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    679|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    679|            }
  146|    679|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    679|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    679|            }
  149|    679|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    679|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    679|            }
  152|    679|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    679|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    679|            }
  155|    679|         }
  156|  1.25k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 679, False: 579]
  ------------------
  157|    679|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    679|         }
  159|    579|         else {
  160|    579|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    579|         }
  162|  1.25k|         (void)m( result );
  163|  1.25k|         return result;
  164|  1.25k|      }
  165|  1.25k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser6ueventELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|  1.25k|      {
   73|  1.25k|#if defined( __cpp_exceptions )
   74|  1.25k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.25k|            try {
   76|  1.25k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.25k|            }
   78|  1.25k|            catch( ... ) {
   79|  1.25k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.25k|               throw;
   81|  1.25k|            }
   82|  1.25k|         }
   83|  1.25k|         else {
   84|  1.25k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.25k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.25k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser6ueventELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.25k|      {
   44|  1.25k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.25k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser6headerELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|  1.25k|   {
  104|  1.25k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.25k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.25k|      }
  107|  1.25k|      else {
  108|  1.25k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.25k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.25k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.25k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.25k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.25k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.25k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.25k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.25k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.25k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.25k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.25k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.25k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.25k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.25k|         }
  128|       |
  129|  1.25k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.25k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.25k|         }
  132|       |
  133|  1.25k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.25k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.25k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.25k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.25k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.25k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.25k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.25k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 994, False: 264]
  ------------------
  143|    994|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    994|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    994|            }
  146|    994|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    994|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    994|            }
  149|    994|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    994|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    994|            }
  152|    994|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    994|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    994|            }
  155|    994|         }
  156|  1.25k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 994, False: 264]
  ------------------
  157|    994|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    994|         }
  159|    264|         else {
  160|    264|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    264|         }
  162|  1.25k|         (void)m( result );
  163|  1.25k|         return result;
  164|  1.25k|      }
  165|  1.25k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser6headerELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|  1.25k|      {
   73|  1.25k|#if defined( __cpp_exceptions )
   74|  1.25k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.25k|            try {
   76|  1.25k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.25k|            }
   78|  1.25k|            catch( ... ) {
   79|  1.25k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.25k|               throw;
   81|  1.25k|            }
   82|  1.25k|         }
   83|  1.25k|         else {
   84|  1.25k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.25k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.25k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser6headerELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.25k|      {
   44|  1.25k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.25k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser6actionELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|  1.25k|   {
  104|  1.25k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.25k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.25k|      }
  107|  1.25k|      else {
  108|  1.25k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.25k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.25k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.25k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.25k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.25k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.25k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.25k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.25k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.25k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.25k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.25k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.25k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.25k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.25k|         }
  128|       |
  129|  1.25k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.25k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.25k|         }
  132|       |
  133|  1.25k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.25k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.25k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.25k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.25k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.25k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.25k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.25k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.19k, False: 60]
  ------------------
  143|  1.19k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.19k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.19k|            }
  146|  1.19k|            else if constexpr( has_apply_bool ) {
  147|  1.19k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.19k|            }
  149|  1.19k|            else if constexpr( has_apply0_void ) {
  150|  1.19k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.19k|            }
  152|  1.19k|            else if constexpr( has_apply0_bool ) {
  153|  1.19k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.19k|            }
  155|  1.19k|         }
  156|  1.25k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.19k, False: 60]
  ------------------
  157|  1.19k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.19k|         }
  159|     60|         else {
  160|     60|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     60|         }
  162|  1.25k|         (void)m( result );
  163|  1.25k|         return result;
  164|  1.25k|      }
  165|  1.25k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser6actionELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|  1.25k|      {
   73|  1.25k|#if defined( __cpp_exceptions )
   74|  1.25k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.25k|            try {
   76|  1.25k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.25k|            }
   78|  1.25k|            catch( ... ) {
   79|  1.25k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.25k|               throw;
   81|  1.25k|            }
   82|  1.25k|         }
   83|  1.25k|         else {
   84|  1.25k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.25k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.25k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser6actionELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.25k|      {
   44|  1.25k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.25k|      }
_ZN3tao5pegtl5matchINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  1.25k|   {
  104|  1.25k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.25k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.25k|      }
  107|  1.25k|      else {
  108|  1.25k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.25k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.25k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.25k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.25k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.25k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.25k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.25k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.25k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.25k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.25k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.25k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.25k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.25k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.25k|         }
  128|       |
  129|  1.25k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.25k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.25k|         }
  132|       |
  133|  1.25k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.25k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.25k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.25k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.25k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.25k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.25k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.25k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.19k, False: 60]
  ------------------
  143|  1.19k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.19k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.19k|            }
  146|  1.19k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  1.19k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.19k|            }
  149|  1.19k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  1.19k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.19k|            }
  152|  1.19k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  1.19k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.19k|            }
  155|  1.19k|         }
  156|  1.25k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.19k, False: 60]
  ------------------
  157|  1.19k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.19k|         }
  159|     60|         else {
  160|     60|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     60|         }
  162|  1.25k|         (void)m( result );
  163|  1.25k|         return result;
  164|  1.25k|      }
  165|  1.25k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  1.25k|      {
   73|  1.25k|#if defined( __cpp_exceptions )
   74|  1.25k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.25k|            try {
   76|  1.25k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.25k|            }
   78|  1.25k|            catch( ... ) {
   79|  1.25k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.25k|               throw;
   81|  1.25k|            }
   82|  1.25k|         }
   83|  1.25k|         else {
   84|  1.25k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.25k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.25k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  1.25k|      {
   59|  1.25k|         return Rule::match( in );
   60|  1.25k|      }
_ZN3tao5pegtl5matchINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEDaRT4_DpOT5_:
  103|  1.19k|   {
  104|  1.19k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.19k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.19k|      }
  107|  1.19k|      else {
  108|  1.19k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.19k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.19k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.19k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.19k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.19k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.19k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.19k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.19k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.19k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.19k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.19k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.19k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.19k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.19k|         }
  128|       |
  129|  1.19k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.19k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.19k|         }
  132|       |
  133|  1.19k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.19k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.19k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.19k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.19k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.19k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.19k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.19k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.19k, False: 0]
  ------------------
  143|  1.19k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.19k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.19k|            }
  146|  1.19k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  1.19k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.19k|            }
  149|  1.19k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  1.19k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.19k|            }
  152|  1.19k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  1.19k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.19k|            }
  155|  1.19k|         }
  156|  1.19k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.19k, False: 0]
  ------------------
  157|  1.19k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.19k|         }
  159|      0|         else {
  160|      0|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|      0|         }
  162|  1.19k|         (void)m( result );
  163|  1.19k|         return result;
  164|  1.19k|      }
  165|  1.19k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDaRT4_DpOT5_:
   72|  1.19k|      {
   73|  1.19k|#if defined( __cpp_exceptions )
   74|  1.19k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.19k|            try {
   76|  1.19k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.19k|            }
   78|  1.19k|            catch( ... ) {
   79|  1.19k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.19k|               throw;
   81|  1.19k|            }
   82|  1.19k|         }
   83|  1.19k|         else {
   84|  1.19k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.19k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.19k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSA_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.19k|      {
   44|  1.19k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.19k|      }
_ZN3tao5pegtl5matchINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  8.48M|   {
  104|  8.48M|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  8.48M|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  8.48M|      }
  107|  8.48M|      else {
  108|  8.48M|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  8.48M|         using iterator_t = typename ParseInput::iterator_t;
  111|  8.48M|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  8.48M|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  8.48M|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  8.48M|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  8.48M|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  8.48M|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  8.48M|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  8.48M|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  8.48M|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  8.48M|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  8.48M|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  8.48M|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  8.48M|         }
  128|       |
  129|  8.48M|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  8.48M|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  8.48M|         }
  132|       |
  133|  8.48M|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  8.48M|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  8.48M|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  8.48M|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  8.48M|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  8.48M|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  8.48M|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  8.48M|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 8.47M, False: 1.19k]
  ------------------
  143|  8.47M|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  8.47M|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  8.47M|            }
  146|  8.47M|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  8.47M|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  8.47M|            }
  149|  8.47M|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  8.47M|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  8.47M|            }
  152|  8.47M|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  8.47M|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  8.47M|            }
  155|  8.47M|         }
  156|  8.48M|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 8.47M, False: 1.19k]
  ------------------
  157|  8.47M|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  8.47M|         }
  159|  1.19k|         else {
  160|  1.19k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|  1.19k|         }
  162|  8.48M|         (void)m( result );
  163|  8.48M|         return result;
  164|  8.48M|      }
  165|  8.48M|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  8.48M|      {
   73|  8.48M|#if defined( __cpp_exceptions )
   74|  8.48M|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  8.48M|            try {
   76|  8.48M|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  8.48M|            }
   78|  8.48M|            catch( ... ) {
   79|  8.48M|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  8.48M|               throw;
   81|  8.48M|            }
   82|  8.48M|         }
   83|  8.48M|         else {
   84|  8.48M|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  8.48M|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  8.48M|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii6rangesIJLc97ELc122EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  8.48M|      {
   59|  8.48M|         return Rule::match( in );
   60|  8.48M|      }
_ZN3tao5pegtl5matchINS0_5ascii3oneIJLc64EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  1.19k|   {
  104|  1.19k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.19k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.19k|      }
  107|  1.19k|      else {
  108|  1.19k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.19k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.19k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.19k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.19k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.19k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.19k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.19k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.19k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.19k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.19k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.19k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.19k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.19k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.19k|         }
  128|       |
  129|  1.19k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.19k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.19k|         }
  132|       |
  133|  1.19k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.19k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.19k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.19k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.19k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.19k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.19k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.19k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.09k, False: 100]
  ------------------
  143|  1.09k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.09k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.09k|            }
  146|  1.09k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  1.09k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.09k|            }
  149|  1.09k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  1.09k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.09k|            }
  152|  1.09k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  1.09k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.09k|            }
  155|  1.09k|         }
  156|  1.19k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.09k, False: 100]
  ------------------
  157|  1.09k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.09k|         }
  159|    100|         else {
  160|    100|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    100|         }
  162|  1.19k|         (void)m( result );
  163|  1.19k|         return result;
  164|  1.19k|      }
  165|  1.19k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii3oneIJLc64EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  1.19k|      {
   73|  1.19k|#if defined( __cpp_exceptions )
   74|  1.19k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.19k|            try {
   76|  1.19k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.19k|            }
   78|  1.19k|            catch( ... ) {
   79|  1.19k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.19k|               throw;
   81|  1.19k|            }
   82|  1.19k|         }
   83|  1.19k|         else {
   84|  1.19k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.19k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.19k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii3oneIJLc64EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  1.19k|      {
   59|  1.19k|         return Rule::match( in );
   60|  1.19k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser7devpathELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|  1.09k|   {
  104|  1.09k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.09k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.09k|      }
  107|  1.09k|      else {
  108|  1.09k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.09k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.09k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.09k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.09k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.09k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.09k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.09k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.09k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.09k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.09k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.09k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.09k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.09k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.09k|         }
  128|       |
  129|  1.09k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.09k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.09k|         }
  132|       |
  133|  1.09k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.09k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.09k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.09k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.09k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.09k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.09k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.09k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.08k, False: 11]
  ------------------
  143|  1.08k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.08k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.08k|            }
  146|  1.08k|            else if constexpr( has_apply_bool ) {
  147|  1.08k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.08k|            }
  149|  1.08k|            else if constexpr( has_apply0_void ) {
  150|  1.08k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.08k|            }
  152|  1.08k|            else if constexpr( has_apply0_bool ) {
  153|  1.08k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.08k|            }
  155|  1.08k|         }
  156|  1.09k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.08k, False: 11]
  ------------------
  157|  1.08k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.08k|         }
  159|     11|         else {
  160|     11|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     11|         }
  162|  1.09k|         (void)m( result );
  163|  1.09k|         return result;
  164|  1.09k|      }
  165|  1.09k|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser7devpathELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|  1.09k|      {
   73|  1.09k|#if defined( __cpp_exceptions )
   74|  1.09k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.09k|            try {
   76|  1.09k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.09k|            }
   78|  1.09k|            catch( ... ) {
   79|  1.09k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.09k|               throw;
   81|  1.09k|            }
   82|  1.09k|         }
   83|  1.09k|         else {
   84|  1.09k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.09k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.09k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser7devpathELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.09k|      {
   44|  1.09k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.09k|      }
_ZN3tao5pegtl5matchINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS6_6UEventEEEEDaRT4_DpOT5_:
  103|  1.09k|   {
  104|  1.09k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.09k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.09k|      }
  107|  1.09k|      else {
  108|  1.09k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.09k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.09k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.09k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.09k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.09k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.09k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.09k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.09k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.09k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.09k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.09k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.09k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.09k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.09k|         }
  128|       |
  129|  1.09k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.09k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.09k|         }
  132|       |
  133|  1.09k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.09k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.09k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.09k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.09k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.09k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.09k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.09k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.08k, False: 11]
  ------------------
  143|  1.08k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.08k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.08k|            }
  146|  1.08k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  1.08k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.08k|            }
  149|  1.08k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  1.08k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.08k|            }
  152|  1.08k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  1.08k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.08k|            }
  155|  1.08k|         }
  156|  1.09k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.08k, False: 11]
  ------------------
  157|  1.08k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.08k|         }
  159|     11|         else {
  160|     11|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     11|         }
  162|  1.09k|         (void)m( result );
  163|  1.09k|         return result;
  164|  1.09k|      }
  165|  1.09k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
   72|  1.09k|      {
   73|  1.09k|#if defined( __cpp_exceptions )
   74|  1.09k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.09k|            try {
   76|  1.09k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.09k|            }
   78|  1.09k|            catch( ... ) {
   79|  1.09k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.09k|               throw;
   81|  1.09k|            }
   82|  1.09k|         }
   83|  1.09k|         else {
   84|  1.09k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.09k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.09k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  1.09k|      {
   59|  1.09k|         return Rule::match( in );
   60|  1.09k|      }
_ZN3tao5pegtl5matchINS0_4starINS0_5ascii5printEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
  103|  1.08k|   {
  104|  1.08k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.08k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.08k|      }
  107|  1.08k|      else {
  108|  1.08k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.08k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.08k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.08k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.08k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.08k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.08k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.08k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.08k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.08k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.08k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.08k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.08k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.08k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.08k|         }
  128|       |
  129|  1.08k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.08k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.08k|         }
  132|       |
  133|  1.08k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.08k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.08k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.08k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.08k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.08k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.08k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.08k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 1.08k, False: 0]
  ------------------
  143|  1.08k|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  1.08k|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  1.08k|            }
  146|  1.08k|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  1.08k|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  1.08k|            }
  149|  1.08k|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  1.08k|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  1.08k|            }
  152|  1.08k|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  1.08k|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  1.08k|            }
  155|  1.08k|         }
  156|  1.08k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 1.08k, False: 0]
  ------------------
  157|  1.08k|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  1.08k|         }
  159|      0|         else {
  160|      0|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|      0|         }
  162|  1.08k|         (void)m( result );
  163|  1.08k|         return result;
  164|  1.08k|      }
  165|  1.08k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_4starINS0_5ascii5printEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEDaRT4_DpOT5_:
   72|  1.08k|      {
   73|  1.08k|#if defined( __cpp_exceptions )
   74|  1.08k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.08k|            try {
   76|  1.08k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.08k|            }
   78|  1.08k|            catch( ... ) {
   79|  1.08k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.08k|               throw;
   81|  1.08k|            }
   82|  1.08k|         }
   83|  1.08k|         else {
   84|  1.08k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.08k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.08k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_4starINS0_5ascii5printEJEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNS9_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|  1.08k|      {
   44|  1.08k|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|  1.08k|      }
_ZN3tao5pegtl5matchINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS6_6UEventEEEEDaRT4_DpOT5_:
  103|  5.25M|   {
  104|  5.25M|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  5.25M|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  5.25M|      }
  107|  5.25M|      else {
  108|  5.25M|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  5.25M|         using iterator_t = typename ParseInput::iterator_t;
  111|  5.25M|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  5.25M|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  5.25M|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  5.25M|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  5.25M|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  5.25M|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  5.25M|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  5.25M|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  5.25M|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  5.25M|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  5.25M|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  5.25M|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  5.25M|         }
  128|       |
  129|  5.25M|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  5.25M|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  5.25M|         }
  132|       |
  133|  5.25M|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  5.25M|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  5.25M|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  5.25M|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  5.25M|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  5.25M|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  5.25M|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  5.25M|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 5.24M, False: 1.08k]
  ------------------
  143|  5.24M|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|  5.24M|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|  5.24M|            }
  146|  5.24M|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|  5.24M|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|  5.24M|            }
  149|  5.24M|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|  5.24M|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|  5.24M|            }
  152|  5.24M|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|  5.24M|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|  5.24M|            }
  155|  5.24M|         }
  156|  5.25M|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 5.24M, False: 1.08k]
  ------------------
  157|  5.24M|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|  5.24M|         }
  159|  1.08k|         else {
  160|  1.08k|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|  1.08k|         }
  162|  5.25M|         (void)m( result );
  163|  5.25M|         return result;
  164|  5.25M|      }
  165|  5.25M|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
   72|  5.25M|      {
   73|  5.25M|#if defined( __cpp_exceptions )
   74|  5.25M|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  5.25M|            try {
   76|  5.25M|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  5.25M|            }
   78|  5.25M|            catch( ... ) {
   79|  5.25M|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  5.25M|               throw;
   81|  5.25M|            }
   82|  5.25M|         }
   83|  5.25M|         else {
   84|  5.25M|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  5.25M|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  5.25M|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii5printELNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  5.25M|      {
   59|  5.25M|         return Rule::match( in );
   60|  5.25M|      }
_ZN3tao5pegtl5matchINS0_5ascii3oneIJLc0EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEDaRT4_DpOT5_:
  103|  1.08k|   {
  104|  1.08k|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|  1.08k|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|  1.08k|      }
  107|  1.08k|      else {
  108|  1.08k|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|  1.08k|         using iterator_t = typename ParseInput::iterator_t;
  111|  1.08k|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|  1.08k|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|  1.08k|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|  1.08k|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|  1.08k|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|  1.08k|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|  1.08k|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|  1.08k|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|  1.08k|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|  1.08k|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|  1.08k|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|  1.08k|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|  1.08k|         }
  128|       |
  129|  1.08k|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|  1.08k|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|  1.08k|         }
  132|       |
  133|  1.08k|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|  1.08k|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|  1.08k|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|  1.08k|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|  1.08k|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|  1.08k|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|  1.08k|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|  1.08k|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 994, False: 93]
  ------------------
  143|    994|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    994|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    994|            }
  146|    994|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    994|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    994|            }
  149|    994|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    994|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    994|            }
  152|    994|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    994|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    994|            }
  155|    994|         }
  156|  1.08k|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 994, False: 93]
  ------------------
  157|    994|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    994|         }
  159|     93|         else {
  160|     93|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|     93|         }
  162|  1.08k|         (void)m( result );
  163|  1.08k|         return result;
  164|  1.08k|      }
  165|  1.08k|   }
_ZN3tao5pegtl8internal20match_control_unwindINS0_5ascii3oneIJLc0EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDaRT4_DpOT5_:
   72|  1.08k|      {
   73|  1.08k|#if defined( __cpp_exceptions )
   74|  1.08k|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|  1.08k|            try {
   76|  1.08k|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|  1.08k|            }
   78|  1.08k|            catch( ... ) {
   79|  1.08k|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|  1.08k|               throw;
   81|  1.08k|            }
   82|  1.08k|         }
   83|  1.08k|         else {
   84|  1.08k|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|  1.08k|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|  1.08k|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlINS0_5ascii3oneIJLc0EEEELNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS8_6UEventEEEEDTclsrT_5matchfp_EERT4_DpOT5_:
   58|  1.08k|      {
   59|  1.08k|         return Rule::match( in );
   60|  1.08k|      }
_ZN3tao5pegtl5matchIN8usbguard12UEventParser10attributesELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaRT4_DpOT5_:
  103|    994|   {
  104|    994|      if constexpr( !Control< Rule >::enable ) {
  ------------------
  |  Branch (104:21): [Folded - Ignored]
  ------------------
  105|    994|         return internal::match_no_control< Rule, A, M, Action, Control >( in, st... );
  106|    994|      }
  107|    994|      else {
  108|    994|         constexpr bool enable_action = ( A == apply_mode::action );
  109|       |
  110|    994|         using iterator_t = typename ParseInput::iterator_t;
  111|    994|         constexpr bool has_apply_void = enable_action && internal::has_apply< Control< Rule >, void, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (111:42): [Folded - Ignored]
  |  Branch (111:59): [Folded - Ignored]
  ------------------
  112|    994|         constexpr bool has_apply_bool = enable_action && internal::has_apply< Control< Rule >, bool, Action, const iterator_t&, const ParseInput&, States... >;
  ------------------
  |  Branch (112:42): [Folded - Ignored]
  |  Branch (112:59): [Folded - Ignored]
  ------------------
  113|    994|         constexpr bool has_apply = has_apply_void || has_apply_bool;
  ------------------
  |  Branch (113:37): [Folded - Ignored]
  |  Branch (113:55): [Folded - Ignored]
  ------------------
  114|       |
  115|    994|         constexpr bool has_apply0_void = enable_action && internal::has_apply0< Control< Rule >, void, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (115:43): [Folded - Ignored]
  |  Branch (115:60): [Folded - Ignored]
  ------------------
  116|    994|         constexpr bool has_apply0_bool = enable_action && internal::has_apply0< Control< Rule >, bool, Action, const ParseInput&, States... >;
  ------------------
  |  Branch (116:43): [Folded - Ignored]
  |  Branch (116:60): [Folded - Ignored]
  ------------------
  117|    994|         constexpr bool has_apply0 = has_apply0_void || has_apply0_bool;
  ------------------
  |  Branch (117:38): [Folded - Ignored]
  |  Branch (117:57): [Folded - Ignored]
  ------------------
  118|       |
  119|    994|         static_assert( !( has_apply && has_apply0 ), "both apply() and apply0() defined" );
  120|       |
  121|    994|         constexpr bool is_nothing = std::is_base_of_v< nothing< Rule >, Action< Rule > >;
  122|    994|         static_assert( !( has_apply && is_nothing ), "unexpected apply() defined" );
  123|    994|         static_assert( !( has_apply0 && is_nothing ), "unexpected apply0() defined" );
  124|       |
  125|    994|         if constexpr( !has_apply && std::is_base_of_v< require_apply, Action< Rule > > ) {
  ------------------
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:24): [Folded - Ignored]
  |  Branch (125:38): [Folded - Ignored]
  ------------------
  126|    994|            internal::missing_apply< Control< Rule >, Action >( in, st... );
  127|    994|         }
  128|       |
  129|    994|         if constexpr( !has_apply0 && std::is_base_of_v< require_apply0, Action< Rule > > ) {
  ------------------
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:24): [Folded - Ignored]
  |  Branch (129:39): [Folded - Ignored]
  ------------------
  130|    994|            internal::missing_apply0< Control< Rule >, Action >( in, st... );
  131|    994|         }
  132|       |
  133|    994|         constexpr bool validate_nothing = std::is_base_of_v< maybe_nothing, Action< void > >;
  134|    994|         constexpr bool is_maybe_nothing = std::is_base_of_v< maybe_nothing, Action< Rule > >;
  135|    994|         static_assert( !enable_action || !validate_nothing || is_nothing || is_maybe_nothing || has_apply || has_apply0, "either apply() or apply0() must be defined" );
  136|       |
  137|    994|         constexpr bool use_marker = has_apply || has_apply0_bool;
  ------------------
  |  Branch (137:38): [Folded - Ignored]
  |  Branch (137:51): [Folded - Ignored]
  ------------------
  138|       |
  139|    994|         auto m = in.template mark< ( use_marker ? rewind_mode::required : rewind_mode::dontcare ) >();
  140|    994|         Control< Rule >::start( static_cast< const ParseInput& >( in ), st... );
  141|    994|         auto result = internal::match_control_unwind< Rule, A, ( use_marker ? rewind_mode::active : M ), Action, Control >( in, st... );
  142|    994|         if( result ) {
  ------------------
  |  Branch (142:14): [True: 679, False: 315]
  ------------------
  143|    679|            if constexpr( has_apply_void ) {
  ------------------
  |  Branch (143:27): [Folded - Ignored]
  ------------------
  144|    679|               Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  145|    679|            }
  146|    679|            else if constexpr( has_apply_bool ) {
  ------------------
  |  Branch (146:32): [Folded - Ignored]
  ------------------
  147|    679|               result = Control< Rule >::template apply< Action >( m.iterator(), static_cast< const ParseInput& >( in ), st... );
  148|    679|            }
  149|    679|            else if constexpr( has_apply0_void ) {
  ------------------
  |  Branch (149:32): [Folded - Ignored]
  ------------------
  150|    679|               Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  151|    679|            }
  152|    679|            else if constexpr( has_apply0_bool ) {
  ------------------
  |  Branch (152:32): [Folded - Ignored]
  ------------------
  153|    679|               result = Control< Rule >::template apply0< Action >( static_cast< const ParseInput& >( in ), st... );
  154|    679|            }
  155|    679|         }
  156|    994|         if( result ) {
  ------------------
  |  Branch (156:14): [True: 679, False: 315]
  ------------------
  157|    679|            Control< Rule >::success( static_cast< const ParseInput& >( in ), st... );
  158|    679|         }
  159|    315|         else {
  160|    315|            Control< Rule >::failure( static_cast< const ParseInput& >( in ), st... );
  161|    315|         }
  162|    994|         (void)m( result );
  163|    994|         return result;
  164|    994|      }
  165|    994|   }
_ZN3tao5pegtl8internal20match_control_unwindIN8usbguard12UEventParser10attributesELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDaRT4_DpOT5_:
   72|    994|      {
   73|    994|#if defined( __cpp_exceptions )
   74|    994|         if constexpr( has_unwind< Control< Rule >, void, const ParseInput&, States... > ) {
  ------------------
  |  Branch (74:24): [Folded - Ignored]
  ------------------
   75|    994|            try {
   76|    994|               return match_no_control< Rule, A, M, Action, Control >( in, st... );
   77|    994|            }
   78|    994|            catch( ... ) {
   79|    994|               Control< Rule >::unwind( static_cast< const ParseInput& >( in ), st... );
   80|    994|               throw;
   81|    994|            }
   82|    994|         }
   83|    994|         else {
   84|    994|            return match_no_control< Rule, A, M, Action, Control >( in, st... );
   85|    994|         }
   86|       |#else
   87|       |         return match_no_control< Rule, A, M, Action, Control >( in, st... );
   88|       |#endif
   89|    994|      }
UEventParser.cpp:_ZN3tao5pegtl8internalL16match_no_controlIN8usbguard12UEventParser10attributesELNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS4_7actionsENS0_6normalENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS3_6UEventEEEEDTclsrT_5matchIXT0_EXT1_ET2_T3_Efp_spfp0_EERT4_DpOT5_:
   43|    994|      {
   44|    994|         return Rule::template match< A, M, Action, Control >( in, st... );
   45|    994|      }

_ZN3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEC2ISC_EEPKcmOT_:
  249|  1.21k|      {}
_ZN3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEC2ISD_EEPKcSH_OT_:
   58|  1.21k|         {}
_ZN3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE4markILNS0_11rewind_modeE2EEENS0_8internal6markerINSG_8iteratorEXT_EEEv:
  338|  36.7M|      {
  339|  36.7M|         return internal::marker< iterator_t, M >( iterator() );
  340|  36.7M|      }
_ZN3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE8iteratorEv:
  308|  37.3M|      {
  309|  37.3M|         return this->m_current;
  310|  37.3M|      }
_ZN3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE4markILNS0_11rewind_modeE1EEENS0_8internal6markerINSG_8iteratorEXT_EEEv:
  338|   257k|      {
  339|   257k|         return internal::marker< iterator_t, M >( iterator() );
  340|   257k|      }
_ZN3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE4markILNS0_11rewind_modeE0EEENS0_8internal6markerINSG_8iteratorEXT_EEEv:
  338|   386k|      {
  339|   386k|         return internal::marker< iterator_t, M >( iterator() );
  340|   386k|      }
_ZNK3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE5emptyEv:
  288|  36.2M|      {
  289|  36.2M|         return this->current() == this->end();
  290|  36.2M|      }
_ZNK3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEE7currentEv:
   69|  72.9M|         {
   70|  72.9M|            return m_current.data;
   71|  72.9M|         }
_ZNK3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEE3endEm:
   79|  36.2M|         {
   80|  36.2M|            return m_end;
   81|  36.2M|         }
_ZNK3tao5pegtl12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEE9peek_charEm:
  298|  36.2M|      {
  299|  36.2M|         return this->current()[ offset ];
  300|  36.2M|      }
_ZN3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEE17bump_in_this_lineEm:
  104|  35.8M|         {
  105|  35.8M|            internal::bump_in_this_line( m_current, in_count );
  106|  35.8M|         }
_ZNK3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEE8positionERKNS1_8iteratorE:
  114|    239|         {
  115|    239|            return TAO_PEGTL_NAMESPACE::position( it, m_source );
  ------------------
  |  |    8|    239|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
  116|    239|         }
_ZN3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEE4bumpEm:
   99|   126k|         {
  100|   126k|            internal::bump( m_current, in_count, Eol::ch );
  101|   126k|         }
_ZN3tao5pegtl8internal17memory_input_baseILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEED2Ev:
   63|  1.21k|         ~memory_input_base() = default;

_ZN3tao5pegtl6normalIN8usbguard12UEventParser10attributesEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|    994|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser9attributeEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|   127k|      {
   88|   127k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   127k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   127k|         }
   91|   127k|         else {
   92|   127k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   127k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   127k|         }
   94|   127k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser9attributeEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|   127k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser3keyEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|   127k|      {
   88|   127k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   127k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   127k|         }
   91|   127k|         else {
   92|   127k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   127k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   127k|         }
   94|   127k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser3keyEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|   127k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|   127k|      {
   88|   127k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   127k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   127k|         }
   91|   127k|         else {
   92|   127k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   127k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   127k|         }
   94|   127k|      }
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|   127k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|     37|      {}
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSB_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  10.2M|      {
   88|  10.2M|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  10.2M|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  10.2M|         }
   91|  10.2M|         else {
   92|  10.2M|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  10.2M|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  10.2M|         }
   94|  10.2M|      }
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  10.2M|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  10.1M|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|   126k|      {}
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc65ELc90ELc48ELc57EEEEJEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser3keyEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser3keyEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|     37|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc61EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc61EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc61EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc61EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|     67|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser5valueEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser5valueEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii7not_oneIJLc0ELc10EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_5ascii7not_oneIJLc0ELc10EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  11.8M|      {}
_ZN3tao5pegtl6normalINS0_5ascii7not_oneIJLc0ELc10EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  11.7M|      {}
_ZN3tao5pegtl6normalINS0_5ascii7not_oneIJLc0ELc10EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|   126k|      {}
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSB_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii7not_oneIJLc0ELc10EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  11.7M|      {
   88|  11.7M|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  11.7M|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  11.7M|         }
   91|  11.7M|         else {
   92|  11.7M|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  11.7M|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  11.7M|         }
   94|  11.7M|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii7not_oneIJLc0ELc10EEEEJEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser5valueEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser5valueEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|     14|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser9attributeEE5applyINS3_7actionsENS0_8internal8iteratorENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEDTclsrT_IJS4_EE5applyclsr3stdE7declvalIRKNT1_8action_tEEEspfp1_EERKT0_RKSR_DpOT2_:
   64|   126k|      {
   65|   126k|         const typename ParseInput::action_t action_input( begin, in );
   66|   126k|         return Action< Rule >::apply( action_input, st... );
   67|   126k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser9attributeEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser9attributeEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|    118|      {}
_ZN3tao5pegtl6normalINS0_8internal4starINS0_5ascii3oneIJLc0ELc10EEEEJN8usbguard12UEventParser9attributeEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS8_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocatorIcEEEEEEJRNS7_6UEventEEEEbRT3_DpOT4_:
   87|    788|      {
   88|    788|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|    788|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|    788|         }
   91|    788|         else {
   92|    788|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|    788|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|    788|         }
   94|    788|      }
_ZN3tao5pegtl6normalINS0_8internal3seqIJNS0_5ascii3oneIJLc0ELc10EEEEN8usbguard12UEventParser9attributeEEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS8_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS4_3eol7lf_crlfENSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocatorIcEEEEEEJRNS7_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0ELc10EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|   126k|      {
   88|   126k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|   126k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|   126k|         }
   91|   126k|         else {
   92|   126k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|   126k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|   126k|         }
   94|   126k|      }
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0ELc10EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0ELc10EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|   126k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0ELc10EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|    637|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser10attributesEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|    679|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser10attributesEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|     76|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7grammarEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|  1.21k|      {
   88|  1.21k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.21k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.21k|         }
   91|  1.21k|         else {
   92|  1.21k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.21k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.21k|         }
   94|  1.21k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7grammarEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|  1.21k|      {}
_ZN3tao5pegtl6normalINS0_3eofEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS7_6UEventEEEEbRT3_DpOT4_:
   87|  1.89k|      {
   88|  1.89k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.89k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.89k|         }
   91|  1.89k|         else {
   92|  1.89k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.89k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.89k|         }
   94|  1.89k|      }
_ZN3tao5pegtl6normalINS0_3eofEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  1.89k|      {}
_ZN3tao5pegtl6normalINS0_3eofEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|    637|      {}
_ZN3tao5pegtl6normalINS0_3eofEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|  1.25k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6ueventEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|  1.25k|      {
   88|  1.25k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.25k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.25k|         }
   91|  1.25k|         else {
   92|  1.25k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.25k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.25k|         }
   94|  1.25k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6ueventEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|  1.25k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6headerEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|  1.25k|      {
   88|  1.25k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.25k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.25k|         }
   91|  1.25k|         else {
   92|  1.25k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.25k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.25k|         }
   94|  1.25k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6headerEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|  1.25k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6actionEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|  1.25k|      {
   88|  1.25k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.25k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.25k|         }
   91|  1.25k|         else {
   92|  1.25k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.25k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.25k|         }
   94|  1.25k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6actionEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|  1.25k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc97ELc122EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  1.25k|      {
   88|  1.25k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.25k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.25k|         }
   91|  1.25k|         else {
   92|  1.25k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.25k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.25k|         }
   94|  1.25k|      }
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc97ELc122EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  8.48M|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc97ELc122EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  8.48M|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc97ELc122EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|  1.25k|      {}
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSI_11char_traitsIcEENSI_9allocatorIcEEEEEEJRNSB_6UEventEEEEbRT3_DpOT4_:
   87|  1.19k|      {
   88|  1.19k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.19k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.19k|         }
   91|  1.19k|         else {
   92|  1.19k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.19k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.19k|         }
   94|  1.19k|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  1.19k|      {}
_ZN3tao5pegtl6normalINS0_5ascii6rangesIJLc97ELc122EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  8.48M|      {
   88|  8.48M|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  8.48M|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  8.48M|         }
   91|  8.48M|         else {
   92|  8.48M|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  8.48M|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  8.48M|         }
   94|  8.48M|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii6rangesIJLc97ELc122EEEEJEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  1.19k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6actionEE5applyINS3_7actionsENS0_8internal8iteratorENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEDTclsrT_IJS4_EE5applyclsr3stdE7declvalIRKNT1_8action_tEEEspfp1_EERKT0_RKSR_DpOT2_:
   64|  1.19k|      {
   65|  1.19k|         const typename ParseInput::action_t action_input( begin, in );
   66|  1.19k|         return Action< Rule >::apply( action_input, st... );
   67|  1.19k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6actionEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|  1.19k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6actionEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|     60|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc64EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  1.19k|      {
   88|  1.19k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.19k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.19k|         }
   91|  1.19k|         else {
   92|  1.19k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.19k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.19k|         }
   94|  1.19k|      }
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc64EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  1.19k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc64EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  1.09k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc64EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|    100|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7devpathEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|  1.09k|      {
   88|  1.09k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.09k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.09k|         }
   91|  1.09k|         else {
   92|  1.09k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.09k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.09k|         }
   94|  1.09k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7devpathEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   36|  1.09k|      {}
_ZN3tao5pegtl6normalINS0_5ascii5printEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS8_6UEventEEEEbRT3_DpOT4_:
   87|  1.09k|      {
   88|  1.09k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.09k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.09k|         }
   91|  1.09k|         else {
   92|  1.09k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.09k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.09k|         }
   94|  1.09k|      }
_ZN3tao5pegtl6normalINS0_5ascii5printEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  5.25M|      {}
_ZN3tao5pegtl6normalINS0_5ascii5printEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  5.25M|      {}
_ZN3tao5pegtl6normalINS0_5ascii5printEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|  1.09k|      {}
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii5printEJEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSH_11char_traitsIcEENSH_9allocatorIcEEEEEEJRNSA_6UEventEEEEbRT3_DpOT4_:
   87|  1.08k|      {
   88|  1.08k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.08k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.08k|         }
   91|  1.08k|         else {
   92|  1.08k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.08k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.08k|         }
   94|  1.08k|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii5printEJEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  1.08k|      {}
_ZN3tao5pegtl6normalINS0_5ascii5printEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE1EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS8_6UEventEEEEbRT3_DpOT4_:
   87|  5.25M|      {
   88|  5.25M|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  5.25M|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  5.25M|         }
   91|  5.25M|         else {
   92|  5.25M|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  5.25M|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  5.25M|         }
   94|  5.25M|      }
_ZN3tao5pegtl6normalINS0_4starINS0_5ascii5printEJEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS3_3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|  1.08k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7devpathEE5applyINS3_7actionsENS0_8internal8iteratorENS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEDTclsrT_IJS4_EE5applyclsr3stdE7declvalIRKNT1_8action_tEEEspfp1_EERKT0_RKSR_DpOT2_:
   64|  1.08k|      {
   65|  1.08k|         const typename ParseInput::action_t action_input( begin, in );
   66|  1.08k|         return Action< Rule >::apply( action_input, st... );
   67|  1.08k|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7devpathEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|  1.08k|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7devpathEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|     11|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0EEEEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0EN8usbguard12UEventParser7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSG_11char_traitsIcEENSG_9allocatorIcEEEEEEJRNS9_6UEventEEEEbRT3_DpOT4_:
   87|  1.08k|      {
   88|  1.08k|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|  1.08k|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|  1.08k|         }
   91|  1.08k|         else {
   92|  1.08k|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|  1.08k|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|  1.08k|         }
   94|  1.08k|      }
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0EEEEE5startINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   36|  1.08k|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0EEEEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   40|    994|      {}
_ZN3tao5pegtl6normalINS0_5ascii3oneIJLc0EEEEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS2_3eol7lf_crlfENSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEEEEJRN8usbguard6UEventEEEEvRKT_DpOT0_:
   44|     93|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6headerEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|    994|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6headerEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|    264|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser10attributesEE5matchILNS0_10apply_modeE1ELNS0_11rewind_modeE0ENS3_7actionsES1_NS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSF_11char_traitsIcEENSF_9allocatorIcEEEEEEJRNS2_6UEventEEEEbRT3_DpOT4_:
   87|    994|      {
   88|    994|         if constexpr( internal::has_match< bool, Rule, A, M, Action, Control, ParseInput, States... > ) {
  ------------------
  |  Branch (88:24): [Folded - Ignored]
  ------------------
   89|    994|            return Action< Rule >::template match< Rule, A, M, Action, Control >( in, st... );
   90|    994|         }
   91|    994|         else {
   92|    994|            return TAO_PEGTL_NAMESPACE::match< Rule, A, M, Action, Control >( in, st... );
  ------------------
  |  |    8|    994|#define TAO_PEGTL_NAMESPACE tao::pegtl
  ------------------
   93|    994|         }
   94|    994|      }
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6ueventEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|    679|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser6ueventEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|    340|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7grammarEE7successINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   40|    637|      {}
_ZN3tao5pegtl6normalIN8usbguard12UEventParser7grammarEE7failureINS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEJRNS2_6UEventEEEEvRKT_DpOT0_:
   44|    340|      {}

_ZN3tao5pegtl5parseIN8usbguard12UEventParser7grammarENS3_7actionsENS0_6normalELNS0_10apply_modeE1ELNS0_11rewind_modeE1ERNS0_12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSE_11char_traitsIcEENSE_9allocatorIcEEEEEEJRNS2_6UEventEEEEDaOT4_DpOT5_:
   42|  1.21k|   {
   43|  1.21k|      return Control< Rule >::template match< A, M, Action, Control >( in, st... );
   44|  1.21k|   }

_ZN3tao5pegtl8internal11parse_errorC2EPKc:
   32|    239|         {}
_ZN3tao5pegtl8internal11parse_error12add_positionEONS0_8positionE:
   50|    239|         {
   51|    239|            const auto prefix = to_string( p );
   52|    239|            m_msg = prefix + ": " + m_msg;
   53|    239|            m_prefix += prefix.size() + 2;
   54|    239|            m_positions.emplace_back( std::move( p ) );
   55|    239|         }
_ZN3tao5pegtl11parse_errorC2EPKcNS0_8positionE:
   70|    239|      {
   71|    239|         m_impl->add_position( std::move( p ) );
   72|    239|      }
_ZN3tao5pegtl11parse_errorC2INS0_8internal12action_inputINS0_12memory_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEEEEEPKcRKT_:
   81|    239|      {}

_ZN3tao5pegtl8positionC2EOS1_:
   32|    239|      {}
_ZN3tao5pegtllsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_8positionE:
   85|    239|   {
   86|    239|      return os << p.source << ':' << p.line << ':' << p.column;
   87|    239|   }
_ZN3tao5pegtl9to_stringERKNS0_8positionE:
   90|    239|   {
   91|    239|      std::ostringstream oss;
   92|    239|      oss << p;
   93|    239|      return std::move( oss ).str();
   94|    239|   }
_ZN3tao5pegtl8positionC2IRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEERKNS0_8internal8iteratorEOT_:
   56|    239|      {}
_ZN3tao5pegtl8positionD2Ev:
   66|    478|      ~position() = default;

_ZN3tao5pegtl12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEC2IRKSC_SC_JEEEOT_OT0_DpOT1_:
   48|  1.21k|      {}
_ZN3tao5pegtl8internal13string_holderC2IRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEEOT_:
   26|  1.21k|         {}
_ZN3tao5pegtl12string_inputILNS0_13tracking_modeE0ENS0_5ascii3eol7lf_crlfENSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEED2Ev:
   53|  1.21k|      ~string_input() = default;
_ZN3tao5pegtl8internal13string_holderD2Ev:
   31|  1.21k|         ~string_holder() = default;

