ittnotify_static.c:__itt_interlocked_compare_exchange:
  371|      2|{
  372|      2|    return __sync_val_compare_and_swap(ptr, exchange, comperand);
  373|      2|}

__itt_init_ittlib:
 1477|      2|{
 1478|      2|    int i;
 1479|      2|    __itt_group_id groups;
 1480|       |#ifdef ITT_COMPLETE_GROUP
 1481|       |    __itt_group_id zero_group = __itt_group_none;
 1482|       |#endif /* ITT_COMPLETE_GROUP */
 1483|      2|    static volatile TIDT current_thread = 0;
 1484|       |
 1485|      2|    if (!_N_(_ittapi_global).api_initialized)
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1485:9): [True: 2, False: 0]
  ------------------
 1486|      2|    {
 1487|      2|#ifndef ITT_SIMPLE_INIT
 1488|      2|        ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
  ------------------
  |  |  125|      2|#define ITT_MUTEX_INIT_AND_LOCK(p) {                                 \
  |  |  126|      2|    if (PTHREAD_SYMBOLS)                                             \
  |  |  ------------------
  |  |  |  |  389|      2|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (389:26): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:48): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:70): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:94): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:119): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:145): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:174): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:203): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  127|      2|    {                                                                \
  |  |  128|      2|        if (!p.mutex_initialized)                                    \
  |  |  ------------------
  |  |  |  Branch (128:13): [True: 2, False: 0]
  |  |  ------------------
  |  |  129|      2|        {                                                            \
  |  |  130|      2|            if (__itt_interlocked_compare_exchange(&p.atomic_counter, 1, 0) == 0) \
  |  |  ------------------
  |  |  |  Branch (130:17): [True: 2, False: 0]
  |  |  ------------------
  |  |  131|      2|            {                                                        \
  |  |  132|      2|                __itt_mutex_init(&p.mutex);                          \
  |  |  ------------------
  |  |  |  |  288|      2|#define __itt_mutex_init(mutex)   {\
  |  |  |  |  289|      2|    pthread_mutexattr_t mutex_attr;                                         \
  |  |  |  |  290|      2|    int error_code = pthread_mutexattr_init(&mutex_attr);                   \
  |  |  |  |  291|      2|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (291:9): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  292|      2|        __itt_report_error(__itt_error_system, "pthread_mutexattr_init",    \
  |  |  |  |  293|      0|                           error_code);                                     \
  |  |  |  |  294|      2|    error_code = pthread_mutexattr_settype(&mutex_attr,                     \
  |  |  |  |  295|      2|                                           PTHREAD_MUTEX_RECURSIVE);        \
  |  |  |  |  296|      2|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (296:9): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  297|      2|        __itt_report_error(__itt_error_system, "pthread_mutexattr_settype", \
  |  |  |  |  298|      0|                           error_code);                                     \
  |  |  |  |  299|      2|    error_code = pthread_mutex_init(mutex, &mutex_attr);                    \
  |  |  |  |  300|      2|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (300:9): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  301|      2|        __itt_report_error(__itt_error_system, "pthread_mutex_init",        \
  |  |  |  |  302|      0|                           error_code);                                     \
  |  |  |  |  303|      2|    error_code = pthread_mutexattr_destroy(&mutex_attr);                    \
  |  |  |  |  304|      2|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (304:9): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  305|      2|        __itt_report_error(__itt_error_system, "pthread_mutexattr_destroy", \
  |  |  |  |  306|      0|                           error_code);                                     \
  |  |  |  |  307|      2|}
  |  |  ------------------
  |  |  133|      2|                p.mutex_initialized = 1;                             \
  |  |  134|      2|            }                                                        \
  |  |  135|      2|            else                                                     \
  |  |  136|      2|                while (!p.mutex_initialized)                         \
  |  |  ------------------
  |  |  |  Branch (136:24): [True: 0, False: 0]
  |  |  ------------------
  |  |  137|      0|                    __itt_thread_yield();                            \
  |  |  ------------------
  |  |  |  |  338|      0|#define __itt_thread_yield()      sched_yield()
  |  |  ------------------
  |  |  138|      2|        }                                                            \
  |  |  139|      2|        __itt_mutex_lock(&p.mutex);                                  \
  |  |  ------------------
  |  |  |  |  308|      2|#define __itt_mutex_lock(mutex)   pthread_mutex_lock(mutex)
  |  |  ------------------
  |  |  140|      2|    }                                                                \
  |  |  141|      2|}
  ------------------
 1489|      2|#endif /* ITT_SIMPLE_INIT */
 1490|       |
 1491|      2|        if (!_N_(_ittapi_global).api_initialized)
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1491:13): [True: 2, False: 0]
  ------------------
 1492|      2|        {
 1493|      2|            if (current_thread == 0)
  ------------------
  |  Branch (1493:17): [True: 2, False: 0]
  ------------------
 1494|      2|            {
 1495|      2|                if (PTHREAD_SYMBOLS) current_thread = __itt_thread_id();
  ------------------
  |  |  389|      2|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  ------------------
  |  |  |  Branch (389:26): [True: 2, False: 0]
  |  |  |  Branch (389:48): [True: 2, False: 0]
  |  |  |  Branch (389:70): [True: 2, False: 0]
  |  |  |  Branch (389:94): [True: 2, False: 0]
  |  |  |  Branch (389:119): [True: 2, False: 0]
  |  |  |  Branch (389:145): [True: 2, False: 0]
  |  |  |  Branch (389:174): [True: 2, False: 0]
  |  |  |  Branch (389:203): [True: 2, False: 0]
  |  |  ------------------
  ------------------
                              if (PTHREAD_SYMBOLS) current_thread = __itt_thread_id();
  ------------------
  |  |  337|      2|#define __itt_thread_id()         pthread_self()
  ------------------
 1496|      2|                if (lib_name == NULL)
  ------------------
  |  Branch (1496:21): [True: 2, False: 0]
  ------------------
 1497|      2|                {
 1498|      2|                    lib_name = __itt_get_lib_name();
 1499|      2|                }
 1500|      2|                groups = __itt_get_groups();
 1501|      2|                if (DL_SYMBOLS && (groups != __itt_group_none || lib_name != NULL))
  ------------------
  |  |  379|      4|#define DL_SYMBOLS (dlopen && dlsym && dlclose)
  |  |  ------------------
  |  |  |  Branch (379:21): [True: 2, False: 0]
  |  |  |  Branch (379:31): [True: 2, False: 0]
  |  |  |  Branch (379:40): [True: 2, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (1501:36): [True: 0, False: 2]
  |  Branch (1501:66): [True: 0, False: 2]
  ------------------
 1502|      0|                {
 1503|      0|                    _N_(_ittapi_global).lib = __itt_load_lib((lib_name == NULL) ? ittnotify_lib_name : lib_name);
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                                  _N_(_ittapi_global).lib = __itt_load_lib((lib_name == NULL) ? ittnotify_lib_name : lib_name);
  ------------------
  |  |  311|      0|#define __itt_load_lib(name)      dlopen(name, RTLD_LAZY)
  |  |  ------------------
  |  |  |  Branch (311:42): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1504|       |
 1505|      0|                    if (_N_(_ittapi_global).lib != NULL)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1505:25): [True: 0, False: 0]
  ------------------
 1506|      0|                    {
 1507|      0|                        _N_(_ittapi_global).state = __itt_collection_init_successful;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1508|      0|                        __itt_api_init_t* __itt_api_init_ptr;
 1509|      0|                        int lib_version = __itt_lib_version(_N_(_ittapi_global).lib);
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1510|       |
 1511|      0|                        switch (lib_version)
  ------------------
  |  Branch (1511:33): [True: 0, False: 0]
  ------------------
 1512|      0|                        {
 1513|      0|                        case 0:
  ------------------
  |  Branch (1513:25): [True: 0, False: 0]
  ------------------
 1514|      0|                            groups = __itt_group_legacy;
 1515|      0|                            ITT_ATTRIBUTE_FALLTHROUGH;
  ------------------
  |  |   66|      0|#define ITT_ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough))
  ------------------
 1516|      0|                        case 1:
  ------------------
  |  Branch (1516:25): [True: 0, False: 0]
  ------------------
 1517|       |                            /* Fill all pointers from dynamic library */
 1518|      0|                            for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1518:41): [True: 0, False: 0]
  ------------------
 1519|      0|                            {
 1520|      0|                                if (_N_(_ittapi_global).api_list_ptr[i].group & groups & init_groups)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1520:37): [True: 0, False: 0]
  ------------------
 1521|      0|                                {
 1522|      0|                                    *_N_(_ittapi_global).api_list_ptr[i].func_ptr = (void*)__itt_get_proc(_N_(_ittapi_global).lib, _N_(_ittapi_global).api_list_ptr[i].name);
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                                                  *_N_(_ittapi_global).api_list_ptr[i].func_ptr = (void*)__itt_get_proc(_N_(_ittapi_global).lib, _N_(_ittapi_global).api_list_ptr[i].name);
  ------------------
  |  |  287|      0|#define __itt_get_proc(lib, name) dlsym(lib, name)
  ------------------
 1523|      0|                                    if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr == NULL)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1523:41): [True: 0, False: 0]
  ------------------
 1524|      0|                                    {
 1525|       |                                        /* Restore pointers for function with static implementation */
 1526|      0|                                        *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                                                      *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1527|      0|                                        __itt_report_error(__itt_error_no_symbol, lib_name, _N_(_ittapi_global).api_list_ptr[i].name);
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1528|       |#ifdef ITT_COMPLETE_GROUP
 1529|       |                                        zero_group = (__itt_group_id)(zero_group | _N_(_ittapi_global).api_list_ptr[i].group);
 1530|       |#endif /* ITT_COMPLETE_GROUP */
 1531|      0|                                    }
 1532|      0|                                }
 1533|      0|                                else
 1534|      0|                                    *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                                                  *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1535|      0|                            }
 1536|       |
 1537|      0|                            if (groups == __itt_group_legacy)
  ------------------
  |  Branch (1537:33): [True: 0, False: 0]
  ------------------
 1538|      0|                            {
 1539|       |                                /* Compatibility with legacy tools */
 1540|      0|                                ITTNOTIFY_NAME(thread_ignore)  = ITTNOTIFY_NAME(thr_ignore);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(thread_ignore)  = ITTNOTIFY_NAME(thr_ignore);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1541|       |#if ITT_PLATFORM==ITT_PLATFORM_WIN
 1542|       |                                ITTNOTIFY_NAME(sync_createA)   = ITTNOTIFY_NAME(sync_set_nameA);
 1543|       |                                ITTNOTIFY_NAME(sync_createW)   = ITTNOTIFY_NAME(sync_set_nameW);
 1544|       |#else  /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
 1545|      0|                                ITTNOTIFY_NAME(sync_create)    = ITTNOTIFY_NAME(sync_set_name);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(sync_create)    = ITTNOTIFY_NAME(sync_set_name);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1546|      0|#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
 1547|      0|                                ITTNOTIFY_NAME(sync_prepare)   = ITTNOTIFY_NAME(notify_sync_prepare);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(sync_prepare)   = ITTNOTIFY_NAME(notify_sync_prepare);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1548|      0|                                ITTNOTIFY_NAME(sync_cancel)    = ITTNOTIFY_NAME(notify_sync_cancel);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(sync_cancel)    = ITTNOTIFY_NAME(notify_sync_cancel);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1549|      0|                                ITTNOTIFY_NAME(sync_acquired)  = ITTNOTIFY_NAME(notify_sync_acquired);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(sync_acquired)  = ITTNOTIFY_NAME(notify_sync_acquired);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1550|      0|                                ITTNOTIFY_NAME(sync_releasing) = ITTNOTIFY_NAME(notify_sync_releasing);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                                              ITTNOTIFY_NAME(sync_releasing) = ITTNOTIFY_NAME(notify_sync_releasing);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
 1551|      0|                            }
 1552|       |
 1553|       |#ifdef ITT_COMPLETE_GROUP
 1554|       |                            for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
 1555|       |                                if (_N_(_ittapi_global).api_list_ptr[i].group & zero_group)
 1556|       |                                    *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
 1557|       |#endif /* ITT_COMPLETE_GROUP */
 1558|      0|                            break;
 1559|      0|                        case 2:
  ------------------
  |  Branch (1559:25): [True: 0, False: 0]
  ------------------
 1560|      0|                            __itt_api_init_ptr = (__itt_api_init_t*)(size_t)__itt_get_proc(_N_(_ittapi_global).lib, "__itt_api_init");
  ------------------
  |  |  287|      0|#define __itt_get_proc(lib, name) dlsym(lib, name)
  ------------------
 1561|      0|                            if (__itt_api_init_ptr)
  ------------------
  |  Branch (1561:33): [True: 0, False: 0]
  ------------------
 1562|      0|                                __itt_api_init_ptr(&_N_(_ittapi_global), init_groups);
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1563|      0|                            break;
 1564|      0|                        }
 1565|      0|                    }
 1566|      0|                    else
 1567|      0|                    {
 1568|      0|                        _N_(_ittapi_global).state = __itt_collection_init_fail;
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1569|      0|                        __itt_free_allocated_resources();
 1570|      0|                        __itt_nullify_all_pointers();
 1571|       |
 1572|      0|                        __itt_report_error(__itt_error_no_module, lib_name,
 1573|       |#if ITT_PLATFORM==ITT_PLATFORM_WIN
 1574|       |                            __itt_system_error()
 1575|       |#else  /* ITT_PLATFORM==ITT_PLATFORM_WIN */
 1576|      0|                            dlerror()
 1577|      0|#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
 1578|      0|                        );
 1579|      0|                    }
 1580|      0|                }
 1581|      2|                else
 1582|      2|                {
 1583|      2|                    _N_(_ittapi_global).state = __itt_collection_collector_absent;
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1584|      2|                    __itt_nullify_all_pointers();
 1585|      2|                }
 1586|      2|                _N_(_ittapi_global).api_initialized = 1;
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1587|      2|                current_thread = 0;
 1588|       |                /* !!! Just to avoid unused code elimination !!! */
 1589|      2|                if (__itt_fini_ittlib_ptr == _N_(fini_ittlib)) current_thread = 0;
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1589:21): [True: 2, False: 0]
  ------------------
 1590|      2|            }
 1591|      2|        }
 1592|       |
 1593|      2|#ifndef ITT_SIMPLE_INIT
 1594|      2|        if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  389|      2|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  ------------------
  |  |  |  Branch (389:26): [True: 2, False: 0]
  |  |  |  Branch (389:48): [True: 2, False: 0]
  |  |  |  Branch (389:70): [True: 2, False: 0]
  |  |  |  Branch (389:94): [True: 2, False: 0]
  |  |  |  Branch (389:119): [True: 2, False: 0]
  |  |  |  Branch (389:145): [True: 2, False: 0]
  |  |  |  Branch (389:174): [True: 2, False: 0]
  |  |  |  Branch (389:203): [True: 2, False: 0]
  |  |  ------------------
  ------------------
                      if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  309|      2|#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  ------------------
 1595|      2|#endif /* ITT_SIMPLE_INIT */
 1596|      2|    }
 1597|       |
 1598|       |    /* Evaluating if any function ptr is non empty and it's in init_groups */
 1599|    310|    for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
  ------------------
  |  |   32|    310|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    310|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    310|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1599:17): [True: 308, False: 2]
  ------------------
 1600|    308|    {
 1601|    308|        if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr != _N_(_ittapi_global).api_list_ptr[i].null_func &&
  ------------------
  |  |   32|    308|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    308|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    308|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                      if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr != _N_(_ittapi_global).api_list_ptr[i].null_func &&
  ------------------
  |  |   32|    308|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    308|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    308|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1601:13): [True: 0, False: 308]
  ------------------
 1602|    308|            _N_(_ittapi_global).api_list_ptr[i].group & init_groups)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1602:13): [True: 0, False: 0]
  ------------------
 1603|      0|        {
 1604|      0|            return 1;
 1605|      0|        }
 1606|    308|    }
 1607|      2|    return 0;
 1608|      2|}
ittnotify_static.c:__itt_api_version_init_3_0:
  186|      2|static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \
  187|      2|{                                                              \
  188|      2|    if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) \
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                  if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) \
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (188:9): [True: 2, False: 0]
  |  Branch (188:49): [True: 2, False: 0]
  ------------------
  189|      2|        __itt_init_ittlib_name(NULL, __itt_group_all);         \
  ------------------
  |  |  165|      2|#define __itt_init_ittlib_name __itt_init_ittlib_ptr
  ------------------
  190|      2|    if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \
  ------------------
  |  |  182|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      2|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      2|    ITT_JOIN(_,              \
  |  |  |  |  171|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                  if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                  if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \
  ------------------
  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (190:33): [True: 0, False: 0]
  ------------------
  191|      2|        return ITTNOTIFY_NAME(name) params;                    \
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
  192|      2|    else                                                       \
  193|      2|        return (type)0;                                        \
  194|      2|}
ittnotify_static.c:__itt_domain_create_init_3_0:
  385|      2|{
  386|      2|    __itt_domain *h_tail = NULL, *h = NULL;
  387|       |
  388|      2|    if (name == NULL)
  ------------------
  |  Branch (388:9): [True: 0, False: 2]
  ------------------
  389|      0|    {
  390|      0|        return NULL;
  391|      0|    }
  392|       |
  393|      2|    ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
  ------------------
  |  |  125|      2|#define ITT_MUTEX_INIT_AND_LOCK(p) {                                 \
  |  |  126|      2|    if (PTHREAD_SYMBOLS)                                             \
  |  |  ------------------
  |  |  |  |  389|      2|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (389:26): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:48): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:70): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:94): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:119): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:145): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:174): [True: 2, False: 0]
  |  |  |  |  |  Branch (389:203): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  127|      2|    {                                                                \
  |  |  128|      2|        if (!p.mutex_initialized)                                    \
  |  |  ------------------
  |  |  |  Branch (128:13): [True: 0, False: 2]
  |  |  ------------------
  |  |  129|      2|        {                                                            \
  |  |  130|      0|            if (__itt_interlocked_compare_exchange(&p.atomic_counter, 1, 0) == 0) \
  |  |  ------------------
  |  |  |  Branch (130:17): [True: 0, False: 0]
  |  |  ------------------
  |  |  131|      0|            {                                                        \
  |  |  132|      0|                __itt_mutex_init(&p.mutex);                          \
  |  |  ------------------
  |  |  |  |  288|      0|#define __itt_mutex_init(mutex)   {\
  |  |  |  |  289|      0|    pthread_mutexattr_t mutex_attr;                                         \
  |  |  |  |  290|      0|    int error_code = pthread_mutexattr_init(&mutex_attr);                   \
  |  |  |  |  291|      0|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (291:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  292|      0|        __itt_report_error(__itt_error_system, "pthread_mutexattr_init",    \
  |  |  |  |  293|      0|                           error_code);                                     \
  |  |  |  |  294|      0|    error_code = pthread_mutexattr_settype(&mutex_attr,                     \
  |  |  |  |  295|      0|                                           PTHREAD_MUTEX_RECURSIVE);        \
  |  |  |  |  296|      0|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (296:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  297|      0|        __itt_report_error(__itt_error_system, "pthread_mutexattr_settype", \
  |  |  |  |  298|      0|                           error_code);                                     \
  |  |  |  |  299|      0|    error_code = pthread_mutex_init(mutex, &mutex_attr);                    \
  |  |  |  |  300|      0|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (300:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  301|      0|        __itt_report_error(__itt_error_system, "pthread_mutex_init",        \
  |  |  |  |  302|      0|                           error_code);                                     \
  |  |  |  |  303|      0|    error_code = pthread_mutexattr_destroy(&mutex_attr);                    \
  |  |  |  |  304|      0|    if (error_code)                                                         \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (304:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  305|      0|        __itt_report_error(__itt_error_system, "pthread_mutexattr_destroy", \
  |  |  |  |  306|      0|                           error_code);                                     \
  |  |  |  |  307|      0|}
  |  |  ------------------
  |  |  133|      0|                p.mutex_initialized = 1;                             \
  |  |  134|      0|            }                                                        \
  |  |  135|      0|            else                                                     \
  |  |  136|      0|                while (!p.mutex_initialized)                         \
  |  |  ------------------
  |  |  |  Branch (136:24): [True: 0, False: 0]
  |  |  ------------------
  |  |  137|      0|                    __itt_thread_yield();                            \
  |  |  ------------------
  |  |  |  |  338|      0|#define __itt_thread_yield()      sched_yield()
  |  |  ------------------
  |  |  138|      0|        }                                                            \
  |  |  139|      2|        __itt_mutex_lock(&p.mutex);                                  \
  |  |  ------------------
  |  |  |  |  308|      2|#define __itt_mutex_lock(mutex)   pthread_mutex_lock(mutex)
  |  |  ------------------
  |  |  140|      2|    }                                                                \
  |  |  141|      2|}
  ------------------
  394|      2|    if (_N_(_ittapi_global).api_initialized)
  ------------------
  |  |   32|      2|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (394:9): [True: 2, False: 0]
  ------------------
  395|      2|    {
  396|       |#if ITT_PLATFORM==ITT_PLATFORM_WIN
  397|       |        if (ITTNOTIFY_NAME(domain_createA) && ITTNOTIFY_NAME(domain_createA) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createA),_init)))
  398|       |        {
  399|       |            __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  400|       |            return ITTNOTIFY_NAME(domain_createA)(name);
  401|       |        }
  402|       |#else
  403|      2|        if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init)))
  ------------------
  |  |  182|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      2|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      2|    ITT_JOIN(_,              \
  |  |  |  |  171|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                      if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init)))
  ------------------
  |  |  182|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      2|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      2|    ITT_JOIN(_,              \
  |  |  |  |  171|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
                      if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init)))
  ------------------
  |  |  169|      2|    ITT_JOIN(x,              \
  |  |  ------------------
  |  |  |  |  156|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (403:46): [True: 0, False: 2]
  ------------------
  404|      0|        {
  405|      0|            if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  389|      0|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  ------------------
  |  |  |  Branch (389:26): [True: 0, False: 0]
  |  |  |  Branch (389:48): [True: 0, False: 0]
  |  |  |  Branch (389:70): [True: 0, False: 0]
  |  |  |  Branch (389:94): [True: 0, False: 0]
  |  |  |  Branch (389:119): [True: 0, False: 0]
  |  |  |  Branch (389:145): [True: 0, False: 0]
  |  |  |  Branch (389:174): [True: 0, False: 0]
  |  |  |  Branch (389:203): [True: 0, False: 0]
  |  |  ------------------
  ------------------
                          if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  309|      0|#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  ------------------
  406|      0|            return ITTNOTIFY_NAME(domain_create)(name);
  ------------------
  |  |  182|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  ------------------
  |  |  |  |  169|      0|    ITT_JOIN(x,              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  170|      0|    ITT_JOIN(_,              \
  |  |  |  |  171|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  172|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  ------------------
  ------------------
  407|      0|        }
  408|      2|#endif
  409|      2|        else
  410|      2|        {
  411|       |#if ITT_PLATFORM==ITT_PLATFORM_WIN
  412|       |            __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  413|       |#else
  414|      2|            if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  389|      2|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  ------------------
  |  |  |  Branch (389:26): [True: 2, False: 0]
  |  |  |  Branch (389:48): [True: 2, False: 0]
  |  |  |  Branch (389:70): [True: 2, False: 0]
  |  |  |  Branch (389:94): [True: 2, False: 0]
  |  |  |  Branch (389:119): [True: 2, False: 0]
  |  |  |  Branch (389:145): [True: 2, False: 0]
  |  |  |  Branch (389:174): [True: 2, False: 0]
  |  |  |  Branch (389:203): [True: 2, False: 0]
  |  |  ------------------
  ------------------
                          if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  309|      2|#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  ------------------
  415|      2|#endif
  416|      2|            return &dummy_domain;
  417|      2|        }
  418|      2|    }
  419|      0|    if (__itt_is_collector_available())
  ------------------
  |  Branch (419:9): [True: 0, False: 0]
  ------------------
  420|      0|    {
  421|      0|        for (h_tail = NULL, h = _N_(_ittapi_global).domain_list; h != NULL; h_tail = h, h = h->next)
  ------------------
  |  |   32|      0|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (421:66): [True: 0, False: 0]
  ------------------
  422|      0|        {
  423|      0|            if (h->nameA != NULL && !__itt_fstrcmp(h->nameA, name)) break;
  ------------------
  |  |  314|      0|#define __itt_fstrcmp(s1, s2)     strcmp(s1, s2)
  ------------------
  |  Branch (423:17): [True: 0, False: 0]
  |  Branch (423:37): [True: 0, False: 0]
  ------------------
  424|      0|        }
  425|      0|        if (h == NULL)
  ------------------
  |  Branch (425:13): [True: 0, False: 0]
  ------------------
  426|      0|        {
  427|      0|            NEW_DOMAIN_A(&_N_(_ittapi_global), h, h_tail, name);
  ------------------
  |  |  557|      0|#define NEW_DOMAIN_A(gptr,h,h_tail,name) { \
  |  |  558|      0|    h = (__itt_domain*)malloc(sizeof(__itt_domain)); \
  |  |  559|      0|    if (h != NULL) { \
  |  |  ------------------
  |  |  |  Branch (559:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  560|      0|        h->flags  = 1;    /* domain is enabled by default */ \
  |  |  561|      0|        char *name_copy = NULL; \
  |  |  562|      0|        __itt_fstrdup(name, name_copy); \
  |  |  ------------------
  |  |  |  |  398|      0|#define __itt_fstrdup(s, new_s) do {                                        \
  |  |  |  |  399|      0|    if (s != NULL) {                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (399:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  400|      0|        size_t s_len = __itt_fstrnlen(s, ITT_STRDUP_MAX_STRING_SIZE);       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  320|      0|#define __itt_fstrnlen(s, l)      strlen(s)
  |  |  |  |  ------------------
  |  |  |  |  401|      0|        new_s = (char *)malloc(s_len + 1);                                  \
  |  |  |  |  402|      0|        if (new_s != NULL) {                                                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (402:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  403|      0|            __itt_fstrcpyn(new_s, s_len + 1, s, s_len);                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  325|      0|#define __itt_fstrcpyn(s1, b, s2, l) {                                      \
  |  |  |  |  |  |  326|      0|    if (b > 0) {                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (326:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  327|      0|        /* 'volatile' is used to suppress the warning that a destination */ \
  |  |  |  |  |  |  328|      0|        /*  bound depends on the length of the source.                   */ \
  |  |  |  |  |  |  329|      0|        volatile size_t num_to_copy = (size_t)(b - 1) < (size_t)(l) ?       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (329:39): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  330|      0|                (size_t)(b - 1) : (size_t)(l);                              \
  |  |  |  |  |  |  331|      0|        strncpy(s1, s2, num_to_copy);                                       \
  |  |  |  |  |  |  332|      0|        s1[num_to_copy] = 0;                                                \
  |  |  |  |  |  |  333|      0|    }                                                                       \
  |  |  |  |  |  |  334|      0|}
  |  |  |  |  ------------------
  |  |  |  |  404|      0|        }                                                                   \
  |  |  |  |  405|      0|    }                                                                       \
  |  |  |  |  406|      0|} while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (406:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  563|      0|        h->nameA  = name_copy; \
  |  |  564|      0|        h->nameW  = NULL; \
  |  |  565|      0|        h->extra1 = 0;    /* reserved */ \
  |  |  566|      0|        h->extra2 = NULL; /* reserved */ \
  |  |  567|      0|        h->next   = NULL; \
  |  |  568|      0|        if (h_tail == NULL) \
  |  |  ------------------
  |  |  |  Branch (568:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  569|      0|            (gptr)->domain_list = h; \
  |  |  570|      0|        else \
  |  |  571|      0|            h_tail->next = h; \
  |  |  572|      0|    } \
  |  |  573|      0|}
  ------------------
  428|      0|        }
  429|      0|    }
  430|      0|    if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  389|      0|#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
  |  |  ------------------
  |  |  |  Branch (389:26): [True: 0, False: 0]
  |  |  |  Branch (389:48): [True: 0, False: 0]
  |  |  |  Branch (389:70): [True: 0, False: 0]
  |  |  |  Branch (389:94): [True: 0, False: 0]
  |  |  |  Branch (389:119): [True: 0, False: 0]
  |  |  |  Branch (389:145): [True: 0, False: 0]
  |  |  |  Branch (389:174): [True: 0, False: 0]
  |  |  |  Branch (389:203): [True: 0, False: 0]
  |  |  ------------------
  ------------------
                  if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
  ------------------
  |  |  309|      0|#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  ------------------
  431|      0|    return h;
  432|      2|}
ittnotify_static.c:__itt_nullify_all_pointers:
 1338|      2|{
 1339|      2|    int i;
 1340|       |    /* Nulify all pointers except domain_create, string_handle_create  and counter_create */
 1341|    310|    for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
  ------------------
  |  |   32|    310|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    310|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    310|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1341:17): [True: 308, False: 2]
  ------------------
 1342|    308|        *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|    308|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    308|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    308|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                      *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func;
  ------------------
  |  |   32|    308|#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n)
  |  |  ------------------
  |  |  |  |  156|    308|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  155|    308|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1343|      2|}
ittnotify_static.c:__itt_get_lib_name:
 1259|      2|{
 1260|      2|    const char* lib_name = __itt_get_env_var(ITT_TO_STR(LIB_VAR_NAME));
  ------------------
  |  |  199|      2|#define ITT_TO_STR(x)     ITT_TO_STR_AUX(x)
  |  |  ------------------
  |  |  |  |  198|      2|#define ITT_TO_STR_AUX(x) #x
  |  |  ------------------
  ------------------
 1261|      2|    return lib_name;
 1262|      2|}
ittnotify_static.c:__itt_get_env_var:
 1208|      8|{
 1209|      8|#define MAX_ENV_VALUE_SIZE 4086
 1210|      8|    static char  env_buff[MAX_ENV_VALUE_SIZE];
 1211|      8|    static char* env_value = (char*)env_buff;
 1212|       |
 1213|      8|    if (name != NULL)
  ------------------
  |  Branch (1213:9): [True: 8, False: 0]
  ------------------
 1214|      8|    {
 1215|       |#if ITT_PLATFORM==ITT_PLATFORM_WIN
 1216|       |        size_t max_len = MAX_ENV_VALUE_SIZE - (size_t)(env_value - env_buff);
 1217|       |        DWORD rc = GetEnvironmentVariableA(name, env_value, (DWORD)max_len);
 1218|       |        if (rc >= max_len)
 1219|       |            __itt_report_error(__itt_error_env_too_long, name, (size_t)rc - 1, (size_t)(max_len - 1));
 1220|       |        else if (rc > 0)
 1221|       |        {
 1222|       |            const char* ret = (const char*)env_value;
 1223|       |            env_value += rc + 1;
 1224|       |            return ret;
 1225|       |        }
 1226|       |        else
 1227|       |        {
 1228|       |            /* If environment variable is empty, GetEnvironmentVariables()
 1229|       |             * returns zero (number of characters (not including terminating null),
 1230|       |             * and GetLastError() returns ERROR_SUCCESS. */
 1231|       |            DWORD err = GetLastError();
 1232|       |            if (err == ERROR_SUCCESS)
 1233|       |                return env_value;
 1234|       |
 1235|       |            if (err != ERROR_ENVVAR_NOT_FOUND)
 1236|       |                __itt_report_error(__itt_error_cant_read_env, name, (int)err);
 1237|       |        }
 1238|       |#else  /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
 1239|      8|        char* env = getenv(name);
 1240|      8|        if (env != NULL)
  ------------------
  |  Branch (1240:13): [True: 0, False: 8]
  ------------------
 1241|      0|        {
 1242|      0|            size_t len = __itt_fstrnlen(env, MAX_ENV_VALUE_SIZE);
  ------------------
  |  |  320|      0|#define __itt_fstrnlen(s, l)      strlen(s)
  ------------------
 1243|      0|            size_t max_len = MAX_ENV_VALUE_SIZE - (size_t)(env_value - env_buff);
  ------------------
  |  | 1209|      0|#define MAX_ENV_VALUE_SIZE 4086
  ------------------
 1244|      0|            if (len < max_len)
  ------------------
  |  Branch (1244:17): [True: 0, False: 0]
  ------------------
 1245|      0|            {
 1246|      0|                const char* ret = (const char*)env_value;
 1247|      0|                __itt_fstrcpyn(env_value, max_len, env, len + 1);
  ------------------
  |  |  325|      0|#define __itt_fstrcpyn(s1, b, s2, l) {                                      \
  |  |  326|      0|    if (b > 0) {                                                            \
  |  |  ------------------
  |  |  |  Branch (326:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  327|      0|        /* 'volatile' is used to suppress the warning that a destination */ \
  |  |  328|      0|        /*  bound depends on the length of the source.                   */ \
  |  |  329|      0|        volatile size_t num_to_copy = (size_t)(b - 1) < (size_t)(l) ?       \
  |  |  ------------------
  |  |  |  Branch (329:39): [True: 0, False: 0]
  |  |  ------------------
  |  |  330|      0|                (size_t)(b - 1) : (size_t)(l);                              \
  |  |  331|      0|        strncpy(s1, s2, num_to_copy);                                       \
  |  |  332|      0|        s1[num_to_copy] = 0;                                                \
  |  |  333|      0|    }                                                                       \
  |  |  334|      0|}
  ------------------
 1248|      0|                env_value += len + 1;
 1249|      0|                return ret;
 1250|      0|            } else
 1251|      0|                __itt_report_error(__itt_error_env_too_long, name, (size_t)len, (size_t)(max_len - 1));
 1252|      0|        }
 1253|      8|#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
 1254|      8|    }
 1255|      8|    return NULL;
 1256|      8|}
ittnotify_static.c:__itt_get_groups:
 1268|      2|{
 1269|      2|    int i;
 1270|      2|    __itt_group_id res = __itt_group_none;
 1271|      2|    const char* var_name  = "INTEL_ITTNOTIFY_GROUPS";
 1272|      2|    const char* group_str = __itt_get_env_var(var_name);
 1273|       |
 1274|      2|    if (group_str != NULL)
  ------------------
  |  Branch (1274:9): [True: 0, False: 2]
  ------------------
 1275|      0|    {
 1276|      0|        int len;
 1277|      0|        char gr[255];
 1278|      0|        const char* chunk;
 1279|      0|        while ((group_str = __itt_fsplit(group_str, ",; ", &chunk, &len)) != NULL)
  ------------------
  |  Branch (1279:16): [True: 0, False: 0]
  ------------------
 1280|      0|        {
 1281|      0|            int min_len = __itt_min(len, (int)(sizeof(gr) - 1));
  ------------------
  |  | 1265|      0|#define __itt_min(a,b) ((a) < (b) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (1265:25): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1282|      0|            __itt_fstrcpyn(gr, sizeof(gr) - 1, chunk,  min_len);
  ------------------
  |  |  325|      0|#define __itt_fstrcpyn(s1, b, s2, l) {                                      \
  |  |  326|      0|    if (b > 0) {                                                            \
  |  |  ------------------
  |  |  |  Branch (326:9): [Folded - Ignored]
  |  |  ------------------
  |  |  327|      0|        /* 'volatile' is used to suppress the warning that a destination */ \
  |  |  328|      0|        /*  bound depends on the length of the source.                   */ \
  |  |  329|      0|        volatile size_t num_to_copy = (size_t)(b - 1) < (size_t)(l) ?       \
  |  |  ------------------
  |  |  |  Branch (329:39): [True: 0, False: 0]
  |  |  ------------------
  |  |  330|      0|                (size_t)(b - 1) : (size_t)(l);                              \
  |  |  331|      0|        strncpy(s1, s2, num_to_copy);                                       \
  |  |  332|      0|        s1[num_to_copy] = 0;                                                \
  |  |  333|      0|    }                                                                       \
  |  |  334|      0|}
  ------------------
 1283|      0|            gr[min_len] = 0;
 1284|       |
 1285|      0|            for (i = 0; group_list[i].name != NULL; i++)
  ------------------
  |  Branch (1285:25): [True: 0, False: 0]
  ------------------
 1286|      0|            {
 1287|      0|                if (!__itt_fstrcmp(gr, group_list[i].name))
  ------------------
  |  |  314|      0|#define __itt_fstrcmp(s1, s2)     strcmp(s1, s2)
  ------------------
  |  Branch (1287:21): [True: 0, False: 0]
  ------------------
 1288|      0|                {
 1289|      0|                    res = (__itt_group_id)(res | group_list[i].id);
 1290|      0|                    break;
 1291|      0|                }
 1292|      0|            }
 1293|      0|        }
 1294|       |        /* TODO: !!! Workaround for bug with warning for unknown group !!!
 1295|       |         * Should be fixed in new initialization scheme.
 1296|       |         * Now the following groups should be set always. */
 1297|      0|        for (i = 0; group_list[i].id != __itt_group_none; i++)
  ------------------
  |  Branch (1297:21): [True: 0, False: 0]
  ------------------
 1298|      0|            if (group_list[i].id != __itt_group_all &&
  ------------------
  |  Branch (1298:17): [True: 0, False: 0]
  ------------------
 1299|      0|                group_list[i].id > __itt_group_splitter_min &&
  ------------------
  |  Branch (1299:17): [True: 0, False: 0]
  ------------------
 1300|      0|                group_list[i].id < __itt_group_splitter_max)
  ------------------
  |  Branch (1300:17): [True: 0, False: 0]
  ------------------
 1301|      0|                res = (__itt_group_id)(res | group_list[i].id);
 1302|      0|        return res;
 1303|      0|    }
 1304|      2|    else
 1305|      2|    {
 1306|      6|        for (i = 0; group_alias[i].env_var != NULL; i++)
  ------------------
  |  Branch (1306:21): [True: 4, False: 2]
  ------------------
 1307|      4|            if (__itt_get_env_var(group_alias[i].env_var) != NULL)
  ------------------
  |  Branch (1307:17): [True: 0, False: 4]
  ------------------
 1308|      0|                return group_alias[i].groups;
 1309|      2|    }
 1310|       |
 1311|      2|    return res;
 1312|      2|}

_ZN6google8protobuf8internal14ArenaStringPtr22DestroyNoArenaSlowPathEv:
   71|   209k|void ArenaStringPtr::DestroyNoArenaSlowPath() { delete UnsafeMutablePointer(); }
_ZN6google8protobuf8internal14ArenaStringPtr3SetEPKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERSA_PNS0_5ArenaE:
   74|  8.87k|                         ConstStringParam value, ::google::protobuf::Arena* arena) {
   75|  8.87k|  if (IsDefault(default_value)) {
  ------------------
  |  Branch (75:7): [True: 6.39k, False: 2.48k]
  ------------------
   76|  6.39k|    tagged_ptr_.Set(Arena::Create<std::string>(arena, value));
   77|  6.39k|  } else {
   78|  2.48k|    UnsafeMutablePointer()->assign(value.data(), value.length());
   79|  2.48k|  }
   80|  8.87k|}
_ZN6google8protobuf8internal14ArenaStringPtr3SetENS2_12EmptyDefaultERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEPNS0_5ArenaE:
  101|  8.87k|                         ::google::protobuf::Arena* arena) {
  102|  8.87k|  Set(&GetEmptyStringAlreadyInited(), value, arena);
  103|  8.87k|}
_ZN6google8protobuf8internal14ArenaStringPtr7MutableENS2_12EmptyDefaultEPNS0_5ArenaE:
  120|   283k|std::string* ArenaStringPtr::Mutable(EmptyDefault, ::google::protobuf::Arena* arena) {
  121|   283k|  if (!IsDonatedString() && !IsDefault(&GetEmptyStringAlreadyInited())) {
  ------------------
  |  Branch (121:7): [True: 283k, False: 0]
  |  Branch (121:29): [True: 67.0k, False: 216k]
  ------------------
  122|  67.0k|    return UnsafeMutablePointer();
  123|   216k|  } else {
  124|   216k|    return MutableSlow(arena);
  125|   216k|  }
  126|   283k|}
_ZN6google8protobuf8internal14ArenaStringPtr7DestroyEPKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPNS0_5ArenaE:
  219|  13.4k|                             ::google::protobuf::Arena* arena) {
  220|  13.4k|  if (arena == nullptr) {
  ------------------
  |  Branch (220:7): [True: 13.4k, False: 0]
  ------------------
  221|  13.4k|    GOOGLE_DCHECK(!IsDonatedString());
  222|  13.4k|    if (!IsDefault(default_value)) {
  ------------------
  |  Branch (222:9): [True: 13.4k, False: 0]
  ------------------
  223|  13.4k|      delete UnsafeMutablePointer();
  224|  13.4k|    }
  225|  13.4k|  }
  226|  13.4k|}
_ZN6google8protobuf8internal14ArenaStringPtr7DestroyENS2_12EmptyDefaultEPNS0_5ArenaE:
  228|  13.4k|void ArenaStringPtr::Destroy(EmptyDefault, ::google::protobuf::Arena* arena) {
  229|  13.4k|  Destroy(&GetEmptyStringAlreadyInited(), arena);
  230|  13.4k|}
_ZN6google8protobuf8internal14ArenaStringPtr11MutableSlowIJEEEPNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEPNS0_5ArenaEDpRKT_:
  152|   216k|                                         const Lazy&... lazy_default) {
  153|   216k|  const std::string* const default_value =
  154|   216k|      sizeof...(Lazy) == 0 ? &GetEmptyStringAlreadyInited() : nullptr;
  ------------------
  |  Branch (154:7): [Folded - Ignored]
  ------------------
  155|   216k|  GOOGLE_DCHECK(IsDefault(default_value));
  156|   216k|  std::string* new_string =
  157|   216k|      Arena::Create<std::string>(arena, lazy_default.get()...);
  158|   216k|  tagged_ptr_.Set(new_string);
  159|   216k|  return new_string;
  160|   216k|}

_ZN6google8protobuf14DescriptorPool24InternalAddGeneratedFileEPKvi:
 1998|     20|    const void* encoded_file_descriptor, int size) {
 1999|       |  // So, this function is called in the process of initializing the
 2000|       |  // descriptors for generated proto classes.  Each generated .pb.cc file
 2001|       |  // has an internal procedure called AddDescriptors() which is called at
 2002|       |  // process startup, and that function calls this one in order to register
 2003|       |  // the raw bytes of the FileDescriptorProto representing the file.
 2004|       |  //
 2005|       |  // We do not actually construct the descriptor objects right away.  We just
 2006|       |  // hang on to the bytes until they are actually needed.  We actually construct
 2007|       |  // the descriptor the first time one of the following things happens:
 2008|       |  // * Someone calls a method like descriptor(), GetDescriptor(), or
 2009|       |  //   GetReflection() on the generated types, which requires returning the
 2010|       |  //   descriptor or an object based on it.
 2011|       |  // * Someone looks up the descriptor in DescriptorPool::generated_pool().
 2012|       |  //
 2013|       |  // Once one of these happens, the DescriptorPool actually parses the
 2014|       |  // FileDescriptorProto and generates a FileDescriptor (and all its children)
 2015|       |  // based on it.
 2016|       |  //
 2017|       |  // Note that FileDescriptorProto is itself a generated protocol message.
 2018|       |  // Therefore, when we parse one, we have to be very careful to avoid using
 2019|       |  // any descriptor-based operations, since this might cause infinite recursion
 2020|       |  // or deadlock.
 2021|     20|  GOOGLE_CHECK(GeneratedDatabase()->Add(encoded_file_descriptor, size));
 2022|     20|}
_ZN6google8protobuf6SymbolC2Ev:
   96|      2|  Symbol() : ptr_(nullptr) {}
descriptor.cc:_ZN6google8protobuf12_GLOBAL__N_117GeneratedDatabaseEv:
 1965|     20|EncodedDescriptorDatabase* GeneratedDatabase() {
 1966|     20|  static auto generated_database =
 1967|     20|      internal::OnShutdownDelete(new EncodedDescriptorDatabase());
 1968|     20|  return generated_database;
 1969|     20|}

_ZN6google8protobuf33FieldDescriptorProto_Type_IsValidEi:
 1097|  1.41k|bool FieldDescriptorProto_Type_IsValid(int value) {
 1098|  1.41k|  switch (value) {
 1099|     10|    case 1:
  ------------------
  |  Branch (1099:5): [True: 10, False: 1.40k]
  ------------------
 1100|    198|    case 2:
  ------------------
  |  Branch (1100:5): [True: 188, False: 1.22k]
  ------------------
 1101|    214|    case 3:
  ------------------
  |  Branch (1101:5): [True: 16, False: 1.40k]
  ------------------
 1102|    216|    case 4:
  ------------------
  |  Branch (1102:5): [True: 2, False: 1.41k]
  ------------------
 1103|    376|    case 5:
  ------------------
  |  Branch (1103:5): [True: 160, False: 1.25k]
  ------------------
 1104|    376|    case 6:
  ------------------
  |  Branch (1104:5): [True: 0, False: 1.41k]
  ------------------
 1105|    376|    case 7:
  ------------------
  |  Branch (1105:5): [True: 0, False: 1.41k]
  ------------------
 1106|    554|    case 8:
  ------------------
  |  Branch (1106:5): [True: 178, False: 1.23k]
  ------------------
 1107|    780|    case 9:
  ------------------
  |  Branch (1107:5): [True: 226, False: 1.19k]
  ------------------
 1108|    780|    case 10:
  ------------------
  |  Branch (1108:5): [True: 0, False: 1.41k]
  ------------------
 1109|  1.16k|    case 11:
  ------------------
  |  Branch (1109:5): [True: 386, False: 1.03k]
  ------------------
 1110|  1.18k|    case 12:
  ------------------
  |  Branch (1110:5): [True: 14, False: 1.40k]
  ------------------
 1111|  1.33k|    case 13:
  ------------------
  |  Branch (1111:5): [True: 158, False: 1.25k]
  ------------------
 1112|  1.41k|    case 14:
  ------------------
  |  Branch (1112:5): [True: 78, False: 1.33k]
  ------------------
 1113|  1.41k|    case 15:
  ------------------
  |  Branch (1113:5): [True: 0, False: 1.41k]
  ------------------
 1114|  1.41k|    case 16:
  ------------------
  |  Branch (1114:5): [True: 0, False: 1.41k]
  ------------------
 1115|  1.41k|    case 17:
  ------------------
  |  Branch (1115:5): [True: 0, False: 1.41k]
  ------------------
 1116|  1.41k|    case 18:
  ------------------
  |  Branch (1116:5): [True: 0, False: 1.41k]
  ------------------
 1117|  1.41k|      return true;
 1118|      0|    default:
  ------------------
  |  Branch (1118:5): [True: 0, False: 1.41k]
  ------------------
 1119|      0|      return false;
 1120|  1.41k|  }
 1121|  1.41k|}
_ZN6google8protobuf34FieldDescriptorProto_Label_IsValidEi:
 1150|  1.41k|bool FieldDescriptorProto_Label_IsValid(int value) {
 1151|  1.41k|  switch (value) {
 1152|  1.13k|    case 1:
  ------------------
  |  Branch (1152:5): [True: 1.13k, False: 284]
  ------------------
 1153|  1.14k|    case 2:
  ------------------
  |  Branch (1153:5): [True: 10, False: 1.40k]
  ------------------
 1154|  1.41k|    case 3:
  ------------------
  |  Branch (1154:5): [True: 274, False: 1.14k]
  ------------------
 1155|  1.41k|      return true;
 1156|      0|    default:
  ------------------
  |  Branch (1156:5): [True: 0, False: 1.41k]
  ------------------
 1157|      0|      return false;
 1158|  1.41k|  }
 1159|  1.41k|}
_ZN6google8protobuf32FileOptions_OptimizeMode_IsValidEi:
 1173|      2|bool FileOptions_OptimizeMode_IsValid(int value) {
 1174|      2|  switch (value) {
 1175|      2|    case 1:
  ------------------
  |  Branch (1175:5): [True: 2, False: 0]
  ------------------
 1176|      2|    case 2:
  ------------------
  |  Branch (1176:5): [True: 0, False: 2]
  ------------------
 1177|      2|    case 3:
  ------------------
  |  Branch (1177:5): [True: 0, False: 2]
  ------------------
 1178|      2|      return true;
 1179|      0|    default:
  ------------------
  |  Branch (1179:5): [True: 0, False: 2]
  ------------------
 1180|      0|      return false;
 1181|      2|  }
 1182|      2|}
_ZN6google8protobuf19FileDescriptorProtoC2EPNS0_5ArenaEb:
 1483|     20|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 1484|     20|  dependency_(arena),
 1485|     20|  message_type_(arena),
 1486|     20|  enum_type_(arena),
 1487|     20|  service_(arena),
 1488|     20|  extension_(arena),
 1489|     20|  public_dependency_(arena),
 1490|     20|  weak_dependency_(arena) {
 1491|     20|  SharedCtor();
 1492|     20|  if (!is_message_owned) {
  ------------------
  |  Branch (1492:7): [True: 20, False: 0]
  ------------------
 1493|     20|    RegisterArenaDtor(arena);
 1494|     20|  }
 1495|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.FileDescriptorProto)
 1496|     20|}
_ZN6google8protobuf19FileDescriptorProtoD2Ev:
 1564|     20|FileDescriptorProto::~FileDescriptorProto() {
 1565|       |  // @@protoc_insertion_point(destructor:google.protobuf.FileDescriptorProto)
 1566|     20|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (1566:7): [True: 0, False: 20]
  ------------------
 1567|     20|  SharedDtor();
 1568|     20|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1569|     20|}
_ZN6google8protobuf19FileDescriptorProto5ClearEv:
 1590|     20|void FileDescriptorProto::Clear() {
 1591|       |// @@protoc_insertion_point(message_clear_start:google.protobuf.FileDescriptorProto)
 1592|     20|  uint32_t cached_has_bits = 0;
 1593|       |  // Prevent compiler warnings about cached_has_bits being unused
 1594|     20|  (void) cached_has_bits;
 1595|       |
 1596|     20|  dependency_.Clear();
 1597|     20|  message_type_.Clear();
 1598|     20|  enum_type_.Clear();
 1599|     20|  service_.Clear();
 1600|     20|  extension_.Clear();
 1601|     20|  public_dependency_.Clear();
 1602|     20|  weak_dependency_.Clear();
 1603|     20|  cached_has_bits = _has_bits_[0];
 1604|     20|  if (cached_has_bits & 0x0000001fu) {
  ------------------
  |  Branch (1604:7): [True: 0, False: 20]
  ------------------
 1605|      0|    if (cached_has_bits & 0x00000001u) {
  ------------------
  |  Branch (1605:9): [True: 0, False: 0]
  ------------------
 1606|      0|      name_.ClearNonDefaultToEmpty();
 1607|      0|    }
 1608|      0|    if (cached_has_bits & 0x00000002u) {
  ------------------
  |  Branch (1608:9): [True: 0, False: 0]
  ------------------
 1609|      0|      package_.ClearNonDefaultToEmpty();
 1610|      0|    }
 1611|      0|    if (cached_has_bits & 0x00000004u) {
  ------------------
  |  Branch (1611:9): [True: 0, False: 0]
  ------------------
 1612|      0|      syntax_.ClearNonDefaultToEmpty();
 1613|      0|    }
 1614|      0|    if (cached_has_bits & 0x00000008u) {
  ------------------
  |  Branch (1614:9): [True: 0, False: 0]
  ------------------
 1615|      0|      GOOGLE_DCHECK(options_ != nullptr);
 1616|      0|      options_->Clear();
 1617|      0|    }
 1618|      0|    if (cached_has_bits & 0x00000010u) {
  ------------------
  |  Branch (1618:9): [True: 0, False: 0]
  ------------------
 1619|      0|      GOOGLE_DCHECK(source_code_info_ != nullptr);
 1620|      0|      source_code_info_->Clear();
 1621|      0|    }
 1622|      0|  }
 1623|     20|  _has_bits_.Clear();
 1624|     20|  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1625|     20|}
_ZN6google8protobuf19FileDescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 1627|     20|const char* FileDescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 1628|     20|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 1629|     20|  _Internal::HasBits has_bits{};
 1630|    126|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (1630:10): [True: 106, False: 20]
  ------------------
 1631|    106|    uint32_t tag;
 1632|    106|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 1633|    106|    switch (tag >> 3) {
 1634|       |      // optional string name = 1;
 1635|     20|      case 1:
  ------------------
  |  Branch (1635:7): [True: 20, False: 86]
  ------------------
 1636|     20|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 1637|     20|          auto str = _internal_mutable_name();
 1638|     20|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1639|       |          #ifndef NDEBUG
 1640|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileDescriptorProto.name");
 1641|       |          #endif  // !NDEBUG
 1642|     20|          CHK_(ptr);
  ------------------
  |  | 1628|     20|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1643|     20|        } else
 1644|      0|          goto handle_unusual;
 1645|     20|        continue;
 1646|       |      // optional string package = 2;
 1647|     20|      case 2:
  ------------------
  |  Branch (1647:7): [True: 20, False: 86]
  ------------------
 1648|     20|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 1649|     20|          auto str = _internal_mutable_package();
 1650|     20|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1651|       |          #ifndef NDEBUG
 1652|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileDescriptorProto.package");
 1653|       |          #endif  // !NDEBUG
 1654|     20|          CHK_(ptr);
  ------------------
  |  | 1628|     20|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1655|     20|        } else
 1656|      0|          goto handle_unusual;
 1657|     20|        continue;
 1658|       |      // repeated string dependency = 3;
 1659|     20|      case 3:
  ------------------
  |  Branch (1659:7): [True: 10, False: 96]
  ------------------
 1660|     10|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 1661|     10|          ptr -= 1;
 1662|     24|          do {
 1663|     24|            ptr += 1;
 1664|     24|            auto str = _internal_add_dependency();
 1665|     24|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1666|       |            #ifndef NDEBUG
 1667|       |            ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileDescriptorProto.dependency");
 1668|       |            #endif  // !NDEBUG
 1669|     24|            CHK_(ptr);
  ------------------
  |  | 1628|     24|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1670|     24|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1670:17): [True: 0, False: 24]
  ------------------
 1671|     24|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
  ------------------
  |  Branch (1671:20): [True: 14, False: 10]
  ------------------
 1672|     10|        } else
 1673|      0|          goto handle_unusual;
 1674|     10|        continue;
 1675|       |      // repeated .google.protobuf.DescriptorProto message_type = 4;
 1676|     18|      case 4:
  ------------------
  |  Branch (1676:7): [True: 18, False: 88]
  ------------------
 1677|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
 1678|     18|          ptr -= 1;
 1679|    210|          do {
 1680|    210|            ptr += 1;
 1681|    210|            ptr = ctx->ParseMessage(_internal_add_message_type(), ptr);
 1682|    210|            CHK_(ptr);
  ------------------
  |  | 1628|    210|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1683|    210|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1683:17): [True: 0, False: 210]
  ------------------
 1684|    210|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
  ------------------
  |  Branch (1684:20): [True: 192, False: 18]
  ------------------
 1685|     18|        } else
 1686|      0|          goto handle_unusual;
 1687|     18|        continue;
 1688|       |      // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
 1689|     18|      case 5:
  ------------------
  |  Branch (1689:7): [True: 4, False: 102]
  ------------------
 1690|      4|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
 1691|      4|          ptr -= 1;
 1692|      6|          do {
 1693|      6|            ptr += 1;
 1694|      6|            ptr = ctx->ParseMessage(_internal_add_enum_type(), ptr);
 1695|      6|            CHK_(ptr);
  ------------------
  |  | 1628|      6|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1696|      6|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1696:17): [True: 2, False: 4]
  ------------------
 1697|      6|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
  ------------------
  |  Branch (1697:20): [True: 2, False: 2]
  ------------------
 1698|      4|        } else
 1699|      0|          goto handle_unusual;
 1700|      4|        continue;
 1701|       |      // repeated .google.protobuf.ServiceDescriptorProto service = 6;
 1702|      4|      case 6:
  ------------------
  |  Branch (1702:7): [True: 0, False: 106]
  ------------------
 1703|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
 1704|      0|          ptr -= 1;
 1705|      0|          do {
 1706|      0|            ptr += 1;
 1707|      0|            ptr = ctx->ParseMessage(_internal_add_service(), ptr);
 1708|      0|            CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1709|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1709:17): [True: 0, False: 0]
  ------------------
 1710|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
  ------------------
  |  Branch (1710:20): [True: 0, False: 0]
  ------------------
 1711|      0|        } else
 1712|      0|          goto handle_unusual;
 1713|      0|        continue;
 1714|       |      // repeated .google.protobuf.FieldDescriptorProto extension = 7;
 1715|      0|      case 7:
  ------------------
  |  Branch (1715:7): [True: 0, False: 106]
  ------------------
 1716|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 1717|      0|          ptr -= 1;
 1718|      0|          do {
 1719|      0|            ptr += 1;
 1720|      0|            ptr = ctx->ParseMessage(_internal_add_extension(), ptr);
 1721|      0|            CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1722|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1722:17): [True: 0, False: 0]
  ------------------
 1723|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(ptr));
  ------------------
  |  Branch (1723:20): [True: 0, False: 0]
  ------------------
 1724|      0|        } else
 1725|      0|          goto handle_unusual;
 1726|      0|        continue;
 1727|       |      // optional .google.protobuf.FileOptions options = 8;
 1728|     18|      case 8:
  ------------------
  |  Branch (1728:7): [True: 18, False: 88]
  ------------------
 1729|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 1730|     18|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 1731|     18|          CHK_(ptr);
  ------------------
  |  | 1628|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1732|     18|        } else
 1733|      0|          goto handle_unusual;
 1734|     18|        continue;
 1735|       |      // optional .google.protobuf.SourceCodeInfo source_code_info = 9;
 1736|     18|      case 9:
  ------------------
  |  Branch (1736:7): [True: 0, False: 106]
  ------------------
 1737|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
 1738|      0|          ptr = ctx->ParseMessage(_internal_mutable_source_code_info(), ptr);
 1739|      0|          CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1740|      0|        } else
 1741|      0|          goto handle_unusual;
 1742|      0|        continue;
 1743|       |      // repeated int32 public_dependency = 10;
 1744|      0|      case 10:
  ------------------
  |  Branch (1744:7): [True: 0, False: 106]
  ------------------
 1745|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
 1746|      0|          ptr -= 1;
 1747|      0|          do {
 1748|      0|            ptr += 1;
 1749|      0|            _internal_add_public_dependency(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
 1750|      0|            CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1751|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1751:17): [True: 0, False: 0]
  ------------------
 1752|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<80>(ptr));
  ------------------
  |  Branch (1752:20): [True: 0, False: 0]
  ------------------
 1753|      0|        } else if (static_cast<uint8_t>(tag) == 82) {
  ------------------
  |  Branch (1753:20): [True: 0, False: 0]
  ------------------
 1754|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_public_dependency(), ptr, ctx);
 1755|      0|          CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1756|      0|        } else
 1757|      0|          goto handle_unusual;
 1758|      0|        continue;
 1759|       |      // repeated int32 weak_dependency = 11;
 1760|      0|      case 11:
  ------------------
  |  Branch (1760:7): [True: 0, False: 106]
  ------------------
 1761|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
 1762|      0|          ptr -= 1;
 1763|      0|          do {
 1764|      0|            ptr += 1;
 1765|      0|            _internal_add_weak_dependency(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
 1766|      0|            CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1767|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1767:17): [True: 0, False: 0]
  ------------------
 1768|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<88>(ptr));
  ------------------
  |  Branch (1768:20): [True: 0, False: 0]
  ------------------
 1769|      0|        } else if (static_cast<uint8_t>(tag) == 90) {
  ------------------
  |  Branch (1769:20): [True: 0, False: 0]
  ------------------
 1770|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_weak_dependency(), ptr, ctx);
 1771|      0|          CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1772|      0|        } else
 1773|      0|          goto handle_unusual;
 1774|      0|        continue;
 1775|       |      // optional string syntax = 12;
 1776|     16|      case 12:
  ------------------
  |  Branch (1776:7): [True: 16, False: 90]
  ------------------
 1777|     16|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
 1778|     16|          auto str = _internal_mutable_syntax();
 1779|     16|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1780|       |          #ifndef NDEBUG
 1781|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileDescriptorProto.syntax");
 1782|       |          #endif  // !NDEBUG
 1783|     16|          CHK_(ptr);
  ------------------
  |  | 1628|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1784|     16|        } else
 1785|      0|          goto handle_unusual;
 1786|     16|        continue;
 1787|     16|      default:
  ------------------
  |  Branch (1787:7): [True: 0, False: 106]
  ------------------
 1788|      0|        goto handle_unusual;
 1789|    106|    }  // switch
 1790|      0|  handle_unusual:
 1791|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (1791:9): [True: 0, False: 0]
  |  Branch (1791:23): [True: 0, False: 0]
  ------------------
 1792|      0|      CHK_(ptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1793|      0|      ctx->SetLastTag(tag);
 1794|      0|      goto message_done;
 1795|      0|    }
 1796|      0|    ptr = UnknownFieldParse(
 1797|      0|        tag,
 1798|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 1799|      0|        ptr, ctx);
 1800|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 1628|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1801|      0|  }  // while
 1802|     20|message_done:
 1803|     20|  _has_bits_.Or(has_bits);
 1804|     20|  return ptr;
 1805|      0|failure:
 1806|      0|  ptr = nullptr;
 1807|      0|  goto message_done;
 1808|     20|#undef CHK_
 1809|     20|}
_ZNK6google8protobuf19FileDescriptorProto13IsInitializedEv:
 2083|     20|bool FileDescriptorProto::IsInitialized() const {
 2084|     20|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(message_type_))
  ------------------
  |  Branch (2084:7): [True: 0, False: 20]
  ------------------
 2085|      0|    return false;
 2086|     20|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(enum_type_))
  ------------------
  |  Branch (2086:7): [True: 0, False: 20]
  ------------------
 2087|      0|    return false;
 2088|     20|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(service_))
  ------------------
  |  Branch (2088:7): [True: 0, False: 20]
  ------------------
 2089|      0|    return false;
 2090|     20|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(extension_))
  ------------------
  |  Branch (2090:7): [True: 0, False: 20]
  ------------------
 2091|      0|    return false;
 2092|     20|  if (_internal_has_options()) {
  ------------------
  |  Branch (2092:7): [True: 18, False: 2]
  ------------------
 2093|     18|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (2093:9): [True: 0, False: 18]
  ------------------
 2094|     18|  }
 2095|     20|  return true;
 2096|     20|}
_ZN6google8protobuf30DescriptorProto_ExtensionRangeC2EPNS0_5ArenaEb:
 2163|     18|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 2164|     18|  SharedCtor();
 2165|     18|  if (!is_message_owned) {
  ------------------
  |  Branch (2165:7): [True: 18, False: 0]
  ------------------
 2166|     18|    RegisterArenaDtor(arena);
 2167|     18|  }
 2168|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.DescriptorProto.ExtensionRange)
 2169|     18|}
_ZN6google8protobuf30DescriptorProto_ExtensionRangeD2Ev:
 2192|     18|DescriptorProto_ExtensionRange::~DescriptorProto_ExtensionRange() {
 2193|       |  // @@protoc_insertion_point(destructor:google.protobuf.DescriptorProto.ExtensionRange)
 2194|     18|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (2194:7): [True: 0, False: 18]
  ------------------
 2195|     18|  SharedDtor();
 2196|     18|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 2197|     18|}
_ZN6google8protobuf30DescriptorProto_ExtensionRange14_InternalParseEPKcPNS0_8internal12ParseContextE:
 2234|     18|const char* DescriptorProto_ExtensionRange::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 2235|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 2236|     18|  _Internal::HasBits has_bits{};
 2237|     54|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (2237:10): [True: 36, False: 18]
  ------------------
 2238|     36|    uint32_t tag;
 2239|     36|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 2240|     36|    switch (tag >> 3) {
 2241|       |      // optional int32 start = 1;
 2242|     18|      case 1:
  ------------------
  |  Branch (2242:7): [True: 18, False: 18]
  ------------------
 2243|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
 2244|     18|          _Internal::set_has_start(&has_bits);
 2245|     18|          start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 2246|     18|          CHK_(ptr);
  ------------------
  |  | 2235|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2247|     18|        } else
 2248|      0|          goto handle_unusual;
 2249|     18|        continue;
 2250|       |      // optional int32 end = 2;
 2251|     18|      case 2:
  ------------------
  |  Branch (2251:7): [True: 18, False: 18]
  ------------------
 2252|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
 2253|     18|          _Internal::set_has_end(&has_bits);
 2254|     18|          end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 2255|     18|          CHK_(ptr);
  ------------------
  |  | 2235|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2256|     18|        } else
 2257|      0|          goto handle_unusual;
 2258|     18|        continue;
 2259|       |      // optional .google.protobuf.ExtensionRangeOptions options = 3;
 2260|     18|      case 3:
  ------------------
  |  Branch (2260:7): [True: 0, False: 36]
  ------------------
 2261|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 2262|      0|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 2263|      0|          CHK_(ptr);
  ------------------
  |  | 2235|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2264|      0|        } else
 2265|      0|          goto handle_unusual;
 2266|      0|        continue;
 2267|      0|      default:
  ------------------
  |  Branch (2267:7): [True: 0, False: 36]
  ------------------
 2268|      0|        goto handle_unusual;
 2269|     36|    }  // switch
 2270|      0|  handle_unusual:
 2271|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (2271:9): [True: 0, False: 0]
  |  Branch (2271:23): [True: 0, False: 0]
  ------------------
 2272|      0|      CHK_(ptr);
  ------------------
  |  | 2235|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2273|      0|      ctx->SetLastTag(tag);
 2274|      0|      goto message_done;
 2275|      0|    }
 2276|      0|    ptr = UnknownFieldParse(
 2277|      0|        tag,
 2278|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 2279|      0|        ptr, ctx);
 2280|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 2235|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2281|      0|  }  // while
 2282|     18|message_done:
 2283|     18|  _has_bits_.Or(has_bits);
 2284|     18|  return ptr;
 2285|      0|failure:
 2286|      0|  ptr = nullptr;
 2287|      0|  goto message_done;
 2288|     18|#undef CHK_
 2289|     18|}
_ZNK6google8protobuf30DescriptorProto_ExtensionRange13IsInitializedEv:
 2399|     18|bool DescriptorProto_ExtensionRange::IsInitialized() const {
 2400|     18|  if (_internal_has_options()) {
  ------------------
  |  Branch (2400:7): [True: 0, False: 18]
  ------------------
 2401|      0|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (2401:9): [True: 0, False: 0]
  ------------------
 2402|      0|  }
 2403|     18|  return true;
 2404|     18|}
_ZN6google8protobuf29DescriptorProto_ReservedRangeC2EPNS0_5ArenaEb:
 2439|     16|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 2440|     16|  SharedCtor();
 2441|     16|  if (!is_message_owned) {
  ------------------
  |  Branch (2441:7): [True: 16, False: 0]
  ------------------
 2442|     16|    RegisterArenaDtor(arena);
 2443|     16|  }
 2444|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.DescriptorProto.ReservedRange)
 2445|     16|}
_ZN6google8protobuf29DescriptorProto_ReservedRangeD2Ev:
 2463|     16|DescriptorProto_ReservedRange::~DescriptorProto_ReservedRange() {
 2464|       |  // @@protoc_insertion_point(destructor:google.protobuf.DescriptorProto.ReservedRange)
 2465|     16|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (2465:7): [True: 0, False: 16]
  ------------------
 2466|     16|  SharedDtor();
 2467|     16|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 2468|     16|}
_ZN6google8protobuf29DescriptorProto_ReservedRange14_InternalParseEPKcPNS0_8internal12ParseContextE:
 2500|     16|const char* DescriptorProto_ReservedRange::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 2501|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 2502|     16|  _Internal::HasBits has_bits{};
 2503|     48|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (2503:10): [True: 32, False: 16]
  ------------------
 2504|     32|    uint32_t tag;
 2505|     32|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 2506|     32|    switch (tag >> 3) {
 2507|       |      // optional int32 start = 1;
 2508|     16|      case 1:
  ------------------
  |  Branch (2508:7): [True: 16, False: 16]
  ------------------
 2509|     16|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
 2510|     16|          _Internal::set_has_start(&has_bits);
 2511|     16|          start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 2512|     16|          CHK_(ptr);
  ------------------
  |  | 2501|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2513|     16|        } else
 2514|      0|          goto handle_unusual;
 2515|     16|        continue;
 2516|       |      // optional int32 end = 2;
 2517|     16|      case 2:
  ------------------
  |  Branch (2517:7): [True: 16, False: 16]
  ------------------
 2518|     16|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
 2519|     16|          _Internal::set_has_end(&has_bits);
 2520|     16|          end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 2521|     16|          CHK_(ptr);
  ------------------
  |  | 2501|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2522|     16|        } else
 2523|      0|          goto handle_unusual;
 2524|     16|        continue;
 2525|     16|      default:
  ------------------
  |  Branch (2525:7): [True: 0, False: 32]
  ------------------
 2526|      0|        goto handle_unusual;
 2527|     32|    }  // switch
 2528|      0|  handle_unusual:
 2529|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (2529:9): [True: 0, False: 0]
  |  Branch (2529:23): [True: 0, False: 0]
  ------------------
 2530|      0|      CHK_(ptr);
  ------------------
  |  | 2501|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2531|      0|      ctx->SetLastTag(tag);
 2532|      0|      goto message_done;
 2533|      0|    }
 2534|      0|    ptr = UnknownFieldParse(
 2535|      0|        tag,
 2536|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 2537|      0|        ptr, ctx);
 2538|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 2501|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2539|      0|  }  // while
 2540|     16|message_done:
 2541|     16|  _has_bits_.Or(has_bits);
 2542|     16|  return ptr;
 2543|      0|failure:
 2544|      0|  ptr = nullptr;
 2545|      0|  goto message_done;
 2546|     16|#undef CHK_
 2547|     16|}
_ZN6google8protobuf15DescriptorProtoC2EPNS0_5ArenaEb:
 2681|    238|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 2682|    238|  field_(arena),
 2683|    238|  nested_type_(arena),
 2684|    238|  enum_type_(arena),
 2685|    238|  extension_range_(arena),
 2686|    238|  extension_(arena),
 2687|    238|  oneof_decl_(arena),
 2688|    238|  reserved_range_(arena),
 2689|    238|  reserved_name_(arena) {
 2690|    238|  SharedCtor();
 2691|    238|  if (!is_message_owned) {
  ------------------
  |  Branch (2691:7): [True: 238, False: 0]
  ------------------
 2692|    238|    RegisterArenaDtor(arena);
 2693|    238|  }
 2694|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.DescriptorProto)
 2695|    238|}
_ZN6google8protobuf15DescriptorProtoD2Ev:
 2732|    238|DescriptorProto::~DescriptorProto() {
 2733|       |  // @@protoc_insertion_point(destructor:google.protobuf.DescriptorProto)
 2734|    238|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (2734:7): [True: 0, False: 238]
  ------------------
 2735|    238|  SharedDtor();
 2736|    238|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 2737|    238|}
_ZN6google8protobuf15DescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 2783|    238|const char* DescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 2784|    238|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 2785|    238|  _Internal::HasBits has_bits{};
 2786|    818|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (2786:10): [True: 580, False: 238]
  ------------------
 2787|    580|    uint32_t tag;
 2788|    580|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 2789|    580|    switch (tag >> 3) {
 2790|       |      // optional string name = 1;
 2791|    238|      case 1:
  ------------------
  |  Branch (2791:7): [True: 238, False: 342]
  ------------------
 2792|    238|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 2793|    238|          auto str = _internal_mutable_name();
 2794|    238|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 2795|       |          #ifndef NDEBUG
 2796|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.DescriptorProto.name");
 2797|       |          #endif  // !NDEBUG
 2798|    238|          CHK_(ptr);
  ------------------
  |  | 2784|    238|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2799|    238|        } else
 2800|      0|          goto handle_unusual;
 2801|    238|        continue;
 2802|       |      // repeated .google.protobuf.FieldDescriptorProto field = 2;
 2803|    238|      case 2:
  ------------------
  |  Branch (2803:7): [True: 238, False: 342]
  ------------------
 2804|    238|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 2805|    238|          ptr -= 1;
 2806|  1.41k|          do {
 2807|  1.41k|            ptr += 1;
 2808|  1.41k|            ptr = ctx->ParseMessage(_internal_add_field(), ptr);
 2809|  1.41k|            CHK_(ptr);
  ------------------
  |  | 2784|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2810|  1.41k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2810:17): [True: 150, False: 1.26k]
  ------------------
 2811|  1.41k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (2811:20): [True: 1.17k, False: 88]
  ------------------
 2812|    238|        } else
 2813|      0|          goto handle_unusual;
 2814|    238|        continue;
 2815|       |      // repeated .google.protobuf.DescriptorProto nested_type = 3;
 2816|    238|      case 3:
  ------------------
  |  Branch (2816:7): [True: 24, False: 556]
  ------------------
 2817|     24|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 2818|     24|          ptr -= 1;
 2819|     28|          do {
 2820|     28|            ptr += 1;
 2821|     28|            ptr = ctx->ParseMessage(_internal_add_nested_type(), ptr);
 2822|     28|            CHK_(ptr);
  ------------------
  |  | 2784|     28|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2823|     28|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2823:17): [True: 22, False: 6]
  ------------------
 2824|     28|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
  ------------------
  |  Branch (2824:20): [True: 4, False: 2]
  ------------------
 2825|     24|        } else
 2826|      0|          goto handle_unusual;
 2827|     24|        continue;
 2828|       |      // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
 2829|     46|      case 4:
  ------------------
  |  Branch (2829:7): [True: 46, False: 534]
  ------------------
 2830|     46|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
 2831|     46|          ptr -= 1;
 2832|     62|          do {
 2833|     62|            ptr += 1;
 2834|     62|            ptr = ctx->ParseMessage(_internal_add_enum_type(), ptr);
 2835|     62|            CHK_(ptr);
  ------------------
  |  | 2784|     62|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2836|     62|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2836:17): [True: 40, False: 22]
  ------------------
 2837|     62|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
  ------------------
  |  Branch (2837:20): [True: 16, False: 6]
  ------------------
 2838|     46|        } else
 2839|      0|          goto handle_unusual;
 2840|     46|        continue;
 2841|       |      // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
 2842|     46|      case 5:
  ------------------
  |  Branch (2842:7): [True: 18, False: 562]
  ------------------
 2843|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
 2844|     18|          ptr -= 1;
 2845|     18|          do {
 2846|     18|            ptr += 1;
 2847|     18|            ptr = ctx->ParseMessage(_internal_add_extension_range(), ptr);
 2848|     18|            CHK_(ptr);
  ------------------
  |  | 2784|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2849|     18|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2849:17): [True: 10, False: 8]
  ------------------
 2850|     18|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
  ------------------
  |  Branch (2850:20): [True: 0, False: 8]
  ------------------
 2851|     18|        } else
 2852|      0|          goto handle_unusual;
 2853|     18|        continue;
 2854|       |      // repeated .google.protobuf.FieldDescriptorProto extension = 6;
 2855|     18|      case 6:
  ------------------
  |  Branch (2855:7): [True: 0, False: 580]
  ------------------
 2856|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
 2857|      0|          ptr -= 1;
 2858|      0|          do {
 2859|      0|            ptr += 1;
 2860|      0|            ptr = ctx->ParseMessage(_internal_add_extension(), ptr);
 2861|      0|            CHK_(ptr);
  ------------------
  |  | 2784|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2862|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2862:17): [True: 0, False: 0]
  ------------------
 2863|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
  ------------------
  |  Branch (2863:20): [True: 0, False: 0]
  ------------------
 2864|      0|        } else
 2865|      0|          goto handle_unusual;
 2866|      0|        continue;
 2867|       |      // optional .google.protobuf.MessageOptions options = 7;
 2868|      6|      case 7:
  ------------------
  |  Branch (2868:7): [True: 6, False: 574]
  ------------------
 2869|      6|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 2870|      6|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 2871|      6|          CHK_(ptr);
  ------------------
  |  | 2784|      6|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2872|      6|        } else
 2873|      0|          goto handle_unusual;
 2874|      6|        continue;
 2875|       |      // repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
 2876|      6|      case 8:
  ------------------
  |  Branch (2876:7): [True: 2, False: 578]
  ------------------
 2877|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 2878|      2|          ptr -= 1;
 2879|      2|          do {
 2880|      2|            ptr += 1;
 2881|      2|            ptr = ctx->ParseMessage(_internal_add_oneof_decl(), ptr);
 2882|      2|            CHK_(ptr);
  ------------------
  |  | 2784|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2883|      2|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2883:17): [True: 2, False: 0]
  ------------------
 2884|      2|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr));
  ------------------
  |  Branch (2884:20): [True: 0, False: 0]
  ------------------
 2885|      2|        } else
 2886|      0|          goto handle_unusual;
 2887|      2|        continue;
 2888|       |      // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
 2889|      8|      case 9:
  ------------------
  |  Branch (2889:7): [True: 8, False: 572]
  ------------------
 2890|      8|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
 2891|      8|          ptr -= 1;
 2892|     16|          do {
 2893|     16|            ptr += 1;
 2894|     16|            ptr = ctx->ParseMessage(_internal_add_reserved_range(), ptr);
 2895|     16|            CHK_(ptr);
  ------------------
  |  | 2784|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2896|     16|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2896:17): [True: 8, False: 8]
  ------------------
 2897|     16|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr));
  ------------------
  |  Branch (2897:20): [True: 8, False: 0]
  ------------------
 2898|      8|        } else
 2899|      0|          goto handle_unusual;
 2900|      8|        continue;
 2901|       |      // repeated string reserved_name = 10;
 2902|      8|      case 10:
  ------------------
  |  Branch (2902:7): [True: 0, False: 580]
  ------------------
 2903|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
 2904|      0|          ptr -= 1;
 2905|      0|          do {
 2906|      0|            ptr += 1;
 2907|      0|            auto str = _internal_add_reserved_name();
 2908|      0|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 2909|       |            #ifndef NDEBUG
 2910|       |            ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.DescriptorProto.reserved_name");
 2911|       |            #endif  // !NDEBUG
 2912|      0|            CHK_(ptr);
  ------------------
  |  | 2784|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2913|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (2913:17): [True: 0, False: 0]
  ------------------
 2914|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
  ------------------
  |  Branch (2914:20): [True: 0, False: 0]
  ------------------
 2915|      0|        } else
 2916|      0|          goto handle_unusual;
 2917|      0|        continue;
 2918|      0|      default:
  ------------------
  |  Branch (2918:7): [True: 0, False: 580]
  ------------------
 2919|      0|        goto handle_unusual;
 2920|    580|    }  // switch
 2921|      0|  handle_unusual:
 2922|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (2922:9): [True: 0, False: 0]
  |  Branch (2922:23): [True: 0, False: 0]
  ------------------
 2923|      0|      CHK_(ptr);
  ------------------
  |  | 2784|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2924|      0|      ctx->SetLastTag(tag);
 2925|      0|      goto message_done;
 2926|      0|    }
 2927|      0|    ptr = UnknownFieldParse(
 2928|      0|        tag,
 2929|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 2930|      0|        ptr, ctx);
 2931|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 2784|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 2932|      0|  }  // while
 2933|    238|message_done:
 2934|    238|  _has_bits_.Or(has_bits);
 2935|    238|  return ptr;
 2936|      0|failure:
 2937|      0|  ptr = nullptr;
 2938|      0|  goto message_done;
 2939|    238|#undef CHK_
 2940|    238|}
_ZNK6google8protobuf15DescriptorProto13IsInitializedEv:
 3172|    238|bool DescriptorProto::IsInitialized() const {
 3173|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(field_))
  ------------------
  |  Branch (3173:7): [True: 0, False: 238]
  ------------------
 3174|      0|    return false;
 3175|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(nested_type_))
  ------------------
  |  Branch (3175:7): [True: 0, False: 238]
  ------------------
 3176|      0|    return false;
 3177|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(enum_type_))
  ------------------
  |  Branch (3177:7): [True: 0, False: 238]
  ------------------
 3178|      0|    return false;
 3179|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(extension_range_))
  ------------------
  |  Branch (3179:7): [True: 0, False: 238]
  ------------------
 3180|      0|    return false;
 3181|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(extension_))
  ------------------
  |  Branch (3181:7): [True: 0, False: 238]
  ------------------
 3182|      0|    return false;
 3183|    238|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(oneof_decl_))
  ------------------
  |  Branch (3183:7): [True: 0, False: 238]
  ------------------
 3184|      0|    return false;
 3185|    238|  if (_internal_has_options()) {
  ------------------
  |  Branch (3185:7): [True: 6, False: 232]
  ------------------
 3186|      6|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (3186:9): [True: 0, False: 6]
  ------------------
 3187|      6|  }
 3188|    238|  return true;
 3189|    238|}
_ZN6google8protobuf20FieldDescriptorProtoC2EPNS0_5ArenaEb:
 3473|  1.41k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 3474|  1.41k|  SharedCtor();
 3475|  1.41k|  if (!is_message_owned) {
  ------------------
  |  Branch (3475:7): [True: 1.41k, False: 0]
  ------------------
 3476|  1.41k|    RegisterArenaDtor(arena);
 3477|  1.41k|  }
 3478|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.FieldDescriptorProto)
 3479|  1.41k|}
_ZN6google8protobuf20FieldDescriptorProtoD2Ev:
 3564|  1.41k|FieldDescriptorProto::~FieldDescriptorProto() {
 3565|       |  // @@protoc_insertion_point(destructor:google.protobuf.FieldDescriptorProto)
 3566|  1.41k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (3566:7): [True: 0, False: 1.41k]
  ------------------
 3567|  1.41k|  SharedDtor();
 3568|  1.41k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 3569|  1.41k|}
_ZN6google8protobuf20FieldDescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 3633|  1.41k|const char* FieldDescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 3634|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 3635|  1.41k|  _Internal::HasBits has_bits{};
 3636|  8.07k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (3636:10): [True: 6.65k, False: 1.41k]
  ------------------
 3637|  6.65k|    uint32_t tag;
 3638|  6.65k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 3639|  6.65k|    switch (tag >> 3) {
 3640|       |      // optional string name = 1;
 3641|  1.41k|      case 1:
  ------------------
  |  Branch (3641:7): [True: 1.41k, False: 5.24k]
  ------------------
 3642|  1.41k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 3643|  1.41k|          auto str = _internal_mutable_name();
 3644|  1.41k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 3645|       |          #ifndef NDEBUG
 3646|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FieldDescriptorProto.name");
 3647|       |          #endif  // !NDEBUG
 3648|  1.41k|          CHK_(ptr);
  ------------------
  |  | 3634|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3649|  1.41k|        } else
 3650|      0|          goto handle_unusual;
 3651|  1.41k|        continue;
 3652|       |      // optional string extendee = 2;
 3653|  1.41k|      case 2:
  ------------------
  |  Branch (3653:7): [True: 0, False: 6.65k]
  ------------------
 3654|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 3655|      0|          auto str = _internal_mutable_extendee();
 3656|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 3657|       |          #ifndef NDEBUG
 3658|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FieldDescriptorProto.extendee");
 3659|       |          #endif  // !NDEBUG
 3660|      0|          CHK_(ptr);
  ------------------
  |  | 3634|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3661|      0|        } else
 3662|      0|          goto handle_unusual;
 3663|      0|        continue;
 3664|       |      // optional int32 number = 3;
 3665|  1.41k|      case 3:
  ------------------
  |  Branch (3665:7): [True: 1.41k, False: 5.24k]
  ------------------
 3666|  1.41k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
 3667|  1.41k|          _Internal::set_has_number(&has_bits);
 3668|  1.41k|          number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 3669|  1.41k|          CHK_(ptr);
  ------------------
  |  | 3634|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3670|  1.41k|        } else
 3671|      0|          goto handle_unusual;
 3672|  1.41k|        continue;
 3673|       |      // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
 3674|  1.41k|      case 4:
  ------------------
  |  Branch (3674:7): [True: 1.41k, False: 5.24k]
  ------------------
 3675|  1.41k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
 3676|  1.41k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 3677|  1.41k|          CHK_(ptr);
  ------------------
  |  | 3634|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3678|  1.41k|          if (PROTOBUF_PREDICT_TRUE(::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto_Label_IsValid(val))) {
 3679|  1.41k|            _internal_set_label(static_cast<::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto_Label>(val));
 3680|  1.41k|          } else {
 3681|      0|            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(4, val, mutable_unknown_fields());
 3682|      0|          }
 3683|  1.41k|        } else
 3684|      0|          goto handle_unusual;
 3685|  1.41k|        continue;
 3686|       |      // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
 3687|  1.41k|      case 5:
  ------------------
  |  Branch (3687:7): [True: 1.41k, False: 5.24k]
  ------------------
 3688|  1.41k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
 3689|  1.41k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 3690|  1.41k|          CHK_(ptr);
  ------------------
  |  | 3634|  1.41k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3691|  1.41k|          if (PROTOBUF_PREDICT_TRUE(::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto_Type_IsValid(val))) {
 3692|  1.41k|            _internal_set_type(static_cast<::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto_Type>(val));
 3693|  1.41k|          } else {
 3694|      0|            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(5, val, mutable_unknown_fields());
 3695|      0|          }
 3696|  1.41k|        } else
 3697|      0|          goto handle_unusual;
 3698|  1.41k|        continue;
 3699|       |      // optional string type_name = 6;
 3700|  1.41k|      case 6:
  ------------------
  |  Branch (3700:7): [True: 464, False: 6.19k]
  ------------------
 3701|    464|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
 3702|    464|          auto str = _internal_mutable_type_name();
 3703|    464|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 3704|       |          #ifndef NDEBUG
 3705|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FieldDescriptorProto.type_name");
 3706|       |          #endif  // !NDEBUG
 3707|    464|          CHK_(ptr);
  ------------------
  |  | 3634|    464|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3708|    464|        } else
 3709|      0|          goto handle_unusual;
 3710|    464|        continue;
 3711|       |      // optional string default_value = 7;
 3712|    464|      case 7:
  ------------------
  |  Branch (3712:7): [True: 464, False: 6.19k]
  ------------------
 3713|    464|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 3714|    464|          auto str = _internal_mutable_default_value();
 3715|    464|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 3716|       |          #ifndef NDEBUG
 3717|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FieldDescriptorProto.default_value");
 3718|       |          #endif  // !NDEBUG
 3719|    464|          CHK_(ptr);
  ------------------
  |  | 3634|    464|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3720|    464|        } else
 3721|      0|          goto handle_unusual;
 3722|    464|        continue;
 3723|       |      // optional .google.protobuf.FieldOptions options = 8;
 3724|    464|      case 8:
  ------------------
  |  Branch (3724:7): [True: 46, False: 6.61k]
  ------------------
 3725|     46|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 3726|     46|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 3727|     46|          CHK_(ptr);
  ------------------
  |  | 3634|     46|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3728|     46|        } else
 3729|      0|          goto handle_unusual;
 3730|     46|        continue;
 3731|       |      // optional int32 oneof_index = 9;
 3732|     46|      case 9:
  ------------------
  |  Branch (3732:7): [True: 20, False: 6.63k]
  ------------------
 3733|     20|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
 3734|     20|          _Internal::set_has_oneof_index(&has_bits);
 3735|     20|          oneof_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 3736|     20|          CHK_(ptr);
  ------------------
  |  | 3634|     20|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3737|     20|        } else
 3738|      0|          goto handle_unusual;
 3739|     20|        continue;
 3740|       |      // optional string json_name = 10;
 3741|     20|      case 10:
  ------------------
  |  Branch (3741:7): [True: 0, False: 6.65k]
  ------------------
 3742|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
 3743|      0|          auto str = _internal_mutable_json_name();
 3744|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 3745|       |          #ifndef NDEBUG
 3746|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FieldDescriptorProto.json_name");
 3747|       |          #endif  // !NDEBUG
 3748|      0|          CHK_(ptr);
  ------------------
  |  | 3634|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3749|      0|        } else
 3750|      0|          goto handle_unusual;
 3751|      0|        continue;
 3752|       |      // optional bool proto3_optional = 17;
 3753|      0|      case 17:
  ------------------
  |  Branch (3753:7): [True: 0, False: 6.65k]
  ------------------
 3754|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
 3755|      0|          _Internal::set_has_proto3_optional(&has_bits);
 3756|      0|          proto3_optional_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 3757|      0|          CHK_(ptr);
  ------------------
  |  | 3634|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3758|      0|        } else
 3759|      0|          goto handle_unusual;
 3760|      0|        continue;
 3761|      0|      default:
  ------------------
  |  Branch (3761:7): [True: 0, False: 6.65k]
  ------------------
 3762|      0|        goto handle_unusual;
 3763|  6.65k|    }  // switch
 3764|      0|  handle_unusual:
 3765|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (3765:9): [True: 0, False: 0]
  |  Branch (3765:23): [True: 0, False: 0]
  ------------------
 3766|      0|      CHK_(ptr);
  ------------------
  |  | 3634|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3767|      0|      ctx->SetLastTag(tag);
 3768|      0|      goto message_done;
 3769|      0|    }
 3770|      0|    ptr = UnknownFieldParse(
 3771|      0|        tag,
 3772|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 3773|      0|        ptr, ctx);
 3774|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 3634|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 3775|      0|  }  // while
 3776|  1.41k|message_done:
 3777|  1.41k|  _has_bits_.Or(has_bits);
 3778|  1.41k|  return ptr;
 3779|      0|failure:
 3780|      0|  ptr = nullptr;
 3781|      0|  goto message_done;
 3782|  1.41k|#undef CHK_
 3783|  1.41k|}
_ZNK6google8protobuf20FieldDescriptorProto13IsInitializedEv:
 4044|  1.41k|bool FieldDescriptorProto::IsInitialized() const {
 4045|  1.41k|  if (_internal_has_options()) {
  ------------------
  |  Branch (4045:7): [True: 46, False: 1.37k]
  ------------------
 4046|     46|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (4046:9): [True: 0, False: 46]
  ------------------
 4047|     46|  }
 4048|  1.41k|  return true;
 4049|  1.41k|}
_ZN6google8protobuf20OneofDescriptorProtoC2EPNS0_5ArenaEb:
 4118|      2|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 4119|      2|  SharedCtor();
 4120|      2|  if (!is_message_owned) {
  ------------------
  |  Branch (4120:7): [True: 2, False: 0]
  ------------------
 4121|      2|    RegisterArenaDtor(arena);
 4122|      2|  }
 4123|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.OneofDescriptorProto)
 4124|      2|}
_ZN6google8protobuf20OneofDescriptorProtoD2Ev:
 4153|      2|OneofDescriptorProto::~OneofDescriptorProto() {
 4154|       |  // @@protoc_insertion_point(destructor:google.protobuf.OneofDescriptorProto)
 4155|      2|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (4155:7): [True: 0, False: 2]
  ------------------
 4156|      2|  SharedDtor();
 4157|      2|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 4158|      2|}
_ZN6google8protobuf20OneofDescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 4196|      2|const char* OneofDescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 4197|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 4198|      2|  _Internal::HasBits has_bits{};
 4199|      4|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (4199:10): [True: 2, False: 2]
  ------------------
 4200|      2|    uint32_t tag;
 4201|      2|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 4202|      2|    switch (tag >> 3) {
 4203|       |      // optional string name = 1;
 4204|      2|      case 1:
  ------------------
  |  Branch (4204:7): [True: 2, False: 0]
  ------------------
 4205|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 4206|      2|          auto str = _internal_mutable_name();
 4207|      2|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 4208|       |          #ifndef NDEBUG
 4209|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.OneofDescriptorProto.name");
 4210|       |          #endif  // !NDEBUG
 4211|      2|          CHK_(ptr);
  ------------------
  |  | 4197|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4212|      2|        } else
 4213|      0|          goto handle_unusual;
 4214|      2|        continue;
 4215|       |      // optional .google.protobuf.OneofOptions options = 2;
 4216|      2|      case 2:
  ------------------
  |  Branch (4216:7): [True: 0, False: 2]
  ------------------
 4217|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 4218|      0|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 4219|      0|          CHK_(ptr);
  ------------------
  |  | 4197|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4220|      0|        } else
 4221|      0|          goto handle_unusual;
 4222|      0|        continue;
 4223|      0|      default:
  ------------------
  |  Branch (4223:7): [True: 0, False: 2]
  ------------------
 4224|      0|        goto handle_unusual;
 4225|      2|    }  // switch
 4226|      0|  handle_unusual:
 4227|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (4227:9): [True: 0, False: 0]
  |  Branch (4227:23): [True: 0, False: 0]
  ------------------
 4228|      0|      CHK_(ptr);
  ------------------
  |  | 4197|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4229|      0|      ctx->SetLastTag(tag);
 4230|      0|      goto message_done;
 4231|      0|    }
 4232|      0|    ptr = UnknownFieldParse(
 4233|      0|        tag,
 4234|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 4235|      0|        ptr, ctx);
 4236|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 4197|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4237|      0|  }  // while
 4238|      2|message_done:
 4239|      2|  _has_bits_.Or(has_bits);
 4240|      2|  return ptr;
 4241|      0|failure:
 4242|      0|  ptr = nullptr;
 4243|      0|  goto message_done;
 4244|      2|#undef CHK_
 4245|      2|}
_ZNK6google8protobuf20OneofDescriptorProto13IsInitializedEv:
 4346|      2|bool OneofDescriptorProto::IsInitialized() const {
 4347|      2|  if (_internal_has_options()) {
  ------------------
  |  Branch (4347:7): [True: 0, False: 2]
  ------------------
 4348|      0|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (4348:9): [True: 0, False: 0]
  ------------------
 4349|      0|  }
 4350|      2|  return true;
 4351|      2|}
_ZN6google8protobuf19EnumDescriptorProtoC2EPNS0_5ArenaEb:
 4630|     68|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 4631|     68|  value_(arena),
 4632|     68|  reserved_range_(arena),
 4633|     68|  reserved_name_(arena) {
 4634|     68|  SharedCtor();
 4635|     68|  if (!is_message_owned) {
  ------------------
  |  Branch (4635:7): [True: 68, False: 0]
  ------------------
 4636|     68|    RegisterArenaDtor(arena);
 4637|     68|  }
 4638|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.EnumDescriptorProto)
 4639|     68|}
_ZN6google8protobuf19EnumDescriptorProtoD2Ev:
 4671|     68|EnumDescriptorProto::~EnumDescriptorProto() {
 4672|       |  // @@protoc_insertion_point(destructor:google.protobuf.EnumDescriptorProto)
 4673|     68|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (4673:7): [True: 0, False: 68]
  ------------------
 4674|     68|  SharedDtor();
 4675|     68|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 4676|     68|}
_ZN6google8protobuf19EnumDescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 4717|     68|const char* EnumDescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 4718|     68|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 4719|     68|  _Internal::HasBits has_bits{};
 4720|    204|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (4720:10): [True: 136, False: 68]
  ------------------
 4721|    136|    uint32_t tag;
 4722|    136|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 4723|    136|    switch (tag >> 3) {
 4724|       |      // optional string name = 1;
 4725|     68|      case 1:
  ------------------
  |  Branch (4725:7): [True: 68, False: 68]
  ------------------
 4726|     68|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 4727|     68|          auto str = _internal_mutable_name();
 4728|     68|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 4729|       |          #ifndef NDEBUG
 4730|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.EnumDescriptorProto.name");
 4731|       |          #endif  // !NDEBUG
 4732|     68|          CHK_(ptr);
  ------------------
  |  | 4718|     68|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4733|     68|        } else
 4734|      0|          goto handle_unusual;
 4735|     68|        continue;
 4736|       |      // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
 4737|     68|      case 2:
  ------------------
  |  Branch (4737:7): [True: 68, False: 68]
  ------------------
 4738|     68|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 4739|     68|          ptr -= 1;
 4740|    376|          do {
 4741|    376|            ptr += 1;
 4742|    376|            ptr = ctx->ParseMessage(_internal_add_value(), ptr);
 4743|    376|            CHK_(ptr);
  ------------------
  |  | 4718|    376|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4744|    376|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (4744:17): [True: 68, False: 308]
  ------------------
 4745|    376|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (4745:20): [True: 308, False: 0]
  ------------------
 4746|     68|        } else
 4747|      0|          goto handle_unusual;
 4748|     68|        continue;
 4749|       |      // optional .google.protobuf.EnumOptions options = 3;
 4750|     68|      case 3:
  ------------------
  |  Branch (4750:7): [True: 0, False: 136]
  ------------------
 4751|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 4752|      0|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 4753|      0|          CHK_(ptr);
  ------------------
  |  | 4718|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4754|      0|        } else
 4755|      0|          goto handle_unusual;
 4756|      0|        continue;
 4757|       |      // repeated .google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;
 4758|      0|      case 4:
  ------------------
  |  Branch (4758:7): [True: 0, False: 136]
  ------------------
 4759|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
 4760|      0|          ptr -= 1;
 4761|      0|          do {
 4762|      0|            ptr += 1;
 4763|      0|            ptr = ctx->ParseMessage(_internal_add_reserved_range(), ptr);
 4764|      0|            CHK_(ptr);
  ------------------
  |  | 4718|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4765|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (4765:17): [True: 0, False: 0]
  ------------------
 4766|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
  ------------------
  |  Branch (4766:20): [True: 0, False: 0]
  ------------------
 4767|      0|        } else
 4768|      0|          goto handle_unusual;
 4769|      0|        continue;
 4770|       |      // repeated string reserved_name = 5;
 4771|      0|      case 5:
  ------------------
  |  Branch (4771:7): [True: 0, False: 136]
  ------------------
 4772|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
 4773|      0|          ptr -= 1;
 4774|      0|          do {
 4775|      0|            ptr += 1;
 4776|      0|            auto str = _internal_add_reserved_name();
 4777|      0|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 4778|       |            #ifndef NDEBUG
 4779|       |            ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.EnumDescriptorProto.reserved_name");
 4780|       |            #endif  // !NDEBUG
 4781|      0|            CHK_(ptr);
  ------------------
  |  | 4718|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4782|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (4782:17): [True: 0, False: 0]
  ------------------
 4783|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
  ------------------
  |  Branch (4783:20): [True: 0, False: 0]
  ------------------
 4784|      0|        } else
 4785|      0|          goto handle_unusual;
 4786|      0|        continue;
 4787|      0|      default:
  ------------------
  |  Branch (4787:7): [True: 0, False: 136]
  ------------------
 4788|      0|        goto handle_unusual;
 4789|    136|    }  // switch
 4790|      0|  handle_unusual:
 4791|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (4791:9): [True: 0, False: 0]
  |  Branch (4791:23): [True: 0, False: 0]
  ------------------
 4792|      0|      CHK_(ptr);
  ------------------
  |  | 4718|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4793|      0|      ctx->SetLastTag(tag);
 4794|      0|      goto message_done;
 4795|      0|    }
 4796|      0|    ptr = UnknownFieldParse(
 4797|      0|        tag,
 4798|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 4799|      0|        ptr, ctx);
 4800|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 4718|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 4801|      0|  }  // while
 4802|     68|message_done:
 4803|     68|  _has_bits_.Or(has_bits);
 4804|     68|  return ptr;
 4805|      0|failure:
 4806|      0|  ptr = nullptr;
 4807|      0|  goto message_done;
 4808|     68|#undef CHK_
 4809|     68|}
_ZNK6google8protobuf19EnumDescriptorProto13IsInitializedEv:
 4961|     68|bool EnumDescriptorProto::IsInitialized() const {
 4962|     68|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(value_))
  ------------------
  |  Branch (4962:7): [True: 0, False: 68]
  ------------------
 4963|      0|    return false;
 4964|     68|  if (_internal_has_options()) {
  ------------------
  |  Branch (4964:7): [True: 0, False: 68]
  ------------------
 4965|      0|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (4965:9): [True: 0, False: 0]
  ------------------
 4966|      0|  }
 4967|     68|  return true;
 4968|     68|}
_ZN6google8protobuf24EnumValueDescriptorProtoC2EPNS0_5ArenaEb:
 5016|    376|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 5017|    376|  SharedCtor();
 5018|    376|  if (!is_message_owned) {
  ------------------
  |  Branch (5018:7): [True: 376, False: 0]
  ------------------
 5019|    376|    RegisterArenaDtor(arena);
 5020|    376|  }
 5021|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.EnumValueDescriptorProto)
 5022|    376|}
_ZN6google8protobuf24EnumValueDescriptorProtoD2Ev:
 5055|    376|EnumValueDescriptorProto::~EnumValueDescriptorProto() {
 5056|       |  // @@protoc_insertion_point(destructor:google.protobuf.EnumValueDescriptorProto)
 5057|    376|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (5057:7): [True: 0, False: 376]
  ------------------
 5058|    376|  SharedDtor();
 5059|    376|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 5060|    376|}
_ZN6google8protobuf24EnumValueDescriptorProto14_InternalParseEPKcPNS0_8internal12ParseContextE:
 5099|    376|const char* EnumValueDescriptorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 5100|    376|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 5101|    376|  _Internal::HasBits has_bits{};
 5102|  1.12k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (5102:10): [True: 752, False: 376]
  ------------------
 5103|    752|    uint32_t tag;
 5104|    752|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 5105|    752|    switch (tag >> 3) {
 5106|       |      // optional string name = 1;
 5107|    376|      case 1:
  ------------------
  |  Branch (5107:7): [True: 376, False: 376]
  ------------------
 5108|    376|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 5109|    376|          auto str = _internal_mutable_name();
 5110|    376|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 5111|       |          #ifndef NDEBUG
 5112|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.EnumValueDescriptorProto.name");
 5113|       |          #endif  // !NDEBUG
 5114|    376|          CHK_(ptr);
  ------------------
  |  | 5100|    376|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 5115|    376|        } else
 5116|      0|          goto handle_unusual;
 5117|    376|        continue;
 5118|       |      // optional int32 number = 2;
 5119|    376|      case 2:
  ------------------
  |  Branch (5119:7): [True: 376, False: 376]
  ------------------
 5120|    376|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
 5121|    376|          _Internal::set_has_number(&has_bits);
 5122|    376|          number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 5123|    376|          CHK_(ptr);
  ------------------
  |  | 5100|    376|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 5124|    376|        } else
 5125|      0|          goto handle_unusual;
 5126|    376|        continue;
 5127|       |      // optional .google.protobuf.EnumValueOptions options = 3;
 5128|    376|      case 3:
  ------------------
  |  Branch (5128:7): [True: 0, False: 752]
  ------------------
 5129|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 5130|      0|          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
 5131|      0|          CHK_(ptr);
  ------------------
  |  | 5100|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 5132|      0|        } else
 5133|      0|          goto handle_unusual;
 5134|      0|        continue;
 5135|      0|      default:
  ------------------
  |  Branch (5135:7): [True: 0, False: 752]
  ------------------
 5136|      0|        goto handle_unusual;
 5137|    752|    }  // switch
 5138|      0|  handle_unusual:
 5139|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (5139:9): [True: 0, False: 0]
  |  Branch (5139:23): [True: 0, False: 0]
  ------------------
 5140|      0|      CHK_(ptr);
  ------------------
  |  | 5100|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 5141|      0|      ctx->SetLastTag(tag);
 5142|      0|      goto message_done;
 5143|      0|    }
 5144|      0|    ptr = UnknownFieldParse(
 5145|      0|        tag,
 5146|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 5147|      0|        ptr, ctx);
 5148|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 5100|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 5149|      0|  }  // while
 5150|    376|message_done:
 5151|    376|  _has_bits_.Or(has_bits);
 5152|    376|  return ptr;
 5153|      0|failure:
 5154|      0|  ptr = nullptr;
 5155|      0|  goto message_done;
 5156|    376|#undef CHK_
 5157|    376|}
_ZNK6google8protobuf24EnumValueDescriptorProto13IsInitializedEv:
 5273|    376|bool EnumValueDescriptorProto::IsInitialized() const {
 5274|    376|  if (_internal_has_options()) {
  ------------------
  |  Branch (5274:7): [True: 0, False: 376]
  ------------------
 5275|      0|    if (!options_->IsInitialized()) return false;
  ------------------
  |  Branch (5275:9): [True: 0, False: 0]
  ------------------
 5276|      0|  }
 5277|    376|  return true;
 5278|    376|}
_ZN6google8protobuf11FileOptionsC2EPNS0_5ArenaEb:
 6138|     18|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 6139|     18|  _extensions_(arena),
 6140|     18|  uninterpreted_option_(arena) {
 6141|     18|  SharedCtor();
 6142|     18|  if (!is_message_owned) {
  ------------------
  |  Branch (6142:7): [True: 18, False: 0]
  ------------------
 6143|     18|    RegisterArenaDtor(arena);
 6144|     18|  }
 6145|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.FileOptions)
 6146|     18|}
_ZN6google8protobuf11FileOptionsD2Ev:
 6288|     18|FileOptions::~FileOptions() {
 6289|       |  // @@protoc_insertion_point(destructor:google.protobuf.FileOptions)
 6290|     18|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (6290:7): [True: 0, False: 18]
  ------------------
 6291|     18|  SharedDtor();
 6292|     18|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 6293|     18|}
_ZN6google8protobuf11FileOptions14_InternalParseEPKcPNS0_8internal12ParseContextE:
 6378|     18|const char* FileOptions::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 6379|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 6380|     18|  _Internal::HasBits has_bits{};
 6381|     96|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (6381:10): [True: 78, False: 18]
  ------------------
 6382|     78|    uint32_t tag;
 6383|     78|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 6384|     78|    switch (tag >> 3) {
 6385|       |      // optional string java_package = 1;
 6386|     18|      case 1:
  ------------------
  |  Branch (6386:7): [True: 18, False: 60]
  ------------------
 6387|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 6388|     18|          auto str = _internal_mutable_java_package();
 6389|     18|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6390|       |          #ifndef NDEBUG
 6391|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.java_package");
 6392|       |          #endif  // !NDEBUG
 6393|     18|          CHK_(ptr);
  ------------------
  |  | 6379|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6394|     18|        } else
 6395|      0|          goto handle_unusual;
 6396|     18|        continue;
 6397|       |      // optional string java_outer_classname = 8;
 6398|     18|      case 8:
  ------------------
  |  Branch (6398:7): [True: 18, False: 60]
  ------------------
 6399|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 6400|     18|          auto str = _internal_mutable_java_outer_classname();
 6401|     18|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6402|       |          #ifndef NDEBUG
 6403|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.java_outer_classname");
 6404|       |          #endif  // !NDEBUG
 6405|     18|          CHK_(ptr);
  ------------------
  |  | 6379|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6406|     18|        } else
 6407|      0|          goto handle_unusual;
 6408|     18|        continue;
 6409|       |      // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
 6410|     18|      case 9:
  ------------------
  |  Branch (6410:7): [True: 2, False: 76]
  ------------------
 6411|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
 6412|      2|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6413|      2|          CHK_(ptr);
  ------------------
  |  | 6379|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6414|      2|          if (PROTOBUF_PREDICT_TRUE(::PROTOBUF_NAMESPACE_ID::FileOptions_OptimizeMode_IsValid(val))) {
 6415|      2|            _internal_set_optimize_for(static_cast<::PROTOBUF_NAMESPACE_ID::FileOptions_OptimizeMode>(val));
 6416|      2|          } else {
 6417|      0|            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(9, val, mutable_unknown_fields());
 6418|      0|          }
 6419|      2|        } else
 6420|      0|          goto handle_unusual;
 6421|      2|        continue;
 6422|       |      // optional bool java_multiple_files = 10 [default = false];
 6423|     16|      case 10:
  ------------------
  |  Branch (6423:7): [True: 16, False: 62]
  ------------------
 6424|     16|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
 6425|     16|          _Internal::set_has_java_multiple_files(&has_bits);
 6426|     16|          java_multiple_files_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6427|     16|          CHK_(ptr);
  ------------------
  |  | 6379|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6428|     16|        } else
 6429|      0|          goto handle_unusual;
 6430|     16|        continue;
 6431|       |      // optional string go_package = 11;
 6432|     16|      case 11:
  ------------------
  |  Branch (6432:7): [True: 2, False: 76]
  ------------------
 6433|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
 6434|      2|          auto str = _internal_mutable_go_package();
 6435|      2|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6436|       |          #ifndef NDEBUG
 6437|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.go_package");
 6438|       |          #endif  // !NDEBUG
 6439|      2|          CHK_(ptr);
  ------------------
  |  | 6379|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6440|      2|        } else
 6441|      0|          goto handle_unusual;
 6442|      2|        continue;
 6443|       |      // optional bool cc_generic_services = 16 [default = false];
 6444|      2|      case 16:
  ------------------
  |  Branch (6444:7): [True: 0, False: 78]
  ------------------
 6445|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
 6446|      0|          _Internal::set_has_cc_generic_services(&has_bits);
 6447|      0|          cc_generic_services_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6448|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6449|      0|        } else
 6450|      0|          goto handle_unusual;
 6451|      0|        continue;
 6452|       |      // optional bool java_generic_services = 17 [default = false];
 6453|      0|      case 17:
  ------------------
  |  Branch (6453:7): [True: 0, False: 78]
  ------------------
 6454|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
 6455|      0|          _Internal::set_has_java_generic_services(&has_bits);
 6456|      0|          java_generic_services_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6457|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6458|      0|        } else
 6459|      0|          goto handle_unusual;
 6460|      0|        continue;
 6461|       |      // optional bool py_generic_services = 18 [default = false];
 6462|      0|      case 18:
  ------------------
  |  Branch (6462:7): [True: 0, False: 78]
  ------------------
 6463|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
 6464|      0|          _Internal::set_has_py_generic_services(&has_bits);
 6465|      0|          py_generic_services_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6466|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6467|      0|        } else
 6468|      0|          goto handle_unusual;
 6469|      0|        continue;
 6470|       |      // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
 6471|      0|      case 20:
  ------------------
  |  Branch (6471:7): [True: 0, False: 78]
  ------------------
 6472|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
 6473|      0|          _Internal::set_has_java_generate_equals_and_hash(&has_bits);
 6474|      0|          java_generate_equals_and_hash_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6475|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6476|      0|        } else
 6477|      0|          goto handle_unusual;
 6478|      0|        continue;
 6479|       |      // optional bool deprecated = 23 [default = false];
 6480|      0|      case 23:
  ------------------
  |  Branch (6480:7): [True: 0, False: 78]
  ------------------
 6481|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 184)) {
 6482|      0|          _Internal::set_has_deprecated(&has_bits);
 6483|      0|          deprecated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6484|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6485|      0|        } else
 6486|      0|          goto handle_unusual;
 6487|      0|        continue;
 6488|       |      // optional bool java_string_check_utf8 = 27 [default = false];
 6489|      0|      case 27:
  ------------------
  |  Branch (6489:7): [True: 0, False: 78]
  ------------------
 6490|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 216)) {
 6491|      0|          _Internal::set_has_java_string_check_utf8(&has_bits);
 6492|      0|          java_string_check_utf8_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6493|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6494|      0|        } else
 6495|      0|          goto handle_unusual;
 6496|      0|        continue;
 6497|       |      // optional bool cc_enable_arenas = 31 [default = true];
 6498|     18|      case 31:
  ------------------
  |  Branch (6498:7): [True: 18, False: 60]
  ------------------
 6499|     18|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
 6500|     18|          _Internal::set_has_cc_enable_arenas(&has_bits);
 6501|     18|          cc_enable_arenas_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6502|     18|          CHK_(ptr);
  ------------------
  |  | 6379|     18|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6503|     18|        } else
 6504|      0|          goto handle_unusual;
 6505|     18|        continue;
 6506|       |      // optional string objc_class_prefix = 36;
 6507|     18|      case 36:
  ------------------
  |  Branch (6507:7): [True: 2, False: 76]
  ------------------
 6508|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
 6509|      2|          auto str = _internal_mutable_objc_class_prefix();
 6510|      2|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6511|       |          #ifndef NDEBUG
 6512|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.objc_class_prefix");
 6513|       |          #endif  // !NDEBUG
 6514|      2|          CHK_(ptr);
  ------------------
  |  | 6379|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6515|      2|        } else
 6516|      0|          goto handle_unusual;
 6517|      2|        continue;
 6518|       |      // optional string csharp_namespace = 37;
 6519|      2|      case 37:
  ------------------
  |  Branch (6519:7): [True: 2, False: 76]
  ------------------
 6520|      2|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
 6521|      2|          auto str = _internal_mutable_csharp_namespace();
 6522|      2|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6523|       |          #ifndef NDEBUG
 6524|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.csharp_namespace");
 6525|       |          #endif  // !NDEBUG
 6526|      2|          CHK_(ptr);
  ------------------
  |  | 6379|      2|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6527|      2|        } else
 6528|      0|          goto handle_unusual;
 6529|      2|        continue;
 6530|       |      // optional string swift_prefix = 39;
 6531|      2|      case 39:
  ------------------
  |  Branch (6531:7): [True: 0, False: 78]
  ------------------
 6532|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 6533|      0|          auto str = _internal_mutable_swift_prefix();
 6534|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6535|       |          #ifndef NDEBUG
 6536|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.swift_prefix");
 6537|       |          #endif  // !NDEBUG
 6538|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6539|      0|        } else
 6540|      0|          goto handle_unusual;
 6541|      0|        continue;
 6542|       |      // optional string php_class_prefix = 40;
 6543|      0|      case 40:
  ------------------
  |  Branch (6543:7): [True: 0, False: 78]
  ------------------
 6544|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 6545|      0|          auto str = _internal_mutable_php_class_prefix();
 6546|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6547|       |          #ifndef NDEBUG
 6548|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.php_class_prefix");
 6549|       |          #endif  // !NDEBUG
 6550|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6551|      0|        } else
 6552|      0|          goto handle_unusual;
 6553|      0|        continue;
 6554|       |      // optional string php_namespace = 41;
 6555|      0|      case 41:
  ------------------
  |  Branch (6555:7): [True: 0, False: 78]
  ------------------
 6556|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
 6557|      0|          auto str = _internal_mutable_php_namespace();
 6558|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6559|       |          #ifndef NDEBUG
 6560|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.php_namespace");
 6561|       |          #endif  // !NDEBUG
 6562|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6563|      0|        } else
 6564|      0|          goto handle_unusual;
 6565|      0|        continue;
 6566|       |      // optional bool php_generic_services = 42 [default = false];
 6567|      0|      case 42:
  ------------------
  |  Branch (6567:7): [True: 0, False: 78]
  ------------------
 6568|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
 6569|      0|          _Internal::set_has_php_generic_services(&has_bits);
 6570|      0|          php_generic_services_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 6571|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6572|      0|        } else
 6573|      0|          goto handle_unusual;
 6574|      0|        continue;
 6575|       |      // optional string php_metadata_namespace = 44;
 6576|      0|      case 44:
  ------------------
  |  Branch (6576:7): [True: 0, False: 78]
  ------------------
 6577|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
 6578|      0|          auto str = _internal_mutable_php_metadata_namespace();
 6579|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6580|       |          #ifndef NDEBUG
 6581|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.php_metadata_namespace");
 6582|       |          #endif  // !NDEBUG
 6583|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6584|      0|        } else
 6585|      0|          goto handle_unusual;
 6586|      0|        continue;
 6587|       |      // optional string ruby_package = 45;
 6588|      0|      case 45:
  ------------------
  |  Branch (6588:7): [True: 0, False: 78]
  ------------------
 6589|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
 6590|      0|          auto str = _internal_mutable_ruby_package();
 6591|      0|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 6592|       |          #ifndef NDEBUG
 6593|       |          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.protobuf.FileOptions.ruby_package");
 6594|       |          #endif  // !NDEBUG
 6595|      0|          CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6596|      0|        } else
 6597|      0|          goto handle_unusual;
 6598|      0|        continue;
 6599|       |      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
 6600|      0|      case 999:
  ------------------
  |  Branch (6600:7): [True: 0, False: 78]
  ------------------
 6601|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 6602|      0|          ptr -= 2;
 6603|      0|          do {
 6604|      0|            ptr += 2;
 6605|      0|            ptr = ctx->ParseMessage(_internal_add_uninterpreted_option(), ptr);
 6606|      0|            CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6607|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (6607:17): [True: 0, False: 0]
  ------------------
 6608|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<7994>(ptr));
  ------------------
  |  Branch (6608:20): [True: 0, False: 0]
  ------------------
 6609|      0|        } else
 6610|      0|          goto handle_unusual;
 6611|      0|        continue;
 6612|      0|      default:
  ------------------
  |  Branch (6612:7): [True: 0, False: 78]
  ------------------
 6613|      0|        goto handle_unusual;
 6614|     78|    }  // switch
 6615|      0|  handle_unusual:
 6616|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (6616:9): [True: 0, False: 0]
  |  Branch (6616:23): [True: 0, False: 0]
  ------------------
 6617|      0|      CHK_(ptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6618|      0|      ctx->SetLastTag(tag);
 6619|      0|      goto message_done;
 6620|      0|    }
 6621|      0|    if ((8000u <= tag)) {
  ------------------
  |  Branch (6621:9): [True: 0, False: 0]
  ------------------
 6622|      0|      ptr = _extensions_.ParseField(tag, ptr, internal_default_instance(), &_internal_metadata_, ctx);
 6623|      0|      CHK_(ptr != nullptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6624|      0|      continue;
 6625|      0|    }
 6626|      0|    ptr = UnknownFieldParse(
 6627|      0|        tag,
 6628|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 6629|      0|        ptr, ctx);
 6630|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 6379|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 6631|      0|  }  // while
 6632|     18|message_done:
 6633|     18|  _has_bits_.Or(has_bits);
 6634|     18|  return ptr;
 6635|      0|failure:
 6636|      0|  ptr = nullptr;
 6637|      0|  goto message_done;
 6638|     18|#undef CHK_
 6639|     18|}
_ZNK6google8protobuf11FileOptions13IsInitializedEv:
 7077|     18|bool FileOptions::IsInitialized() const {
 7078|     18|  if (!_extensions_.IsInitialized()) {
  ------------------
  |  Branch (7078:7): [True: 0, False: 18]
  ------------------
 7079|      0|    return false;
 7080|      0|  }
 7081|       |
 7082|     18|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(uninterpreted_option_))
  ------------------
  |  Branch (7082:7): [True: 0, False: 18]
  ------------------
 7083|      0|    return false;
 7084|     18|  return true;
 7085|     18|}
_ZN6google8protobuf14MessageOptionsC2EPNS0_5ArenaEb:
 7182|      6|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 7183|      6|  _extensions_(arena),
 7184|      6|  uninterpreted_option_(arena) {
 7185|      6|  SharedCtor();
 7186|      6|  if (!is_message_owned) {
  ------------------
  |  Branch (7186:7): [True: 6, False: 0]
  ------------------
 7187|      6|    RegisterArenaDtor(arena);
 7188|      6|  }
 7189|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.MessageOptions)
 7190|      6|}
_ZN6google8protobuf14MessageOptionsD2Ev:
 7210|      6|MessageOptions::~MessageOptions() {
 7211|       |  // @@protoc_insertion_point(destructor:google.protobuf.MessageOptions)
 7212|      6|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (7212:7): [True: 0, False: 6]
  ------------------
 7213|      6|  SharedDtor();
 7214|      6|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 7215|      6|}
_ZN6google8protobuf14MessageOptions14_InternalParseEPKcPNS0_8internal12ParseContextE:
 7246|      6|const char* MessageOptions::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 7247|      6|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 7248|      6|  _Internal::HasBits has_bits{};
 7249|     12|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (7249:10): [True: 6, False: 6]
  ------------------
 7250|      6|    uint32_t tag;
 7251|      6|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 7252|      6|    switch (tag >> 3) {
 7253|       |      // optional bool message_set_wire_format = 1 [default = false];
 7254|      0|      case 1:
  ------------------
  |  Branch (7254:7): [True: 0, False: 6]
  ------------------
 7255|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
 7256|      0|          _Internal::set_has_message_set_wire_format(&has_bits);
 7257|      0|          message_set_wire_format_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7258|      0|          CHK_(ptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7259|      0|        } else
 7260|      0|          goto handle_unusual;
 7261|      0|        continue;
 7262|       |      // optional bool no_standard_descriptor_accessor = 2 [default = false];
 7263|      0|      case 2:
  ------------------
  |  Branch (7263:7): [True: 0, False: 6]
  ------------------
 7264|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
 7265|      0|          _Internal::set_has_no_standard_descriptor_accessor(&has_bits);
 7266|      0|          no_standard_descriptor_accessor_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7267|      0|          CHK_(ptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7268|      0|        } else
 7269|      0|          goto handle_unusual;
 7270|      0|        continue;
 7271|       |      // optional bool deprecated = 3 [default = false];
 7272|      0|      case 3:
  ------------------
  |  Branch (7272:7): [True: 0, False: 6]
  ------------------
 7273|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
 7274|      0|          _Internal::set_has_deprecated(&has_bits);
 7275|      0|          deprecated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7276|      0|          CHK_(ptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7277|      0|        } else
 7278|      0|          goto handle_unusual;
 7279|      0|        continue;
 7280|       |      // optional bool map_entry = 7;
 7281|      6|      case 7:
  ------------------
  |  Branch (7281:7): [True: 6, False: 0]
  ------------------
 7282|      6|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
 7283|      6|          _Internal::set_has_map_entry(&has_bits);
 7284|      6|          map_entry_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7285|      6|          CHK_(ptr);
  ------------------
  |  | 7247|      6|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7286|      6|        } else
 7287|      0|          goto handle_unusual;
 7288|      6|        continue;
 7289|       |      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
 7290|      6|      case 999:
  ------------------
  |  Branch (7290:7): [True: 0, False: 6]
  ------------------
 7291|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 7292|      0|          ptr -= 2;
 7293|      0|          do {
 7294|      0|            ptr += 2;
 7295|      0|            ptr = ctx->ParseMessage(_internal_add_uninterpreted_option(), ptr);
 7296|      0|            CHK_(ptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7297|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (7297:17): [True: 0, False: 0]
  ------------------
 7298|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<7994>(ptr));
  ------------------
  |  Branch (7298:20): [True: 0, False: 0]
  ------------------
 7299|      0|        } else
 7300|      0|          goto handle_unusual;
 7301|      0|        continue;
 7302|      0|      default:
  ------------------
  |  Branch (7302:7): [True: 0, False: 6]
  ------------------
 7303|      0|        goto handle_unusual;
 7304|      6|    }  // switch
 7305|      0|  handle_unusual:
 7306|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (7306:9): [True: 0, False: 0]
  |  Branch (7306:23): [True: 0, False: 0]
  ------------------
 7307|      0|      CHK_(ptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7308|      0|      ctx->SetLastTag(tag);
 7309|      0|      goto message_done;
 7310|      0|    }
 7311|      0|    if ((8000u <= tag)) {
  ------------------
  |  Branch (7311:9): [True: 0, False: 0]
  ------------------
 7312|      0|      ptr = _extensions_.ParseField(tag, ptr, internal_default_instance(), &_internal_metadata_, ctx);
 7313|      0|      CHK_(ptr != nullptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7314|      0|      continue;
 7315|      0|    }
 7316|      0|    ptr = UnknownFieldParse(
 7317|      0|        tag,
 7318|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 7319|      0|        ptr, ctx);
 7320|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 7247|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7321|      0|  }  // while
 7322|      6|message_done:
 7323|      6|  _has_bits_.Or(has_bits);
 7324|      6|  return ptr;
 7325|      0|failure:
 7326|      0|  ptr = nullptr;
 7327|      0|  goto message_done;
 7328|      6|#undef CHK_
 7329|      6|}
_ZNK6google8protobuf14MessageOptions13IsInitializedEv:
 7472|      6|bool MessageOptions::IsInitialized() const {
 7473|      6|  if (!_extensions_.IsInitialized()) {
  ------------------
  |  Branch (7473:7): [True: 0, False: 6]
  ------------------
 7474|      0|    return false;
 7475|      0|  }
 7476|       |
 7477|      6|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(uninterpreted_option_))
  ------------------
  |  Branch (7477:7): [True: 0, False: 6]
  ------------------
 7478|      0|    return false;
 7479|      6|  return true;
 7480|      6|}
_ZN6google8protobuf12FieldOptionsC2EPNS0_5ArenaEb:
 7529|     46|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 7530|     46|  _extensions_(arena),
 7531|     46|  uninterpreted_option_(arena) {
 7532|     46|  SharedCtor();
 7533|     46|  if (!is_message_owned) {
  ------------------
  |  Branch (7533:7): [True: 46, False: 0]
  ------------------
 7534|     46|    RegisterArenaDtor(arena);
 7535|     46|  }
 7536|       |  // @@protoc_insertion_point(arena_constructor:google.protobuf.FieldOptions)
 7537|     46|}
_ZN6google8protobuf12FieldOptionsD2Ev:
 7557|     46|FieldOptions::~FieldOptions() {
 7558|       |  // @@protoc_insertion_point(destructor:google.protobuf.FieldOptions)
 7559|     46|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (7559:7): [True: 0, False: 46]
  ------------------
 7560|     46|  SharedDtor();
 7561|     46|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 7562|     46|}
_ZN6google8protobuf12FieldOptions14_InternalParseEPKcPNS0_8internal12ParseContextE:
 7596|     46|const char* FieldOptions::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 7597|     46|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 7598|     46|  _Internal::HasBits has_bits{};
 7599|     92|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (7599:10): [True: 46, False: 46]
  ------------------
 7600|     46|    uint32_t tag;
 7601|     46|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 7602|     46|    switch (tag >> 3) {
 7603|       |      // optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
 7604|      0|      case 1:
  ------------------
  |  Branch (7604:7): [True: 0, False: 46]
  ------------------
 7605|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
 7606|      0|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7607|      0|          CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7608|      0|          if (PROTOBUF_PREDICT_TRUE(::PROTOBUF_NAMESPACE_ID::FieldOptions_CType_IsValid(val))) {
 7609|      0|            _internal_set_ctype(static_cast<::PROTOBUF_NAMESPACE_ID::FieldOptions_CType>(val));
 7610|      0|          } else {
 7611|      0|            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
 7612|      0|          }
 7613|      0|        } else
 7614|      0|          goto handle_unusual;
 7615|      0|        continue;
 7616|       |      // optional bool packed = 2;
 7617|     42|      case 2:
  ------------------
  |  Branch (7617:7): [True: 42, False: 4]
  ------------------
 7618|     42|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
 7619|     42|          _Internal::set_has_packed(&has_bits);
 7620|     42|          packed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7621|     42|          CHK_(ptr);
  ------------------
  |  | 7597|     42|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7622|     42|        } else
 7623|      0|          goto handle_unusual;
 7624|     42|        continue;
 7625|       |      // optional bool deprecated = 3 [default = false];
 7626|     42|      case 3:
  ------------------
  |  Branch (7626:7): [True: 4, False: 42]
  ------------------
 7627|      4|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
 7628|      4|          _Internal::set_has_deprecated(&has_bits);
 7629|      4|          deprecated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7630|      4|          CHK_(ptr);
  ------------------
  |  | 7597|      4|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7631|      4|        } else
 7632|      0|          goto handle_unusual;
 7633|      4|        continue;
 7634|       |      // optional bool lazy = 5 [default = false];
 7635|      4|      case 5:
  ------------------
  |  Branch (7635:7): [True: 0, False: 46]
  ------------------
 7636|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
 7637|      0|          _Internal::set_has_lazy(&has_bits);
 7638|      0|          lazy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7639|      0|          CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7640|      0|        } else
 7641|      0|          goto handle_unusual;
 7642|      0|        continue;
 7643|       |      // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
 7644|      0|      case 6:
  ------------------
  |  Branch (7644:7): [True: 0, False: 46]
  ------------------
 7645|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
 7646|      0|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7647|      0|          CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7648|      0|          if (PROTOBUF_PREDICT_TRUE(::PROTOBUF_NAMESPACE_ID::FieldOptions_JSType_IsValid(val))) {
 7649|      0|            _internal_set_jstype(static_cast<::PROTOBUF_NAMESPACE_ID::FieldOptions_JSType>(val));
 7650|      0|          } else {
 7651|      0|            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(6, val, mutable_unknown_fields());
 7652|      0|          }
 7653|      0|        } else
 7654|      0|          goto handle_unusual;
 7655|      0|        continue;
 7656|       |      // optional bool weak = 10 [default = false];
 7657|      0|      case 10:
  ------------------
  |  Branch (7657:7): [True: 0, False: 46]
  ------------------
 7658|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
 7659|      0|          _Internal::set_has_weak(&has_bits);
 7660|      0|          weak_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 7661|      0|          CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7662|      0|        } else
 7663|      0|          goto handle_unusual;
 7664|      0|        continue;
 7665|       |      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
 7666|      0|      case 999:
  ------------------
  |  Branch (7666:7): [True: 0, False: 46]
  ------------------
 7667|      0|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
 7668|      0|          ptr -= 2;
 7669|      0|          do {
 7670|      0|            ptr += 2;
 7671|      0|            ptr = ctx->ParseMessage(_internal_add_uninterpreted_option(), ptr);
 7672|      0|            CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7673|      0|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (7673:17): [True: 0, False: 0]
  ------------------
 7674|      0|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<7994>(ptr));
  ------------------
  |  Branch (7674:20): [True: 0, False: 0]
  ------------------
 7675|      0|        } else
 7676|      0|          goto handle_unusual;
 7677|      0|        continue;
 7678|      0|      default:
  ------------------
  |  Branch (7678:7): [True: 0, False: 46]
  ------------------
 7679|      0|        goto handle_unusual;
 7680|     46|    }  // switch
 7681|      0|  handle_unusual:
 7682|      0|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (7682:9): [True: 0, False: 0]
  |  Branch (7682:23): [True: 0, False: 0]
  ------------------
 7683|      0|      CHK_(ptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7684|      0|      ctx->SetLastTag(tag);
 7685|      0|      goto message_done;
 7686|      0|    }
 7687|      0|    if ((8000u <= tag)) {
  ------------------
  |  Branch (7687:9): [True: 0, False: 0]
  ------------------
 7688|      0|      ptr = _extensions_.ParseField(tag, ptr, internal_default_instance(), &_internal_metadata_, ctx);
 7689|      0|      CHK_(ptr != nullptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7690|      0|      continue;
 7691|      0|    }
 7692|      0|    ptr = UnknownFieldParse(
 7693|      0|        tag,
 7694|      0|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 7695|      0|        ptr, ctx);
 7696|      0|    CHK_(ptr != nullptr);
  ------------------
  |  | 7597|      0|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 7697|      0|  }  // while
 7698|     46|message_done:
 7699|     46|  _has_bits_.Or(has_bits);
 7700|     46|  return ptr;
 7701|      0|failure:
 7702|      0|  ptr = nullptr;
 7703|      0|  goto message_done;
 7704|     46|#undef CHK_
 7705|     46|}
_ZNK6google8protobuf12FieldOptions13IsInitializedEv:
 7880|     46|bool FieldOptions::IsInitialized() const {
 7881|     46|  if (!_extensions_.IsInitialized()) {
  ------------------
  |  Branch (7881:7): [True: 0, False: 46]
  ------------------
 7882|      0|    return false;
 7883|      0|  }
 7884|       |
 7885|     46|  if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(uninterpreted_option_))
  ------------------
  |  Branch (7885:7): [True: 0, False: 46]
  ------------------
 7886|      0|    return false;
 7887|     46|  return true;
 7888|     46|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_30DescriptorProto_ExtensionRangeEJEEEPT_PS1_DpOT0_:
11047|     18|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ExtensionRange* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ExtensionRange >(Arena* arena) {
11048|     18|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ExtensionRange >(arena);
11049|     18|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_29DescriptorProto_ReservedRangeEJEEEPT_PS1_DpOT0_:
11050|     16|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ReservedRange* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ReservedRange >(Arena* arena) {
11051|     16|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::DescriptorProto_ReservedRange >(arena);
11052|     16|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_15DescriptorProtoEJEEEPT_PS1_DpOT0_:
11053|    238|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::DescriptorProto* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::DescriptorProto >(Arena* arena) {
11054|    238|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::DescriptorProto >(arena);
11055|    238|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_20FieldDescriptorProtoEJEEEPT_PS1_DpOT0_:
11059|  1.41k|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto >(Arena* arena) {
11060|  1.41k|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::FieldDescriptorProto >(arena);
11061|  1.41k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_20OneofDescriptorProtoEJEEEPT_PS1_DpOT0_:
11062|      2|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::OneofDescriptorProto* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::OneofDescriptorProto >(Arena* arena) {
11063|      2|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::OneofDescriptorProto >(arena);
11064|      2|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_19EnumDescriptorProtoEJEEEPT_PS1_DpOT0_:
11068|     68|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::EnumDescriptorProto* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::EnumDescriptorProto >(Arena* arena) {
11069|     68|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::EnumDescriptorProto >(arena);
11070|     68|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_24EnumValueDescriptorProtoEJEEEPT_PS1_DpOT0_:
11071|    376|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::EnumValueDescriptorProto* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::EnumValueDescriptorProto >(Arena* arena) {
11072|    376|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::EnumValueDescriptorProto >(arena);
11073|    376|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_11FileOptionsEJEEEPT_PS1_DpOT0_:
11080|     18|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::FileOptions* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::FileOptions >(Arena* arena) {
11081|     18|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::FileOptions >(arena);
11082|     18|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_14MessageOptionsEJEEEPT_PS1_DpOT0_:
11083|      6|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::MessageOptions* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::MessageOptions >(Arena* arena) {
11084|      6|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::MessageOptions >(arena);
11085|      6|}
_ZN6google8protobuf5Arena18CreateMaybeMessageINS0_12FieldOptionsEJEEEPT_PS1_DpOT0_:
11086|     46|template<> PROTOBUF_NOINLINE ::PROTOBUF_NAMESPACE_ID::FieldOptions* Arena::CreateMaybeMessage< ::PROTOBUF_NAMESPACE_ID::FieldOptions >(Arena* arena) {
11087|     46|  return Arena::CreateMessageInternal< ::PROTOBUF_NAMESPACE_ID::FieldOptions >(arena);
11088|     46|}
_ZN6google8protobuf19FileDescriptorProto10SharedCtorEv:
 1545|     20|inline void FileDescriptorProto::SharedCtor() {
 1546|     20|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1547|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1548|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1549|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1550|     20|package_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1551|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1552|       |  package_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1553|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1554|     20|syntax_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1555|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1556|       |  syntax_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1557|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1558|     20|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 1559|     20|    reinterpret_cast<char*>(&options_) - reinterpret_cast<char*>(this)),
 1560|     20|    0, static_cast<size_t>(reinterpret_cast<char*>(&source_code_info_) -
 1561|     20|    reinterpret_cast<char*>(&options_)) + sizeof(source_code_info_));
 1562|     20|}
_ZN6google8protobuf19FileDescriptorProto10SharedDtorEv:
 1571|     20|inline void FileDescriptorProto::SharedDtor() {
 1572|     20|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 1573|     20|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1574|     20|  package_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1575|     20|  syntax_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1576|     20|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (1576:7): [True: 20, False: 0]
  ------------------
 1577|     20|  if (this != internal_default_instance()) delete source_code_info_;
  ------------------
  |  Branch (1577:7): [True: 20, False: 0]
  ------------------
 1578|     20|}
_ZN6google8protobuf19FileDescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 1584|     20|void FileDescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 1585|     20|}
_ZN6google8protobuf30DescriptorProto_ExtensionRange10SharedCtorEv:
 2185|     18|inline void DescriptorProto_ExtensionRange::SharedCtor() {
 2186|     18|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 2187|     18|    reinterpret_cast<char*>(&options_) - reinterpret_cast<char*>(this)),
 2188|     18|    0, static_cast<size_t>(reinterpret_cast<char*>(&end_) -
 2189|     18|    reinterpret_cast<char*>(&options_)) + sizeof(end_));
 2190|     18|}
_ZN6google8protobuf30DescriptorProto_ExtensionRange10SharedDtorEv:
 2199|     18|inline void DescriptorProto_ExtensionRange::SharedDtor() {
 2200|     18|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 2201|     18|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (2201:7): [True: 18, False: 0]
  ------------------
 2202|     18|}
_ZN6google8protobuf30DescriptorProto_ExtensionRange17RegisterArenaDtorEPNS0_5ArenaE:
 2208|     18|void DescriptorProto_ExtensionRange::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 2209|     18|}
_ZN6google8protobuf30DescriptorProto_ExtensionRange9_Internal13set_has_startEPNS0_8internal7HasBitsILm1EEE:
 2145|     18|  static void set_has_start(HasBits* has_bits) {
 2146|     18|    (*has_bits)[0] |= 2u;
 2147|     18|  }
_ZN6google8protobuf30DescriptorProto_ExtensionRange9_Internal11set_has_endEPNS0_8internal7HasBitsILm1EEE:
 2148|     18|  static void set_has_end(HasBits* has_bits) {
 2149|     18|    (*has_bits)[0] |= 4u;
 2150|     18|  }
_ZN6google8protobuf29DescriptorProto_ReservedRange10SharedCtorEv:
 2456|     16|inline void DescriptorProto_ReservedRange::SharedCtor() {
 2457|     16|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 2458|     16|    reinterpret_cast<char*>(&start_) - reinterpret_cast<char*>(this)),
 2459|     16|    0, static_cast<size_t>(reinterpret_cast<char*>(&end_) -
 2460|     16|    reinterpret_cast<char*>(&start_)) + sizeof(end_));
 2461|     16|}
_ZN6google8protobuf29DescriptorProto_ReservedRange10SharedDtorEv:
 2470|     16|inline void DescriptorProto_ReservedRange::SharedDtor() {
 2471|     16|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 2472|     16|}
_ZN6google8protobuf29DescriptorProto_ReservedRange17RegisterArenaDtorEPNS0_5ArenaE:
 2478|     16|void DescriptorProto_ReservedRange::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 2479|     16|}
_ZN6google8protobuf29DescriptorProto_ReservedRange9_Internal13set_has_startEPNS0_8internal7HasBitsILm1EEE:
 2429|     16|  static void set_has_start(HasBits* has_bits) {
 2430|     16|    (*has_bits)[0] |= 1u;
 2431|     16|  }
_ZN6google8protobuf29DescriptorProto_ReservedRange9_Internal11set_has_endEPNS0_8internal7HasBitsILm1EEE:
 2432|     16|  static void set_has_end(HasBits* has_bits) {
 2433|     16|    (*has_bits)[0] |= 2u;
 2434|     16|  }
_ZN6google8protobuf15DescriptorProto10SharedCtorEv:
 2724|    238|inline void DescriptorProto::SharedCtor() {
 2725|    238|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 2726|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 2727|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 2728|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 2729|    238|options_ = nullptr;
 2730|    238|}
_ZN6google8protobuf15DescriptorProto10SharedDtorEv:
 2739|    238|inline void DescriptorProto::SharedDtor() {
 2740|    238|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 2741|    238|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 2742|    238|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (2742:7): [True: 238, False: 0]
  ------------------
 2743|    238|}
_ZN6google8protobuf15DescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 2749|    238|void DescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 2750|    238|}
_ZN6google8protobuf20FieldDescriptorProto10SharedCtorEv:
 3535|  1.41k|inline void FieldDescriptorProto::SharedCtor() {
 3536|  1.41k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3537|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3538|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 3539|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3540|  1.41k|extendee_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3541|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3542|       |  extendee_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 3543|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3544|  1.41k|type_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3545|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3546|       |  type_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 3547|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3548|  1.41k|default_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3549|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3550|       |  default_value_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 3551|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3552|  1.41k|json_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3553|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3554|       |  json_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 3555|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 3556|  1.41k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 3557|  1.41k|    reinterpret_cast<char*>(&options_) - reinterpret_cast<char*>(this)),
 3558|  1.41k|    0, static_cast<size_t>(reinterpret_cast<char*>(&proto3_optional_) -
 3559|  1.41k|    reinterpret_cast<char*>(&options_)) + sizeof(proto3_optional_));
 3560|  1.41k|label_ = 1;
 3561|  1.41k|type_ = 1;
 3562|  1.41k|}
_ZN6google8protobuf20FieldDescriptorProto10SharedDtorEv:
 3571|  1.41k|inline void FieldDescriptorProto::SharedDtor() {
 3572|  1.41k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 3573|  1.41k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3574|  1.41k|  extendee_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3575|  1.41k|  type_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3576|  1.41k|  default_value_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3577|  1.41k|  json_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 3578|  1.41k|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (3578:7): [True: 1.41k, False: 0]
  ------------------
 3579|  1.41k|}
_ZN6google8protobuf20FieldDescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 3585|  1.41k|void FieldDescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 3586|  1.41k|}
_ZN6google8protobuf20FieldDescriptorProto9_Internal14set_has_numberEPNS0_8internal7HasBitsILm1EEE:
 3434|  1.41k|  static void set_has_number(HasBits* has_bits) {
 3435|  1.41k|    (*has_bits)[0] |= 64u;
 3436|  1.41k|  }
_ZN6google8protobuf20FieldDescriptorProto9_Internal19set_has_oneof_indexEPNS0_8internal7HasBitsILm1EEE:
 3452|     20|  static void set_has_oneof_index(HasBits* has_bits) {
 3453|     20|    (*has_bits)[0] |= 128u;
 3454|     20|  }
_ZN6google8protobuf20OneofDescriptorProto10SharedCtorEv:
 4145|      2|inline void OneofDescriptorProto::SharedCtor() {
 4146|      2|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 4147|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 4148|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 4149|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 4150|      2|options_ = nullptr;
 4151|      2|}
_ZN6google8protobuf20OneofDescriptorProto10SharedDtorEv:
 4160|      2|inline void OneofDescriptorProto::SharedDtor() {
 4161|      2|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 4162|      2|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 4163|      2|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (4163:7): [True: 2, False: 0]
  ------------------
 4164|      2|}
_ZN6google8protobuf20OneofDescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 4170|      2|void OneofDescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 4171|      2|}
_ZN6google8protobuf19EnumDescriptorProto10SharedCtorEv:
 4663|     68|inline void EnumDescriptorProto::SharedCtor() {
 4664|     68|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 4665|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 4666|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 4667|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 4668|     68|options_ = nullptr;
 4669|     68|}
_ZN6google8protobuf19EnumDescriptorProto10SharedDtorEv:
 4678|     68|inline void EnumDescriptorProto::SharedDtor() {
 4679|     68|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 4680|     68|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 4681|     68|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (4681:7): [True: 68, False: 0]
  ------------------
 4682|     68|}
_ZN6google8protobuf19EnumDescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 4688|     68|void EnumDescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 4689|     68|}
_ZN6google8protobuf24EnumValueDescriptorProto10SharedCtorEv:
 5044|    376|inline void EnumValueDescriptorProto::SharedCtor() {
 5045|    376|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 5046|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 5047|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 5048|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 5049|    376|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 5050|    376|    reinterpret_cast<char*>(&options_) - reinterpret_cast<char*>(this)),
 5051|    376|    0, static_cast<size_t>(reinterpret_cast<char*>(&number_) -
 5052|    376|    reinterpret_cast<char*>(&options_)) + sizeof(number_));
 5053|    376|}
_ZN6google8protobuf24EnumValueDescriptorProto10SharedDtorEv:
 5062|    376|inline void EnumValueDescriptorProto::SharedDtor() {
 5063|    376|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 5064|    376|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 5065|    376|  if (this != internal_default_instance()) delete options_;
  ------------------
  |  Branch (5065:7): [True: 376, False: 0]
  ------------------
 5066|    376|}
_ZN6google8protobuf24EnumValueDescriptorProto17RegisterArenaDtorEPNS0_5ArenaE:
 5072|    376|void EnumValueDescriptorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 5073|    376|}
_ZN6google8protobuf24EnumValueDescriptorProto9_Internal14set_has_numberEPNS0_8internal7HasBitsILm1EEE:
 5001|    376|  static void set_has_number(HasBits* has_bits) {
 5002|    376|    (*has_bits)[0] |= 4u;
 5003|    376|  }
_ZN6google8protobuf11FileOptions10SharedCtorEv:
 6239|     18|inline void FileOptions::SharedCtor() {
 6240|     18|java_package_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6241|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6242|       |  java_package_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6243|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6244|     18|java_outer_classname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6245|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6246|       |  java_outer_classname_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6247|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6248|     18|go_package_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6249|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6250|       |  go_package_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6251|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6252|     18|objc_class_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6253|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6254|       |  objc_class_prefix_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6255|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6256|     18|csharp_namespace_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6257|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6258|       |  csharp_namespace_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6259|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6260|     18|swift_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6261|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6262|       |  swift_prefix_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6263|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6264|     18|php_class_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6265|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6266|       |  php_class_prefix_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6267|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6268|     18|php_namespace_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6269|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6270|       |  php_namespace_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6271|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6272|     18|php_metadata_namespace_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6273|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6274|       |  php_metadata_namespace_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6275|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6276|     18|ruby_package_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6277|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6278|       |  ruby_package_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 6279|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 6280|     18|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 6281|     18|    reinterpret_cast<char*>(&java_multiple_files_) - reinterpret_cast<char*>(this)),
 6282|     18|    0, static_cast<size_t>(reinterpret_cast<char*>(&deprecated_) -
 6283|     18|    reinterpret_cast<char*>(&java_multiple_files_)) + sizeof(deprecated_));
 6284|     18|optimize_for_ = 1;
 6285|     18|cc_enable_arenas_ = true;
 6286|     18|}
_ZN6google8protobuf11FileOptions10SharedDtorEv:
 6295|     18|inline void FileOptions::SharedDtor() {
 6296|     18|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 6297|     18|  java_package_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6298|     18|  java_outer_classname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6299|     18|  go_package_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6300|     18|  objc_class_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6301|     18|  csharp_namespace_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6302|     18|  swift_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6303|     18|  php_class_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6304|     18|  php_namespace_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6305|     18|  php_metadata_namespace_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6306|     18|  ruby_package_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 6307|     18|}
_ZN6google8protobuf11FileOptions17RegisterArenaDtorEPNS0_5ArenaE:
 6313|     18|void FileOptions::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 6314|     18|}
_ZN6google8protobuf11FileOptions9_Internal27set_has_java_multiple_filesEPNS0_8internal7HasBitsILm1EEE:
 6080|     16|  static void set_has_java_multiple_files(HasBits* has_bits) {
 6081|     16|    (*has_bits)[0] |= 1024u;
 6082|     16|  }
_ZN6google8protobuf11FileOptions9_Internal24set_has_cc_enable_arenasEPNS0_8internal7HasBitsILm1EEE:
 6110|     18|  static void set_has_cc_enable_arenas(HasBits* has_bits) {
 6111|     18|    (*has_bits)[0] |= 524288u;
 6112|     18|  }
_ZN6google8protobuf14MessageOptions10SharedCtorEv:
 7203|      6|inline void MessageOptions::SharedCtor() {
 7204|      6|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 7205|      6|    reinterpret_cast<char*>(&message_set_wire_format_) - reinterpret_cast<char*>(this)),
 7206|      6|    0, static_cast<size_t>(reinterpret_cast<char*>(&map_entry_) -
 7207|      6|    reinterpret_cast<char*>(&message_set_wire_format_)) + sizeof(map_entry_));
 7208|      6|}
_ZN6google8protobuf14MessageOptions10SharedDtorEv:
 7217|      6|inline void MessageOptions::SharedDtor() {
 7218|      6|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 7219|      6|}
_ZN6google8protobuf14MessageOptions17RegisterArenaDtorEPNS0_5ArenaE:
 7225|      6|void MessageOptions::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 7226|      6|}
_ZN6google8protobuf14MessageOptions9_Internal17set_has_map_entryEPNS0_8internal7HasBitsILm1EEE:
 7175|      6|  static void set_has_map_entry(HasBits* has_bits) {
 7176|      6|    (*has_bits)[0] |= 8u;
 7177|      6|  }
_ZN6google8protobuf12FieldOptions10SharedCtorEv:
 7550|     46|inline void FieldOptions::SharedCtor() {
 7551|     46|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 7552|     46|    reinterpret_cast<char*>(&ctype_) - reinterpret_cast<char*>(this)),
 7553|     46|    0, static_cast<size_t>(reinterpret_cast<char*>(&jstype_) -
 7554|     46|    reinterpret_cast<char*>(&ctype_)) + sizeof(jstype_));
 7555|     46|}
_ZN6google8protobuf12FieldOptions10SharedDtorEv:
 7564|     46|inline void FieldOptions::SharedDtor() {
 7565|     46|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 7566|     46|}
_ZN6google8protobuf12FieldOptions17RegisterArenaDtorEPNS0_5ArenaE:
 7572|     46|void FieldOptions::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 7573|     46|}
_ZN6google8protobuf12FieldOptions9_Internal14set_has_packedEPNS0_8internal7HasBitsILm1EEE:
 7510|     42|  static void set_has_packed(HasBits* has_bits) {
 7511|     42|    (*has_bits)[0] |= 2u;
 7512|     42|  }
_ZN6google8protobuf12FieldOptions9_Internal18set_has_deprecatedEPNS0_8internal7HasBitsILm1EEE:
 7519|      4|  static void set_has_deprecated(HasBits* has_bits) {
 7520|      4|    (*has_bits)[0] |= 8u;
 7521|      4|  }

_ZN6google8protobuf25EncodedDescriptorDatabase3AddEPKvi:
  554|     20|                                    int size) {
  555|     20|  FileDescriptorProto file;
  556|     20|  if (file.ParseFromArray(encoded_file_descriptor, size)) {
  ------------------
  |  Branch (556:7): [True: 20, False: 0]
  ------------------
  557|     20|    return index_->AddFile(file, std::make_pair(encoded_file_descriptor, size));
  558|     20|  } else {
  559|      0|    GOOGLE_LOG(ERROR) << "Invalid file descriptor data passed to "
  560|      0|                  "EncodedDescriptorDatabase::Add().";
  561|      0|    return false;
  562|      0|  }
  563|     20|}
_ZN6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex9AddSymbolENS0_20stringpiece_internal11StringPieceE:
  692|    216|    StringPiece symbol) {
  693|    216|  SymbolEntry entry = {static_cast<int>(all_values_.size() - 1),
  694|    216|                       EncodeString(symbol)};
  695|    216|  std::string entry_as_string = entry.AsString(*this);
  696|       |
  697|       |  // We need to make sure not to violate our map invariant.
  698|       |
  699|       |  // If the symbol name is invalid it could break our lookup algorithm (which
  700|       |  // relies on the fact that '.' sorts before all other characters that are
  701|       |  // valid in symbol names).
  702|    216|  if (!ValidateSymbolName(symbol)) {
  ------------------
  |  Branch (702:7): [True: 0, False: 216]
  ------------------
  703|      0|    GOOGLE_LOG(ERROR) << "Invalid symbol name: " << entry_as_string;
  704|      0|    return false;
  705|      0|  }
  706|       |
  707|    216|  auto iter = FindLastLessOrEqual(&by_symbol_, entry);
  708|    216|  if (!CheckForMutualSubsymbols(entry_as_string, &iter, by_symbol_.end(),
  ------------------
  |  Branch (708:7): [True: 0, False: 216]
  ------------------
  709|    216|                                *this)) {
  710|      0|    return false;
  711|      0|  }
  712|       |
  713|       |  // Same, but on by_symbol_flat_
  714|    216|  auto flat_iter =
  715|    216|      FindLastLessOrEqual(&by_symbol_flat_, entry, by_symbol_.key_comp());
  716|    216|  if (!CheckForMutualSubsymbols(entry_as_string, &flat_iter,
  ------------------
  |  Branch (716:7): [True: 0, False: 216]
  ------------------
  717|    216|                                by_symbol_flat_.end(), *this)) {
  718|      0|    return false;
  719|      0|  }
  720|       |
  721|       |  // OK, no conflicts.
  722|       |
  723|       |  // Insert the new symbol using the iterator as a hint, the new entry will
  724|       |  // appear immediately before the one the iterator is pointing at.
  725|    216|  by_symbol_.insert(iter, entry);
  726|       |
  727|    216|  return true;
  728|    216|}
_ZN6google8protobuf25EncodedDescriptorDatabaseC2Ev:
  879|      2|    : index_(new DescriptorIndex()) {}
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex12EncodeStringENS0_20stringpiece_internal11StringPieceE:
  429|    256|  String EncodeString(StringPiece str) const { return String(str); }
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntry8AsStringERKS2_:
  479|    640|    std::string AsString(const DescriptorIndex& index) const {
  480|    640|      auto p = package(index);
  481|    640|      return StrCat(p, p.empty() ? "" : ".", symbol(index));
  ------------------
  |  Branch (481:24): [True: 0, False: 640]
  ------------------
  482|    640|    }
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntry7packageERKS2_:
  471|  4.35k|    StringPiece package(const DescriptorIndex& index) const {
  472|  4.35k|      return index.DecodeString(index.all_values_[data_offset].encoded_package,
  473|  4.35k|                                data_offset);
  474|  4.35k|    }
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex12DecodeStringERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEi:
  430|  8.83k|  StringPiece DecodeString(const String& str, int) const { return str; }
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntry6symbolERKS2_:
  475|  4.35k|    StringPiece symbol(const DescriptorIndex& index) const {
  476|  4.35k|      return index.DecodeString(encoded_symbol, data_offset);
  477|  4.35k|    }
descriptor_database.cc:_ZN6google8protobuf12_GLOBAL__N_118ValidateSymbolNameENS0_20stringpiece_internal11StringPieceE:
  153|    236|bool ValidateSymbolName(StringPiece name) {
  154|  3.56k|  for (char c : name) {
  ------------------
  |  Branch (154:15): [True: 3.56k, False: 236]
  ------------------
  155|       |    // I don't trust ctype.h due to locales.  :(
  156|  3.56k|    if (c != '.' && c != '_' && (c < '0' || c > '9') && (c < 'A' || c > 'Z') &&
  ------------------
  |  Branch (156:9): [True: 3.56k, False: 2]
  |  Branch (156:21): [True: 3.54k, False: 18]
  |  Branch (156:34): [True: 0, False: 3.54k]
  |  Branch (156:45): [True: 3.53k, False: 8]
  |  Branch (156:58): [True: 0, False: 3.53k]
  |  Branch (156:69): [True: 2.97k, False: 558]
  ------------------
  157|  3.56k|        (c < 'a' || c > 'z')) {
  ------------------
  |  Branch (157:10): [True: 0, False: 2.97k]
  |  Branch (157:21): [True: 0, False: 2.97k]
  ------------------
  158|      0|      return false;
  159|      0|    }
  160|  3.56k|  }
  161|    236|  return true;
  162|    236|}
descriptor_database.cc:_ZN6google8protobuf12_GLOBAL__N_111IsSubSymbolENS0_20stringpiece_internal11StringPieceES3_:
  187|    424|bool IsSubSymbol(StringPiece sub_symbol, StringPiece super_symbol) {
  188|    424|  return sub_symbol == super_symbol ||
  ------------------
  |  Branch (188:10): [True: 0, False: 424]
  ------------------
  189|    424|         (HasPrefixString(super_symbol, sub_symbol) &&
  ------------------
  |  Branch (189:11): [True: 6, False: 418]
  ------------------
  190|    424|          super_symbol[sub_symbol.size()] == '.');
  ------------------
  |  Branch (190:11): [True: 0, False: 6]
  ------------------
  191|    424|}
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex9FileEntry4nameERKS2_:
  447|    128|    StringPiece name(const DescriptorIndex& index) const {
  448|    128|      return index.DecodeString(encoded_name, data_offset);
  449|    128|    }
_ZN6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex7AddFileINS0_19FileDescriptorProtoEEEbRKT_NSt3__14pairIPKviEE:
  625|     20|                                                         Value value) {
  626|       |  // We push `value` into the array first. This is important because the AddXXX
  627|       |  // functions below will expect it to be there.
  628|     20|  all_values_.push_back({value.first, value.second, {}});
  629|       |
  630|     20|  if (!ValidateSymbolName(file.package())) {
  ------------------
  |  Branch (630:7): [True: 0, False: 20]
  ------------------
  631|      0|    GOOGLE_LOG(ERROR) << "Invalid package name: " << file.package();
  632|      0|    return false;
  633|      0|  }
  634|     20|  all_values_.back().encoded_package = EncodeString(file.package());
  635|       |
  636|     20|  if (!InsertIfNotPresent(
  ------------------
  |  Branch (636:7): [True: 0, False: 20]
  |  Branch (636:7): [True: 0, False: 20]
  ------------------
  637|     20|          &by_name_, FileEntry{static_cast<int>(all_values_.size() - 1),
  638|     20|                               EncodeString(file.name())}) ||
  639|     20|      std::binary_search(by_name_flat_.begin(), by_name_flat_.end(),
  ------------------
  |  Branch (639:7): [True: 0, False: 20]
  ------------------
  640|     20|                         file.name(), by_name_.key_comp())) {
  641|      0|    GOOGLE_LOG(ERROR) << "File already exists in database: " << file.name();
  642|      0|    return false;
  643|      0|  }
  644|       |
  645|    210|  for (const auto& message_type : file.message_type()) {
  ------------------
  |  Branch (645:33): [True: 210, False: 20]
  ------------------
  646|    210|    if (!AddSymbol(message_type.name())) return false;
  ------------------
  |  Branch (646:9): [True: 0, False: 210]
  ------------------
  647|    210|    if (!AddNestedExtensions(file.name(), message_type)) return false;
  ------------------
  |  Branch (647:9): [True: 0, False: 210]
  ------------------
  648|    210|  }
  649|     20|  for (const auto& enum_type : file.enum_type()) {
  ------------------
  |  Branch (649:30): [True: 6, False: 20]
  ------------------
  650|      6|    if (!AddSymbol(enum_type.name())) return false;
  ------------------
  |  Branch (650:9): [True: 0, False: 6]
  ------------------
  651|      6|  }
  652|     20|  for (const auto& extension : file.extension()) {
  ------------------
  |  Branch (652:30): [True: 0, False: 20]
  ------------------
  653|      0|    if (!AddSymbol(extension.name())) return false;
  ------------------
  |  Branch (653:9): [True: 0, False: 0]
  ------------------
  654|      0|    if (!AddExtension(file.name(), extension)) return false;
  ------------------
  |  Branch (654:9): [True: 0, False: 0]
  ------------------
  655|      0|  }
  656|     20|  for (const auto& service : file.service()) {
  ------------------
  |  Branch (656:28): [True: 0, False: 20]
  ------------------
  657|      0|    if (!AddSymbol(service.name())) return false;
  ------------------
  |  Branch (657:9): [True: 0, False: 0]
  ------------------
  658|      0|  }
  659|       |
  660|     20|  return true;
  661|     20|}
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex11FileCompareclERKNS2_9FileEntryES6_:
  454|     64|    bool operator()(const FileEntry& a, const FileEntry& b) const {
  455|     64|      return a.name(index) < b.name(index);
  456|     64|    }
_ZN6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex19AddNestedExtensionsINS0_15DescriptorProtoEEEbNS0_20stringpiece_internal11StringPieceERKT_:
  732|    238|    StringPiece filename, const DescProto& message_type) {
  733|    238|  for (const auto& nested_type : message_type.nested_type()) {
  ------------------
  |  Branch (733:32): [True: 28, False: 238]
  ------------------
  734|     28|    if (!AddNestedExtensions(filename, nested_type)) return false;
  ------------------
  |  Branch (734:9): [True: 0, False: 28]
  ------------------
  735|     28|  }
  736|    238|  for (const auto& extension : message_type.extension()) {
  ------------------
  |  Branch (736:30): [True: 0, False: 238]
  ------------------
  737|      0|    if (!AddExtension(filename, extension)) return false;
  ------------------
  |  Branch (737:9): [True: 0, False: 0]
  ------------------
  738|      0|  }
  739|    238|  return true;
  740|    238|}
descriptor_database.cc:_ZN6google8protobuf12_GLOBAL__N_119FindLastLessOrEqualINSt3__13setINS0_25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntryENS6_13SymbolCompareENS3_9allocatorIS7_EEEES7_EENT_14const_iteratorEPKSC_RKT0_:
  169|    216|    const Container* container, const Key& key) {
  170|    216|  auto iter = container->upper_bound(key);
  171|    216|  if (iter != container->begin()) --iter;
  ------------------
  |  Branch (171:7): [True: 198, False: 18]
  ------------------
  172|    216|  return iter;
  173|    216|}
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex13SymbolCompareclINS2_11SymbolEntryES5_EEbRKT_RKT0_:
  505|  1.85k|    bool operator()(const T& lhs, const U& rhs) const {
  506|  1.85k|      auto lhs_parts = GetParts(lhs);
  507|  1.85k|      auto rhs_parts = GetParts(rhs);
  508|       |
  509|       |      // Fast path to avoid making the whole string for common cases.
  510|  1.85k|      if (int res =
  ------------------
  |  Branch (510:15): [True: 448, False: 1.40k]
  ------------------
  511|  1.85k|              lhs_parts.first.substr(0, rhs_parts.first.size())
  512|  1.85k|                  .compare(rhs_parts.first.substr(0, lhs_parts.first.size()))) {
  513|       |        // If the packages already differ, exit early.
  514|    448|        return res < 0;
  515|  1.40k|      } else if (lhs_parts.first.size() == rhs_parts.first.size()) {
  ------------------
  |  Branch (515:18): [True: 1.40k, False: 0]
  ------------------
  516|  1.40k|        return lhs_parts.second < rhs_parts.second;
  517|  1.40k|      }
  518|      0|      return AsString(lhs) < AsString(rhs);
  519|  1.85k|    }
_ZNK6google8protobuf25EncodedDescriptorDatabase15DescriptorIndex13SymbolCompare8GetPartsERKNS2_11SymbolEntryE:
  494|  3.71k|        const SymbolEntry& entry) const {
  495|  3.71k|      auto package = entry.package(index);
  496|  3.71k|      if (package.empty()) return {entry.symbol(index), StringPiece{}};
  ------------------
  |  Branch (496:11): [True: 0, False: 3.71k]
  ------------------
  497|  3.71k|      return {package, entry.symbol(index)};
  498|  3.71k|    }
descriptor_database.cc:_ZN6google8protobufL24CheckForMutualSubsymbolsINSt3__121__tree_const_iteratorINS0_25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntryEPNS2_11__tree_nodeIS6_PvEElEESB_S5_EEbNS0_20stringpiece_internal11StringPieceEPT_T0_RKT1_:
  665|    216|                                     Iter2 end, const Index& index) {
  666|    216|  if (*iter != end) {
  ------------------
  |  Branch (666:7): [True: 214, False: 2]
  ------------------
  667|    214|    if (IsSubSymbol((*iter)->AsString(index), symbol_name)) {
  ------------------
  |  Branch (667:9): [True: 0, False: 214]
  ------------------
  668|      0|      GOOGLE_LOG(ERROR) << "Symbol name \"" << symbol_name
  669|      0|                 << "\" conflicts with the existing symbol \""
  670|      0|                 << (*iter)->AsString(index) << "\".";
  671|      0|      return false;
  672|      0|    }
  673|       |
  674|       |    // OK, that worked.  Now we have to make sure that no symbol in the map is
  675|       |    // a sub-symbol of the one we are inserting.  The only symbol which could
  676|       |    // be so is the first symbol that is greater than the new symbol.  Since
  677|       |    // |iter| points at the last symbol that is less than or equal, we just have
  678|       |    // to increment it.
  679|    214|    ++*iter;
  680|       |
  681|    214|    if (*iter != end && IsSubSymbol(symbol_name, (*iter)->AsString(index))) {
  ------------------
  |  Branch (681:9): [True: 210, False: 4]
  |  Branch (681:9): [True: 0, False: 214]
  |  Branch (681:25): [True: 0, False: 210]
  ------------------
  682|      0|      GOOGLE_LOG(ERROR) << "Symbol name \"" << symbol_name
  683|      0|                 << "\" conflicts with the existing symbol \""
  684|      0|                 << (*iter)->AsString(index) << "\".";
  685|      0|      return false;
  686|      0|    }
  687|    214|  }
  688|    216|  return true;
  689|    216|}
descriptor_database.cc:_ZN6google8protobuf12_GLOBAL__N_119FindLastLessOrEqualINSt3__16vectorINS0_25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntryENS3_9allocatorIS7_EEEES7_NS6_13SymbolCompareEEENT_14const_iteratorEPKSC_RKT0_RKT1_:
  178|    216|    const Container* container, const Key& key, const Cmp& cmp) {
  179|    216|  auto iter = std::upper_bound(container->begin(), container->end(), key, cmp);
  180|    216|  if (iter != container->begin()) --iter;
  ------------------
  |  Branch (180:7): [True: 0, False: 216]
  ------------------
  181|    216|  return iter;
  182|    216|}
descriptor_database.cc:_ZN6google8protobufL24CheckForMutualSubsymbolsINSt3__111__wrap_iterIPKNS0_25EncodedDescriptorDatabase15DescriptorIndex11SymbolEntryEEENS3_IPS6_EES5_EEbNS0_20stringpiece_internal11StringPieceEPT_T0_RKT1_:
  665|    216|                                     Iter2 end, const Index& index) {
  666|    216|  if (*iter != end) {
  ------------------
  |  Branch (666:7): [True: 0, False: 216]
  ------------------
  667|      0|    if (IsSubSymbol((*iter)->AsString(index), symbol_name)) {
  ------------------
  |  Branch (667:9): [True: 0, False: 0]
  ------------------
  668|      0|      GOOGLE_LOG(ERROR) << "Symbol name \"" << symbol_name
  669|      0|                 << "\" conflicts with the existing symbol \""
  670|      0|                 << (*iter)->AsString(index) << "\".";
  671|      0|      return false;
  672|      0|    }
  673|       |
  674|       |    // OK, that worked.  Now we have to make sure that no symbol in the map is
  675|       |    // a sub-symbol of the one we are inserting.  The only symbol which could
  676|       |    // be so is the first symbol that is greater than the new symbol.  Since
  677|       |    // |iter| points at the last symbol that is less than or equal, we just have
  678|       |    // to increment it.
  679|      0|    ++*iter;
  680|       |
  681|      0|    if (*iter != end && IsSubSymbol(symbol_name, (*iter)->AsString(index))) {
  ------------------
  |  Branch (681:9): [True: 0, False: 0]
  |  Branch (681:9): [True: 0, False: 0]
  |  Branch (681:25): [True: 0, False: 0]
  ------------------
  682|      0|      GOOGLE_LOG(ERROR) << "Symbol name \"" << symbol_name
  683|      0|                 << "\" conflicts with the existing symbol \""
  684|      0|                 << (*iter)->AsString(index) << "\".";
  685|      0|      return false;
  686|      0|    }
  687|      0|  }
  688|    216|  return true;
  689|    216|}

_ZN6google8protobuf8internal12ExtensionSetC2EPNS0_5ArenaE:
  203|     70|    : arena_(arena),
  204|     70|      flat_capacity_(0),
  205|     70|      flat_size_(0),
  206|     70|      map_{flat_capacity_ == 0
  ------------------
  |  Branch (206:12): [True: 70, False: 0]
  ------------------
  207|     70|               ? nullptr
  208|     70|               : Arena::CreateArray<KeyValue>(arena_, flat_capacity_)} {}
_ZN6google8protobuf8internal12ExtensionSetD2Ev:
  210|     70|ExtensionSet::~ExtensionSet() {
  211|       |  // Deletes all allocated extensions.
  212|     70|  if (arena_ == nullptr) {
  ------------------
  |  Branch (212:7): [True: 70, False: 0]
  ------------------
  213|     70|    ForEach([](int /* number */, Extension& ext) { ext.Free(); });
  214|     70|    if (PROTOBUF_PREDICT_FALSE(is_large())) {
  215|      0|      delete map_.large;
  216|     70|    } else {
  217|     70|      DeleteFlatMap(map_.flat, flat_capacity_);
  218|     70|    }
  219|     70|  }
  220|     70|}
_ZN6google8protobuf8internal12ExtensionSet13DeleteFlatMapEPKNS2_8KeyValueEt:
  223|     70|                                 uint16_t flat_capacity) {
  224|       |#ifdef __cpp_sized_deallocation
  225|       |  // Arena::CreateArray already requires a trivially destructible type, but
  226|       |  // ensure this constraint is not violated in the future.
  227|       |  static_assert(std::is_trivially_destructible<KeyValue>::value,
  228|       |                "CreateArray requires a trivially destructible type");
  229|       |  // A const-cast is needed, but this is safe as we are about to deallocate the
  230|       |  // array.
  231|       |  ::operator delete[](const_cast<ExtensionSet::KeyValue*>(flat),
  232|       |                      sizeof(*flat) * flat_capacity);
  233|       |#else   // !__cpp_sized_deallocation
  234|     70|  delete[] flat;
  235|     70|#endif  // !__cpp_sized_deallocation
  236|     70|}
_ZNK6google8protobuf8internal12ExtensionSet13IsInitializedEv:
 1222|     70|bool ExtensionSet::IsInitialized() const {
 1223|       |  // Extensions are never required.  However, we need to check that all
 1224|       |  // embedded messages are initialized.
 1225|     70|  if (PROTOBUF_PREDICT_FALSE(is_large())) {
 1226|      0|    for (const auto& kv : *map_.large) {
  ------------------
  |  Branch (1226:25): [True: 0, False: 0]
  ------------------
 1227|      0|      if (!kv.second.IsInitialized()) return false;
  ------------------
  |  Branch (1227:11): [True: 0, False: 0]
  ------------------
 1228|      0|    }
 1229|      0|    return true;
 1230|      0|  }
 1231|     70|  for (const KeyValue* it = flat_begin(); it != flat_end(); ++it) {
  ------------------
  |  Branch (1231:43): [True: 0, False: 70]
  ------------------
 1232|      0|    if (!it->second.IsInitialized()) return false;
  ------------------
  |  Branch (1232:9): [True: 0, False: 0]
  ------------------
 1233|      0|  }
 1234|     70|  return true;
 1235|     70|}

_ZN6google8protobuf8internal20AddDescriptorsRunnerC2EPKNS1_15DescriptorTableE:
 3015|     20|AddDescriptorsRunner::AddDescriptorsRunner(const DescriptorTable* table) {
 3016|     20|  AddDescriptors(table);
 3017|     20|}
generated_message_reflection.cc:_ZN6google8protobuf12_GLOBAL__N_114AddDescriptorsEPKNS0_8internal15DescriptorTableE:
 2974|     44|void AddDescriptors(const DescriptorTable* table) {
 2975|       |  // AddDescriptors is not thread safe. Callers need to ensure calls are
 2976|       |  // properly serialized. This function is only called pre-main by global
 2977|       |  // descriptors and we can assume single threaded access or it's called
 2978|       |  // by AssignDescriptorImpl which uses a mutex to sequence calls.
 2979|     44|  if (table->is_initialized) return;
  ------------------
  |  Branch (2979:7): [True: 24, False: 20]
  ------------------
 2980|     20|  table->is_initialized = true;
 2981|     20|  AddDescriptorsImpl(table);
 2982|     20|}
generated_message_reflection.cc:_ZN6google8protobuf12_GLOBAL__N_118AddDescriptorsImplEPKNS0_8internal15DescriptorTableE:
 2957|     20|void AddDescriptorsImpl(const DescriptorTable* table) {
 2958|       |  // Reflection refers to the default fields so make sure they are initialized.
 2959|     20|  internal::InitProtobufDefaults();
 2960|       |
 2961|       |  // Ensure all dependent descriptors are registered to the generated descriptor
 2962|       |  // pool and message factory.
 2963|     20|  int num_deps = table->num_deps;
 2964|     44|  for (int i = 0; i < num_deps; i++) {
  ------------------
  |  Branch (2964:19): [True: 24, False: 20]
  ------------------
 2965|       |    // In case of weak fields deps[i] could be null.
 2966|     24|    if (table->deps[i]) AddDescriptors(table->deps[i]);
  ------------------
  |  Branch (2966:9): [True: 24, False: 0]
  ------------------
 2967|     24|  }
 2968|       |
 2969|       |  // Register the descriptor of this file.
 2970|     20|  DescriptorPool::InternalAddGeneratedFile(table->descriptor, table->size);
 2971|     20|  MessageFactory::InternalRegisterGeneratedFile(table);
 2972|     20|}

_ZN6google8protobuf8internal24InitProtobufDefaultsSlowEv:
   83|      4|void InitProtobufDefaultsSlow() {
   84|      4|  static bool is_inited = InitProtobufDefaultsImpl();
   85|      4|  (void)is_inited;
   86|      4|}
generated_message_util.cc:_ZN6google8protobuf8internalL24InitProtobufDefaultsImplEv:
   74|      2|static bool InitProtobufDefaultsImpl() {
   75|      2|  fixed_address_empty_string.DefaultConstruct();
   76|      2|  OnShutdownDestroyString(fixed_address_empty_string.get_mutable());
   77|       |
   78|       |
   79|      2|  init_protobuf_defaults_state.store(true, std::memory_order_release);
   80|      2|  return true;
   81|      2|}

_ZN6google8protobuf2io16CodedInputStreamD2Ev:
   82|  17.9k|CodedInputStream::~CodedInputStream() {
   83|  17.9k|  if (input_ != NULL) {
  ------------------
  |  Branch (83:7): [True: 17.9k, False: 0]
  ------------------
   84|  17.9k|    BackUpInputToCurrentPosition();
   85|  17.9k|  }
   86|  17.9k|}
_ZN6google8protobuf2io16CodedInputStream28BackUpInputToCurrentPositionEv:
   92|  17.9k|void CodedInputStream::BackUpInputToCurrentPosition() {
   93|  17.9k|  int backup_bytes = BufferSize() + buffer_size_after_limit_ + overflow_bytes_;
   94|  17.9k|  if (backup_bytes > 0) {
  ------------------
  |  Branch (94:7): [True: 1.64k, False: 16.2k]
  ------------------
   95|  1.64k|    input_->BackUp(backup_bytes);
   96|       |
   97|       |    // total_bytes_read_ doesn't include overflow_bytes_.
   98|  1.64k|    total_bytes_read_ -= BufferSize() + buffer_size_after_limit_;
   99|  1.64k|    buffer_end_ = buffer_;
  100|  1.64k|    buffer_size_after_limit_ = 0;
  101|  1.64k|    overflow_bytes_ = 0;
  102|  1.64k|  }
  103|  17.9k|}
_ZN6google8protobuf2io16CodedInputStream18SetTotalBytesLimitEi:
  179|  17.9k|void CodedInputStream::SetTotalBytesLimit(int total_bytes_limit) {
  180|       |  // Make sure the limit isn't already past, since this could confuse other
  181|       |  // code.
  182|  17.9k|  int current_position = CurrentPosition();
  183|  17.9k|  total_bytes_limit_ = std::max(current_position, total_bytes_limit);
  184|  17.9k|  RecomputeBufferLimits();
  185|  17.9k|}
_ZN6google8protobuf2io16CodedInputStream22GetDirectBufferPointerEPPKvPi:
  233|  32.9k|bool CodedInputStream::GetDirectBufferPointer(const void** data, int* size) {
  234|  32.9k|  if (BufferSize() == 0 && !Refresh()) return false;
  ------------------
  |  Branch (234:7): [True: 15.0k, False: 17.9k]
  |  Branch (234:28): [True: 15.0k, False: 0]
  ------------------
  235|       |
  236|  17.9k|  *data = buffer_;
  237|  17.9k|  *size = BufferSize();
  238|  17.9k|  return true;
  239|  32.9k|}
_ZN6google8protobuf2io16CodedInputStream7RefreshEv:
  616|  32.9k|bool CodedInputStream::Refresh() {
  617|  32.9k|  GOOGLE_DCHECK_EQ(0, BufferSize());
  618|       |
  619|  32.9k|  if (buffer_size_after_limit_ > 0 || overflow_bytes_ > 0 ||
  ------------------
  |  Branch (619:7): [True: 0, False: 32.9k]
  |  Branch (619:39): [True: 0, False: 32.9k]
  ------------------
  620|  32.9k|      total_bytes_read_ == current_limit_) {
  ------------------
  |  Branch (620:7): [True: 0, False: 32.9k]
  ------------------
  621|       |    // We've hit a limit.  Stop.
  622|      0|    int current_position = total_bytes_read_ - buffer_size_after_limit_;
  623|       |
  624|      0|    if (current_position >= total_bytes_limit_ &&
  ------------------
  |  Branch (624:9): [True: 0, False: 0]
  ------------------
  625|      0|        total_bytes_limit_ != current_limit_) {
  ------------------
  |  Branch (625:9): [True: 0, False: 0]
  ------------------
  626|       |      // Hit total_bytes_limit_.
  627|      0|      PrintTotalBytesLimitError();
  628|      0|    }
  629|       |
  630|      0|    return false;
  631|      0|  }
  632|       |
  633|  32.9k|  const void* void_buffer;
  634|  32.9k|  int buffer_size;
  635|  32.9k|  if (NextNonEmpty(input_, &void_buffer, &buffer_size)) {
  ------------------
  |  Branch (635:7): [True: 17.9k, False: 15.0k]
  ------------------
  636|  17.9k|    buffer_ = reinterpret_cast<const uint8_t*>(void_buffer);
  637|  17.9k|    buffer_end_ = buffer_ + buffer_size;
  638|  17.9k|    GOOGLE_CHECK_GE(buffer_size, 0);
  639|       |
  640|  17.9k|    if (total_bytes_read_ <= INT_MAX - buffer_size) {
  ------------------
  |  Branch (640:9): [True: 17.9k, False: 0]
  ------------------
  641|  17.9k|      total_bytes_read_ += buffer_size;
  642|  17.9k|    } else {
  643|       |      // Overflow.  Reset buffer_end_ to not include the bytes beyond INT_MAX.
  644|       |      // We can't get that far anyway, because total_bytes_limit_ is guaranteed
  645|       |      // to be less than it.  We need to keep track of the number of bytes
  646|       |      // we discarded, though, so that we can call input_->BackUp() to back
  647|       |      // up over them on destruction.
  648|       |
  649|       |      // The following line is equivalent to:
  650|       |      //   overflow_bytes_ = total_bytes_read_ + buffer_size - INT_MAX;
  651|       |      // except that it avoids overflows.  Signed integer overflow has
  652|       |      // undefined results according to the C standard.
  653|      0|      overflow_bytes_ = total_bytes_read_ - (INT_MAX - buffer_size);
  654|      0|      buffer_end_ -= overflow_bytes_;
  655|      0|      total_bytes_read_ = INT_MAX;
  656|      0|    }
  657|       |
  658|  17.9k|    RecomputeBufferLimits();
  659|  17.9k|    return true;
  660|  17.9k|  } else {
  661|  15.0k|    buffer_ = NULL;
  662|  15.0k|    buffer_end_ = NULL;
  663|  15.0k|    return false;
  664|  15.0k|  }
  665|  32.9k|}
_ZN6google8protobuf2io16CodedInputStream21RecomputeBufferLimitsEv:
  105|  35.8k|inline void CodedInputStream::RecomputeBufferLimits() {
  106|  35.8k|  buffer_end_ += buffer_size_after_limit_;
  107|  35.8k|  int closest_limit = std::min(current_limit_, total_bytes_limit_);
  108|  35.8k|  if (closest_limit < total_bytes_read_) {
  ------------------
  |  Branch (108:7): [True: 0, False: 35.8k]
  ------------------
  109|       |    // The limit position is in the current buffer.  We must adjust
  110|       |    // the buffer size accordingly.
  111|      0|    buffer_size_after_limit_ = total_bytes_read_ - closest_limit;
  112|      0|    buffer_end_ -= buffer_size_after_limit_;
  113|  35.8k|  } else {
  114|  35.8k|    buffer_size_after_limit_ = 0;
  115|  35.8k|  }
  116|  35.8k|}
coded_stream.cc:_ZN6google8protobuf2io12_GLOBAL__N_112NextNonEmptyEPNS1_19ZeroCopyInputStreamEPPKvPi:
   70|  32.9k|                         int* size) {
   71|  32.9k|  bool success;
   72|  32.9k|  do {
   73|  32.9k|    success = input->Next(data, size);
   74|  32.9k|  } while (success && *size == 0);
  ------------------
  |  Branch (74:12): [True: 17.9k, False: 15.0k]
  |  Branch (74:23): [True: 0, False: 17.9k]
  ------------------
   75|  32.9k|  return success;
   76|  32.9k|}

_ZN6google8protobuf2io16ArrayInputStreamC2EPKvii:
   59|  17.9k|    : data_(reinterpret_cast<const uint8_t*>(data)),
   60|  17.9k|      size_(size),
   61|  17.9k|      block_size_(block_size > 0 ? block_size : size),
  ------------------
  |  Branch (61:19): [True: 0, False: 17.9k]
  ------------------
   62|  17.9k|      position_(0),
   63|  17.9k|      last_returned_size_(0) {}
_ZN6google8protobuf2io16ArrayInputStream4NextEPPKvPi:
   65|  32.9k|bool ArrayInputStream::Next(const void** data, int* size) {
   66|  32.9k|  if (position_ < size_) {
  ------------------
  |  Branch (66:7): [True: 17.9k, False: 15.0k]
  ------------------
   67|  17.9k|    last_returned_size_ = std::min(block_size_, size_ - position_);
   68|  17.9k|    *data = data_ + position_;
   69|  17.9k|    *size = last_returned_size_;
   70|  17.9k|    position_ += last_returned_size_;
   71|  17.9k|    return true;
   72|  17.9k|  } else {
   73|       |    // We're at the end of the array.
   74|  15.0k|    last_returned_size_ = 0;  // Don't let caller back up.
   75|  15.0k|    return false;
   76|  15.0k|  }
   77|  32.9k|}
_ZN6google8protobuf2io16ArrayInputStream6BackUpEi:
   79|  1.64k|void ArrayInputStream::BackUp(int count) {
   80|  1.64k|  GOOGLE_CHECK_GT(last_returned_size_, 0)
   81|      0|      << "BackUp() can only be called after a successful Next().";
   82|  1.64k|  GOOGLE_CHECK_LE(count, last_returned_size_);
   83|  1.64k|  GOOGLE_CHECK_GE(count, 0);
   84|  1.64k|  position_ -= count;
   85|  1.64k|  last_returned_size_ = 0;  // Don't let caller back up further.
   86|  1.64k|}

_ZN6google8protobuf8internal12MapFieldBaseD2Ev:
   42|   907k|MapFieldBase::~MapFieldBase() {
   43|   907k|  if (repeated_field_ != nullptr && arena_ == nullptr) delete repeated_field_;
  ------------------
  |  Branch (43:7): [True: 0, False: 907k]
  |  Branch (43:37): [True: 0, False: 0]
  ------------------
   44|   907k|}
_ZN6google8protobuf8internal12MapFieldBase11SetMapDirtyEv:
  141|    594|void MapFieldBase::SetMapDirty() {
  142|    594|  MutableAccess();
  143|       |  // These are called by (non-const) mutator functions. So by our API it's the
  144|       |  // callers responsibility to have these calls properly ordered.
  145|    594|  state_.store(STATE_MODIFIED_MAP, std::memory_order_relaxed);
  146|    594|}
_ZNK6google8protobuf8internal12MapFieldBase24SyncMapWithRepeatedFieldEv:
  195|  2.54M|void MapFieldBase::SyncMapWithRepeatedField() const {
  196|  2.54M|  ConstAccess();
  197|       |  // acquire here matches with release below to ensure that we can only see a
  198|       |  // value of CLEAN after all previous changes have been synced.
  199|  2.54M|  if (state_.load(std::memory_order_acquire) == STATE_MODIFIED_REPEATED) {
  ------------------
  |  Branch (199:7): [True: 0, False: 2.54M]
  ------------------
  200|      0|    mutex_.Lock();
  201|       |    // Double check state, because another thread may have seen the same state
  202|       |    // and done the synchronization before the current thread.
  203|      0|    if (state_.load(std::memory_order_relaxed) == STATE_MODIFIED_REPEATED) {
  ------------------
  |  Branch (203:9): [True: 0, False: 0]
  ------------------
  204|      0|      SyncMapWithRepeatedFieldNoLock();
  205|      0|      state_.store(CLEAN, std::memory_order_release);
  206|      0|    }
  207|      0|    mutex_.Unlock();
  208|      0|    ConstAccess();
  209|      0|  }
  210|  2.54M|}

_ZNK6google8protobuf7Message24ComputeUnknownFieldsSizeEmPNS0_8internal10CachedSizeE:
  187|   101k|    size_t total_size, internal::CachedSize* cached_size) const {
  188|   101k|  total_size += WireFormat::ComputeUnknownFieldsSize(
  189|   101k|      _internal_metadata_.unknown_fields<UnknownFieldSet>(
  190|   101k|          UnknownFieldSet::default_instance));
  191|   101k|  cached_size->Set(internal::ToCachedSize(total_size));
  192|   101k|  return total_size;
  193|   101k|}
_ZNK6google8protobuf7Message29MaybeComputeUnknownFieldsSizeEmPNS0_8internal10CachedSizeE:
  196|   984k|    size_t total_size, internal::CachedSize* cached_size) const {
  197|   984k|  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
  198|   101k|    return ComputeUnknownFieldsSize(total_size, cached_size);
  199|   101k|  }
  200|   883k|  cached_size->Set(internal::ToCachedSize(total_size));
  201|   883k|  return total_size;
  202|   984k|}
_ZN6google8protobuf14MessageFactory29InternalRegisterGeneratedFileEPKNS0_8internal15DescriptorTableE:
  321|     20|    const google::protobuf::internal::DescriptorTable* table) {
  322|     20|  GeneratedMessageFactory::singleton()->RegisterFile(table);
  323|     20|}
message.cc:_ZN6google8protobuf12_GLOBAL__N_123GeneratedMessageFactory9singletonEv:
  245|     20|GeneratedMessageFactory* GeneratedMessageFactory::singleton() {
  246|     20|  static auto instance =
  247|     20|      internal::OnShutdownDelete(new GeneratedMessageFactory);
  248|     20|  return instance;
  249|     20|}
message.cc:_ZN6google8protobuf12_GLOBAL__N_123GeneratedMessageFactory12RegisterFileEPKNS0_8internal15DescriptorTableE:
  252|     20|    const google::protobuf::internal::DescriptorTable* table) {
  253|     20|  if (!InsertIfNotPresent(&file_map_, table->filename, table)) {
  ------------------
  |  Branch (253:7): [True: 0, False: 20]
  ------------------
  254|      0|    GOOGLE_LOG(FATAL) << "File is already registered: " << table->filename;
  255|      0|  }
  256|     20|}

_ZN6google8protobuf8internal13MergeFromImplILb0EEEbNS0_20stringpiece_internal11StringPieceEPNS0_11MessageLiteENS5_10ParseFlagsE:
  141|     20|                   MessageLite::ParseFlags parse_flags) {
  142|     20|  const char* ptr;
  143|     20|  internal::ParseContext ctx(io::CodedInputStream::GetDefaultRecursionLimit(),
  144|     20|                             aliasing, &ptr, input);
  145|     20|  ptr = msg->_InternalParse(ptr, &ctx);
  146|       |  // ctx has an explicit limit set (length of string_view).
  147|     20|  if (PROTOBUF_PREDICT_TRUE(ptr && ctx.EndedAtLimit())) {
  148|     20|    return CheckFieldPresence(ctx, *msg, parse_flags);
  149|     20|  }
  150|      0|  return false;
  151|     20|}
_ZN6google8protobuf11MessageLite13MergeFromImplEPNS0_2io16CodedInputStreamENS1_10ParseFlagsE:
  218|  17.9k|                                MessageLite::ParseFlags parse_flags) {
  219|  17.9k|  ZeroCopyCodedInputStream zcis(input);
  220|  17.9k|  const char* ptr;
  221|  17.9k|  internal::ParseContext ctx(input->RecursionBudget(), zcis.aliasing_enabled(),
  222|  17.9k|                             &ptr, &zcis);
  223|       |  // MergePartialFromCodedStream allows terminating the wireformat by 0 or
  224|       |  // end-group tag. Leaving it up to the caller to verify correct ending by
  225|       |  // calling LastTagWas on input. We need to maintain this behavior.
  226|  17.9k|  ctx.TrackCorrectEnding();
  227|  17.9k|  ctx.data().pool = input->GetExtensionPool();
  228|  17.9k|  ctx.data().factory = input->GetExtensionFactory();
  229|  17.9k|  ptr = _InternalParse(ptr, &ctx);
  230|  17.9k|  if (PROTOBUF_PREDICT_FALSE(!ptr)) return false;
  231|  6.21k|  ctx.BackUp(ptr);
  232|  6.21k|  if (!ctx.EndedAtEndOfStream()) {
  ------------------
  |  Branch (232:7): [True: 1.94k, False: 4.26k]
  ------------------
  233|  1.94k|    GOOGLE_DCHECK(ctx.LastTag() != 1);  // We can't end on a pushed limit.
  234|  1.94k|    if (ctx.IsExceedingLimit(ptr)) return false;
  ------------------
  |  Branch (234:9): [True: 21, False: 1.92k]
  ------------------
  235|  1.92k|    input->SetLastTag(ctx.LastTag());
  236|  4.26k|  } else {
  237|  4.26k|    input->SetConsumed();
  238|  4.26k|  }
  239|  6.18k|  return CheckFieldPresence(ctx, *this, parse_flags);
  240|  6.21k|}
_ZN6google8protobuf11MessageLite20ParseFromCodedStreamEPNS0_2io16CodedInputStreamE:
  250|  17.9k|bool MessageLite::ParseFromCodedStream(io::CodedInputStream* input) {
  251|  17.9k|  Clear();
  252|  17.9k|  return MergeFromImpl(input, kParse);
  253|  17.9k|}
_ZN6google8protobuf11MessageLite14ParseFromArrayEPKvi:
  317|     20|bool MessageLite::ParseFromArray(const void* data, int size) {
  318|     20|  return ParseFrom<kParse>(as_string_view(data, size));
  319|     20|}
_ZN6google8protobuf8internal13OnShutdownRunEPFvPKvES3_:
  574|      6|void OnShutdownRun(void (*f)(const void*), const void* arg) {
  575|      6|  auto shutdown_data = ShutdownData::get();
  576|      6|  MutexLock lock(&shutdown_data->mutex);
  577|      6|  shutdown_data->functions.push_back(std::make_pair(f, arg));
  578|      6|}
message_lite.cc:_ZN6google8protobuf12_GLOBAL__N_118CheckFieldPresenceERKNS0_8internal12ParseContextERKNS0_11MessageLiteENS6_10ParseFlagsE:
  123|  6.20k|                               MessageLite::ParseFlags parse_flags) {
  124|  6.20k|  (void)ctx;  // Parameter is used by Google-internal code.
  125|  6.20k|  if (PROTOBUF_PREDICT_FALSE((parse_flags & MessageLite::kMergePartial) != 0)) {
  126|      0|    return true;
  127|      0|  }
  128|  6.20k|  return msg.IsInitializedWithErrors();
  129|  6.20k|}
_ZN6google8protobuf24ZeroCopyCodedInputStreamC2EPNS0_2io16CodedInputStreamE:
  201|  17.9k|  ZeroCopyCodedInputStream(io::CodedInputStream* cis) : cis_(cis) {}
_ZN6google8protobuf24ZeroCopyCodedInputStream4NextEPPKvPi:
  202|  32.9k|  bool Next(const void** data, int* size) final {
  203|  32.9k|    if (!cis_->GetDirectBufferPointer(data, size)) return false;
  ------------------
  |  Branch (203:9): [True: 15.0k, False: 17.9k]
  ------------------
  204|  17.9k|    cis_->Skip(*size);
  205|  17.9k|    return true;
  206|  32.9k|  }
_ZN6google8protobuf24ZeroCopyCodedInputStream6BackUpEi:
  207|  1.64k|  void BackUp(int count) final { cis_->Advance(-count); }
_ZN6google8protobuf24ZeroCopyCodedInputStream16aliasing_enabledEv:
  211|  17.9k|  bool aliasing_enabled() { return cis_->aliasing_enabled_; }
message_lite.cc:_ZN6google8protobuf12_GLOBAL__N_114as_string_viewEPKvi:
  116|     20|inline StringPiece as_string_view(const void* data, int size) {
  117|     20|  return StringPiece(static_cast<const char*>(data), size);
  118|     20|}
_ZN6google8protobuf8internal12ShutdownData3getEv:
  556|      6|  static ShutdownData* get() {
  557|      6|    static auto* data = new ShutdownData;
  558|      6|    return data;
  559|      6|  }

_ZN6google8protobuf8internal18EpsCopyInputStream4NextEv:
  157|    825|const char* EpsCopyInputStream::Next() {
  158|    825|  GOOGLE_DCHECK(limit_ > kSlopBytes);
  159|    825|  auto p = NextBuffer(0 /* immaterial */, -1);
  160|    825|  if (p == nullptr) {
  ------------------
  |  Branch (160:7): [True: 547, False: 278]
  ------------------
  161|    547|    limit_end_ = buffer_end_;
  162|       |    // Distinguish ending on a pushed limit or ending on end-of-stream.
  163|    547|    SetEndOfStream();
  164|    547|    return nullptr;
  165|    547|  }
  166|    278|  limit_ -= buffer_end_ - p;  // Adjust limit_ relative to new anchor
  167|    278|  limit_end_ = buffer_end_ + std::min(0, limit_);
  168|    278|  return p;
  169|    825|}
_ZN6google8protobuf8internal18EpsCopyInputStream12DoneFallbackEii:
  172|  27.3k|                                                              int depth) {
  173|       |  // Did we exceeded the limit (parse error).
  174|  27.3k|  if (PROTOBUF_PREDICT_FALSE(overrun > limit_)) return {nullptr, true};
  175|  26.6k|  GOOGLE_DCHECK(overrun != limit_);  // Guaranteed by caller.
  176|  26.6k|  GOOGLE_DCHECK(overrun < limit_);   // Follows from above
  177|       |  // TODO(gerbens) Instead of this dcheck we could just assign, and remove
  178|       |  // updating the limit_end from PopLimit, ie.
  179|       |  // limit_end_ = buffer_end_ + (std::min)(0, limit_);
  180|       |  // if (ptr < limit_end_) return {ptr, false};
  181|  26.6k|  GOOGLE_DCHECK(limit_end_ == buffer_end_ + (std::min)(0, limit_));
  182|       |  // At this point we know the following assertion holds.
  183|  26.6k|  GOOGLE_DCHECK(limit_ > 0);
  184|  26.6k|  GOOGLE_DCHECK(limit_end_ == buffer_end_);  // because limit_ > 0
  185|  26.6k|  const char* p;
  186|  26.8k|  do {
  187|       |    // We are past the end of buffer_end_, in the slop region.
  188|  26.8k|    GOOGLE_DCHECK(overrun >= 0);
  189|  26.8k|    p = NextBuffer(overrun, depth);
  190|  26.8k|    if (p == nullptr) {
  ------------------
  |  Branch (190:9): [True: 10.5k, False: 16.2k]
  ------------------
  191|       |      // We are at the end of the stream
  192|  10.5k|      if (PROTOBUF_PREDICT_FALSE(overrun != 0)) return {nullptr, true};
  193|  6.59k|      GOOGLE_DCHECK(limit_ > 0);
  194|  6.59k|      limit_end_ = buffer_end_;
  195|       |      // Distinguish ending on a pushed limit or ending on end-of-stream.
  196|  6.59k|      SetEndOfStream();
  197|  6.59k|      return {buffer_end_, true};
  198|  10.5k|    }
  199|  16.2k|    limit_ -= buffer_end_ - p;  // Adjust limit_ relative to new anchor
  200|  16.2k|    p += overrun;
  201|  16.2k|    overrun = p - buffer_end_;
  202|  16.2k|  } while (overrun >= 0);
  ------------------
  |  Branch (202:12): [True: 245, False: 16.0k]
  ------------------
  203|  16.0k|  limit_end_ = buffer_end_ + std::min(0, limit_);
  204|  16.0k|  return {p, false};
  205|  26.6k|}
_ZN6google8protobuf8internal18EpsCopyInputStream12SkipFallbackEPKci:
  207|     98|const char* EpsCopyInputStream::SkipFallback(const char* ptr, int size) {
  208|     98|  return AppendSize(ptr, size, [](const char* /*p*/, int /*s*/) {});
  209|     98|}
_ZN6google8protobuf8internal18EpsCopyInputStream18ReadStringFallbackEPKciPNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE:
  212|    786|                                                   std::string* str) {
  213|    786|  str->clear();
  214|    786|  if (PROTOBUF_PREDICT_TRUE(size <= buffer_end_ - ptr + limit_)) {
  215|       |    // Reserve the string up to a static safe size. If strings are bigger than
  216|       |    // this we proceed by growing the string as needed. This protects against
  217|       |    // malicious payloads making protobuf hold on to a lot of memory.
  218|    371|    str->reserve(str->size() + std::min<int>(size, kSafeStringSize));
  219|    371|  }
  220|    786|  return AppendSize(ptr, size,
  221|    786|                    [str](const char* p, int s) { str->append(p, s); });
  222|    786|}
_ZN6google8protobuf8internal18EpsCopyInputStream8InitFromEPNS0_2io19ZeroCopyInputStreamE:
  250|  17.9k|const char* EpsCopyInputStream::InitFrom(io::ZeroCopyInputStream* zcis) {
  251|  17.9k|  zcis_ = zcis;
  252|  17.9k|  const void* data;
  253|  17.9k|  int size;
  254|  17.9k|  limit_ = INT_MAX;
  255|  17.9k|  if (zcis->Next(&data, &size)) {
  ------------------
  |  Branch (255:7): [True: 17.9k, False: 0]
  ------------------
  256|  17.9k|    overall_limit_ -= size;
  257|  17.9k|    if (size > kSlopBytes) {
  ------------------
  |  Branch (257:9): [True: 10.4k, False: 7.42k]
  ------------------
  258|  10.4k|      auto ptr = static_cast<const char*>(data);
  259|  10.4k|      limit_ -= size - kSlopBytes;
  260|  10.4k|      limit_end_ = buffer_end_ = ptr + size - kSlopBytes;
  261|  10.4k|      next_chunk_ = buffer_;
  262|  10.4k|      if (aliasing_ == kOnPatch) aliasing_ = kNoDelta;
  ------------------
  |  Branch (262:11): [True: 0, False: 10.4k]
  ------------------
  263|  10.4k|      return ptr;
  264|  10.4k|    } else {
  265|  7.42k|      limit_end_ = buffer_end_ = buffer_ + kSlopBytes;
  266|  7.42k|      next_chunk_ = buffer_;
  267|  7.42k|      auto ptr = buffer_ + 2 * kSlopBytes - size;
  268|  7.42k|      std::memcpy(ptr, data, size);
  269|  7.42k|      return ptr;
  270|  7.42k|    }
  271|  17.9k|  }
  272|      0|  overall_limit_ = 0;
  273|      0|  next_chunk_ = nullptr;
  274|      0|  size_ = 0;
  275|      0|  limit_end_ = buffer_end_ = buffer_;
  276|      0|  return buffer_;
  277|  17.9k|}
_ZN6google8protobuf8internal12ParseContext28ReadSizeAndPushLimitAndDepthEPKcPi:
  280|  1.22M|                                                       int* old_limit) {
  281|  1.22M|  int size = ReadSize(&ptr);
  282|  1.22M|  if (PROTOBUF_PREDICT_FALSE(!ptr)) {
  283|     15|    *old_limit = 0;  // Make sure this isn't uninitialized even on error return
  284|     15|    return nullptr;
  285|     15|  }
  286|  1.22M|  *old_limit = PushLimit(ptr, size);
  287|  1.22M|  if (--depth_ < 0) return nullptr;
  ------------------
  |  Branch (287:7): [True: 4, False: 1.22M]
  ------------------
  288|  1.22M|  return ptr;
  289|  1.22M|}
_ZN6google8protobuf8internal12ParseContext12ParseMessageEPNS0_11MessageLiteEPKc:
  291|  1.13M|const char* ParseContext::ParseMessage(MessageLite* msg, const char* ptr) {
  292|  1.13M|  int old;
  293|  1.13M|  ptr = ReadSizeAndPushLimitAndDepth(ptr, &old);
  294|  1.13M|  ptr = ptr ? msg->_InternalParse(ptr, this) : nullptr;
  ------------------
  |  Branch (294:9): [True: 1.13M, False: 7]
  ------------------
  295|  1.13M|  depth_++;
  296|  1.13M|  if (!PopLimit(old)) return nullptr;
  ------------------
  |  Branch (296:7): [True: 8.73k, False: 1.13M]
  ------------------
  297|  1.13M|  return ptr;
  298|  1.13M|}
_ZN6google8protobuf8internal17VarintParseSlow32EPKcj:
  321|  19.8k|                                                   uint32_t res) {
  322|  30.2k|  for (std::uint32_t i = 2; i < 5; i++) {
  ------------------
  |  Branch (322:29): [True: 28.2k, False: 2.00k]
  ------------------
  323|  28.2k|    uint32_t byte = static_cast<uint8_t>(p[i]);
  324|  28.2k|    res += (byte - 1) << (7 * i);
  325|  28.2k|    if (PROTOBUF_PREDICT_TRUE(byte < 128)) {
  326|  17.8k|      return {p + i + 1, res};
  327|  17.8k|    }
  328|  28.2k|  }
  329|       |  // Accept >5 bytes
  330|  5.58k|  for (std::uint32_t i = 5; i < 10; i++) {
  ------------------
  |  Branch (330:29): [True: 5.56k, False: 14]
  ------------------
  331|  5.56k|    uint32_t byte = static_cast<uint8_t>(p[i]);
  332|  5.56k|    if (PROTOBUF_PREDICT_TRUE(byte < 128)) {
  333|  1.98k|      return {p + i + 1, res};
  334|  1.98k|    }
  335|  5.56k|  }
  336|     14|  return {nullptr, 0};
  337|  2.00k|}
_ZN6google8protobuf8internal17VarintParseSlow64EPKcj:
  340|  79.8k|                                                   uint32_t res32) {
  341|  79.8k|  uint64_t res = res32;
  342|   148k|  for (std::uint32_t i = 2; i < 10; i++) {
  ------------------
  |  Branch (342:29): [True: 148k, False: 62]
  ------------------
  343|   148k|    uint64_t byte = static_cast<uint8_t>(p[i]);
  344|   148k|    res += (byte - 1) << (7 * i);
  345|   148k|    if (PROTOBUF_PREDICT_TRUE(byte < 128)) {
  346|  79.7k|      return {p + i + 1, res};
  347|  79.7k|    }
  348|   148k|  }
  349|     62|  return {nullptr, 0};
  350|  79.8k|}
_ZN6google8protobuf8internal15ReadTagFallbackEPKcj:
  352|  47.0k|std::pair<const char*, uint32_t> ReadTagFallback(const char* p, uint32_t res) {
  353|  67.5k|  for (std::uint32_t i = 2; i < 5; i++) {
  ------------------
  |  Branch (353:29): [True: 67.3k, False: 202]
  ------------------
  354|  67.3k|    uint32_t byte = static_cast<uint8_t>(p[i]);
  355|  67.3k|    res += (byte - 1) << (7 * i);
  356|  67.3k|    if (PROTOBUF_PREDICT_TRUE(byte < 128)) {
  357|  46.8k|      return {p + i + 1, res};
  358|  46.8k|    }
  359|  67.3k|  }
  360|    202|  return {nullptr, 0};
  361|  47.0k|}
_ZN6google8protobuf8internal16ReadSizeFallbackEPKcj:
  363|  31.1k|std::pair<const char*, int32_t> ReadSizeFallback(const char* p, uint32_t res) {
  364|  59.0k|  for (std::uint32_t i = 1; i < 4; i++) {
  ------------------
  |  Branch (364:29): [True: 55.2k, False: 3.78k]
  ------------------
  365|  55.2k|    uint32_t byte = static_cast<uint8_t>(p[i]);
  366|  55.2k|    res += (byte - 1) << (7 * i);
  367|  55.2k|    if (PROTOBUF_PREDICT_TRUE(byte < 128)) {
  368|  27.3k|      return {p + i + 1, res};
  369|  27.3k|    }
  370|  55.2k|  }
  371|  3.78k|  std::uint32_t byte = static_cast<uint8_t>(p[4]);
  372|  3.78k|  if (PROTOBUF_PREDICT_FALSE(byte >= 8)) return {nullptr, 0};  // size >= 2gb
  373|  3.66k|  res += (byte - 1) << 28;
  374|       |  // Protect against sign integer overflow in PushLimit. Limits are relative
  375|       |  // to buffer ends and ptr could potential be kSlopBytes beyond a buffer end.
  376|       |  // To protect against overflow we reject limits absurdly close to INT_MAX.
  377|  3.66k|  if (PROTOBUF_PREDICT_FALSE(res > INT_MAX - ParseContext::kSlopBytes)) {
  378|     12|    return {nullptr, 0};
  379|     12|  }
  380|  3.65k|  return {p + 5, res};
  381|  3.66k|}
_ZN6google8protobuf8internal10VerifyUTF8ENS0_20stringpiece_internal11StringPieceEPKc:
  394|   416k|bool VerifyUTF8(StringPiece str, const char* field_name) {
  395|   416k|  if (!IsStructurallyValidUTF8(str)) {
  ------------------
  |  Branch (395:7): [True: 200, False: 416k]
  ------------------
  396|    200|    PrintUTF8ErrorLog(field_name, "parsing", false);
  397|    200|    return false;
  398|    200|  }
  399|   416k|  return true;
  400|   416k|}
_ZN6google8protobuf8internal24InlineGreedyStringParserEPNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKcPNS1_12ParseContextE:
  403|   435k|                                     ParseContext* ctx) {
  404|   435k|  int size = ReadSize(&ptr);
  405|   435k|  if (!ptr) return nullptr;
  ------------------
  |  Branch (405:7): [True: 26, False: 435k]
  ------------------
  406|   435k|  return ctx->ReadString(ptr, size, s);
  407|   435k|}
_ZN6google8protobuf8internal17PackedInt32ParserEPvPKcPNS1_12ParseContextE:
  428|  5.48k|                              ParseContext* ctx) {
  429|  5.48k|  return VarintParser<int32_t, false>(object, ptr, ctx);
  430|  5.48k|}
_ZN6google8protobuf8internal17PackedInt64ParserEPvPKcPNS1_12ParseContextE:
  436|  3.00k|                              ParseContext* ctx) {
  437|  3.00k|  return VarintParser<int64_t, false>(object, ptr, ctx);
  438|  3.00k|}
_ZN6google8protobuf8internal16PackedEnumParserEPvPKcPNS1_12ParseContextE:
  452|    548|const char* PackedEnumParser(void* object, const char* ptr, ParseContext* ctx) {
  453|    548|  return VarintParser<int, false>(object, ptr, ctx);
  454|    548|}
_ZN6google8protobuf8internal16PackedBoolParserEPvPKcPNS1_12ParseContextE:
  456|  10.8k|const char* PackedBoolParser(void* object, const char* ptr, ParseContext* ctx) {
  457|  10.8k|  return VarintParser<bool, false>(object, ptr, ctx);
  458|  10.8k|}
_ZN6google8protobuf8internal17PackedFloatParserEPvPKcPNS1_12ParseContextE:
  484|  12.7k|                              ParseContext* ctx) {
  485|  12.7k|  return FixedParser<float>(object, ptr, ctx);
  486|  12.7k|}
_ZN6google8protobuf8internal18PackedDoubleParserEPvPKcPNS1_12ParseContextE:
  488|  2.05k|                               ParseContext* ctx) {
  489|  2.05k|  return FixedParser<double>(object, ptr, ctx);
  490|  2.05k|}
_ZN6google8protobuf8internal17UnknownFieldParseEjPNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKcPNS1_12ParseContextE:
  550|  50.6k|                              const char* ptr, ParseContext* ctx) {
  551|  50.6k|  UnknownFieldLiteParserHelper field_parser(unknown);
  552|  50.6k|  return FieldParser(tag, field_parser, ptr, ctx);
  553|  50.6k|}
_ZN6google8protobuf8internal18EpsCopyInputStream10NextBufferEii:
  102|  27.6k|const char* EpsCopyInputStream::NextBuffer(int overrun, int depth) {
  103|  27.6k|  if (next_chunk_ == nullptr) return nullptr;  // We've reached end of stream.
  ------------------
  |  Branch (103:7): [True: 11.1k, False: 16.5k]
  ------------------
  104|  16.5k|  if (next_chunk_ != buffer_) {
  ------------------
  |  Branch (104:7): [True: 0, False: 16.5k]
  ------------------
  105|      0|    GOOGLE_DCHECK(size_ > kSlopBytes);
  106|       |    // The chunk is large enough to be used directly
  107|      0|    buffer_end_ = next_chunk_ + size_ - kSlopBytes;
  108|      0|    auto res = next_chunk_;
  109|      0|    next_chunk_ = buffer_;
  110|      0|    if (aliasing_ == kOnPatch) aliasing_ = kNoDelta;
  ------------------
  |  Branch (110:9): [True: 0, False: 0]
  ------------------
  111|      0|    return res;
  112|      0|  }
  113|       |  // Move the slop bytes of previous buffer to start of the patch buffer.
  114|       |  // Note we must use memmove because the previous buffer could be part of
  115|       |  // buffer_.
  116|  16.5k|  std::memmove(buffer_, buffer_end_, kSlopBytes);
  117|  16.5k|  if (overall_limit_ > 0 &&
  ------------------
  |  Branch (117:7): [True: 16.5k, False: 18]
  ------------------
  118|  16.5k|      (depth < 0 || !ParseEndsInSlopRegion(buffer_, overrun, depth))) {
  ------------------
  |  Branch (118:8): [True: 278, False: 16.2k]
  |  Branch (118:21): [True: 14.8k, False: 1.45k]
  ------------------
  119|  15.0k|    const void* data;
  120|       |    // ZeroCopyInputStream indicates Next may return 0 size buffers. Hence
  121|       |    // we loop.
  122|  15.0k|    while (StreamNext(&data)) {
  ------------------
  |  Branch (122:12): [True: 0, False: 15.0k]
  ------------------
  123|      0|      if (size_ > kSlopBytes) {
  ------------------
  |  Branch (123:11): [True: 0, False: 0]
  ------------------
  124|       |        // We got a large chunk
  125|      0|        std::memcpy(buffer_ + kSlopBytes, data, kSlopBytes);
  126|      0|        next_chunk_ = static_cast<const char*>(data);
  127|      0|        buffer_end_ = buffer_ + kSlopBytes;
  128|      0|        if (aliasing_ >= kNoDelta) aliasing_ = kOnPatch;
  ------------------
  |  Branch (128:13): [True: 0, False: 0]
  ------------------
  129|      0|        return buffer_;
  130|      0|      } else if (size_ > 0) {
  ------------------
  |  Branch (130:18): [True: 0, False: 0]
  ------------------
  131|      0|        std::memcpy(buffer_ + kSlopBytes, data, size_);
  132|      0|        next_chunk_ = buffer_;
  133|      0|        buffer_end_ = buffer_ + size_;
  134|      0|        if (aliasing_ >= kNoDelta) aliasing_ = kOnPatch;
  ------------------
  |  Branch (134:13): [True: 0, False: 0]
  ------------------
  135|      0|        return buffer_;
  136|      0|      }
  137|      0|      GOOGLE_DCHECK(size_ == 0) << size_;
  138|      0|    }
  139|  15.0k|    overall_limit_ = 0;  // Next failed, no more needs for next
  140|  15.0k|  }
  141|       |  // End of stream or array
  142|  16.5k|  if (aliasing_ == kNoDelta) {
  ------------------
  |  Branch (142:7): [True: 0, False: 16.5k]
  ------------------
  143|       |    // If there is no more block and aliasing is true, the previous block
  144|       |    // is still valid and we can alias. We have users relying on string_view's
  145|       |    // obtained from protos to outlive the proto, when the parse was from an
  146|       |    // array. This guarantees string_view's are always aliased if parsed from
  147|       |    // an array.
  148|      0|    aliasing_ = reinterpret_cast<std::uintptr_t>(buffer_end_) -
  149|      0|                reinterpret_cast<std::uintptr_t>(buffer_);
  150|      0|  }
  151|  16.5k|  next_chunk_ = nullptr;
  152|  16.5k|  buffer_end_ = buffer_ + kSlopBytes;
  153|  16.5k|  size_ = 0;
  154|  16.5k|  return buffer_;
  155|  16.5k|}
parse_context.cc:_ZN6google8protobuf8internal12_GLOBAL__N_121ParseEndsInSlopRegionEPKcii:
   51|  16.2k|bool ParseEndsInSlopRegion(const char* begin, int overrun, int depth) {
   52|  16.2k|  constexpr int kSlopBytes = EpsCopyInputStream::kSlopBytes;
   53|  16.2k|  GOOGLE_DCHECK(overrun >= 0);
   54|  16.2k|  GOOGLE_DCHECK(overrun <= kSlopBytes);
   55|  16.2k|  auto ptr = begin + overrun;
   56|  16.2k|  auto end = begin + kSlopBytes;
   57|  48.1k|  while (ptr < end) {
  ------------------
  |  Branch (57:10): [True: 42.1k, False: 6.05k]
  ------------------
   58|  42.1k|    uint32_t tag;
   59|  42.1k|    ptr = ReadTag(ptr, &tag);
   60|  42.1k|    if (ptr == nullptr || ptr > end) return false;
  ------------------
  |  Branch (60:9): [True: 144, False: 41.9k]
  |  Branch (60:27): [True: 432, False: 41.5k]
  ------------------
   61|       |    // ending on 0 tag is allowed and is the major reason for the necessity of
   62|       |    // this function.
   63|  41.5k|    if (tag == 0) return true;
  ------------------
  |  Branch (63:9): [True: 1.02k, False: 40.5k]
  ------------------
   64|  40.5k|    switch (tag & 7) {
   65|  11.0k|      case 0: {  // Varint
  ------------------
  |  Branch (65:7): [True: 11.0k, False: 29.5k]
  ------------------
   66|  11.0k|        uint64_t val;
   67|  11.0k|        ptr = VarintParse(ptr, &val);
   68|  11.0k|        if (ptr == nullptr) return false;
  ------------------
  |  Branch (68:13): [True: 7, False: 11.0k]
  ------------------
   69|  11.0k|        break;
   70|  11.0k|      }
   71|  11.0k|      case 1: {  // fixed64
  ------------------
  |  Branch (71:7): [True: 332, False: 40.1k]
  ------------------
   72|    332|        ptr += 8;
   73|    332|        break;
   74|  11.0k|      }
   75|  25.8k|      case 2: {  // len delim
  ------------------
  |  Branch (75:7): [True: 25.8k, False: 14.7k]
  ------------------
   76|  25.8k|        int32_t size = ReadSize(&ptr);
   77|  25.8k|        if (ptr == nullptr || size > end - ptr) return false;
  ------------------
  |  Branch (77:13): [True: 36, False: 25.7k]
  |  Branch (77:31): [True: 7.81k, False: 17.9k]
  ------------------
   78|  17.9k|        ptr += size;
   79|  17.9k|        break;
   80|  25.8k|      }
   81|  1.37k|      case 3: {  // start group
  ------------------
  |  Branch (81:7): [True: 1.37k, False: 39.1k]
  ------------------
   82|  1.37k|        depth++;
   83|  1.37k|        break;
   84|  25.8k|      }
   85|    902|      case 4: {                    // end group
  ------------------
  |  Branch (85:7): [True: 902, False: 39.6k]
  ------------------
   86|    902|        if (--depth < 0) return true;  // We exit early
  ------------------
  |  Branch (86:13): [True: 432, False: 470]
  ------------------
   87|    470|        break;
   88|    902|      }
   89|    779|      case 5: {  // fixed32
  ------------------
  |  Branch (89:7): [True: 779, False: 39.7k]
  ------------------
   90|    779|        ptr += 4;
   91|    779|        break;
   92|    902|      }
   93|    315|      default:
  ------------------
  |  Branch (93:7): [True: 315, False: 40.2k]
  ------------------
   94|    315|        return false;  // Unknown wireformat
   95|  40.5k|    }
   96|  40.5k|  }
   97|  6.05k|  return false;
   98|  16.2k|}
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelperC2EPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  495|  50.6k|      : unknown_(unknown) {}
parse_context.cc:_ZZN6google8protobuf8internal18EpsCopyInputStream12SkipFallbackEPKciENK3$_0clES4_i:
  208|     12|  return AppendSize(ptr, size, [](const char* /*p*/, int /*s*/) {});
parse_context.cc:_ZZN6google8protobuf8internal18EpsCopyInputStream18ReadStringFallbackEPKciPNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEENK3$_0clES4_i:
  221|    201|                    [str](const char* p, int s) { str->append(p, s); });
_ZN6google8protobuf8internal12VarintParserIiLb0EEEPKcPvS4_PNS1_12ParseContextE:
  411|  6.03k|const char* VarintParser(void* object, const char* ptr, ParseContext* ctx) {
  412|  6.03k|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  6.03k|    T val;
  414|  6.03k|    if (sign) {
  415|  6.03k|      if (sizeof(T) == 8) {
  416|  6.03k|        val = WireFormatLite::ZigZagDecode64(varint);
  417|  6.03k|      } else {
  418|  6.03k|        val = WireFormatLite::ZigZagDecode32(varint);
  419|  6.03k|      }
  420|  6.03k|    } else {
  421|  6.03k|      val = varint;
  422|  6.03k|    }
  423|  6.03k|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  6.03k|  });
  425|  6.03k|}
_ZZN6google8protobuf8internal12VarintParserIiLb0EEEPKcPvS4_PNS1_12ParseContextEENKUlmE_clEm:
  412|  2.94M|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  2.94M|    T val;
  414|  2.94M|    if (sign) {
  ------------------
  |  Branch (414:9): [Folded - Ignored]
  ------------------
  415|      0|      if (sizeof(T) == 8) {
  ------------------
  |  Branch (415:11): [Folded - Ignored]
  ------------------
  416|      0|        val = WireFormatLite::ZigZagDecode64(varint);
  417|      0|      } else {
  418|      0|        val = WireFormatLite::ZigZagDecode32(varint);
  419|      0|      }
  420|  2.94M|    } else {
  421|  2.94M|      val = varint;
  422|  2.94M|    }
  423|  2.94M|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  2.94M|  });
_ZN6google8protobuf8internal12VarintParserIlLb0EEEPKcPvS4_PNS1_12ParseContextE:
  411|  3.00k|const char* VarintParser(void* object, const char* ptr, ParseContext* ctx) {
  412|  3.00k|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  3.00k|    T val;
  414|  3.00k|    if (sign) {
  415|  3.00k|      if (sizeof(T) == 8) {
  416|  3.00k|        val = WireFormatLite::ZigZagDecode64(varint);
  417|  3.00k|      } else {
  418|  3.00k|        val = WireFormatLite::ZigZagDecode32(varint);
  419|  3.00k|      }
  420|  3.00k|    } else {
  421|  3.00k|      val = varint;
  422|  3.00k|    }
  423|  3.00k|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  3.00k|  });
  425|  3.00k|}
_ZZN6google8protobuf8internal12VarintParserIlLb0EEEPKcPvS4_PNS1_12ParseContextEENKUlmE_clEm:
  412|  3.56M|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  3.56M|    T val;
  414|  3.56M|    if (sign) {
  ------------------
  |  Branch (414:9): [Folded - Ignored]
  ------------------
  415|      0|      if (sizeof(T) == 8) {
  ------------------
  |  Branch (415:11): [Folded - Ignored]
  ------------------
  416|      0|        val = WireFormatLite::ZigZagDecode64(varint);
  417|      0|      } else {
  418|      0|        val = WireFormatLite::ZigZagDecode32(varint);
  419|      0|      }
  420|  3.56M|    } else {
  421|  3.56M|      val = varint;
  422|  3.56M|    }
  423|  3.56M|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  3.56M|  });
_ZN6google8protobuf8internal12VarintParserIbLb0EEEPKcPvS4_PNS1_12ParseContextE:
  411|  10.8k|const char* VarintParser(void* object, const char* ptr, ParseContext* ctx) {
  412|  10.8k|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  10.8k|    T val;
  414|  10.8k|    if (sign) {
  415|  10.8k|      if (sizeof(T) == 8) {
  416|  10.8k|        val = WireFormatLite::ZigZagDecode64(varint);
  417|  10.8k|      } else {
  418|  10.8k|        val = WireFormatLite::ZigZagDecode32(varint);
  419|  10.8k|      }
  420|  10.8k|    } else {
  421|  10.8k|      val = varint;
  422|  10.8k|    }
  423|  10.8k|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  10.8k|  });
  425|  10.8k|}
_ZZN6google8protobuf8internal12VarintParserIbLb0EEEPKcPvS4_PNS1_12ParseContextEENKUlmE_clEm:
  412|  2.12M|  return ctx->ReadPackedVarint(ptr, [object](uint64_t varint) {
  413|  2.12M|    T val;
  414|  2.12M|    if (sign) {
  ------------------
  |  Branch (414:9): [Folded - Ignored]
  ------------------
  415|      0|      if (sizeof(T) == 8) {
  ------------------
  |  Branch (415:11): [Folded - Ignored]
  ------------------
  416|      0|        val = WireFormatLite::ZigZagDecode64(varint);
  417|      0|      } else {
  418|      0|        val = WireFormatLite::ZigZagDecode32(varint);
  419|      0|      }
  420|  2.12M|    } else {
  421|  2.12M|      val = varint;
  422|  2.12M|    }
  423|  2.12M|    static_cast<RepeatedField<T>*>(object)->Add(val);
  424|  2.12M|  });
_ZN6google8protobuf8internal11FixedParserIfEEPKcPvS4_PNS1_12ParseContextE:
  461|  12.7k|const char* FixedParser(void* object, const char* ptr, ParseContext* ctx) {
  462|  12.7k|  int size = ReadSize(&ptr);
  463|  12.7k|  return ctx->ReadPackedFixed(ptr, size,
  464|  12.7k|                              static_cast<RepeatedField<T>*>(object));
  465|  12.7k|}
_ZN6google8protobuf8internal11FixedParserIdEEPKcPvS4_PNS1_12ParseContextE:
  461|  2.05k|const char* FixedParser(void* object, const char* ptr, ParseContext* ctx) {
  462|  2.05k|  int size = ReadSize(&ptr);
  463|  2.05k|  return ctx->ReadPackedFixed(ptr, size,
  464|  2.05k|                              static_cast<RepeatedField<T>*>(object));
  465|  2.05k|}
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper9AddVarintEjm:
  497|  42.5k|  void AddVarint(uint32_t num, uint64_t value) {
  498|  42.5k|    if (unknown_ == nullptr) return;
  ------------------
  |  Branch (498:9): [True: 42.5k, False: 0]
  ------------------
  499|      0|    WriteVarint(num * 8, unknown_);
  500|      0|    WriteVarint(value, unknown_);
  501|      0|  }
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper10AddFixed64Ejm:
  502|  1.13k|  void AddFixed64(uint32_t num, uint64_t value) {
  503|  1.13k|    if (unknown_ == nullptr) return;
  ------------------
  |  Branch (503:9): [True: 1.13k, False: 0]
  ------------------
  504|      0|    WriteVarint(num * 8 + 1, unknown_);
  505|      0|    char buffer[8];
  506|      0|    io::CodedOutputStream::WriteLittleEndian64ToArray(
  507|      0|        value, reinterpret_cast<uint8_t*>(buffer));
  508|      0|    unknown_->append(buffer, 8);
  509|      0|  }
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper20ParseLengthDelimitedEjPKcPNS1_12ParseContextE:
  511|  7.22k|                                   ParseContext* ctx) {
  512|  7.22k|    int size = ReadSize(&ptr);
  513|  7.22k|    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
  514|  7.22k|    if (unknown_ == nullptr) return ctx->Skip(ptr, size);
  ------------------
  |  Branch (514:9): [True: 7.22k, False: 0]
  ------------------
  515|      0|    WriteVarint(num * 8 + 2, unknown_);
  516|      0|    WriteVarint(size, unknown_);
  517|      0|    return ctx->AppendString(ptr, size, unknown_);
  518|  7.22k|  }
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper10ParseGroupEjPKcPNS1_12ParseContextE:
  519|  2.69k|  const char* ParseGroup(uint32_t num, const char* ptr, ParseContext* ctx) {
  520|  2.69k|    if (unknown_) WriteVarint(num * 8 + 3, unknown_);
  ------------------
  |  Branch (520:9): [True: 0, False: 2.69k]
  ------------------
  521|  2.69k|    ptr = ctx->ParseGroup(this, ptr, num * 8 + 3);
  522|  2.69k|    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
  523|    406|    if (unknown_) WriteVarint(num * 8 + 4, unknown_);
  ------------------
  |  Branch (523:9): [True: 0, False: 406]
  ------------------
  524|    406|    return ptr;
  525|  2.69k|  }
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper14_InternalParseEPKcPNS1_12ParseContextE:
  535|  2.68k|  const char* _InternalParse(const char* ptr, ParseContext* ctx) {
  536|  2.68k|    return WireFormatParser(*this, ptr, ctx);
  537|  2.68k|  }
_ZN6google8protobuf8internal28UnknownFieldLiteParserHelper10AddFixed32Ejj:
  526|  1.31k|  void AddFixed32(uint32_t num, uint32_t value) {
  527|  1.31k|    if (unknown_ == nullptr) return;
  ------------------
  |  Branch (527:9): [True: 1.31k, False: 0]
  ------------------
  528|      0|    WriteVarint(num * 8 + 5, unknown_);
  529|      0|    char buffer[4];
  530|      0|    io::CodedOutputStream::WriteLittleEndian32ToArray(
  531|      0|        value, reinterpret_cast<uint8_t*>(buffer));
  532|      0|    unknown_->append(buffer, 4);
  533|      0|  }

_ZN6google8protobuf8internal20RepeatedPtrFieldBase14InternalExtendEi:
   50|   181k|void** RepeatedPtrFieldBase::InternalExtend(int extend_amount) {
   51|   181k|  int new_size = current_size_ + extend_amount;
   52|   181k|  if (total_size_ >= new_size) {
  ------------------
  |  Branch (52:7): [True: 0, False: 181k]
  ------------------
   53|       |    // N.B.: rep_ is non-nullptr because extend_amount is always > 0, hence
   54|       |    // total_size must be non-zero since it is lower-bounded by new_size.
   55|      0|    return &rep_->elements[current_size_];
   56|      0|  }
   57|   181k|  Rep* old_rep = rep_;
   58|   181k|  Arena* arena = GetArena();
   59|   181k|  new_size = std::max(internal::kRepeatedFieldLowerClampLimit,
   60|   181k|                      std::max(total_size_ * 2, new_size));
   61|   181k|  GOOGLE_CHECK_LE(static_cast<int64_t>(new_size),
   62|      0|           static_cast<int64_t>(
   63|      0|               (std::numeric_limits<size_t>::max() - kRepHeaderSize) /
   64|      0|               sizeof(old_rep->elements[0])))
   65|      0|      << "Requested size is too large to fit into size_t.";
   66|   181k|  size_t bytes = kRepHeaderSize + sizeof(old_rep->elements[0]) * new_size;
   67|   181k|  if (arena == nullptr) {
  ------------------
  |  Branch (67:7): [True: 181k, False: 0]
  ------------------
   68|   181k|    rep_ = reinterpret_cast<Rep*>(::operator new(bytes));
   69|   181k|  } else {
   70|      0|    rep_ = reinterpret_cast<Rep*>(Arena::CreateArray<char>(arena, bytes));
   71|      0|  }
   72|       |#if defined(__GXX_DELETE_WITH_SIZE__) || defined(__cpp_sized_deallocation)
   73|       |  const int old_total_size = total_size_;
   74|       |#endif
   75|   181k|  total_size_ = new_size;
   76|   181k|  if (old_rep && old_rep->allocated_size > 0) {
  ------------------
  |  Branch (76:7): [True: 13.8k, False: 167k]
  |  Branch (76:18): [True: 13.8k, False: 0]
  ------------------
   77|  13.8k|    memcpy(rep_->elements, old_rep->elements,
   78|  13.8k|           old_rep->allocated_size * sizeof(rep_->elements[0]));
   79|  13.8k|    rep_->allocated_size = old_rep->allocated_size;
   80|   167k|  } else {
   81|   167k|    rep_->allocated_size = 0;
   82|   167k|  }
   83|   181k|  if (arena == nullptr) {
  ------------------
  |  Branch (83:7): [True: 181k, False: 0]
  ------------------
   84|       |#if defined(__GXX_DELETE_WITH_SIZE__) || defined(__cpp_sized_deallocation)
   85|       |    const size_t old_size =
   86|       |        old_total_size * sizeof(rep_->elements[0]) + kRepHeaderSize;
   87|       |    ::operator delete(static_cast<void*>(old_rep), old_size);
   88|       |#else
   89|   181k|    ::operator delete(static_cast<void*>(old_rep));
   90|   181k|#endif
   91|   181k|  }
   92|   181k|  return &rep_->elements[current_size_];
   93|   181k|}
_ZN6google8protobuf8internal20RepeatedPtrFieldBase13DestroyProtosEv:
  101|  47.1k|void RepeatedPtrFieldBase::DestroyProtos() {
  102|  47.1k|  GOOGLE_DCHECK(rep_);
  103|  47.1k|  GOOGLE_DCHECK(arena_ == nullptr);
  104|  47.1k|  int n = rep_->allocated_size;
  105|  47.1k|  void* const* elements = rep_->elements;
  106|   974k|  for (int i = 0; i < n; i++) {
  ------------------
  |  Branch (106:19): [True: 927k, False: 47.1k]
  ------------------
  107|   927k|    delete static_cast<MessageLite*>(elements[i]);
  108|   927k|  }
  109|       |#if defined(__GXX_DELETE_WITH_SIZE__) || defined(__cpp_sized_deallocation)
  110|       |  const size_t size = total_size_ * sizeof(elements[0]) + kRepHeaderSize;
  111|       |  ::operator delete(static_cast<void*>(rep_), size);
  112|       |  rep_ = nullptr;
  113|       |#else
  114|  47.1k|  ::operator delete(static_cast<void*>(rep_));
  115|  47.1k|  rep_ = nullptr;
  116|  47.1k|#endif
  117|  47.1k|}
_ZN6google8protobuf8internal20RepeatedPtrFieldBase18AddOutOfLineHelperEPv:
  119|  1.17M|void* RepeatedPtrFieldBase::AddOutOfLineHelper(void* obj) {
  120|  1.17M|  if (!rep_ || rep_->allocated_size == total_size_) {
  ------------------
  |  Branch (120:7): [True: 166k, False: 1.00M]
  |  Branch (120:16): [True: 13.8k, False: 995k]
  ------------------
  121|   180k|    InternalExtend(1);  // Equivalent to "Reserve(total_size_ + 1)"
  122|   180k|  }
  123|  1.17M|  ++rep_->allocated_size;
  124|  1.17M|  rep_->elements[current_size_++] = obj;
  125|  1.17M|  return obj;
  126|  1.17M|}
_ZN6google8protobuf8internal20RepeatedPtrFieldBase8CloseGapEii:
  128|  59.1k|void RepeatedPtrFieldBase::CloseGap(int start, int num) {
  129|  59.1k|  if (rep_ == nullptr) return;
  ------------------
  |  Branch (129:7): [True: 0, False: 59.1k]
  ------------------
  130|       |  // Close up a gap of "num" elements starting at offset "start".
  131|  1.23M|  for (int i = start + num; i < rep_->allocated_size; ++i)
  ------------------
  |  Branch (131:29): [True: 1.17M, False: 59.1k]
  ------------------
  132|  1.17M|    rep_->elements[i - num] = rep_->elements[i];
  133|  59.1k|  current_size_ -= num;
  134|  59.1k|  rep_->allocated_size -= num;
  135|  59.1k|}

_ZN6google8protobuf8internal17DefaultLogHandlerENS0_8LogLevelEPKciRKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE:
  161|    266|                       const std::string& message) {
  162|    266|  if (level < GOOGLE_PROTOBUF_MIN_LOG_LEVEL) {
  ------------------
  |  |  119|    266|#define GOOGLE_PROTOBUF_MIN_LOG_LEVEL LOGLEVEL_INFO
  ------------------
  |  Branch (162:7): [True: 0, False: 266]
  ------------------
  163|      0|    return;
  164|      0|  }
  165|    266|  static const char* level_names[] = { "INFO", "WARNING", "ERROR", "FATAL" };
  166|       |
  167|       |  // We use fprintf() instead of cerr because we want this to work at static
  168|       |  // initialization time.
  169|    266|  fprintf(stderr, "[libprotobuf %s %s:%d] %s\n",
  170|    266|          level_names[level], filename, line, message.c_str());
  171|    266|  fflush(stderr);  // Needed on MSVC.
  172|    266|}
_ZN6google8protobuf8internal10LogMessagelsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  183|    532|LogMessage& LogMessage::operator<<(const std::string& value) {
  184|    532|  message_ += value;
  185|    532|  return *this;
  186|    532|}
_ZN6google8protobuf8internal10LogMessagelsEPKc:
  188|  1.86k|LogMessage& LogMessage::operator<<(const char* value) {
  189|  1.86k|  message_ += value;
  190|  1.86k|  return *this;
  191|  1.86k|}
_ZN6google8protobuf8internal10LogMessageC2ENS0_8LogLevelEPKci:
  236|    266|  : level_(level), filename_(filename), line_(line) {}
_ZN6google8protobuf8internal10LogMessageD2Ev:
  237|    266|LogMessage::~LogMessage() {}
_ZN6google8protobuf8internal10LogMessage6FinishEv:
  239|    266|void LogMessage::Finish() {
  240|    266|  bool suppress = false;
  241|       |
  242|    266|  if (level_ != LOGLEVEL_FATAL) {
  ------------------
  |  Branch (242:7): [True: 266, False: 0]
  ------------------
  243|    266|    suppress = log_silencer_count_ > 0;
  244|    266|  }
  245|       |
  246|    266|  if (!suppress) {
  ------------------
  |  Branch (246:7): [True: 266, False: 0]
  ------------------
  247|    266|    log_handler_(level_, filename_, line_, message_);
  248|    266|  }
  249|       |
  250|    266|  if (level_ == LOGLEVEL_FATAL) {
  ------------------
  |  Branch (250:7): [True: 0, False: 266]
  ------------------
  251|      0|#if PROTOBUF_USE_EXCEPTIONS
  252|      0|    throw FatalException(filename_, line_, message_);
  253|       |#else
  254|       |    abort();
  255|       |#endif
  256|      0|  }
  257|    266|}
_ZN6google8protobuf8internal11LogFinisheraSERNS1_10LogMessageE:
  259|    266|void LogFinisher::operator=(LogMessage& other) {
  260|    266|  other.Finish();
  261|    266|}

_ZNK6google8protobuf20stringpiece_internal11StringPiece6substrEmm:
  246|  3.71k|StringPiece StringPiece::substr(size_type pos, size_type n) const {
  247|  3.71k|  if (pos > length()) pos = length();
  ------------------
  |  Branch (247:7): [True: 0, False: 3.71k]
  ------------------
  248|  3.71k|  if (n > length_ - pos) n = length() - pos;
  ------------------
  |  Branch (248:7): [True: 448, False: 3.26k]
  ------------------
  249|  3.71k|  return StringPiece(ptr_ + pos, n);
  250|  3.71k|}

_ZN6google8protobuf13StringAppendVEPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEPKcP13__va_list_tag:
   54|    266|void StringAppendV(std::string* dst, const char* format, va_list ap) {
   55|       |  // First try with a small fixed size buffer
   56|    266|  static const int kSpaceLength = 1024;
   57|    266|  char space[kSpaceLength];
   58|       |
   59|       |  // It's possible for methods that use a va_list to invalidate
   60|       |  // the data in it upon use.  The fix is to make a copy
   61|       |  // of the structure before using it and use that copy instead.
   62|    266|  va_list backup_ap;
   63|    266|  va_copy(backup_ap, ap);
   64|    266|  int result = vsnprintf(space, kSpaceLength, format, backup_ap);
   65|    266|  va_end(backup_ap);
   66|       |
   67|    266|  if (result < kSpaceLength) {
  ------------------
  |  Branch (67:7): [True: 266, False: 0]
  ------------------
   68|    266|    if (result >= 0) {
  ------------------
  |  Branch (68:9): [True: 266, False: 0]
  ------------------
   69|       |      // Normal case -- everything fit.
   70|    266|      dst->append(space, result);
   71|    266|      return;
   72|    266|    }
   73|       |
   74|       |#ifdef _MSC_VER
   75|       |    {
   76|       |      // Error or MSVC running out of space.  MSVC 8.0 and higher
   77|       |      // can be asked about space needed with the special idiom below:
   78|       |      va_copy(backup_ap, ap);
   79|       |      result = vsnprintf(nullptr, 0, format, backup_ap);
   80|       |      va_end(backup_ap);
   81|       |    }
   82|       |#endif
   83|       |
   84|      0|    if (result < 0) {
  ------------------
  |  Branch (84:9): [True: 0, False: 0]
  ------------------
   85|       |      // Just an error.
   86|      0|      return;
   87|      0|    }
   88|      0|  }
   89|       |
   90|       |  // Increase the buffer size to the size requested by vsnprintf,
   91|       |  // plus one for the closing \0.
   92|      0|  int length = result+1;
   93|      0|  char* buf = new char[length];
   94|       |
   95|       |  // Restore the va_list before we use it again
   96|      0|  va_copy(backup_ap, ap);
   97|      0|  result = vsnprintf(buf, length, format, backup_ap);
   98|      0|  va_end(backup_ap);
   99|       |
  100|      0|  if (result >= 0 && result < length) {
  ------------------
  |  Branch (100:7): [True: 0, False: 0]
  |  Branch (100:22): [True: 0, False: 0]
  ------------------
  101|       |    // It fit
  102|      0|    dst->append(buf, result);
  103|      0|  }
  104|      0|  delete[] buf;
  105|      0|}
_ZN6google8protobuf12StringPrintfEPKcz:
  107|    266|std::string StringPrintf(const char* format, ...) {
  108|    266|  va_list ap;
  109|    266|  va_start(ap, format);
  110|    266|  std::string result;
  111|    266|  StringAppendV(&result, format, ap);
  112|    266|  va_end(ap);
  113|    266|  return result;
  114|    266|}

_ZN6google8protobuf8internal15UTF8GenericScanEPKNS1_19UTF8StateMachineObjEPKciPi:
  390|   239k|                    int* bytes_consumed) {
  391|   239k|  *bytes_consumed = 0;
  392|   239k|  if (str_length == 0) return kExitOK;
  ------------------
  |  Branch (392:7): [True: 230k, False: 8.67k]
  ------------------
  393|       |
  394|  8.67k|  int eshift = st->entry_shift;
  395|  8.67k|  const uint8* isrc = reinterpret_cast<const uint8*>(str);
  396|  8.67k|  const uint8* src = isrc;
  397|  8.67k|  const uint8* srclimit = isrc + str_length;
  398|  8.67k|  const uint8* srclimit8 = str_length < 7 ? isrc : srclimit - 7;
  ------------------
  |  Branch (398:28): [True: 4.58k, False: 4.08k]
  ------------------
  399|  8.67k|  const uint8* Tbl_0 = &st->state_table[st->state0];
  400|       |
  401|  8.67k| DoAgain:
  402|       |  // Do state-table scan
  403|  8.67k|  int e = 0;
  404|  8.67k|  uint8 c;
  405|  8.67k|  const uint8* Tbl2 = &st->fast_state[0];
  406|  8.67k|  const uint32 losub = st->losub;
  407|  8.67k|  const uint32 hiadd = st->hiadd;
  408|       |  // Check initial few bytes one at a time until 8-byte aligned
  409|       |  //----------------------------
  410|  8.67k|  while ((((uintptr_t)src & 0x07) != 0) &&
  ------------------
  |  Branch (410:10): [True: 7.61k, False: 1.06k]
  ------------------
  411|  8.67k|         (src < srclimit) &&
  ------------------
  |  Branch (411:10): [True: 7.61k, False: 0]
  ------------------
  412|  8.67k|         Tbl2[src[0]] == 0) {
  ------------------
  |  Branch (412:10): [True: 0, False: 7.61k]
  ------------------
  413|      0|    src++;
  414|      0|  }
  415|  8.67k|  if (((uintptr_t)src & 0x07) == 0) {
  ------------------
  |  Branch (415:7): [True: 1.06k, False: 7.61k]
  ------------------
  416|       |    // Do fast for groups of 8 identity bytes.
  417|       |    // This covers a lot of 7-bit ASCII ~8x faster then the 1-byte loop,
  418|       |    // including slowing slightly on cr/lf/ht
  419|       |    //----------------------------
  420|  1.06k|    while (src < srclimit8) {
  ------------------
  |  Branch (420:12): [True: 610, False: 450]
  ------------------
  421|    610|      uint32 s0123 = (reinterpret_cast<const uint32 *>(src))[0];
  422|    610|      uint32 s4567 = (reinterpret_cast<const uint32 *>(src))[1];
  423|    610|      src += 8;
  424|       |      // This is a fast range check for all bytes in [lowsub..0x80-hiadd)
  425|    610|      uint32 temp = (s0123 - losub) | (s0123 + hiadd) |
  426|    610|                    (s4567 - losub) | (s4567 + hiadd);
  427|    610|      if ((temp & 0x80808080) != 0) {
  ------------------
  |  Branch (427:11): [True: 610, False: 0]
  ------------------
  428|       |        // We typically end up here on cr/lf/ht; src was incremented
  429|    610|        int e0123 = (Tbl2[src[-8]] | Tbl2[src[-7]]) |
  430|    610|                    (Tbl2[src[-6]] | Tbl2[src[-5]]);
  431|    610|        if (e0123 != 0) {
  ------------------
  |  Branch (431:13): [True: 610, False: 0]
  ------------------
  432|    610|          src -= 8;
  433|    610|          break;
  434|    610|        }    // Exit on Non-interchange
  435|      0|        e0123 = (Tbl2[src[-4]] | Tbl2[src[-3]]) |
  436|      0|                (Tbl2[src[-2]] | Tbl2[src[-1]]);
  437|      0|        if (e0123 != 0) {
  ------------------
  |  Branch (437:13): [True: 0, False: 0]
  ------------------
  438|      0|          src -= 4;
  439|      0|          break;
  440|      0|        }    // Exit on Non-interchange
  441|       |        // Else OK, go around again
  442|      0|      }
  443|    610|    }
  444|  1.06k|  }
  445|       |  //----------------------------
  446|       |
  447|       |  // Byte-at-a-time scan
  448|       |  //----------------------------
  449|  8.67k|  const uint8* Tbl = Tbl_0;
  450|  1.66M|  while (src < srclimit) {
  ------------------
  |  Branch (450:10): [True: 1.65M, False: 8.42k]
  ------------------
  451|  1.65M|    c = *src;
  452|  1.65M|    e = Tbl[c];
  453|  1.65M|    src++;
  454|  1.65M|    if (e >= kExitIllegalStructure) {break;}
  ------------------
  |  Branch (454:9): [True: 253, False: 1.65M]
  ------------------
  455|  1.65M|    Tbl = &Tbl_0[e << eshift];
  456|  1.65M|  }
  457|       |  //----------------------------
  458|       |
  459|       |  // Exit possibilities:
  460|       |  //  Some exit code, !state0, back up over last char
  461|       |  //  Some exit code, state0, back up one byte exactly
  462|       |  //  source consumed, !state0, back up over partial char
  463|       |  //  source consumed, state0, exit OK
  464|       |  // For illegal byte in state0, avoid backup up over PREVIOUS char
  465|       |  // For truncated last char, back up to beginning of it
  466|       |
  467|  8.67k|  if (e >= kExitIllegalStructure) {
  ------------------
  |  Branch (467:7): [True: 253, False: 8.42k]
  ------------------
  468|       |    // Back up over exactly one byte of rejected/illegal UTF-8 character
  469|    253|    src--;
  470|       |    // Back up more if needed
  471|    253|    if (!InStateZero(st, Tbl)) {
  ------------------
  |  Branch (471:9): [True: 84, False: 169]
  ------------------
  472|    112|      do {
  473|    112|        src--;
  474|    112|      } while ((src > isrc) && ((src[0] & 0xc0) == 0x80));
  ------------------
  |  Branch (474:16): [True: 30, False: 82]
  |  Branch (474:32): [True: 28, False: 2]
  ------------------
  475|     84|    }
  476|  8.42k|  } else if (!InStateZero(st, Tbl)) {
  ------------------
  |  Branch (476:14): [True: 13, False: 8.40k]
  ------------------
  477|       |    // Back up over truncated UTF-8 character
  478|     13|    e = kExitIllegalStructure;
  479|     16|    do {
  480|     16|      src--;
  481|     16|    } while ((src > isrc) && ((src[0] & 0xc0) == 0x80));
  ------------------
  |  Branch (481:14): [True: 5, False: 11]
  |  Branch (481:30): [True: 3, False: 2]
  ------------------
  482|  8.40k|  } else {
  483|       |    // Normal termination, source fully consumed
  484|  8.40k|    e = kExitOK;
  485|  8.40k|  }
  486|       |
  487|  8.67k|  if (e == kExitDoAgain) {
  ------------------
  |  Branch (487:7): [True: 0, False: 8.67k]
  ------------------
  488|       |    // Loop back up to the fast scan
  489|      0|    goto DoAgain;
  490|      0|  }
  491|       |
  492|  8.67k|  *bytes_consumed = src - isrc;
  493|  8.67k|  return e;
  494|  8.67k|}
_ZN6google8protobuf8internal24UTF8GenericScanFastAsciiEPKNS1_19UTF8StateMachineObjEPKciPi:
  499|   460k|                    int* bytes_consumed) {
  500|   460k|  *bytes_consumed = 0;
  501|   460k|  if (str_length == 0) return kExitOK;
  ------------------
  |  Branch (501:7): [True: 221k, False: 239k]
  ------------------
  502|       |
  503|   239k|  const uint8* isrc =  reinterpret_cast<const uint8*>(str);
  504|   239k|  const uint8* src = isrc;
  505|   239k|  const uint8* srclimit = isrc + str_length;
  506|   239k|  const uint8* srclimit8 = str_length < 7 ? isrc : srclimit - 7;
  ------------------
  |  Branch (506:28): [True: 185k, False: 54.4k]
  ------------------
  507|   239k|  int n;
  508|   239k|  int rest_consumed;
  509|   239k|  int exit_reason;
  510|   239k|  do {
  511|       |    // Check initial few bytes one at a time until 8-byte aligned
  512|  1.04M|    while ((((uintptr_t)src & 0x07) != 0) &&
  ------------------
  |  Branch (512:12): [True: 986k, False: 55.9k]
  ------------------
  513|  1.04M|           (src < srclimit) && (src[0] < 0x80)) {
  ------------------
  |  Branch (513:12): [True: 808k, False: 178k]
  |  Branch (513:32): [True: 802k, False: 5.47k]
  ------------------
  514|   802k|      src++;
  515|   802k|    }
  516|   239k|    if (((uintptr_t)src & 0x07) == 0) {
  ------------------
  |  Branch (516:9): [True: 55.9k, False: 183k]
  ------------------
  517|   214k|      while ((src < srclimit8) &&
  ------------------
  |  Branch (517:14): [True: 160k, False: 53.2k]
  ------------------
  518|   214k|             (((reinterpret_cast<const uint32*>(src)[0] |
  ------------------
  |  Branch (518:14): [True: 158k, False: 2.73k]
  ------------------
  519|   160k|                reinterpret_cast<const uint32*>(src)[1]) & 0x80808080) == 0)) {
  520|   158k|        src += 8;
  521|   158k|      }
  522|  55.9k|    }
  523|   356k|    while ((src < srclimit) && (src[0] < 0x80)) {
  ------------------
  |  Branch (523:12): [True: 125k, False: 230k]
  |  Branch (523:32): [True: 117k, False: 8.67k]
  ------------------
  524|   117k|      src++;
  525|   117k|    }
  526|       |    // Run state table on the rest
  527|   239k|    n = src - isrc;
  528|   239k|    exit_reason = UTF8GenericScan(st, str + n, str_length - n, &rest_consumed);
  529|   239k|    src += rest_consumed;
  530|   239k|  } while ( exit_reason == kExitDoAgain );
  ------------------
  |  Branch (530:13): [True: 0, False: 239k]
  ------------------
  531|       |
  532|   239k|  *bytes_consumed = src - isrc;
  533|   239k|  return exit_reason;
  534|   460k|}
_ZN6google8protobuf8internal23IsStructurallyValidUTF8EPKci:
  555|   460k|bool IsStructurallyValidUTF8(const char* buf, int len) {
  556|   460k|  if (!module_initialized_) return true;
  ------------------
  |  Branch (556:7): [True: 0, False: 460k]
  ------------------
  557|       |
  558|   460k|  int bytes_consumed = 0;
  559|   460k|  UTF8GenericScanFastAscii(&utf8acceptnonsurrogates_obj,
  560|   460k|                           buf, len, &bytes_consumed);
  561|   460k|  return (bytes_consumed == len);
  562|   460k|}
structurally_valid.cc:_ZN6google8protobuf8internalL11InStateZeroEPKNS1_19UTF8StateMachineObjEPKh:
  379|  8.67k|static inline bool InStateZero(const UTF8ScanObj* st, const uint8* Tbl) {
  380|  8.67k|  const uint8* Tbl0 = &st->state_table[st->state0];
  381|  8.67k|  return (static_cast<uint32>(Tbl - Tbl0) < st->state0_size);
  382|  8.67k|}
structurally_valid.cc:_ZN6google8protobuf8internal12_GLOBAL__N_112InitDetectorC2Ev:
  547|      2|  InitDetector() {
  548|      2|    module_initialized_ = true;
  549|      2|  }

_ZN6google8protobuf6StrCatERKNS0_7strings8AlphaNumES4_S4_:
 1481|    640|std::string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c) {
 1482|    640|  std::string result;
 1483|    640|  result.resize(a.size() + b.size() + c.size());
 1484|    640|  char *const begin = &*result.begin();
 1485|    640|  char *out = Append2(begin, a, b);
 1486|    640|  out = Append1(out, c);
 1487|    640|  GOOGLE_DCHECK_EQ(out, begin + result.size());
 1488|    640|  return result;
 1489|    640|}
strutil.cc:_ZN6google8protobufL7Append2EPcRKNS0_7strings8AlphaNumES5_:
 1439|    640|static char *Append2(char *out, const AlphaNum &x1, const AlphaNum &x2) {
 1440|    640|  if (x1.size() > 0) {
  ------------------
  |  Branch (1440:7): [True: 640, False: 0]
  ------------------
 1441|    640|    memcpy(out, x1.data(), x1.size());
 1442|    640|    out += x1.size();
 1443|    640|  }
 1444|    640|  if (x2.size() > 0) {
  ------------------
  |  Branch (1444:7): [True: 640, False: 0]
  ------------------
 1445|    640|    memcpy(out, x2.data(), x2.size());
 1446|    640|    out += x2.size();
 1447|    640|  }
 1448|    640|  return out;
 1449|    640|}
strutil.cc:_ZN6google8protobufL7Append1EPcRKNS0_7strings8AlphaNumE:
 1431|    640|static char *Append1(char *out, const AlphaNum &x) {
 1432|    640|  if (x.size() > 0) {
  ------------------
  |  Branch (1432:7): [True: 640, False: 0]
  ------------------
 1433|    640|    memcpy(out, x.data(), x.size());
 1434|    640|    out += x.size();
 1435|    640|  }
 1436|    640|  return out;
 1437|    640|}

_ZN6google8protobuf15UnknownFieldSet13ClearFallbackEv:
   60|   134k|void UnknownFieldSet::ClearFallback() {
   61|   134k|  GOOGLE_DCHECK(!fields_.empty());
   62|   134k|  int n = fields_.size();
   63|  7.33M|  do {
   64|  7.33M|    (fields_)[--n].Delete();
   65|  7.33M|  } while (n > 0);
  ------------------
  |  Branch (65:12): [True: 7.20M, False: 134k]
  ------------------
   66|   134k|  fields_.clear();
   67|   134k|}
_ZN6google8protobuf15UnknownFieldSet17InternalMergeFromERKS1_:
   69|    547|void UnknownFieldSet::InternalMergeFrom(const UnknownFieldSet& other) {
   70|    547|  int other_field_count = other.field_count();
   71|    547|  if (other_field_count > 0) {
  ------------------
  |  Branch (71:7): [True: 111, False: 436]
  ------------------
   72|    111|    fields_.reserve(fields_.size() + other_field_count);
   73|  1.52k|    for (int i = 0; i < other_field_count; i++) {
  ------------------
  |  Branch (73:21): [True: 1.41k, False: 111]
  ------------------
   74|  1.41k|      fields_.push_back((other.fields_)[i]);
   75|  1.41k|      fields_.back().DeepCopy((other.fields_)[i]);
   76|  1.41k|    }
   77|    111|  }
   78|    547|}
_ZN6google8protobuf15UnknownFieldSet9MergeFromERKS1_:
   80|  9.63k|void UnknownFieldSet::MergeFrom(const UnknownFieldSet& other) {
   81|  9.63k|  int other_field_count = other.field_count();
   82|  9.63k|  if (other_field_count > 0) {
  ------------------
  |  Branch (82:7): [True: 9.63k, False: 0]
  ------------------
   83|  9.63k|    fields_.reserve(fields_.size() + other_field_count);
   84|  27.1k|    for (int i = 0; i < other_field_count; i++) {
  ------------------
  |  Branch (84:21): [True: 17.5k, False: 9.63k]
  ------------------
   85|  17.5k|      fields_.push_back((other.fields_)[i]);
   86|  17.5k|      fields_.back().DeepCopy((other.fields_)[i]);
   87|  17.5k|    }
   88|  9.63k|  }
   89|  9.63k|}
_ZN6google8protobuf15UnknownFieldSet9AddVarintEim:
  135|  7.03M|void UnknownFieldSet::AddVarint(int number, uint64_t value) {
  136|  7.03M|  UnknownField field;
  137|  7.03M|  field.number_ = number;
  138|  7.03M|  field.SetType(UnknownField::TYPE_VARINT);
  139|  7.03M|  field.data_.varint_ = value;
  140|  7.03M|  fields_.push_back(field);
  141|  7.03M|}
_ZN6google8protobuf15UnknownFieldSet10AddFixed32Eij:
  143|   132k|void UnknownFieldSet::AddFixed32(int number, uint32_t value) {
  144|   132k|  UnknownField field;
  145|   132k|  field.number_ = number;
  146|   132k|  field.SetType(UnknownField::TYPE_FIXED32);
  147|   132k|  field.data_.fixed32_ = value;
  148|   132k|  fields_.push_back(field);
  149|   132k|}
_ZN6google8protobuf15UnknownFieldSet10AddFixed64Eim:
  151|  53.0k|void UnknownFieldSet::AddFixed64(int number, uint64_t value) {
  152|  53.0k|  UnknownField field;
  153|  53.0k|  field.number_ = number;
  154|  53.0k|  field.SetType(UnknownField::TYPE_FIXED64);
  155|  53.0k|  field.data_.fixed64_ = value;
  156|  53.0k|  fields_.push_back(field);
  157|  53.0k|}
_ZN6google8protobuf15UnknownFieldSet18AddLengthDelimitedEi:
  159|  96.1k|std::string* UnknownFieldSet::AddLengthDelimited(int number) {
  160|  96.1k|  UnknownField field;
  161|  96.1k|  field.number_ = number;
  162|  96.1k|  field.SetType(UnknownField::TYPE_LENGTH_DELIMITED);
  163|  96.1k|  field.data_.length_delimited_.string_value = new std::string;
  164|  96.1k|  fields_.push_back(field);
  165|  96.1k|  return field.data_.length_delimited_.string_value;
  166|  96.1k|}
_ZN6google8protobuf15UnknownFieldSet8AddGroupEi:
  169|  3.73k|UnknownFieldSet* UnknownFieldSet::AddGroup(int number) {
  170|  3.73k|  UnknownField field;
  171|  3.73k|  field.number_ = number;
  172|  3.73k|  field.SetType(UnknownField::TYPE_GROUP);
  173|  3.73k|  field.data_.group_ = new UnknownFieldSet;
  174|  3.73k|  fields_.push_back(field);
  175|  3.73k|  return field.data_.group_;
  176|  3.73k|}
_ZN6google8protobuf12UnknownField6DeleteEv:
  241|  7.33M|void UnknownField::Delete() {
  242|  7.33M|  switch (type()) {
  243|   100k|    case UnknownField::TYPE_LENGTH_DELIMITED:
  ------------------
  |  Branch (243:5): [True: 100k, False: 7.23M]
  ------------------
  244|   100k|      delete data_.length_delimited_.string_value;
  245|   100k|      break;
  246|  4.28k|    case UnknownField::TYPE_GROUP:
  ------------------
  |  Branch (246:5): [True: 4.28k, False: 7.33M]
  ------------------
  247|  4.28k|      delete data_.group_;
  248|  4.28k|      break;
  249|  7.23M|    default:
  ------------------
  |  Branch (249:5): [True: 7.23M, False: 104k]
  ------------------
  250|  7.23M|      break;
  251|  7.33M|  }
  252|  7.33M|}
_ZN6google8protobuf12UnknownField8DeepCopyERKS1_:
  254|  18.9k|void UnknownField::DeepCopy(const UnknownField& other) {
  255|  18.9k|  (void)other;  // Parameter is used by Google-internal code.
  256|  18.9k|  switch (type()) {
  257|  3.86k|    case UnknownField::TYPE_LENGTH_DELIMITED:
  ------------------
  |  Branch (257:5): [True: 3.86k, False: 15.0k]
  ------------------
  258|  3.86k|      data_.length_delimited_.string_value =
  259|  3.86k|          new std::string(*data_.length_delimited_.string_value);
  260|  3.86k|      break;
  261|    547|    case UnknownField::TYPE_GROUP: {
  ------------------
  |  Branch (261:5): [True: 547, False: 18.4k]
  ------------------
  262|    547|      UnknownFieldSet* group = new UnknownFieldSet();
  263|    547|      group->InternalMergeFrom(*data_.group_);
  264|    547|      data_.group_ = group;
  265|    547|      break;
  266|      0|    }
  267|  14.5k|    default:
  ------------------
  |  Branch (267:5): [True: 14.5k, False: 4.40k]
  ------------------
  268|  14.5k|      break;
  269|  18.9k|  }
  270|  18.9k|}
_ZN6google8protobuf8internal17UnknownFieldParseEmPNS0_15UnknownFieldSetEPKcPNS1_12ParseContextE:
  325|  7.28M|                              const char* ptr, ParseContext* ctx) {
  326|  7.28M|  UnknownFieldParserHelper field_parser(unknown);
  327|  7.28M|  return FieldParser(tag, field_parser, ptr, ctx);
  328|  7.28M|}
_ZN6google8protobuf8internal24UnknownFieldParserHelperC2EPNS0_15UnknownFieldSetE:
  287|  7.29M|      : unknown_(unknown) {}
_ZN6google8protobuf8internal24UnknownFieldParserHelper9AddVarintEjm:
  289|  7.03M|  void AddVarint(uint32_t num, uint64_t value) {
  290|  7.03M|    unknown_->AddVarint(num, value);
  291|  7.03M|  }
_ZN6google8protobuf8internal24UnknownFieldParserHelper10AddFixed64Ejm:
  292|  53.0k|  void AddFixed64(uint32_t num, uint64_t value) {
  293|  53.0k|    unknown_->AddFixed64(num, value);
  294|  53.0k|  }
_ZN6google8protobuf8internal24UnknownFieldParserHelper20ParseLengthDelimitedEjPKcPNS1_12ParseContextE:
  296|  96.1k|                                   ParseContext* ctx) {
  297|  96.1k|    std::string* s = unknown_->AddLengthDelimited(num);
  298|  96.1k|    int size = ReadSize(&ptr);
  299|  96.1k|    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
  300|  96.1k|    return ctx->ReadString(ptr, size, s);
  301|  96.1k|  }
_ZN6google8protobuf8internal24UnknownFieldParserHelper10ParseGroupEjPKcPNS1_12ParseContextE:
  302|  3.73k|  const char* ParseGroup(uint32_t num, const char* ptr, ParseContext* ctx) {
  303|  3.73k|    UnknownFieldParserHelper child(unknown_->AddGroup(num));
  304|  3.73k|    return ctx->ParseGroup(&child, ptr, num * 8 + 3);
  305|  3.73k|  }
_ZN6google8protobuf8internal24UnknownFieldParserHelper14_InternalParseEPKcPNS1_12ParseContextE:
  310|  3.73k|  const char* _InternalParse(const char* ptr, ParseContext* ctx) {
  311|  3.73k|    return WireFormatParser(*this, ptr, ctx);
  312|  3.73k|  }
_ZN6google8protobuf8internal24UnknownFieldParserHelper10AddFixed32Ejj:
  306|   132k|  void AddFixed32(uint32_t num, uint32_t value) {
  307|   132k|    unknown_->AddFixed32(num, value);
  308|   132k|  }

_ZN6google8protobuf8internal10WireFormat24ComputeUnknownFieldsSizeERKNS0_15UnknownFieldSetE:
  267|   102k|    const UnknownFieldSet& unknown_fields) {
  268|   102k|  size_t size = 0;
  269|  5.97M|  for (int i = 0; i < unknown_fields.field_count(); i++) {
  ------------------
  |  Branch (269:19): [True: 5.86M, False: 102k]
  ------------------
  270|  5.86M|    const UnknownField& field = unknown_fields.field(i);
  271|       |
  272|  5.86M|    switch (field.type()) {
  ------------------
  |  Branch (272:13): [True: 0, False: 5.86M]
  ------------------
  273|  5.69M|      case UnknownField::TYPE_VARINT:
  ------------------
  |  Branch (273:7): [True: 5.69M, False: 176k]
  ------------------
  274|  5.69M|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  275|  5.69M|            field.number(), WireFormatLite::WIRETYPE_VARINT));
  276|  5.69M|        size += io::CodedOutputStream::VarintSize64(field.varint());
  277|  5.69M|        break;
  278|  66.3k|      case UnknownField::TYPE_FIXED32:
  ------------------
  |  Branch (278:7): [True: 66.3k, False: 5.80M]
  ------------------
  279|  66.3k|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  280|  66.3k|            field.number(), WireFormatLite::WIRETYPE_FIXED32));
  281|  66.3k|        size += sizeof(int32_t);
  282|  66.3k|        break;
  283|  35.1k|      case UnknownField::TYPE_FIXED64:
  ------------------
  |  Branch (283:7): [True: 35.1k, False: 5.83M]
  ------------------
  284|  35.1k|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  285|  35.1k|            field.number(), WireFormatLite::WIRETYPE_FIXED64));
  286|  35.1k|        size += sizeof(int64_t);
  287|  35.1k|        break;
  288|  73.7k|      case UnknownField::TYPE_LENGTH_DELIMITED:
  ------------------
  |  Branch (288:7): [True: 73.7k, False: 5.79M]
  ------------------
  289|  73.7k|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  290|  73.7k|            field.number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
  291|  73.7k|        size += io::CodedOutputStream::VarintSize32(
  292|  73.7k|            field.length_delimited().size());
  293|  73.7k|        size += field.length_delimited().size();
  294|  73.7k|        break;
  295|  1.18k|      case UnknownField::TYPE_GROUP:
  ------------------
  |  Branch (295:7): [True: 1.18k, False: 5.86M]
  ------------------
  296|  1.18k|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  297|  1.18k|            field.number(), WireFormatLite::WIRETYPE_START_GROUP));
  298|  1.18k|        size += ComputeUnknownFieldsSize(field.group());
  299|  1.18k|        size += io::CodedOutputStream::VarintSize32(WireFormatLite::MakeTag(
  300|  1.18k|            field.number(), WireFormatLite::WIRETYPE_END_GROUP));
  301|  1.18k|        break;
  302|  5.86M|    }
  303|  5.86M|  }
  304|       |
  305|   102k|  return size;
  306|   102k|}

_ZN6google8protobuf8internal17PrintUTF8ErrorLogEPKcS3_b:
  574|    266|                       bool emit_stacktrace) {
  575|    266|  std::string stacktrace;
  576|    266|  (void)emit_stacktrace;  // Parameter is used by Google-internal code.
  577|    266|  std::string quoted_field_name = "";
  578|    266|  if (field_name != nullptr) {
  ------------------
  |  Branch (578:7): [True: 266, False: 0]
  ------------------
  579|    266|    quoted_field_name = StringPrintf(" '%s'", field_name);
  580|    266|  }
  581|    266|  GOOGLE_LOG(ERROR) << "String field" << quoted_field_name << " contains invalid "
  582|    266|             << "UTF-8 data when " << operation_str << " a protocol "
  583|    266|             << "buffer. Use the 'bytes' type if you intend to send raw "
  584|    266|             << "bytes. " << stacktrace;
  585|    266|}
_ZN6google8protobuf8internal14WireFormatLite16VerifyUtf8StringEPKciNS2_9OperationES4_:
  588|  44.1k|                                      const char* field_name) {
  589|  44.1k|  if (!IsStructurallyValidUTF8(data, size)) {
  ------------------
  |  Branch (589:7): [True: 66, False: 44.1k]
  ------------------
  590|     66|    const char* operation_str = nullptr;
  591|     66|    switch (op) {
  ------------------
  |  Branch (591:13): [True: 0, False: 66]
  ------------------
  592|     66|      case PARSE:
  ------------------
  |  Branch (592:7): [True: 66, False: 0]
  ------------------
  593|     66|        operation_str = "parsing";
  594|     66|        break;
  595|      0|      case SERIALIZE:
  ------------------
  |  Branch (595:7): [True: 0, False: 66]
  ------------------
  596|      0|        operation_str = "serializing";
  597|      0|        break;
  598|       |        // no default case: have the compiler warn if a case is not covered.
  599|     66|    }
  600|     66|    PrintUTF8ErrorLog(field_name, operation_str, false);
  601|     66|    return false;
  602|     66|  }
  603|  44.1k|  return true;
  604|  44.1k|}
_ZN6google8protobuf8internal14WireFormatLite9Int32SizeERKNS0_13RepeatedFieldIiEE:
  674|  17.5k|size_t WireFormatLite::Int32Size(const RepeatedField<int32_t>& value) {
  675|  17.5k|  return VarintSize<false, true>(value.data(), value.size());
  676|  17.5k|}
_ZN6google8protobuf8internal14WireFormatLite9Int64SizeERKNS0_13RepeatedFieldIlEE:
  751|  12.3k|size_t WireFormatLite::Int64Size(const RepeatedField<int64_t>& value) {
  752|  12.3k|  size_t out = 0;
  753|  12.3k|  const int n = value.size();
  754|  20.7k|  for (int i = 0; i < n; i++) {
  ------------------
  |  Branch (754:19): [True: 8.37k, False: 12.3k]
  ------------------
  755|  8.37k|    out += Int64Size(value.Get(i));
  756|  8.37k|  }
  757|  12.3k|  return out;
  758|  12.3k|}
wire_format_lite.cc:_ZN6google8protobuf8internalL10VarintSizeILb0ELb1EiEEmPKT1_i:
  609|  17.5k|static size_t VarintSize(const T* data, const int n) {
  610|  17.5k|  static_assert(sizeof(T) == 4, "This routine only works for 32 bit integers");
  611|       |  // is_unsigned<T> => !ZigZag
  612|  17.5k|  static_assert(
  613|  17.5k|      (std::is_unsigned<T>::value ^ ZigZag) || std::is_signed<T>::value,
  614|  17.5k|      "Cannot ZigZag encode unsigned types");
  615|       |  // is_unsigned<T> => !SignExtended
  616|  17.5k|  static_assert(
  617|  17.5k|      (std::is_unsigned<T>::value ^ SignExtended) || std::is_signed<T>::value,
  618|  17.5k|      "Cannot SignExtended unsigned types");
  619|  17.5k|  static_assert(!(SignExtended && ZigZag),
  620|  17.5k|                "Cannot SignExtended and ZigZag on the same type");
  621|  17.5k|  uint32_t sum = n;
  622|  17.5k|  uint32_t msb_sum = 0;
  623|  2.31M|  for (int i = 0; i < n; i++) {
  ------------------
  |  Branch (623:19): [True: 2.29M, False: 17.5k]
  ------------------
  624|  2.29M|    uint32_t x = data[i];
  625|  2.29M|    if (ZigZag) {
  ------------------
  |  Branch (625:9): [Folded - Ignored]
  ------------------
  626|      0|      x = WireFormatLite::ZigZagEncode32(x);
  627|  2.29M|    } else if (SignExtended) {
  ------------------
  |  Branch (627:16): [Folded - Ignored]
  ------------------
  628|  2.29M|      msb_sum += x >> 31;
  629|  2.29M|    }
  630|       |    // clang is so smart that it produces optimal SSE sequence unrolling
  631|       |    // the loop 8 ints at a time. With a sequence of 4
  632|       |    // cmpres = cmpgt x, sizeclass  ( -1 or 0)
  633|       |    // sum = sum - cmpres
  634|  2.29M|    if (x > 0x7F) sum++;
  ------------------
  |  Branch (634:9): [True: 21.5k, False: 2.27M]
  ------------------
  635|  2.29M|    if (x > 0x3FFF) sum++;
  ------------------
  |  Branch (635:9): [True: 14.0k, False: 2.27M]
  ------------------
  636|  2.29M|    if (x > 0x1FFFFF) sum++;
  ------------------
  |  Branch (636:9): [True: 3.40k, False: 2.29M]
  ------------------
  637|  2.29M|    if (x > 0xFFFFFFF) sum++;
  ------------------
  |  Branch (637:9): [True: 992, False: 2.29M]
  ------------------
  638|  2.29M|  }
  639|  17.5k|  if (SignExtended) sum += msb_sum * 5;
  ------------------
  |  Branch (639:7): [Folded - Ignored]
  ------------------
  640|  17.5k|  return sum;
  641|  17.5k|}

tf_importer.cpp:_ZN2cvL11toLowerCaseERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE:
  171|     83|{
  172|     83|    std::string result(str);
  173|     83|    std::transform(result.begin(), result.end(), result.begin(), details::char_tolower);
  174|     83|    return result;
  175|     83|}
tf_importer.cpp:_ZN2cv7detailsL12char_tolowerEc:
  159|    274|{
  160|    274|    return (char)std::tolower((int)ch);
  161|    274|}

_ZNK2cv3PtrINS_3dnn14dnn4_v202412233Net4ImplEEptEv:
  124|  42.6k|    T* operator->() const CV_NOEXCEPT { return std::shared_ptr<T>::get();}
net.cpp:_ZN2cvL7makePtrINS_3dnn14dnn4_v202412233Net4ImplEJEEENS_3PtrIT_EEDpRKT0_:
  144|  17.9k|{
  145|  17.9k|    static_assert( !has_custom_delete<_Tp>::value, "Can't use this makePtr with custom DefaultDeleter");
  146|  17.9k|    return (Ptr<_Tp>)std::make_shared<_Tp>(a1...);
  147|  17.9k|}
_ZN2cv3PtrINS_3dnn14dnn4_v202412233Net4ImplEEC2EONSt3__110shared_ptrIS4_EE:
   92|  17.9k|    inline Ptr(std::shared_ptr<T>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412235LayerEEC2Ev:
   78|  29.0k|    inline Ptr() CV_NOEXCEPT : std::shared_ptr<T>() {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412233Net4ImplEEC2Ev:
   78|  17.9k|    inline Ptr() CV_NOEXCEPT : std::shared_ptr<T>() {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412236detail9DataLayerEEC2Ev:
   78|  17.9k|    inline Ptr() CV_NOEXCEPT : std::shared_ptr<T>() {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412236detail9DataLayerEEC2IS4_EEPT_:
  103|  17.9k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412236detail9DataLayerEEC2IS4_EERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  17.9k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn14dnn4_v202412236detail9DataLayerEEaSERKS5_:
  121|  17.9k|    Ptr& operator=(const Ptr& o) { std::shared_ptr<T>::operator =(o); return *this; }
_ZN2cv3PtrINS_3dnn14dnn4_v202412235LayerEEC2EOS4_:
   86|  58.0k|    inline Ptr(Ptr<T>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
_ZNK2cv3PtrINS_3dnn14dnn4_v202412236detail9DataLayerEEptEv:
  124|  21.2k|    T* operator->() const CV_NOEXCEPT { return std::shared_ptr<T>::get();}
_ZN2cv3PtrINS_3dnn14dnn4_v202412235LayerEEaSINS2_6detail9DataLayerEEERS4_RKNS0_IT_EE:
  122|  17.9k|    template<typename Y> inline Ptr& operator=(const Ptr<Y>& o) { std::shared_ptr<T>::operator =(o); return *this; }
_ZN2cv3PtrINS_3dnn14dnn4_v202412233Net4ImplEEC2ERKS5_:
   85|  3.30k|    inline Ptr(const Ptr<T>& o) CV_NOEXCEPT : std::shared_ptr<T>(o) {}
_ZN2cv3PtrINS_3dnn14dnn4_v2024122313TFNodeWrapperEEC2EONSt3__110shared_ptrIS3_EE:
   92|  7.33M|    inline Ptr(std::shared_ptr<T>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
_ZNK2cv3PtrINS_3dnn18ImportGraphWrapperEEptEv:
  124|  9.21M|    T* operator->() const CV_NOEXCEPT { return std::shared_ptr<T>::get();}
_ZNK2cv3PtrINS_3dnn17ImportNodeWrapperEEptEv:
  124|  7.63M|    T* operator->() const CV_NOEXCEPT { return std::shared_ptr<T>::get();}
tf_graph_simplifier.cpp:_ZN2cvL7makePtrINS_3dnn14dnn4_v2024122313TFNodeWrapperEJPN17opencv_tensorflow7NodeDefEEEENS_3PtrIT_EEDpRKT0_:
  144|  7.33M|{
  145|  7.33M|    static_assert( !has_custom_delete<_Tp>::value, "Can't use this makePtr with custom DefaultDeleter");
  146|  7.33M|    return (Ptr<_Tp>)std::make_shared<_Tp>(a1...);
  147|  7.33M|}
_ZN2cv3PtrINS_3dnn17ImportNodeWrapperEEC2INS1_14dnn4_v2024122313TFNodeWrapperEEEONS0_IT_EE:
   89|  7.33M|    template<typename Y> inline Ptr(Ptr<Y>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122317BatchNormSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122317BatchNormSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2EOS3_:
   86|   299k|    inline Ptr(Ptr<T>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122324BatchNormNoGammaSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122324BatchNormNoGammaSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122315FlattenSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122315FlattenSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320FlattenShapeSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320FlattenShapeSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320SoftMaxKerasSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320SoftMaxKerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122318ReLU6KerasSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122318ReLU6KerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320ReshapeKerasSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122320ReshapeKerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319L2NormalizeSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319L2NormalizeSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122331DeconvolutionValidKerasSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122331DeconvolutionValidKerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122330DeconvolutionSameKerasSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122330DeconvolutionSameKerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122322ResizeBilinearSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122322ResizeBilinearSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122323UpsamplingKerasSubgraphEEEPT_:
  103|  11.3k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122323UpsamplingKerasSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  11.3k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319SoftMaxSlimSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319SoftMaxSlimSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122321SoftMaxSlimV2SubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122321SoftMaxSlimV2SubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122322ReshapeAsShapeSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122322ReshapeAsShapeSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122316KerasMVNSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122316KerasMVNSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122313PReLUSubgraphEEEPT_:
  103|  11.3k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122313PReLUSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  11.3k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319FlattenProdSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319FlattenProdSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122326ResizeBilinearSubgraphDownEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122326ResizeBilinearSubgraphDownEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319ClipByValueSubgraphEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn8SubgraphEEC2INS1_14dnn4_v2024122319ClipByValueSubgraphEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
_ZN2cv3PtrINS_3dnn18ImportGraphWrapperEEC2INS1_14dnn4_v2024122314TFGraphWrapperEEEPT_:
  103|  5.66k|    inline Ptr(Y* ptr) : Ptr(has_custom_delete<Y>(), ptr) {}
_ZN2cv3PtrINS_3dnn18ImportGraphWrapperEEC2INS1_14dnn4_v2024122314TFGraphWrapperEEERKNSt3__117integral_constantIbLb0EEEPT_:
  100|  5.66k|    inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr<T>(ptr) {}
graph_simplifier.cpp:_ZN2cvL7makePtrINSt3__13mapIiiNS1_4lessIiEENS1_9allocatorINS1_4pairIKiiEEEEEEJEEENS_3PtrIT_EEDpRKT0_:
  144|  6.52M|{
  145|  6.52M|    static_assert( !has_custom_delete<_Tp>::value, "Can't use this makePtr with custom DefaultDeleter");
  146|  6.52M|    return (Ptr<_Tp>)std::make_shared<_Tp>(a1...);
  147|  6.52M|}
_ZN2cv3PtrINSt3__13mapIiiNS1_4lessIiEENS1_9allocatorINS1_4pairIKiiEEEEEEEC2EONS1_10shared_ptrISA_EE:
   92|  6.58M|    inline Ptr(std::shared_ptr<T>&& o) CV_NOEXCEPT : std::shared_ptr<T>(std::move(o)) {}
graph_simplifier.cpp:_ZN2cvL7makePtrINSt3__13mapIiiNS1_4lessIiEENS1_9allocatorINS1_4pairIKiiEEEEEEJSA_EEENS_3PtrIT_EEDpRKT0_:
  144|  56.0k|{
  145|  56.0k|    static_assert( !has_custom_delete<_Tp>::value, "Can't use this makePtr with custom DefaultDeleter");
  146|  56.0k|    return (Ptr<_Tp>)std::make_shared<_Tp>(a1...);
  147|  56.0k|}
_ZN2cv3PtrINSt3__13mapIiiNS1_4lessIiEENS1_9allocatorINS1_4pairIKiiEEEEEEEaSERKSB_:
  121|  27.9k|    Ptr& operator=(const Ptr& o) { std::shared_ptr<T>::operator =(o); return *this; }
_ZNK2cv3PtrINS_3dnn8SubgraphEEptEv:
  124|  7.22M|    T* operator->() const CV_NOEXCEPT { return std::shared_ptr<T>::get();}
_ZN2cv3PtrINS_5utils5trace7details12TraceStorageEEC2Ev:
   78|      2|    inline Ptr() CV_NOEXCEPT : std::shared_ptr<T>() {}
_ZN2cv3PtrINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEEC2Ev:
   78|      4|    inline Ptr() CV_NOEXCEPT : std::shared_ptr<T>() {}

_ZN2cv11_InputArray4initEiPKv:
   92|      6|{ flags = _flags; obj = (void*)_obj; }
_ZN2cv11_InputArrayC2Ev:
  101|      2|inline _InputArray::_InputArray() { init(0 + NONE, 0); }
_ZN2cv7MatSizeC2EPi:
 1187|     72|    : p(_p) {}
_ZN2cv7MatStepC2Em:
 1246|     72|{
 1247|     72|    p = buf; p[0] = s; p[1] = 0;
 1248|     72|}
_ZN2cv12_OutputArrayC2Ev:
  200|      2|inline _OutputArray::_OutputArray() { init(+NONE + ACCESS_WRITE, 0); }
_ZN2cv17_InputOutputArrayC2Ev:
  326|      2|inline _InputOutputArray::_InputOutputArray() { init(0+ACCESS_RW, 0); }

_ZN2cv10softdouble3oneEv:
  352|      6|    static softdouble  one() { return softdouble::fromRaw( (uint_fast64_t)( 1023) << 52 ); }
_ZN2cv10softdouble7fromRawEm:
  243|     60|    static softdouble fromRaw( const uint64_t a ) { softdouble x; x.v = a; return x; }
_ZN2cv10softdoubleC2Ev:
  230|     66|    softdouble() : v(0) { }
_ZN2cv10softdoubleC2ERKS0_:
  232|     16|    softdouble( const softdouble& c) { v = c.v; }
_ZN2cv10softdoubleaSERKS0_:
  235|     10|    {
  236|     10|        if(&c != this) v = c.v;
  ------------------
  |  Branch (236:12): [True: 10, False: 0]
  ------------------
  237|     10|        return *this;
  238|     10|    }
_ZNK2cv10softdouble6setExpEi:
  319|      6|    {
  320|      6|        softdouble x;
  321|      6|        x.v = (v & 0x800FFFFFFFFFFFFF) | ((uint_fast64_t)((e + 1023) & 0x7FF) << 52);
  322|      6|        return x;
  323|      6|    }
_ZN2cv10softdouble2piEv:
  360|      6|    static softdouble   pi() { return softdouble::fromRaw( CV_BIG_INT(0x400921FB54442D18) ); }
  ------------------
  |  |   63|      6|#  define CV_BIG_INT(n)   n##LL
  ------------------

_ZN2cv5Size_IiEC2Ev:
 1693|      2|    : width(0), height(0) {}

_ZNK2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EE4sizeEv:
 1137|  6.47k|{ return sz; }
_ZN2cv10AutoBufferIlLm1EE10deallocateEv:
 1102|  18.6k|{
 1103|  18.6k|    if( ptr != buf )
  ------------------
  |  Branch (1103:9): [True: 0, False: 18.6k]
  ------------------
 1104|      0|    {
 1105|      0|        delete[] ptr;
 1106|      0|        ptr = buf;
 1107|      0|        sz = fixed_size;
 1108|      0|    }
 1109|  18.6k|}
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EE10deallocateEv:
 1102|  8.63k|{
 1103|  8.63k|    if( ptr != buf )
  ------------------
  |  Branch (1103:9): [True: 0, False: 8.63k]
  ------------------
 1104|      0|    {
 1105|      0|        delete[] ptr;
 1106|      0|        ptr = buf;
 1107|      0|        sz = fixed_size;
 1108|      0|    }
 1109|  8.63k|}
_ZN2cv10AutoBufferIdLm1EE10deallocateEv:
 1102|  1.45k|{
 1103|  1.45k|    if( ptr != buf )
  ------------------
  |  Branch (1103:9): [True: 370, False: 1.08k]
  ------------------
 1104|    370|    {
 1105|    370|        delete[] ptr;
 1106|    370|        ptr = buf;
 1107|    370|        sz = fixed_size;
 1108|    370|    }
 1109|  1.45k|}
_ZN2cv10AutoBufferIlLm1EE8allocateEm:
 1086|  13.9k|{
 1087|  13.9k|    if(_size <= sz)
  ------------------
  |  Branch (1087:8): [True: 13.9k, False: 0]
  ------------------
 1088|  13.9k|    {
 1089|  13.9k|        sz = _size;
 1090|  13.9k|        return;
 1091|  13.9k|    }
 1092|      0|    deallocate();
 1093|      0|    sz = _size;
 1094|      0|    if(_size > fixed_size)
  ------------------
  |  Branch (1094:8): [True: 0, False: 0]
  ------------------
 1095|      0|    {
 1096|      0|        ptr = new _Tp[_size];
 1097|      0|    }
 1098|      0|}
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EE8allocateEm:
 1086|  6.47k|{
 1087|  6.47k|    if(_size <= sz)
  ------------------
  |  Branch (1087:8): [True: 6.47k, False: 0]
  ------------------
 1088|  6.47k|    {
 1089|  6.47k|        sz = _size;
 1090|  6.47k|        return;
 1091|  6.47k|    }
 1092|      0|    deallocate();
 1093|      0|    sz = _size;
 1094|      0|    if(_size > fixed_size)
  ------------------
  |  Branch (1094:8): [True: 0, False: 0]
  ------------------
 1095|      0|    {
 1096|      0|        ptr = new _Tp[_size];
 1097|      0|    }
 1098|      0|}
_ZN2cv10AutoBufferIdLm1EE8allocateEm:
 1086|    904|{
 1087|    904|    if(_size <= sz)
  ------------------
  |  Branch (1087:8): [True: 534, False: 370]
  ------------------
 1088|    534|    {
 1089|    534|        sz = _size;
 1090|    534|        return;
 1091|    534|    }
 1092|    370|    deallocate();
 1093|    370|    sz = _size;
 1094|    370|    if(_size > fixed_size)
  ------------------
  |  Branch (1094:8): [True: 370, False: 0]
  ------------------
 1095|    370|    {
 1096|    370|        ptr = new _Tp[_size];
 1097|    370|    }
 1098|    370|}
_ZNK2cv10AutoBufferIlLm1EE4sizeEv:
 1137|  13.9k|{ return sz; }
_ZNK2cv10AutoBufferIdLm1EE4sizeEv:
 1137|    887|{ return sz; }
_ZN2cv10AutoBufferIlLm1EEixEm:
  139|  4.68k|    inline _Tp& operator[] (size_t i) { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; }
  ------------------
  |  |  166|  4.68k|#define CV_DbgCheckLT(v1, v2, msg)  do { } while (0)
  |  |  ------------------
  |  |  |  Branch (166:51): [Folded - Ignored]
  |  |  ------------------
  ------------------
_ZN2cv10AutoBufferIdLm1EEixEm:
  139|    383|    inline _Tp& operator[] (size_t i) { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; }
  ------------------
  |  |  166|    383|#define CV_DbgCheckLT(v1, v2, msg)  do { } while (0)
  |  |  ------------------
  |  |  |  Branch (166:51): [Folded - Ignored]
  |  |  ------------------
  ------------------
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EEixEm:
  139|  2.16k|    inline _Tp& operator[] (size_t i) { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; }
  ------------------
  |  |  166|  2.16k|#define CV_DbgCheckLT(v1, v2, msg)  do { } while (0)
  |  |  ------------------
  |  |  |  Branch (166:51): [Folded - Ignored]
  |  |  ------------------
  ------------------
_ZN2cv10AutoBufferIlLm1EEC2ERKS1_:
 1059|  13.9k|{
 1060|  13.9k|    ptr = buf;
 1061|  13.9k|    sz = fixed_size;
 1062|  13.9k|    allocate(abuf.size());
 1063|  27.9k|    for( size_t i = 0; i < sz; i++ )
  ------------------
  |  Branch (1063:24): [True: 13.9k, False: 13.9k]
  ------------------
 1064|  13.9k|        ptr[i] = abuf.ptr[i];
 1065|  13.9k|}
_ZN2cv10AutoBufferIlLm1EED2Ev:
 1082|  18.6k|{ deallocate(); }
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EED2Ev:
 1082|  8.63k|{ deallocate(); }
_ZN2cv10AutoBufferIdLm1EED2Ev:
 1082|  1.08k|{ deallocate(); }
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EEC2ERKS8_:
 1059|  6.47k|{
 1060|  6.47k|    ptr = buf;
 1061|  6.47k|    sz = fixed_size;
 1062|  6.47k|    allocate(abuf.size());
 1063|  12.9k|    for( size_t i = 0; i < sz; i++ )
  ------------------
  |  Branch (1063:24): [True: 6.47k, False: 6.47k]
  ------------------
 1064|  6.47k|        ptr[i] = abuf.ptr[i];
 1065|  6.47k|}
_ZN2cv10AutoBufferIdLm1EEC2ERKS1_:
 1059|    830|{
 1060|    830|    ptr = buf;
 1061|    830|    sz = fixed_size;
 1062|    830|    allocate(abuf.size());
 1063|  1.95k|    for( size_t i = 0; i < sz; i++ )
  ------------------
  |  Branch (1063:24): [True: 1.12k, False: 830]
  ------------------
 1064|  1.12k|        ptr[i] = abuf.ptr[i];
 1065|    830|}
_ZN2cv10AutoBufferINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEELm1EEC2Ev:
 1044|  2.16k|{
 1045|  2.16k|    ptr = buf;
 1046|  2.16k|    sz = fixed_size;
 1047|  2.16k|}
_ZN2cv10AutoBufferIlLm1EEC2Ev:
 1044|  4.67k|{
 1045|  4.67k|    ptr = buf;
 1046|  4.67k|    sz = fixed_size;
 1047|  4.67k|}
_ZN2cv10AutoBufferIdLm1EEC2Em:
 1051|     74|{
 1052|     74|    ptr = buf;
 1053|     74|    sz = fixed_size;
 1054|     74|    allocate(_size);
 1055|     74|}
_ZN2cv10AutoBufferIdLm1EEC2Ev:
 1044|    178|{
 1045|    178|    ptr = buf;
 1046|    178|    sz = fixed_size;
 1047|    178|}
_ZN2cv10AutoBufferIcLm1024EEC2Ev:
 1044|  15.5k|{
 1045|  15.5k|    ptr = buf;
 1046|  15.5k|    sz = fixed_size;
 1047|  15.5k|}
_ZN2cv10AutoBufferIcLm1024EED2Ev:
 1082|  15.5k|{ deallocate(); }
_ZN2cv10AutoBufferIcLm1024EE10deallocateEv:
 1102|  15.5k|{
 1103|  15.5k|    if( ptr != buf )
  ------------------
  |  Branch (1103:9): [True: 0, False: 15.5k]
  ------------------
 1104|      0|    {
 1105|      0|        delete[] ptr;
 1106|      0|        ptr = buf;
 1107|      0|        sz = fixed_size;
 1108|      0|    }
 1109|  15.5k|}
_ZNK2cv10AutoBufferIcLm1024EE4sizeEv:
 1137|  15.5k|{ return sz; }
_ZN2cv10AutoBufferIcLm1024EE4dataEv:
  128|  31.1k|    inline _Tp* data() { return ptr; }
_ZN2cv10AutoBufferIcLm1024EEixEm:
  139|  15.5k|    inline _Tp& operator[] (size_t i) { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; }
  ------------------
  |  |  166|  15.5k|#define CV_DbgCheckLT(v1, v2, msg)  do { } while (0)
  |  |  ------------------
  |  |  |  Branch (166:51): [Folded - Ignored]
  |  |  ------------------
  ------------------

_ZN2cv5utils28AllocatorStatisticsInterfaceC2Ev:
   15|      4|    AllocatorStatisticsInterface() {}

alloc.cpp:_ZN2cv5utils12_GLOBAL__N_119AllocatorStatisticsC2Ev:
   58|      2|    AllocatorStatistics() {}
ocl.cpp:_ZN2cv5utils12_GLOBAL__N_119AllocatorStatisticsC2Ev:
   58|      2|    AllocatorStatistics() {}

_ZN2cv7details26FPDenormalsIgnoreHintScopeC2Eb:
   25|  17.9k|    {
   26|  17.9k|        details::setFPDenormalsIgnoreHint(ignore, saved_state);
   27|  17.9k|    }
_ZN2cv7details26FPDenormalsIgnoreHintScopeD2Ev:
   36|  17.9k|    {
   37|  17.9k|        details::restoreFPDenormalsState(saved_state);
   38|  17.9k|    }

_ZN2cv5utils7logging6LogTagC2EPKcNS1_8LogLevelE:
   21|      2|        : name(_name)
   22|      2|        , level(_level)
   23|      2|    {}

system.cpp:_ZN2cv7TLSDataINS_12_GLOBAL__N_18ThreadIDEEC2Ev:
   66|      1|    inline TLSData() {}
system.cpp:_ZNK2cv7TLSDataINS_12_GLOBAL__N_18ThreadIDEE18createDataInstanceEv:
   80|      1|    virtual void* createDataInstance() const CV_OVERRIDE { return new T; }
system.cpp:_ZNK2cv7TLSDataINS_12_GLOBAL__N_18ThreadIDEE3getEv:
   69|    947|    inline T* get() const   { return (T*)getData(); }  //!< Get data associated with key
_ZN2cv18TLSDataAccumulatorINS_5utils5trace7details23TraceManagerThreadLocalEEC2Ev:
   95|      2|    TLSDataAccumulator() : cleanupMode(false) {}
_ZN2cv7TLSDataINS_5utils5trace7details23TraceManagerThreadLocalEEC2Ev:
   66|      2|    inline TLSData() {}

_ZN2cv5utils5trace7details6RegionD2Ev:
   82|   100k|    {
   83|   100k|        if (implFlags != 0)
  ------------------
  |  Branch (83:13): [True: 0, False: 100k]
  ------------------
   84|      0|            destroy();
   85|   100k|        CV_DbgAssert(implFlags == 0);
   86|   100k|        CV_DbgAssert(pImpl == NULL);
   87|   100k|    }
_ZNK2cv5utils5trace7details6Region8isActiveEv:
   93|  17.9k|    bool isActive() const { return pImpl != NULL; }

_ZN2cv9AlgorithmC2Ev:
   49|  17.9k|{
   50|  17.9k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  17.9k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  17.9k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  17.9k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  17.9k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  17.9k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  17.9k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  17.9k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  17.9k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  17.9k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  17.9k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   51|  17.9k|}
_ZN2cv9AlgorithmD2Ev:
   54|  17.9k|{
   55|  17.9k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  17.9k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  17.9k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  17.9k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  17.9k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  17.9k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  17.9k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  17.9k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  17.9k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  17.9k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  17.9k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   56|  17.9k|}

alloc.cpp:_ZN2cvL26isAlignedAllocationEnabledEv:
  111|      2|{
  112|       |    // use construct on first use idiom https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
  113|       |    // details: https://github.com/opencv/opencv/issues/15691
  114|      2|    static bool useMemalign = readMemoryAlignmentParameter();
  115|      2|    return useMemalign;
  116|      2|}
alloc.cpp:_ZN2cvL28readMemoryAlignmentParameterEv:
   87|      2|{
   88|      2|    bool value = true;
   89|       |#if defined(__GLIBC__) && defined(__linux__) \
   90|       |    && !defined(CV_STATIC_ANALYSIS) \
   91|       |    && !defined(OPENCV_ENABLE_MEMORY_SANITIZER) \
   92|       |    && !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)  /* oss-fuzz */ \
   93|       |    && !defined(_WIN32)  /* MinGW? */
   94|       |    {
   95|       |        // https://github.com/opencv/opencv/issues/15526
   96|       |        value = false;
   97|       |    }
   98|       |#endif
   99|      2|    value = cv::utils::getConfigurationParameterBool("OPENCV_ENABLE_MEMALIGN", value);  // should not call fastMalloc() internally
  100|       |    // TODO add checks for valgrind, ASAN if value == false
  101|      2|    return value;
  102|      2|}

_ZN2cv6detail17check_failed_autoEiiRKNS0_12CheckContextE:
  107|    360|{
  108|    360|    check_failed_auto_<int>(v1, v2, ctx);
  109|    360|}
_ZN2cv6detail17check_failed_autoEmmRKNS0_12CheckContextE:
  111|  1.11k|{
  112|  1.11k|    check_failed_auto_<size_t>(v1, v2, ctx);
  113|  1.11k|}
_ZN2cv6detail17check_failed_autoEiRKNS0_12CheckContextE:
  182|      2|{
  183|      2|    check_failed_auto_<int>(v, ctx);
  184|      2|}
check.cpp:_ZN2cv6detailL13getTestOpMathEj:
   40|  1.47k|{
   41|  1.47k|    static const char* _names[] = { "???", "==", "!=", "<=", "<", ">=", ">" };
   42|  1.47k|    CV_DbgAssert(testOp < CV__LAST_TEST_OP);
   43|  1.47k|    return testOp < CV__LAST_TEST_OP ? _names[testOp] : "???";
  ------------------
  |  Branch (43:12): [True: 1.47k, False: 0]
  ------------------
   44|  1.47k|}
check.cpp:_ZN2cv6detailL18getTestOpPhraseStrEj:
   34|  1.47k|{
   35|  1.47k|    static const char* _names[] = { "{custom check}", "equal to", "not equal to", "less than or equal to", "less than", "greater than or equal to", "greater than" };
   36|  1.47k|    CV_DbgAssert(testOp < CV__LAST_TEST_OP);
   37|  1.47k|    return testOp < CV__LAST_TEST_OP ? _names[testOp] : "???";
  ------------------
  |  Branch (37:12): [True: 1.47k, False: 0]
  ------------------
   38|  1.47k|}
check.cpp:_ZN2cv6detailL18check_failed_auto_IiEEvRKT_S4_RKNS0_12CheckContextE:
   63|    360|{
   64|    360|    std::stringstream ss;
   65|    360|    ss  << ctx.message << " (expected: '" << ctx.p1_str << " " << getTestOpMath(ctx.testOp) << " " << ctx.p2_str << "'), where" << std::endl
   66|    360|        << "    '" << ctx.p1_str << "' is " << v1 << std::endl;
   67|    360|    if (ctx.testOp != TEST_CUSTOM && ctx.testOp < CV__LAST_TEST_OP)
  ------------------
  |  Branch (67:9): [True: 360, False: 0]
  |  Branch (67:38): [True: 360, False: 0]
  ------------------
   68|    360|    {
   69|    360|        ss << "must be " << getTestOpPhraseStr(ctx.testOp) << std::endl;
   70|    360|    }
   71|    360|    ss  << "    '" << ctx.p2_str << "' is " << v2;
   72|    360|    cv::error(cv::Error::StsError, ss.str(), ctx.func, ctx.file, ctx.line);
   73|    360|}
check.cpp:_ZN2cv6detailL18check_failed_auto_ImEEvRKT_S4_RKNS0_12CheckContextE:
   63|  1.11k|{
   64|  1.11k|    std::stringstream ss;
   65|  1.11k|    ss  << ctx.message << " (expected: '" << ctx.p1_str << " " << getTestOpMath(ctx.testOp) << " " << ctx.p2_str << "'), where" << std::endl
   66|  1.11k|        << "    '" << ctx.p1_str << "' is " << v1 << std::endl;
   67|  1.11k|    if (ctx.testOp != TEST_CUSTOM && ctx.testOp < CV__LAST_TEST_OP)
  ------------------
  |  Branch (67:9): [True: 1.11k, False: 0]
  |  Branch (67:38): [True: 1.11k, False: 0]
  ------------------
   68|  1.11k|    {
   69|  1.11k|        ss << "must be " << getTestOpPhraseStr(ctx.testOp) << std::endl;
   70|  1.11k|    }
   71|  1.11k|    ss  << "    '" << ctx.p2_str << "' is " << v2;
   72|  1.11k|    cv::error(cv::Error::StsError, ss.str(), ctx.func, ctx.file, ctx.line);
   73|  1.11k|}
check.cpp:_ZN2cv6detailL18check_failed_auto_IiEEvRKT_RKNS0_12CheckContextE:
  130|      2|{
  131|      2|    std::stringstream ss;
  132|      2|    ss  << ctx.message << ":" << std::endl
  133|      2|        << "    '" << ctx.p2_str << "'" << std::endl
  134|      2|        << "where" << std::endl
  135|      2|        << "    '" << ctx.p1_str << "' is " << v;
  136|      2|    cv::error(cv::Error::StsError, ss.str(), ctx.func, ctx.file, ctx.line);
  137|      2|}

_ZN2cv5utils7logging8internal15getGlobalLogTagEv:
  130|  93.5k|{
  131|  93.5k|    static LogTag* globalLogTagPtr = getGlobalLoggingInitStruct().logTagManager.get("global");
  132|  93.5k|    return globalLogTagPtr;
  133|  93.5k|}
_ZN2cv5utils7logging8internal15writeLogMessageENS1_8LogLevelEPKc:
  199|    947|{
  200|    947|    WriteLogMessageFuncType userFunc = stc_userWriteLogMessageFunc.load();
  201|    947|    if (userFunc && userFunc != writeLogMessage)
  ------------------
  |  Branch (201:9): [True: 0, False: 947]
  |  Branch (201:21): [True: 0, False: 0]
  ------------------
  202|      0|    {
  203|      0|        (*userFunc)(logLevel, message);
  204|      0|        return;
  205|      0|    }
  206|       |
  207|    947|    const int threadID = cv::utils::getThreadID();
  208|       |
  209|    947|    std::string message_id;
  210|    947|    switch (getShowTimestampMode())
  211|    947|    {
  212|    947|        case 1: message_id = cv::format("%d@%0.3f", threadID, getTimestampNS() * 1e-9); break;
  ------------------
  |  Branch (212:9): [True: 947, False: 0]
  ------------------
  213|      0|        case 1+2: message_id = cv::format("%d@%llu", threadID, (long long unsigned int)getTimestampNS()); break;
  ------------------
  |  Branch (213:9): [True: 0, False: 947]
  ------------------
  214|      0|        default: message_id = cv::format("%d", threadID); break;
  ------------------
  |  Branch (214:9): [True: 0, False: 947]
  ------------------
  215|    947|    }
  216|       |
  217|    947|    std::ostringstream ss;
  218|    947|    switch (logLevel)
  ------------------
  |  Branch (218:13): [True: 0, False: 947]
  ------------------
  219|    947|    {
  220|      0|    case LOG_LEVEL_FATAL:   ss << "[FATAL:" << message_id << "] " << message << std::endl; break;
  ------------------
  |  Branch (220:5): [True: 0, False: 947]
  ------------------
  221|    947|    case LOG_LEVEL_ERROR:   ss << "[ERROR:" << message_id << "] " << message << std::endl; break;
  ------------------
  |  Branch (221:5): [True: 947, False: 0]
  ------------------
  222|      0|    case LOG_LEVEL_WARNING: ss << "[ WARN:" << message_id << "] " << message << std::endl; break;
  ------------------
  |  Branch (222:5): [True: 0, False: 947]
  ------------------
  223|      0|    case LOG_LEVEL_INFO:    ss << "[ INFO:" << message_id << "] " << message << std::endl; break;
  ------------------
  |  Branch (223:5): [True: 0, False: 947]
  ------------------
  224|      0|    case LOG_LEVEL_DEBUG:   ss << "[DEBUG:" << message_id << "] " << message << std::endl; break;
  ------------------
  |  Branch (224:5): [True: 0, False: 947]
  ------------------
  225|      0|    case LOG_LEVEL_VERBOSE: ss << message << std::endl; break;
  ------------------
  |  Branch (225:5): [True: 0, False: 947]
  ------------------
  226|      0|    case LOG_LEVEL_SILENT: return;  // avoid compiler warning about incomplete switch
  ------------------
  |  Branch (226:5): [True: 0, False: 947]
  ------------------
  227|      0|    case ENUM_LOG_LEVEL_FORCE_INT: return;  // avoid compiler warning about incomplete switch
  ------------------
  |  Branch (227:5): [True: 0, False: 947]
  ------------------
  228|    947|    }
  229|       |#ifdef __ANDROID__
  230|       |    int android_logLevel = ANDROID_LOG_INFO;
  231|       |    switch (logLevel)
  232|       |    {
  233|       |    case LOG_LEVEL_FATAL:   android_logLevel = ANDROID_LOG_FATAL; break;
  234|       |    case LOG_LEVEL_ERROR:   android_logLevel = ANDROID_LOG_ERROR; break;
  235|       |    case LOG_LEVEL_WARNING: android_logLevel = ANDROID_LOG_WARN; break;
  236|       |    case LOG_LEVEL_INFO:    android_logLevel = ANDROID_LOG_INFO; break;
  237|       |    case LOG_LEVEL_DEBUG:   android_logLevel = ANDROID_LOG_DEBUG; break;
  238|       |    case LOG_LEVEL_VERBOSE: android_logLevel = ANDROID_LOG_VERBOSE; break;
  239|       |    default:
  240|       |        break;
  241|       |    }
  242|       |    __android_log_print(android_logLevel, "OpenCV/" CV_VERSION, "%s", ss.str().c_str());
  243|       |#endif
  244|    947|    std::ostream* out = (logLevel <= LOG_LEVEL_WARNING) ? &std::cerr : &std::cout;
  ------------------
  |  Branch (244:25): [True: 947, False: 0]
  ------------------
  245|    947|    (*out) << ss.str();
  246|    947|    if (logLevel <= LOG_LEVEL_WARNING)
  ------------------
  |  Branch (246:9): [True: 947, False: 0]
  ------------------
  247|    947|    {
  248|    947|        (*out) << std::flush;
  249|    947|    }
  250|    947|}
_ZN2cv5utils7logging8internal17writeLogMessageExENS1_8LogLevelEPKcS5_iS5_S5_:
  270|    947|{
  271|    947|    WriteLogMessageExFuncType userFunc = stc_userWriteLogMessageExFunc.load();
  272|    947|    if (userFunc && userFunc != writeLogMessageEx)
  ------------------
  |  Branch (272:9): [True: 0, False: 947]
  |  Branch (272:21): [True: 0, False: 0]
  ------------------
  273|      0|    {
  274|      0|        (*userFunc)(logLevel, tag, file, line, func, message);
  275|      0|        return;
  276|      0|    }
  277|       |
  278|    947|    std::ostringstream strm;
  279|    947|    if (tag)
  ------------------
  |  Branch (279:9): [True: 947, False: 0]
  ------------------
  280|    947|    {
  281|    947|        strm << tag << ' ';
  282|    947|    }
  283|    947|    if (file)
  ------------------
  |  Branch (283:9): [True: 947, False: 0]
  ------------------
  284|    947|    {
  285|    947|        strm << stripSourceFilePathPrefix(file);
  286|    947|        if (line > 0)
  ------------------
  |  Branch (286:13): [True: 947, False: 0]
  ------------------
  287|    947|        {
  288|    947|            strm << ':' << line;
  289|    947|        }
  290|    947|        strm << ' ';
  291|    947|    }
  292|    947|    if (func)
  ------------------
  |  Branch (292:9): [True: 947, False: 0]
  ------------------
  293|    947|    {
  294|    947|        strm << func << ' ';
  295|    947|    }
  296|    947|    strm << message;
  297|    947|    writeLogMessage(logLevel, strm.str().c_str());
  298|    947|}
_ZN2cv5utils7logging8internal21GlobalLoggingInitCallC2Ev:
  109|      2|    {
  110|      2|        getGlobalLoggingInitStruct();
  111|      2|        (void)getGlobalLogTag();  // complete initialization of logger structures
  112|      2|    }
logger.cpp:_ZN2cv5utils7logging8internalL26getGlobalLoggingInitStructEv:
   97|      4|{
   98|      4|    CV_SINGLETON_LAZY_INIT_REF(GlobalLoggingInitStruct, new GlobalLoggingInitStruct());
  ------------------
  |  |  404|      4|#define CV_SINGLETON_LAZY_INIT_REF(TYPE, INITIALIZER) CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, *instance)
  |  |  ------------------
  |  |  |  |  400|      4|    static TYPE* const instance = INITIALIZER; \
  |  |  |  |  401|      4|    return RET_VALUE;
  |  |  ------------------
  ------------------
   99|      0|}
_ZN2cv5utils7logging8internal23GlobalLoggingInitStructC2Ev:
   47|      2|        : logTagManager(m_defaultUnconfiguredGlobalLevel)
   48|      2|    {
   49|      2|        (void)getInitializationMutex();  // ensure initialization of global objects
   50|       |
   51|      2|        applyConfigString();
   52|      2|        handleMalformed();
   53|      2|    }
_ZN2cv5utils7logging8internal23GlobalLoggingInitStruct17applyConfigStringEv:
   57|      2|    {
   58|      2|        logTagManager.setConfigString(utils::getConfigurationParameterString("OPENCV_LOG_LEVEL", ""));
   59|      2|    }
_ZN2cv5utils7logging8internal23GlobalLoggingInitStruct15handleMalformedEv:
   62|      2|    {
   63|       |        // need to print warning for malformed log tag config strings?
   64|      2|        if (m_isDebugBuild)
  ------------------
  |  Branch (64:13): [Folded - Ignored]
  ------------------
   65|      0|        {
   66|      0|            const auto& parser = logTagManager.getConfigParser();
   67|      0|            if (parser.hasMalformed())
  ------------------
  |  Branch (67:17): [True: 0, False: 0]
  ------------------
   68|      0|            {
   69|      0|                const auto& malformedList = parser.getMalformed();
   70|      0|                for (const auto& malformed : malformedList)
  ------------------
  |  Branch (70:44): [True: 0, False: 0]
  ------------------
   71|      0|                {
   72|      0|                    std::cout << "Malformed log level config: \"" << malformed << "\"\n";
   73|      0|                }
   74|      0|                std::cout.flush();
   75|      0|            }
   76|      0|        }
   77|      2|    }
logger.cpp:_ZN2cv5utils7logging8internalL20getShowTimestampModeEv:
  192|    947|{
  193|    947|    static bool param_timestamp_enable = utils::getConfigurationParameterBool("OPENCV_LOG_TIMESTAMP", true);
  194|    947|    static bool param_timestamp_ns_enable = utils::getConfigurationParameterBool("OPENCV_LOG_TIMESTAMP_NS", false);
  195|    947|    return (param_timestamp_enable ? 1 : 0) + (param_timestamp_ns_enable ? 2 : 0);
  ------------------
  |  Branch (195:13): [True: 947, False: 0]
  |  Branch (195:48): [True: 0, False: 947]
  ------------------
  196|    947|}
logger.cpp:_ZN2cv5utils7logging8internalL25stripSourceFilePathPrefixEPKc:
  253|    947|{
  254|    947|    CV_Assert(file);
  ------------------
  |  |  423|    947|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 947, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  255|    947|    const char* pos = file;
  256|    947|    const char* strip_pos = NULL;
  257|    947|    char ch = 0;
  258|  52.0k|    while ((ch = pos[0]) != 0)
  ------------------
  |  Branch (258:12): [True: 51.1k, False: 947]
  ------------------
  259|  51.1k|    {
  260|  51.1k|        ++pos;
  261|  51.1k|        if (ch == '/' || ch == '\\')
  ------------------
  |  Branch (261:13): [True: 6.62k, False: 44.5k]
  |  Branch (261:26): [True: 0, False: 44.5k]
  ------------------
  262|  6.62k|            strip_pos = pos;
  263|  51.1k|    }
  264|    947|    if (strip_pos == NULL || strip_pos == pos/*eos*/)
  ------------------
  |  Branch (264:9): [True: 0, False: 947]
  |  Branch (264:30): [True: 0, False: 947]
  ------------------
  265|      0|        return file;
  266|    947|    return strip_pos;
  267|    947|}

_ZN2cv3MatC2Ev:
  337|     72|    : flags(MAGIC_VAL), dims(0), rows(0), cols(0), data(0), datastart(0), dataend(0),
  338|     72|      datalimit(0), allocator(0), u(0), size(&rows), step(0)
  339|     72|{}
_ZN2cv3MatD2Ev:
  478|     72|{
  479|     72|    release();
  480|     72|    if( step.p != step.buf )
  ------------------
  |  Branch (480:9): [True: 0, False: 72]
  ------------------
  481|      0|        fastFree(step.p);
  482|     72|}
_ZN2cv3Mat7releaseEv:
  548|     72|{
  549|     72|    if( u && CV_XADD(&u->refcount, -1) == 1 )
  ------------------
  |  |  702|      0|#      define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
  ------------------
  |  Branch (549:9): [True: 0, False: 72]
  |  Branch (549:14): [True: 0, False: 0]
  ------------------
  550|      0|        deallocate();
  551|     72|    u = NULL;
  552|     72|    datastart = dataend = datalimit = data = 0;
  553|     72|    for(int i = 0; i < dims; i++)
  ------------------
  |  Branch (553:20): [True: 0, False: 72]
  ------------------
  554|      0|        size.p[i] = 0;
  555|       |#ifdef _DEBUG
  556|       |    flags = MAGIC_VAL;
  557|       |    dims = rows = cols = 0;
  558|       |    if(step.p != step.buf)
  559|       |    {
  560|       |        fastFree(step.p);
  561|       |        step.p = step.buf;
  562|       |        size.p = &rows;
  563|       |    }
  564|       |#endif
  565|     72|}

_ZN2cv5MatOpC2Ev:
  218|     16|MatOp::MatOp() {}
_ZN2cv14MatOp_IdentityC2Ev:
   40|      2|    MatOp_Identity() {}
_ZN2cv11MatOp_AddExC2Ev:
   54|      2|    MatOp_AddEx() {}
_ZN2cv9MatOp_BinC2Ev:
   76|      2|    MatOp_Bin() {}
_ZN2cv9MatOp_CmpC2Ev:
   94|      2|    MatOp_Cmp() {}
_ZN2cv10MatOp_GEMMC2Ev:
  109|      2|    MatOp_GEMM() {}
_ZN2cv12MatOp_InvertC2Ev:
  139|      2|    MatOp_Invert() {}
_ZN2cv7MatOp_TC2Ev:
  155|      2|    MatOp_T() {}
_ZN2cv11MatOp_SolveC2Ev:
  172|      2|    MatOp_Solve() {}

_ZN2cv10softdoubleC2Ei:
  247|     10|softdouble::softdouble( const  int32_t a ) { *this =  i32_to_f64(a); }
_ZNK2cv10softdoublemlERKS0_:
  270|      2|softdouble softdouble::operator * (const softdouble& a) const { return f64_mul(*this, a); }
_ZNK2cv10softdoubledvERKS0_:
  271|      6|softdouble softdouble::operator / (const softdouble& a) const { return f64_div(*this, a); }
softfloat.cpp:_ZN2cvL10raiseFlagsEh:
   97|      2|{
   98|       |    //exceptionFlags |= flags;
   99|      2|}
softfloat.cpp:_ZN2cvL29softfloat_countLeadingZeros32Ej:
  525|     10|{
  526|     10|    uint_fast8_t count = 0;
  527|     10|    if ( a < 0x10000 ) {
  ------------------
  |  Branch (527:10): [True: 8, False: 2]
  ------------------
  528|      8|        count = 16;
  529|      8|        a <<= 16;
  530|      8|    }
  531|     10|    if ( a < 0x1000000 ) {
  ------------------
  |  Branch (531:10): [True: 10, False: 0]
  ------------------
  532|     10|        count += 8;
  533|     10|        a <<= 8;
  534|     10|    }
  535|     10|    count += softfloat_countLeadingZeros8[a>>24];
  536|     10|    return count;
  537|     10|}
softfloat.cpp:_ZN2cvL24softfloat_roundPackToF64Eblm:
 2999|      8|{
 3000|      8|    uint_fast8_t roundingMode;
 3001|      8|    bool roundNearEven;
 3002|      8|    uint_fast16_t roundIncrement, roundBits;
 3003|      8|    bool isTiny;
 3004|      8|    uint_fast64_t uiZ;
 3005|       |
 3006|       |    /*------------------------------------------------------------------------
 3007|       |    *------------------------------------------------------------------------*/
 3008|      8|    roundingMode = globalRoundingMode;
 3009|      8|    roundNearEven = (roundingMode == round_near_even);
 3010|      8|    roundIncrement = 0x200;
 3011|      8|    if ( ! roundNearEven && (roundingMode != round_near_maxMag) ) {
  ------------------
  |  Branch (3011:10): [True: 0, False: 8]
  |  Branch (3011:29): [True: 0, False: 0]
  ------------------
 3012|      0|        roundIncrement =
 3013|      0|            (roundingMode
  ------------------
  |  Branch (3013:13): [True: 0, False: 0]
  ------------------
 3014|      0|                 == (sign ? round_min : round_max))
  ------------------
  |  Branch (3014:22): [True: 0, False: 0]
  ------------------
 3015|      0|                ? 0x3FF
 3016|      0|                : 0;
 3017|      0|    }
 3018|      8|    roundBits = sig & 0x3FF;
 3019|       |    /*------------------------------------------------------------------------
 3020|       |    *------------------------------------------------------------------------*/
 3021|      8|    if ( 0x7FD <= (uint16_t) exp ) {
  ------------------
  |  Branch (3021:10): [True: 0, False: 8]
  ------------------
 3022|      0|        if ( exp < 0 ) {
  ------------------
  |  Branch (3022:14): [True: 0, False: 0]
  ------------------
 3023|       |            /*----------------------------------------------------------------
 3024|       |            *----------------------------------------------------------------*/
 3025|      0|            isTiny =
 3026|      0|                (globalDetectTininess == tininess_beforeRounding)
  ------------------
  |  Branch (3026:17): [Folded - Ignored]
  ------------------
 3027|      0|                    || (exp < -1)
  ------------------
  |  Branch (3027:24): [True: 0, False: 0]
  ------------------
 3028|      0|                    || (sig + roundIncrement < UINT64_C( 0x8000000000000000 ));
  ------------------
  |  Branch (3028:24): [True: 0, False: 0]
  ------------------
 3029|      0|            sig = softfloat_shiftRightJam64( sig, -exp );
 3030|      0|            exp = 0;
 3031|      0|            roundBits = sig & 0x3FF;
 3032|      0|            if ( isTiny && roundBits ) {
  ------------------
  |  Branch (3032:18): [True: 0, False: 0]
  |  Branch (3032:28): [True: 0, False: 0]
  ------------------
 3033|      0|                raiseFlags( flag_underflow );
 3034|      0|            }
 3035|      0|        } else if (
 3036|      0|            (0x7FD < exp)
  ------------------
  |  Branch (3036:13): [True: 0, False: 0]
  ------------------
 3037|      0|                || (UINT64_C( 0x8000000000000000 ) <= sig + roundIncrement)
  ------------------
  |  Branch (3037:20): [True: 0, False: 0]
  ------------------
 3038|      0|        ) {
 3039|       |            /*----------------------------------------------------------------
 3040|       |            *----------------------------------------------------------------*/
 3041|      0|            raiseFlags(
 3042|      0|                flag_overflow | flag_inexact );
 3043|      0|            uiZ = packToF64UI( sign, 0x7FF, 0 ) - ! roundIncrement;
  ------------------
  |  |  137|      0|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 3044|      0|            goto uiZ;
 3045|      0|        }
 3046|      0|    }
 3047|       |    /*------------------------------------------------------------------------
 3048|       |    *------------------------------------------------------------------------*/
 3049|      8|    sig = (sig + roundIncrement)>>10;
 3050|      8|    if ( roundBits ) {
  ------------------
  |  Branch (3050:10): [True: 2, False: 6]
  ------------------
 3051|      2|        raiseFlags(flag_inexact);
 3052|      2|        if ( roundingMode == round_odd ) {
  ------------------
  |  Branch (3052:14): [True: 0, False: 2]
  ------------------
 3053|      0|            sig |= 1;
 3054|      0|            goto packReturn;
 3055|      0|        }
 3056|      2|    }
 3057|      8|    sig &= ~(uint_fast64_t) (! (roundBits ^ 0x200) & roundNearEven);
 3058|      8|    if ( ! sig ) exp = 0;
  ------------------
  |  Branch (3058:10): [True: 0, False: 8]
  ------------------
 3059|       |    /*------------------------------------------------------------------------
 3060|       |    *------------------------------------------------------------------------*/
 3061|      8| packReturn:
 3062|      8|    uiZ = packToF64UI( sign, exp, sig );
  ------------------
  |  |  137|      8|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 3063|      8| uiZ:
 3064|      8|    return float64_t::fromRaw(uiZ);
 3065|      8|}
softfloat.cpp:_ZN2cvL7f64_divENS_10softdoubleES0_:
 1345|      6|{
 1346|      6|    uint_fast64_t uiA;
 1347|      6|    bool signA;
 1348|      6|    int_fast16_t expA;
 1349|      6|    uint_fast64_t sigA;
 1350|      6|    uint_fast64_t uiB;
 1351|      6|    bool signB;
 1352|      6|    int_fast16_t expB;
 1353|      6|    uint_fast64_t sigB;
 1354|      6|    bool signZ;
 1355|      6|    struct exp16_sig64 normExpSig;
 1356|      6|    int_fast16_t expZ;
 1357|      6|    uint32_t recip32, sig32Z, doubleTerm;
 1358|      6|    uint_fast64_t rem;
 1359|      6|    uint32_t q;
 1360|      6|    uint_fast64_t sigZ;
 1361|      6|    uint_fast64_t uiZ;
 1362|       |
 1363|       |    /*------------------------------------------------------------------------
 1364|       |    *------------------------------------------------------------------------*/
 1365|      6|    uiA = a.v;
 1366|      6|    signA = signF64UI( uiA );
  ------------------
  |  |  134|      6|#define signF64UI( a ) (((uint64_t) (a)>>63) != 0)
  ------------------
 1367|      6|    expA  = expF64UI( uiA );
  ------------------
  |  |  135|      6|#define expF64UI( a ) ((int_fast16_t) ((a)>>52) & 0x7FF)
  ------------------
 1368|      6|    sigA  = fracF64UI( uiA );
  ------------------
  |  |  136|      6|#define fracF64UI( a ) ((a) & UINT64_C( 0x000FFFFFFFFFFFFF ))
  ------------------
 1369|      6|    uiB = b.v;
 1370|      6|    signB = signF64UI( uiB );
  ------------------
  |  |  134|      6|#define signF64UI( a ) (((uint64_t) (a)>>63) != 0)
  ------------------
 1371|      6|    expB  = expF64UI( uiB );
  ------------------
  |  |  135|      6|#define expF64UI( a ) ((int_fast16_t) ((a)>>52) & 0x7FF)
  ------------------
 1372|      6|    sigB  = fracF64UI( uiB );
  ------------------
  |  |  136|      6|#define fracF64UI( a ) ((a) & UINT64_C( 0x000FFFFFFFFFFFFF ))
  ------------------
 1373|      6|    signZ = signA ^ signB;
 1374|       |    /*------------------------------------------------------------------------
 1375|       |    *------------------------------------------------------------------------*/
 1376|      6|    if ( expA == 0x7FF ) {
  ------------------
  |  Branch (1376:10): [True: 0, False: 6]
  ------------------
 1377|      0|        if ( sigA ) goto propagateNaN;
  ------------------
  |  Branch (1377:14): [True: 0, False: 0]
  ------------------
 1378|      0|        if ( expB == 0x7FF ) {
  ------------------
  |  Branch (1378:14): [True: 0, False: 0]
  ------------------
 1379|      0|            if ( sigB ) goto propagateNaN;
  ------------------
  |  Branch (1379:18): [True: 0, False: 0]
  ------------------
 1380|      0|            goto invalid;
 1381|      0|        }
 1382|      0|        goto infinity;
 1383|      0|    }
 1384|      6|    if ( expB == 0x7FF ) {
  ------------------
  |  Branch (1384:10): [True: 0, False: 6]
  ------------------
 1385|      0|        if ( sigB ) goto propagateNaN;
  ------------------
  |  Branch (1385:14): [True: 0, False: 0]
  ------------------
 1386|      0|        goto zero;
 1387|      0|    }
 1388|       |    /*------------------------------------------------------------------------
 1389|       |    *------------------------------------------------------------------------*/
 1390|      6|    if ( ! expB ) {
  ------------------
  |  Branch (1390:10): [True: 0, False: 6]
  ------------------
 1391|      0|        if ( ! sigB ) {
  ------------------
  |  Branch (1391:14): [True: 0, False: 0]
  ------------------
 1392|      0|            if ( ! (expA | sigA) ) goto invalid;
  ------------------
  |  Branch (1392:18): [True: 0, False: 0]
  ------------------
 1393|      0|            raiseFlags( flag_infinite );
 1394|      0|            goto infinity;
 1395|      0|        }
 1396|      0|        normExpSig = softfloat_normSubnormalF64Sig( sigB );
 1397|      0|        expB = normExpSig.exp;
 1398|      0|        sigB = normExpSig.sig;
 1399|      0|    }
 1400|      6|    if ( ! expA ) {
  ------------------
  |  Branch (1400:10): [True: 0, False: 6]
  ------------------
 1401|      0|        if ( ! sigA ) goto zero;
  ------------------
  |  Branch (1401:14): [True: 0, False: 0]
  ------------------
 1402|      0|        normExpSig = softfloat_normSubnormalF64Sig( sigA );
 1403|      0|        expA = normExpSig.exp;
 1404|      0|        sigA = normExpSig.sig;
 1405|      0|    }
 1406|       |    /*------------------------------------------------------------------------
 1407|       |    *------------------------------------------------------------------------*/
 1408|      6|    expZ = expA - expB + 0x3FE;
 1409|      6|    sigA |= UINT64_C( 0x0010000000000000 );
 1410|      6|    sigB |= UINT64_C( 0x0010000000000000 );
 1411|      6|    if ( sigA < sigB ) {
  ------------------
  |  Branch (1411:10): [True: 2, False: 4]
  ------------------
 1412|      2|        --expZ;
 1413|      2|        sigA <<= 11;
 1414|      4|    } else {
 1415|      4|        sigA <<= 10;
 1416|      4|    }
 1417|      6|    sigB <<= 11;
 1418|      6|    recip32 = softfloat_approxRecip32_1( sigB>>32 ) - 2;
  ------------------
  |  |  556|      6|#define softfloat_approxRecip32_1( a ) ((uint32_t) (UINT64_C( 0x7FFFFFFFFFFFFFFF ) / (uint32_t) (a)))
  ------------------
 1419|      6|    sig32Z = ((uint32_t) (sigA>>32) * (uint_fast64_t) recip32)>>32;
 1420|      6|    doubleTerm = sig32Z<<1;
 1421|      6|    rem =
 1422|      6|        ((sigA - (uint_fast64_t) doubleTerm * (uint32_t) (sigB>>32))<<28)
 1423|      6|            - (uint_fast64_t) doubleTerm * ((uint32_t) sigB>>4);
 1424|      6|    q = (((uint32_t) (rem>>32) * (uint_fast64_t) recip32)>>32) + 4;
 1425|      6|    sigZ = ((uint_fast64_t) sig32Z<<32) + ((uint_fast64_t) q<<4);
 1426|       |    /*------------------------------------------------------------------------
 1427|       |    *------------------------------------------------------------------------*/
 1428|      6|    if ( (sigZ & 0x1FF) < 4<<4 ) {
  ------------------
  |  Branch (1428:10): [True: 4, False: 2]
  ------------------
 1429|      4|        q &= ~7;
 1430|      4|        sigZ &= ~(uint_fast64_t) 0x7F;
 1431|      4|        doubleTerm = q<<1;
 1432|      4|        rem =
 1433|      4|            ((rem - (uint_fast64_t) doubleTerm * (uint32_t) (sigB>>32))<<28)
 1434|      4|                - (uint_fast64_t) doubleTerm * ((uint32_t) sigB>>4);
 1435|      4|        if ( rem & UINT64_C( 0x8000000000000000 ) ) {
  ------------------
  |  Branch (1435:14): [True: 0, False: 4]
  ------------------
 1436|      0|            sigZ -= 1<<7;
 1437|      4|        } else {
 1438|      4|            if ( rem ) sigZ |= 1;
  ------------------
  |  Branch (1438:18): [True: 0, False: 4]
  ------------------
 1439|      4|        }
 1440|      4|    }
 1441|      6|    return softfloat_roundPackToF64( signZ, expZ, sigZ );
 1442|       |    /*------------------------------------------------------------------------
 1443|       |    *------------------------------------------------------------------------*/
 1444|      0| propagateNaN:
 1445|      0|    uiZ = softfloat_propagateNaNF64UI( uiA, uiB );
 1446|      0|    goto uiZ;
 1447|       |    /*------------------------------------------------------------------------
 1448|       |    *------------------------------------------------------------------------*/
 1449|      0| invalid:
 1450|      0|    raiseFlags( flag_invalid );
 1451|      0|    uiZ = defaultNaNF64UI;
  ------------------
  |  |  373|      0|#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
  ------------------
 1452|      0|    goto uiZ;
 1453|       |    /*------------------------------------------------------------------------
 1454|       |    *------------------------------------------------------------------------*/
 1455|      0| infinity:
 1456|      0|    uiZ = packToF64UI( signZ, 0x7FF, 0 );
  ------------------
  |  |  137|      0|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 1457|      0|    goto uiZ;
 1458|       |    /*------------------------------------------------------------------------
 1459|       |    *------------------------------------------------------------------------*/
 1460|      0| zero:
 1461|      0|    uiZ = packToF64UI( signZ, 0, 0 );
  ------------------
  |  |  137|      0|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 1462|      0| uiZ:
 1463|      0|    return float64_t::fromRaw(uiZ);
 1464|      0|}
softfloat.cpp:_ZN2cvL20softfloat_mul64To128Emm:
 2449|      2|{
 2450|      2|    uint32_t a32, a0, b32, b0;
 2451|      2|    struct uint128 z;
 2452|      2|    uint64_t mid1, mid;
 2453|       |
 2454|      2|    a32 = a>>32;
 2455|      2|    a0 = (uint32_t)a; //fixed warning on type cast
 2456|      2|    b32 = b>>32;
 2457|      2|    b0 = (uint32_t) b; //fixed warning on type cast
 2458|      2|    z.v0 = (uint_fast64_t) a0 * b0;
 2459|      2|    mid1 = (uint_fast64_t) a32 * b0;
 2460|      2|    mid = mid1 + (uint_fast64_t) a0 * b32;
 2461|      2|    z.v64 = (uint_fast64_t) a32 * b32;
 2462|      2|    z.v64 += (uint_fast64_t) (mid < mid1)<<32 | mid>>32;
 2463|      2|    mid <<= 32;
 2464|      2|    z.v0 += mid;
 2465|      2|    z.v64 += (z.v0 < mid);
 2466|      2|    return z;
 2467|      2|}
softfloat.cpp:_ZN2cvL7f64_mulENS_10softdoubleES0_:
 1531|      2|{
 1532|      2|    uint_fast64_t uiA;
 1533|      2|    bool signA;
 1534|      2|    int_fast16_t expA;
 1535|      2|    uint_fast64_t sigA;
 1536|      2|    uint_fast64_t uiB;
 1537|      2|    bool signB;
 1538|      2|    int_fast16_t expB;
 1539|      2|    uint_fast64_t sigB;
 1540|      2|    bool signZ;
 1541|      2|    uint_fast64_t magBits;
 1542|      2|    struct exp16_sig64 normExpSig;
 1543|      2|    int_fast16_t expZ;
 1544|      2|    struct uint128 sig128Z;
 1545|      2|    uint_fast64_t sigZ, uiZ;
 1546|       |
 1547|       |    /*------------------------------------------------------------------------
 1548|       |    *------------------------------------------------------------------------*/
 1549|      2|    uiA = a.v;
 1550|      2|    signA = signF64UI( uiA );
  ------------------
  |  |  134|      2|#define signF64UI( a ) (((uint64_t) (a)>>63) != 0)
  ------------------
 1551|      2|    expA  = expF64UI( uiA );
  ------------------
  |  |  135|      2|#define expF64UI( a ) ((int_fast16_t) ((a)>>52) & 0x7FF)
  ------------------
 1552|      2|    sigA  = fracF64UI( uiA );
  ------------------
  |  |  136|      2|#define fracF64UI( a ) ((a) & UINT64_C( 0x000FFFFFFFFFFFFF ))
  ------------------
 1553|      2|    uiB = b.v;
 1554|      2|    signB = signF64UI( uiB );
  ------------------
  |  |  134|      2|#define signF64UI( a ) (((uint64_t) (a)>>63) != 0)
  ------------------
 1555|      2|    expB  = expF64UI( uiB );
  ------------------
  |  |  135|      2|#define expF64UI( a ) ((int_fast16_t) ((a)>>52) & 0x7FF)
  ------------------
 1556|      2|    sigB  = fracF64UI( uiB );
  ------------------
  |  |  136|      2|#define fracF64UI( a ) ((a) & UINT64_C( 0x000FFFFFFFFFFFFF ))
  ------------------
 1557|      2|    signZ = signA ^ signB;
 1558|       |    /*------------------------------------------------------------------------
 1559|       |    *------------------------------------------------------------------------*/
 1560|      2|    if ( expA == 0x7FF ) {
  ------------------
  |  Branch (1560:10): [True: 0, False: 2]
  ------------------
 1561|      0|        if ( sigA || ((expB == 0x7FF) && sigB) ) goto propagateNaN;
  ------------------
  |  Branch (1561:14): [True: 0, False: 0]
  |  Branch (1561:23): [True: 0, False: 0]
  |  Branch (1561:42): [True: 0, False: 0]
  ------------------
 1562|      0|        magBits = expB | sigB;
 1563|      0|        goto infArg;
 1564|      0|    }
 1565|      2|    if ( expB == 0x7FF ) {
  ------------------
  |  Branch (1565:10): [True: 0, False: 2]
  ------------------
 1566|      0|        if ( sigB ) goto propagateNaN;
  ------------------
  |  Branch (1566:14): [True: 0, False: 0]
  ------------------
 1567|      0|        magBits = expA | sigA;
 1568|      0|        goto infArg;
 1569|      0|    }
 1570|       |    /*------------------------------------------------------------------------
 1571|       |    *------------------------------------------------------------------------*/
 1572|      2|    if ( ! expA ) {
  ------------------
  |  Branch (1572:10): [True: 0, False: 2]
  ------------------
 1573|      0|        if ( ! sigA ) goto zero;
  ------------------
  |  Branch (1573:14): [True: 0, False: 0]
  ------------------
 1574|      0|        normExpSig = softfloat_normSubnormalF64Sig( sigA );
 1575|      0|        expA = normExpSig.exp;
 1576|      0|        sigA = normExpSig.sig;
 1577|      0|    }
 1578|      2|    if ( ! expB ) {
  ------------------
  |  Branch (1578:10): [True: 0, False: 2]
  ------------------
 1579|      0|        if ( ! sigB ) goto zero;
  ------------------
  |  Branch (1579:14): [True: 0, False: 0]
  ------------------
 1580|      0|        normExpSig = softfloat_normSubnormalF64Sig( sigB );
 1581|      0|        expB = normExpSig.exp;
 1582|      0|        sigB = normExpSig.sig;
 1583|      0|    }
 1584|       |    /*------------------------------------------------------------------------
 1585|       |    *------------------------------------------------------------------------*/
 1586|      2|    expZ = expA + expB - 0x3FF;
 1587|      2|    sigA = (sigA | UINT64_C( 0x0010000000000000 ))<<10;
 1588|      2|    sigB = (sigB | UINT64_C( 0x0010000000000000 ))<<11;
 1589|      2|    sig128Z = softfloat_mul64To128( sigA, sigB );
 1590|      2|    sigZ = sig128Z.v64 | (sig128Z.v0 != 0);
 1591|       |
 1592|      2|    if ( sigZ < UINT64_C( 0x4000000000000000 ) ) {
  ------------------
  |  Branch (1592:10): [True: 2, False: 0]
  ------------------
 1593|      2|        --expZ;
 1594|      2|        sigZ <<= 1;
 1595|      2|    }
 1596|      2|    return softfloat_roundPackToF64( signZ, expZ, sigZ );
 1597|       |    /*------------------------------------------------------------------------
 1598|       |    *------------------------------------------------------------------------*/
 1599|      0| propagateNaN:
 1600|      0|    uiZ = softfloat_propagateNaNF64UI( uiA, uiB );
 1601|      0|    goto uiZ;
 1602|       |    /*------------------------------------------------------------------------
 1603|       |    *------------------------------------------------------------------------*/
 1604|      0| infArg:
 1605|      0|    if ( ! magBits ) {
  ------------------
  |  Branch (1605:10): [True: 0, False: 0]
  ------------------
 1606|      0|        raiseFlags( flag_invalid );
 1607|      0|        uiZ = defaultNaNF64UI;
  ------------------
  |  |  373|      0|#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
  ------------------
 1608|      0|    } else {
 1609|      0|        uiZ = packToF64UI( signZ, 0x7FF, 0 );
  ------------------
  |  |  137|      0|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 1610|      0|    }
 1611|      0|    goto uiZ;
 1612|       |    /*------------------------------------------------------------------------
 1613|       |    *------------------------------------------------------------------------*/
 1614|      0| zero:
 1615|      0|    uiZ = packToF64UI( signZ, 0, 0 );
  ------------------
  |  |  137|      0|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 1616|      0| uiZ:
 1617|      0|    return float64_t::fromRaw(uiZ);
 1618|      0|}
softfloat.cpp:_ZN2cvL10i32_to_f64Ei:
 2123|     10|{
 2124|     10|    uint_fast64_t uiZ;
 2125|     10|    bool sign;
 2126|     10|    uint_fast32_t absA;
 2127|     10|    int_fast8_t shiftDist;
 2128|       |
 2129|     10|    if ( ! a ) {
  ------------------
  |  Branch (2129:10): [True: 0, False: 10]
  ------------------
 2130|      0|        uiZ = 0;
 2131|     10|    } else {
 2132|     10|        sign = (a < 0);
 2133|       |        //fixed unsigned unary minus: -x == ~x + 1
 2134|     10|        absA = sign ? (~(uint_fast32_t) a + 1) : (uint_fast32_t) a;
  ------------------
  |  Branch (2134:16): [True: 0, False: 10]
  ------------------
 2135|     10|        shiftDist = softfloat_countLeadingZeros32( absA ) + 21;
 2136|     10|        uiZ =
 2137|     10|            packToF64UI(
  ------------------
  |  |  137|     10|#define packToF64UI( sign, exp, sig ) ((uint64_t) (((uint_fast64_t) (sign)<<63) + ((uint_fast64_t) (exp)<<52) + (sig)))
  ------------------
 2138|     10|                sign, 0x432 - shiftDist, (uint_fast64_t) absA<<shiftDist );
 2139|     10|    }
 2140|     10|    return float64_t::fromRaw(uiZ);
 2141|     10|}

_ZN2cv22getInitializationMutexEv:
   87|      6|{
   88|      6|    if (__initialization_mutex == NULL)
  ------------------
  |  Branch (88:9): [True: 2, False: 4]
  ------------------
   89|      2|    {
   90|      2|        (void)_initSystem();
   91|      2|        __initialization_mutex = new Mutex();
   92|      2|    }
   93|      6|    return *__initialization_mutex;
   94|      6|}
_ZN2cv9ExceptionC2EiRKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_S9_i:
  325|  14.6k|: code(_code), err(_err), func(_func), file(_file), line(_line)
  326|  14.6k|{
  327|  14.6k|    formatMessage();
  328|  14.6k|}
_ZN2cv9ExceptionD2Ev:
  330|  29.2k|Exception::~Exception() CV_NOEXCEPT {}
_ZNK2cv9Exception4whatEv:
  335|    947|const char* Exception::what() const CV_NOEXCEPT { return msg.c_str(); }
_ZN2cv9Exception13formatMessageEv:
  338|  14.6k|{
  339|  14.6k|    size_t pos = err.find('\n');
  340|  14.6k|    bool multiline = pos != cv::String::npos;
  341|  14.6k|    if (multiline)
  ------------------
  |  Branch (341:9): [True: 1.66k, False: 12.9k]
  ------------------
  342|  1.66k|    {
  343|  1.66k|        std::stringstream ss;
  344|  1.66k|        size_t prev_pos = 0;
  345|  6.89k|        while (pos != cv::String::npos)
  ------------------
  |  Branch (345:16): [True: 5.22k, False: 1.66k]
  ------------------
  346|  5.22k|        {
  347|  5.22k|           ss << "> " << err.substr(prev_pos, pos - prev_pos) << std::endl;
  348|  5.22k|           prev_pos = pos + 1;
  349|  5.22k|           pos = err.find('\n', prev_pos);
  350|  5.22k|        }
  351|  1.66k|        ss << "> " << err.substr(prev_pos);
  352|  1.66k|        if (err[err.size() - 1] != '\n')
  ------------------
  |  Branch (352:13): [True: 1.64k, False: 22]
  ------------------
  353|  1.64k|            ss << std::endl;
  354|  1.66k|        err = ss.str();
  355|  1.66k|    }
  356|  14.6k|    if (func.size() > 0)
  ------------------
  |  Branch (356:9): [True: 14.6k, False: 0]
  ------------------
  357|  14.6k|    {
  358|  14.6k|        if (multiline)
  ------------------
  |  Branch (358:13): [True: 1.66k, False: 12.9k]
  ------------------
  359|  1.66k|            msg = format("OpenCV(%s) %s:%d: error: (%d:%s) in function '%s'\n%s", CV_VERSION, file.c_str(), line, code, cvErrorStr(code), func.c_str(), err.c_str());
  ------------------
  |  |   19|  1.66k|#define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   14|  1.66k|#define CVAUX_STR(__A)      CVAUX_STR_EXP(__A)
  |  |  |  |  ------------------
  |  |  |  |  |  |   13|  1.66k|#define CVAUX_STR_EXP(__A)  #__A
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   11|  1.66k|#define CV_VERSION_STATUS   "-dev"
  |  |  ------------------
  ------------------
  360|  12.9k|        else
  361|  12.9k|            msg = format("OpenCV(%s) %s:%d: error: (%d:%s) %s in function '%s'\n", CV_VERSION, file.c_str(), line, code, cvErrorStr(code), err.c_str(), func.c_str());
  ------------------
  |  |   19|  12.9k|#define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   14|  12.9k|#define CVAUX_STR(__A)      CVAUX_STR_EXP(__A)
  |  |  |  |  ------------------
  |  |  |  |  |  |   13|  12.9k|#define CVAUX_STR_EXP(__A)  #__A
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   11|  12.9k|#define CV_VERSION_STATUS   "-dev"
  |  |  ------------------
  ------------------
  362|  14.6k|    }
  363|      0|    else
  364|      0|    {
  365|      0|        msg = format("OpenCV(%s) %s:%d: error: (%d:%s) %s%s", CV_VERSION, file.c_str(), line, code, cvErrorStr(code), err.c_str(), multiline ? "" : "\n");
  ------------------
  |  |   19|      0|#define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   14|      0|#define CVAUX_STR(__A)      CVAUX_STR_EXP(__A)
  |  |  |  |  ------------------
  |  |  |  |  |  |   13|      0|#define CVAUX_STR_EXP(__A)  #__A
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS
  |  |  ------------------
  |  |  |  |   11|      0|#define CV_VERSION_STATUS   "-dev"
  |  |  ------------------
  ------------------
  |  Branch (365:132): [True: 0, False: 0]
  ------------------
  366|      0|    }
  367|  14.6k|}
_ZN2cv12getTickCountEv:
  909|    951|{
  910|    951|    std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
  911|    951|    return (int64)now.time_since_epoch().count();
  912|    951|}
_ZN2cv16getTickFrequencyEv:
  915|      2|{
  916|      2|    using clock_period_t = std::chrono::steady_clock::duration::period;
  917|      2|    double clock_freq = clock_period_t::den / clock_period_t::num;
  918|      2|    return clock_freq;
  919|      2|}
_ZN2cv14getTimestampNSEv:
 1026|    949|{
 1027|    949|    return internal::Timestamp::getInstance().getTimestamp();
 1028|    949|}
_ZN2cv6formatEPKcz:
 1048|  15.5k|{
 1049|  15.5k|    AutoBuffer<char, 1024> buf;
 1050|       |
 1051|  15.5k|    for ( ; ; )
 1052|  15.5k|    {
 1053|  15.5k|        va_list va;
 1054|  15.5k|        va_start(va, fmt);
 1055|  15.5k|        int bsize = static_cast<int>(buf.size());
 1056|  15.5k|        int len = cv_vsnprintf(buf.data(), bsize, fmt, va);
 1057|  15.5k|        va_end(va);
 1058|       |
 1059|  15.5k|        CV_Assert(len >= 0 && "Check format string for errors");
  ------------------
  |  |  423|  31.1k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 15.5k, False: 0]
  |  |  |  Branch (423:38): [Folded - Ignored]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1060|  15.5k|        if (len >= bsize)
  ------------------
  |  Branch (1060:13): [True: 0, False: 15.5k]
  ------------------
 1061|      0|        {
 1062|      0|            buf.resize(len + 1);
 1063|      0|            continue;
 1064|      0|        }
 1065|  15.5k|        buf[bsize - 1] = 0;
 1066|  15.5k|        return String(buf.data(), len);
 1067|  15.5k|    }
 1068|  15.5k|}
_ZN2cv12cv_vsnprintfEPciPKcP13__va_list_tag:
 1185|  15.5k|{
 1186|       |#if defined _MSC_VER
 1187|       |    if (len <= 0) return len == 0 ? 1024 : -1;
 1188|       |    int res = _vsnprintf_s(buf, len, _TRUNCATE, fmt, args);
 1189|       |    // ensure null terminating on VS
 1190|       |    if (res >= 0 && res < len)
 1191|       |    {
 1192|       |        buf[res] = 0;
 1193|       |        return res;
 1194|       |    }
 1195|       |    else
 1196|       |    {
 1197|       |        buf[len - 1] = 0; // truncate happened
 1198|       |        return res >= len ? res : (len * 2);
 1199|       |    }
 1200|       |#else
 1201|  15.5k|    return vsnprintf(buf, len, fmt, args);
 1202|  15.5k|#endif
 1203|  15.5k|}
_ZN2cv5errorERKNS_9ExceptionE:
 1247|  14.6k|{
 1248|       |#ifdef CV_ERROR_SET_TERMINATE_HANDLER
 1249|       |    {
 1250|       |        cv::AutoLock lock(getInitializationMutex());
 1251|       |        if (!cv_terminate_handler_installed)
 1252|       |        {
 1253|       |            if (param_setupTerminateHandler)
 1254|       |                cv_old_terminate_handler = std::set_terminate(cv_terminate_handler);
 1255|       |            cv_terminate_handler_installed = true;
 1256|       |        }
 1257|       |        cv_terminate_handler_exception = exc;
 1258|       |    }
 1259|       |#endif
 1260|       |
 1261|  14.6k|    if (customErrorCallback != 0)
  ------------------
  |  Branch (1261:9): [True: 0, False: 14.6k]
  ------------------
 1262|      0|        customErrorCallback(exc.code, exc.func.c_str(), exc.err.c_str(),
 1263|      0|                            exc.file.c_str(), exc.line, customErrorCallbackData);
 1264|  14.6k|    else if (param_dumpErrors)
  ------------------
  |  Branch (1264:14): [True: 0, False: 14.6k]
  ------------------
 1265|      0|    {
 1266|      0|        dumpException(exc);
 1267|      0|    }
 1268|       |
 1269|  14.6k|    if(breakOnError)
  ------------------
  |  Branch (1269:8): [True: 0, False: 14.6k]
  ------------------
 1270|      0|    {
 1271|      0|        static volatile int* p = 0;
 1272|      0|        *p = 0;
 1273|      0|    }
 1274|       |
 1275|  14.6k|    throw exc;
 1276|  14.6k|#ifdef __GNUC__
 1277|       |# if !defined __clang__ && !defined __APPLE__
 1278|       |    // this suppresses this warning: "noreturn" function does return [enabled by default]
 1279|       |    __builtin_trap();
 1280|       |    // or use infinite loop: for (;;) {}
 1281|       |# endif
 1282|  14.6k|#endif
 1283|  14.6k|}
_ZN2cv5errorEiRKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKcSA_i:
 1286|  14.6k|{
 1287|  14.6k|    error(cv::Exception(_code, _err, _func, _file, _line));
 1288|  14.6k|#ifdef __GNUC__
 1289|       |# if !defined __clang__ && !defined __APPLE__
 1290|       |    // this suppresses this warning: "noreturn" function does return [enabled by default]
 1291|       |    __builtin_trap();
 1292|       |    // or use infinite loop: for (;;) {}
 1293|       |# endif
 1294|  14.6k|#endif
 1295|  14.6k|}
cvErrorStr:
 1380|  14.6k|{
 1381|  14.6k|    static char buf[256];
 1382|       |
 1383|  14.6k|    switch (status)
  ------------------
  |  Branch (1383:13): [True: 0, False: 14.6k]
  ------------------
 1384|  14.6k|    {
 1385|      0|    case cv::Error::StsOk :                  return "No Error";
  ------------------
  |  Branch (1385:5): [True: 0, False: 14.6k]
  ------------------
 1386|      0|    case cv::Error::StsBackTrace :           return "Backtrace";
  ------------------
  |  Branch (1386:5): [True: 0, False: 14.6k]
  ------------------
 1387|  13.9k|    case cv::Error::StsError :               return "Unspecified error";
  ------------------
  |  Branch (1387:5): [True: 13.9k, False: 682]
  ------------------
 1388|      0|    case cv::Error::StsInternal :            return "Internal error";
  ------------------
  |  Branch (1388:5): [True: 0, False: 14.6k]
  ------------------
 1389|      0|    case cv::Error::StsNoMem :               return "Insufficient memory";
  ------------------
  |  Branch (1389:5): [True: 0, False: 14.6k]
  ------------------
 1390|     28|    case cv::Error::StsBadArg :              return "Bad argument";
  ------------------
  |  Branch (1390:5): [True: 28, False: 14.5k]
  ------------------
 1391|      0|    case cv::Error::StsNoConv :              return "Iterations do not converge";
  ------------------
  |  Branch (1391:5): [True: 0, False: 14.6k]
  ------------------
 1392|      0|    case cv::Error::StsAutoTrace :           return "Autotrace call";
  ------------------
  |  Branch (1392:5): [True: 0, False: 14.6k]
  ------------------
 1393|      0|    case cv::Error::StsBadSize :             return "Incorrect size of input array";
  ------------------
  |  Branch (1393:5): [True: 0, False: 14.6k]
  ------------------
 1394|      0|    case cv::Error::StsNullPtr :             return "Null pointer";
  ------------------
  |  Branch (1394:5): [True: 0, False: 14.6k]
  ------------------
 1395|      0|    case cv::Error::StsDivByZero :           return "Division by zero occurred";
  ------------------
  |  Branch (1395:5): [True: 0, False: 14.6k]
  ------------------
 1396|      0|    case cv::Error::BadStep :                return "Image step is wrong";
  ------------------
  |  Branch (1396:5): [True: 0, False: 14.6k]
  ------------------
 1397|      0|    case cv::Error::StsInplaceNotSupported : return "Inplace operation is not supported";
  ------------------
  |  Branch (1397:5): [True: 0, False: 14.6k]
  ------------------
 1398|      0|    case cv::Error::StsObjectNotFound :      return "Requested object was not found";
  ------------------
  |  Branch (1398:5): [True: 0, False: 14.6k]
  ------------------
 1399|      0|    case cv::Error::BadDepth :               return "Input image depth is not supported by function";
  ------------------
  |  Branch (1399:5): [True: 0, False: 14.6k]
  ------------------
 1400|      0|    case cv::Error::StsUnmatchedFormats :    return "Formats of input arguments do not match";
  ------------------
  |  Branch (1400:5): [True: 0, False: 14.6k]
  ------------------
 1401|      0|    case cv::Error::StsUnmatchedSizes :      return "Sizes of input arguments do not match";
  ------------------
  |  Branch (1401:5): [True: 0, False: 14.6k]
  ------------------
 1402|      0|    case cv::Error::StsOutOfRange :          return "One of the arguments\' values is out of range";
  ------------------
  |  Branch (1402:5): [True: 0, False: 14.6k]
  ------------------
 1403|      0|    case cv::Error::StsUnsupportedFormat :   return "Unsupported format or combination of formats";
  ------------------
  |  Branch (1403:5): [True: 0, False: 14.6k]
  ------------------
 1404|      0|    case cv::Error::BadCOI :                 return "Input COI is not supported";
  ------------------
  |  Branch (1404:5): [True: 0, False: 14.6k]
  ------------------
 1405|      0|    case cv::Error::BadNumChannels :         return "Bad number of channels";
  ------------------
  |  Branch (1405:5): [True: 0, False: 14.6k]
  ------------------
 1406|      0|    case cv::Error::StsBadFlag :             return "Bad flag (parameter or structure field)";
  ------------------
  |  Branch (1406:5): [True: 0, False: 14.6k]
  ------------------
 1407|      0|    case cv::Error::StsBadPoint :            return "Bad parameter of type CvPoint";
  ------------------
  |  Branch (1407:5): [True: 0, False: 14.6k]
  ------------------
 1408|      0|    case cv::Error::StsBadMask :             return "Bad type of mask argument";
  ------------------
  |  Branch (1408:5): [True: 0, False: 14.6k]
  ------------------
 1409|     82|    case cv::Error::StsParseError :          return "Parsing error";
  ------------------
  |  Branch (1409:5): [True: 82, False: 14.5k]
  ------------------
 1410|      0|    case cv::Error::StsNotImplemented :      return "The function/feature is not implemented";
  ------------------
  |  Branch (1410:5): [True: 0, False: 14.6k]
  ------------------
 1411|      0|    case cv::Error::StsBadMemBlock :         return "Memory block has been corrupted";
  ------------------
  |  Branch (1411:5): [True: 0, False: 14.6k]
  ------------------
 1412|    572|    case cv::Error::StsAssert :              return "Assertion failed";
  ------------------
  |  Branch (1412:5): [True: 572, False: 14.0k]
  ------------------
 1413|      0|    case cv::Error::GpuNotSupported :        return "No CUDA support";
  ------------------
  |  Branch (1413:5): [True: 0, False: 14.6k]
  ------------------
 1414|      0|    case cv::Error::GpuApiCallError :        return "Gpu API call";
  ------------------
  |  Branch (1414:5): [True: 0, False: 14.6k]
  ------------------
 1415|      0|    case cv::Error::OpenGlNotSupported :     return "No OpenGL support";
  ------------------
  |  Branch (1415:5): [True: 0, False: 14.6k]
  ------------------
 1416|      0|    case cv::Error::OpenGlApiCallError :     return "OpenGL API call";
  ------------------
  |  Branch (1416:5): [True: 0, False: 14.6k]
  ------------------
 1417|  14.6k|    };
 1418|       |
 1419|      0|    snprintf(buf, sizeof(buf), "Unknown %s code %d", status >= 0 ? "status":"error", status);
  ------------------
  |  Branch (1419:54): [True: 0, False: 0]
  ------------------
 1420|      0|    return buf;
 1421|  14.6k|}
_ZN2cv7details14TlsAbstractionC2Ev:
 1621|      2|    : disposed(false)
 1622|      2|{
 1623|      2|    CV_Assert(pthread_key_create(&tlsKey, opencv_tls_destructor) == 0);
  ------------------
  |  |  423|      2|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 2, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1624|      2|}
_ZNK2cv7details14TlsAbstraction7getDataEv:
 1637|    948|{
 1638|    948|    if (disposed)
  ------------------
  |  Branch (1638:9): [True: 0, False: 948]
  ------------------
 1639|      0|        return NULL;
 1640|    948|    return pthread_getspecific(tlsKey);
 1641|    948|}
_ZN2cv7details14TlsAbstraction7setDataEPv:
 1643|      1|{
 1644|      1|    if (disposed)
  ------------------
  |  Branch (1644:9): [True: 0, False: 1]
  ------------------
 1645|      0|        return;  // no-op
 1646|      1|    CV_Assert(pthread_setspecific(tlsKey, pData) == 0);
  ------------------
  |  |  423|      1|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 1, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1647|      1|}
_ZN2cv16TLSDataContainerC2Ev:
 2037|      3|{
 2038|      3|    key_ = (int)getTlsStorage().reserveSlot(this); // Reserve key from TLS storage
 2039|      3|}
_ZNK2cv16TLSDataContainer7getDataEv:
 2076|    947|{
 2077|    947|    CV_Assert(key_ != -1 && "Can't fetch data from terminated TLS container.");
  ------------------
  |  |  423|  1.89k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 947, False: 0]
  |  |  |  Branch (423:38): [Folded - Ignored]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2078|    947|    void* pData = getTlsStorage().getData(key_); // Check if data was already allocated
 2079|    947|    if(!pData)
  ------------------
  |  Branch (2079:8): [True: 1, False: 946]
  ------------------
 2080|      1|    {
 2081|       |        // Create new data instance and save it to TLS storage
 2082|      1|        pData = createDataInstance();
 2083|      1|        try
 2084|      1|        {
 2085|      1|            getTlsStorage().setData(key_, pData);
 2086|      1|        }
 2087|      1|        catch (...)
 2088|      1|        {
 2089|      0|            deleteDataInstance(pData);
 2090|      0|            throw;
 2091|      0|        }
 2092|      1|    }
 2093|    947|    return pData;
 2094|    947|}
_ZN2cv5utils11getThreadIDEv:
 2165|    947|int utils::getThreadID() { return getThreadIDTLS().get()->id; }
_ZN2cv5utils29getConfigurationParameterBoolEPKcb:
 2273|     35|{
 2274|     35|    return read<bool>(name, defaultValue);
 2275|     35|}
_ZN2cv5utils30getConfigurationParameterSizeTEPKcm:
 2278|     20|{
 2279|     20|    return read<size_t>(name, defaultValue);
 2280|     20|}
_ZN2cv5utils31getConfigurationParameterStringEPKcRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
 2283|      4|{
 2284|      4|    return read<cv::String>(name, defaultValue);
 2285|      4|}
_ZN2cv7details24setFPDenormalsIgnoreHintEbRNS0_20FPDenormalsModeStateE:
 2825|  17.9k|{
 2826|  17.9k|#if OPENCV_IMPL_FP_HINTS_X86
 2827|  17.9k|    unsigned mask = _MM_FLUSH_ZERO_MASK;
 2828|  17.9k|    unsigned value = ignore ? _MM_FLUSH_ZERO_ON : 0;
  ------------------
  |  Branch (2828:22): [True: 17.9k, False: 0]
  ------------------
 2829|  17.9k|    if (featuresEnabled.have[CPU_SSE3])
  ------------------
  |  Branch (2829:9): [True: 17.9k, False: 0]
  ------------------
 2830|  17.9k|    {
 2831|  17.9k|        mask |= _MM_DENORMALS_ZERO_MASK;
 2832|  17.9k|        value |= ignore ? _MM_DENORMALS_ZERO_ON : 0;
  ------------------
  |  Branch (2832:18): [True: 17.9k, False: 0]
  ------------------
 2833|  17.9k|    }
 2834|  17.9k|    const unsigned old_flags = _mm_getcsr();
 2835|  17.9k|    const unsigned old_value = old_flags & mask;
 2836|  17.9k|    unsigned flags = (old_flags & ~mask) | value;
 2837|  17.9k|    CV_LOG_DEBUG(NULL, "core: update FP mxcsr flags = " << cv::format("0x%08x", flags));
 2838|       |    // save state
 2839|  17.9k|    state.reserved[0] = (uint32_t)mask;
 2840|  17.9k|    state.reserved[1] = (uint32_t)old_value;
 2841|  17.9k|    _mm_setcsr(flags);
 2842|       |#else
 2843|       |    CV_UNUSED(ignore); CV_UNUSED(state);
 2844|       |#endif
 2845|  17.9k|}
_ZN2cv7details23restoreFPDenormalsStateERKNS0_20FPDenormalsModeStateE:
 2868|  17.9k|{
 2869|  17.9k|#if OPENCV_IMPL_FP_HINTS_X86
 2870|  17.9k|    const unsigned mask = (unsigned)state.reserved[0];
 2871|  17.9k|    CV_DbgAssert(mask != 0); // invalid state (ensure that state is properly saved earlier)
 2872|  17.9k|    const unsigned value = (unsigned)state.reserved[1];
 2873|  17.9k|    CV_DbgCheck((int)value, value == (value & mask), "invalid SSE FP state");
  ------------------
  |  |  162|  17.9k|#define CV_DbgCheck(v, test_expr, msg)  do { } while (0)
  |  |  ------------------
  |  |  |  Branch (162:55): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2874|  17.9k|    const unsigned old_flags = _mm_getcsr();
 2875|  17.9k|    unsigned flags = (old_flags & ~mask) | value;
 2876|  17.9k|    CV_LOG_DEBUG(NULL, "core: restore FP mxcsr flags = " << cv::format("0x%08x", flags));
 2877|  17.9k|    _mm_setcsr(flags);
 2878|  17.9k|    return true;
 2879|       |#else
 2880|       |    CV_UNUSED(state);
 2881|       |    return false;
 2882|       |#endif
 2883|  17.9k|}
system.cpp:_ZN2cvL11_initSystemEv:
   74|      2|{
   75|       |#ifdef __ANDROID__
   76|       |    // https://github.com/opencv/opencv/issues/14906
   77|       |    // "ios_base::Init" object is not a part of Android's "iostream" header (in case of clang toolchain, NDK 20).
   78|       |    // Ref1: https://en.cppreference.com/w/cpp/io/ios_base/Init
   79|       |    //       The header <iostream> behaves as if it defines (directly or indirectly) an instance of std::ios_base::Init with static storage duration
   80|       |    // Ref2: https://github.com/gcc-mirror/gcc/blob/gcc-8-branch/libstdc%2B%2B-v3/include/std/iostream#L73-L74
   81|       |    static std::ios_base::Init s_iostream_initializer;
   82|       |#endif
   83|      2|}
_ZN2cv10HWFeaturesC2Eb:
  386|      4|    {
  387|      4|        if (run_initialize)
  ------------------
  |  Branch (387:13): [True: 2, False: 2]
  ------------------
  388|      2|            initialize();
  389|      4|    }
_ZN2cv10HWFeatures10initializeEv:
  452|      2|    {
  453|      2|        if (utils::getConfigurationParameterBool("OPENCV_DUMP_CONFIG"))
  ------------------
  |  Branch (453:13): [True: 0, False: 2]
  ------------------
  454|      0|        {
  455|      0|            fprintf(stderr, "\nOpenCV build configuration is:\n%s\n",
  456|      0|                cv::getBuildInformation().c_str());
  457|      0|        }
  458|       |
  459|      2|        initializeNames();
  460|       |
  461|      2|    #ifdef CV_CPUID_X86
  462|      2|        int cpuid_data[4] = { 0, 0, 0, 0 };
  463|      2|        int cpuid_data_ex[4] = { 0, 0, 0, 0 };
  464|       |
  465|      2|        CV_CPUID_X86(cpuid_data, 1, 0/*unused*/);
  ------------------
  |  |  313|      2|    #define CV_CPUID_X86 cv_cpuid
  ------------------
  466|       |
  467|      2|        int x86_family = (cpuid_data[0] >> 8) & 15;
  468|      2|        if( x86_family >= 6 )
  ------------------
  |  Branch (468:13): [True: 2, False: 0]
  ------------------
  469|      2|        {
  470|      2|            have[CV_CPU_MMX]    = (cpuid_data[3] & (1<<23)) != 0;
  ------------------
  |  |  248|      2|#define CV_CPU_MMX              1
  ------------------
  471|      2|            have[CV_CPU_SSE]    = (cpuid_data[3] & (1<<25)) != 0;
  ------------------
  |  |  249|      2|#define CV_CPU_SSE              2
  ------------------
  472|      2|            have[CV_CPU_SSE2]   = (cpuid_data[3] & (1<<26)) != 0;
  ------------------
  |  |  250|      2|#define CV_CPU_SSE2             3
  ------------------
  473|      2|            have[CV_CPU_SSE3]   = (cpuid_data[2] & (1<<0)) != 0;
  ------------------
  |  |  251|      2|#define CV_CPU_SSE3             4
  ------------------
  474|      2|            have[CV_CPU_SSSE3]  = (cpuid_data[2] & (1<<9)) != 0;
  ------------------
  |  |  252|      2|#define CV_CPU_SSSE3            5
  ------------------
  475|      2|            have[CV_CPU_FMA3]   = (cpuid_data[2] & (1<<12)) != 0;
  ------------------
  |  |  259|      2|#define CV_CPU_FMA3             12
  ------------------
  476|      2|            have[CV_CPU_SSE4_1] = (cpuid_data[2] & (1<<19)) != 0;
  ------------------
  |  |  253|      2|#define CV_CPU_SSE4_1           6
  ------------------
  477|      2|            have[CV_CPU_SSE4_2] = (cpuid_data[2] & (1<<20)) != 0;
  ------------------
  |  |  254|      2|#define CV_CPU_SSE4_2           7
  ------------------
  478|      2|            have[CV_CPU_POPCNT] = (cpuid_data[2] & (1<<23)) != 0;
  ------------------
  |  |  255|      2|#define CV_CPU_POPCNT           8
  ------------------
  479|      2|            have[CV_CPU_AVX]    = (cpuid_data[2] & (1<<28)) != 0;
  ------------------
  |  |  257|      2|#define CV_CPU_AVX              10
  ------------------
  480|      2|            have[CV_CPU_FP16]   = (cpuid_data[2] & (1<<29)) != 0;
  ------------------
  |  |  256|      2|#define CV_CPU_FP16             9
  ------------------
  481|       |
  482|       |            // make the second call to the cpuid command in order to get
  483|       |            // information about extended features like AVX2
  484|      2|            CV_CPUID_X86(cpuid_data_ex, 7, 0);
  ------------------
  |  |  313|      2|    #define CV_CPUID_X86 cv_cpuid
  ------------------
  485|       |
  486|      2|            have[CV_CPU_AVX2]   = (cpuid_data_ex[1] & (1<<5)) != 0;
  ------------------
  |  |  258|      2|#define CV_CPU_AVX2             11
  ------------------
  487|       |
  488|      2|            have[CV_CPU_AVX_512F]         = (cpuid_data_ex[1] & (1<<16)) != 0;
  ------------------
  |  |  261|      2|#define CV_CPU_AVX_512F         13
  ------------------
  489|      2|            have[CV_CPU_AVX_512DQ]        = (cpuid_data_ex[1] & (1<<17)) != 0;
  ------------------
  |  |  264|      2|#define CV_CPU_AVX_512DQ        16
  ------------------
  490|      2|            have[CV_CPU_AVX_512IFMA]      = (cpuid_data_ex[1] & (1<<21)) != 0;
  ------------------
  |  |  267|      2|#define CV_CPU_AVX_512IFMA      18
  ------------------
  491|      2|            have[CV_CPU_AVX_512PF]        = (cpuid_data_ex[1] & (1<<26)) != 0;
  ------------------
  |  |  268|      2|#define CV_CPU_AVX_512PF        19
  ------------------
  492|      2|            have[CV_CPU_AVX_512ER]        = (cpuid_data_ex[1] & (1<<27)) != 0;
  ------------------
  |  |  265|      2|#define CV_CPU_AVX_512ER        17
  ------------------
  493|      2|            have[CV_CPU_AVX_512CD]        = (cpuid_data_ex[1] & (1<<28)) != 0;
  ------------------
  |  |  263|      2|#define CV_CPU_AVX_512CD        15
  ------------------
  494|      2|            have[CV_CPU_AVX_512BW]        = (cpuid_data_ex[1] & (1<<30)) != 0;
  ------------------
  |  |  262|      2|#define CV_CPU_AVX_512BW        14
  ------------------
  495|      2|            have[CV_CPU_AVX_512VL]        = (cpuid_data_ex[1] & (1<<31)) != 0;
  ------------------
  |  |  270|      2|#define CV_CPU_AVX_512VL        21
  ------------------
  496|      2|            have[CV_CPU_AVX_512VBMI]      = (cpuid_data_ex[2] & (1<<1))  != 0;
  ------------------
  |  |  269|      2|#define CV_CPU_AVX_512VBMI      20
  ------------------
  497|      2|            have[CV_CPU_AVX_512VBMI2]     = (cpuid_data_ex[2] & (1<<6))  != 0;
  ------------------
  |  |  271|      2|#define CV_CPU_AVX_512VBMI2     22
  ------------------
  498|      2|            have[CV_CPU_AVX_512VNNI]      = (cpuid_data_ex[2] & (1<<11)) != 0;
  ------------------
  |  |  272|      2|#define CV_CPU_AVX_512VNNI      23
  ------------------
  499|      2|            have[CV_CPU_AVX_512BITALG]    = (cpuid_data_ex[2] & (1<<12)) != 0;
  ------------------
  |  |  273|      2|#define CV_CPU_AVX_512BITALG    24
  ------------------
  500|      2|            have[CV_CPU_AVX_512VPOPCNTDQ] = (cpuid_data_ex[2] & (1<<14)) != 0;
  ------------------
  |  |  274|      2|#define CV_CPU_AVX_512VPOPCNTDQ 25
  ------------------
  501|      2|            have[CV_CPU_AVX_5124VNNIW]    = (cpuid_data_ex[3] & (1<<2))  != 0;
  ------------------
  |  |  275|      2|#define CV_CPU_AVX_5124VNNIW    26
  ------------------
  502|      2|            have[CV_CPU_AVX_5124FMAPS]    = (cpuid_data_ex[3] & (1<<3))  != 0;
  ------------------
  |  |  276|      2|#define CV_CPU_AVX_5124FMAPS    27
  ------------------
  503|       |
  504|      2|            bool have_AVX_OS_support = true;
  505|      2|            bool have_AVX512_OS_support = true;
  506|      2|            if (!(cpuid_data[2] & (1<<27)))
  ------------------
  |  Branch (506:17): [True: 0, False: 2]
  ------------------
  507|      0|                have_AVX_OS_support = false; // OS uses XSAVE_XRSTORE and CPU support AVX
  508|      2|            else
  509|      2|            {
  510|      2|                int xcr0 = 0;
  511|       |            #ifdef _XCR_XFEATURE_ENABLED_MASK // requires immintrin.h
  512|       |                xcr0 = (int)_xgetbv(_XCR_XFEATURE_ENABLED_MASK);
  513|       |            #elif defined __GNUC__ && (defined __i386__ || defined __x86_64__)
  514|       |                __asm__ ("xgetbv\n\t" : "=a" (xcr0) : "c" (0) : "%edx" );
  515|      2|            #endif
  516|      2|                if ((xcr0 & 0x6) != 0x6)
  ------------------
  |  Branch (516:21): [True: 0, False: 2]
  ------------------
  517|      0|                    have_AVX_OS_support = false; // YMM registers
  518|      2|                if ((xcr0 & 0xe6) != 0xe6)
  ------------------
  |  Branch (518:21): [True: 2, False: 0]
  ------------------
  519|      2|                    have_AVX512_OS_support = false; // ZMM registers
  520|      2|            }
  521|       |
  522|      2|            if (!have_AVX_OS_support)
  ------------------
  |  Branch (522:17): [True: 0, False: 2]
  ------------------
  523|      0|            {
  524|      0|                have[CV_CPU_AVX] = false;
  ------------------
  |  |  257|      0|#define CV_CPU_AVX              10
  ------------------
  525|      0|                have[CV_CPU_FP16] = false;
  ------------------
  |  |  256|      0|#define CV_CPU_FP16             9
  ------------------
  526|      0|                have[CV_CPU_AVX2] = false;
  ------------------
  |  |  258|      0|#define CV_CPU_AVX2             11
  ------------------
  527|      0|                have[CV_CPU_FMA3] = false;
  ------------------
  |  |  259|      0|#define CV_CPU_FMA3             12
  ------------------
  528|      0|            }
  529|      2|            if (!have_AVX_OS_support || !have_AVX512_OS_support)
  ------------------
  |  Branch (529:17): [True: 0, False: 2]
  |  Branch (529:41): [True: 2, False: 0]
  ------------------
  530|      2|            {
  531|      2|                have[CV_CPU_AVX_512F] = false;
  ------------------
  |  |  261|      2|#define CV_CPU_AVX_512F         13
  ------------------
  532|      2|                have[CV_CPU_AVX_512BW] = false;
  ------------------
  |  |  262|      2|#define CV_CPU_AVX_512BW        14
  ------------------
  533|      2|                have[CV_CPU_AVX_512CD] = false;
  ------------------
  |  |  263|      2|#define CV_CPU_AVX_512CD        15
  ------------------
  534|      2|                have[CV_CPU_AVX_512DQ] = false;
  ------------------
  |  |  264|      2|#define CV_CPU_AVX_512DQ        16
  ------------------
  535|      2|                have[CV_CPU_AVX_512ER] = false;
  ------------------
  |  |  265|      2|#define CV_CPU_AVX_512ER        17
  ------------------
  536|      2|                have[CV_CPU_AVX_512IFMA] = false;
  ------------------
  |  |  267|      2|#define CV_CPU_AVX_512IFMA      18
  ------------------
  537|      2|                have[CV_CPU_AVX_512PF] = false;
  ------------------
  |  |  268|      2|#define CV_CPU_AVX_512PF        19
  ------------------
  538|      2|                have[CV_CPU_AVX_512VBMI] = false;
  ------------------
  |  |  269|      2|#define CV_CPU_AVX_512VBMI      20
  ------------------
  539|      2|                have[CV_CPU_AVX_512VL] = false;
  ------------------
  |  |  270|      2|#define CV_CPU_AVX_512VL        21
  ------------------
  540|      2|                have[CV_CPU_AVX_512VBMI2] = false;
  ------------------
  |  |  271|      2|#define CV_CPU_AVX_512VBMI2     22
  ------------------
  541|      2|                have[CV_CPU_AVX_512VNNI] = false;
  ------------------
  |  |  272|      2|#define CV_CPU_AVX_512VNNI      23
  ------------------
  542|      2|                have[CV_CPU_AVX_512BITALG] = false;
  ------------------
  |  |  273|      2|#define CV_CPU_AVX_512BITALG    24
  ------------------
  543|      2|                have[CV_CPU_AVX_512VPOPCNTDQ] = false;
  ------------------
  |  |  274|      2|#define CV_CPU_AVX_512VPOPCNTDQ 25
  ------------------
  544|      2|                have[CV_CPU_AVX_5124VNNIW] = false;
  ------------------
  |  |  275|      2|#define CV_CPU_AVX_5124VNNIW    26
  ------------------
  545|      2|                have[CV_CPU_AVX_5124FMAPS] = false;
  ------------------
  |  |  276|      2|#define CV_CPU_AVX_5124FMAPS    27
  ------------------
  546|      2|            }
  547|       |
  548|      2|            have[CV_CPU_AVX512_COMMON] = have[CV_CPU_AVX_512F] && have[CV_CPU_AVX_512CD];
  ------------------
  |  |  297|      2|#define CV_CPU_AVX512_COMMON    257
  ------------------
                          have[CV_CPU_AVX512_COMMON] = have[CV_CPU_AVX_512F] && have[CV_CPU_AVX_512CD];
  ------------------
  |  |  261|      2|#define CV_CPU_AVX_512F         13
  ------------------
                          have[CV_CPU_AVX512_COMMON] = have[CV_CPU_AVX_512F] && have[CV_CPU_AVX_512CD];
  ------------------
  |  |  263|      0|#define CV_CPU_AVX_512CD        15
  ------------------
  |  Branch (548:42): [True: 0, False: 2]
  |  Branch (548:67): [True: 0, False: 0]
  ------------------
  549|      2|            if (have[CV_CPU_AVX512_COMMON])
  ------------------
  |  |  297|      2|#define CV_CPU_AVX512_COMMON    257
  ------------------
  |  Branch (549:17): [True: 0, False: 2]
  ------------------
  550|      0|            {
  551|      0|                have[CV_CPU_AVX512_KNL] = have[CV_CPU_AVX_512ER]  && have[CV_CPU_AVX_512PF];
  ------------------
  |  |  298|      0|#define CV_CPU_AVX512_KNL       258
  ------------------
                              have[CV_CPU_AVX512_KNL] = have[CV_CPU_AVX_512ER]  && have[CV_CPU_AVX_512PF];
  ------------------
  |  |  265|      0|#define CV_CPU_AVX_512ER        17
  ------------------
                              have[CV_CPU_AVX512_KNL] = have[CV_CPU_AVX_512ER]  && have[CV_CPU_AVX_512PF];
  ------------------
  |  |  268|      0|#define CV_CPU_AVX_512PF        19
  ------------------
  |  Branch (551:43): [True: 0, False: 0]
  |  Branch (551:70): [True: 0, False: 0]
  ------------------
  552|      0|                have[CV_CPU_AVX512_KNM] = have[CV_CPU_AVX512_KNL] && have[CV_CPU_AVX_5124FMAPS] &&
  ------------------
  |  |  299|      0|#define CV_CPU_AVX512_KNM       259
  ------------------
                              have[CV_CPU_AVX512_KNM] = have[CV_CPU_AVX512_KNL] && have[CV_CPU_AVX_5124FMAPS] &&
  ------------------
  |  |  298|      0|#define CV_CPU_AVX512_KNL       258
  ------------------
                              have[CV_CPU_AVX512_KNM] = have[CV_CPU_AVX512_KNL] && have[CV_CPU_AVX_5124FMAPS] &&
  ------------------
  |  |  276|      0|#define CV_CPU_AVX_5124FMAPS    27
  ------------------
  |  Branch (552:43): [True: 0, False: 0]
  |  Branch (552:70): [True: 0, False: 0]
  ------------------
  553|      0|                                          have[CV_CPU_AVX_5124VNNIW] && have[CV_CPU_AVX_512VPOPCNTDQ];
  ------------------
  |  |  275|      0|#define CV_CPU_AVX_5124VNNIW    26
  ------------------
                                                        have[CV_CPU_AVX_5124VNNIW] && have[CV_CPU_AVX_512VPOPCNTDQ];
  ------------------
  |  |  274|      0|#define CV_CPU_AVX_512VPOPCNTDQ 25
  ------------------
  |  Branch (553:43): [True: 0, False: 0]
  |  Branch (553:73): [True: 0, False: 0]
  ------------------
  554|      0|                have[CV_CPU_AVX512_SKX] = have[CV_CPU_AVX_512BW] && have[CV_CPU_AVX_512DQ] && have[CV_CPU_AVX_512VL];
  ------------------
  |  |  296|      0|#define CV_CPU_AVX512_SKX       256
  ------------------
                              have[CV_CPU_AVX512_SKX] = have[CV_CPU_AVX_512BW] && have[CV_CPU_AVX_512DQ] && have[CV_CPU_AVX_512VL];
  ------------------
  |  |  262|      0|#define CV_CPU_AVX_512BW        14
  ------------------
                              have[CV_CPU_AVX512_SKX] = have[CV_CPU_AVX_512BW] && have[CV_CPU_AVX_512DQ] && have[CV_CPU_AVX_512VL];
  ------------------
  |  |  264|      0|#define CV_CPU_AVX_512DQ        16
  ------------------
                              have[CV_CPU_AVX512_SKX] = have[CV_CPU_AVX_512BW] && have[CV_CPU_AVX_512DQ] && have[CV_CPU_AVX_512VL];
  ------------------
  |  |  270|      0|#define CV_CPU_AVX_512VL        21
  ------------------
  |  Branch (554:43): [True: 0, False: 0]
  |  Branch (554:69): [True: 0, False: 0]
  |  Branch (554:95): [True: 0, False: 0]
  ------------------
  555|      0|                have[CV_CPU_AVX512_CNL] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI];
  ------------------
  |  |  300|      0|#define CV_CPU_AVX512_CNL       260
  ------------------
                              have[CV_CPU_AVX512_CNL] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI];
  ------------------
  |  |  296|      0|#define CV_CPU_AVX512_SKX       256
  ------------------
                              have[CV_CPU_AVX512_CNL] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI];
  ------------------
  |  |  267|      0|#define CV_CPU_AVX_512IFMA      18
  ------------------
                              have[CV_CPU_AVX512_CNL] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI];
  ------------------
  |  |  269|      0|#define CV_CPU_AVX_512VBMI      20
  ------------------
  |  Branch (555:43): [True: 0, False: 0]
  |  Branch (555:70): [True: 0, False: 0]
  |  Branch (555:98): [True: 0, False: 0]
  ------------------
  556|      0|                have[CV_CPU_AVX512_CLX] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512VNNI];
  ------------------
  |  |  301|      0|#define CV_CPU_AVX512_CLX       261
  ------------------
                              have[CV_CPU_AVX512_CLX] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512VNNI];
  ------------------
  |  |  296|      0|#define CV_CPU_AVX512_SKX       256
  ------------------
                              have[CV_CPU_AVX512_CLX] = have[CV_CPU_AVX512_SKX] && have[CV_CPU_AVX_512VNNI];
  ------------------
  |  |  272|      0|#define CV_CPU_AVX_512VNNI      23
  ------------------
  |  Branch (556:43): [True: 0, False: 0]
  |  Branch (556:70): [True: 0, False: 0]
  ------------------
  557|      0|                have[CV_CPU_AVX512_ICL] = have[CV_CPU_AVX512_SKX] &&
  ------------------
  |  |  302|      0|#define CV_CPU_AVX512_ICL       262
  ------------------
                              have[CV_CPU_AVX512_ICL] = have[CV_CPU_AVX512_SKX] &&
  ------------------
  |  |  296|      0|#define CV_CPU_AVX512_SKX       256
  ------------------
  |  Branch (557:43): [True: 0, False: 0]
  ------------------
  558|      0|                                          have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI] &&
  ------------------
  |  |  267|      0|#define CV_CPU_AVX_512IFMA      18
  ------------------
                                                        have[CV_CPU_AVX_512IFMA] && have[CV_CPU_AVX_512VBMI] &&
  ------------------
  |  |  269|      0|#define CV_CPU_AVX_512VBMI      20
  ------------------
  |  Branch (558:43): [True: 0, False: 0]
  |  Branch (558:71): [True: 0, False: 0]
  ------------------
  559|      0|                                          have[CV_CPU_AVX_512VNNI] &&
  ------------------
  |  |  272|      0|#define CV_CPU_AVX_512VNNI      23
  ------------------
  |  Branch (559:43): [True: 0, False: 0]
  ------------------
  560|      0|                                          have[CV_CPU_AVX_512VBMI2] && have[CV_CPU_AVX_512BITALG] && have[CV_CPU_AVX_512VPOPCNTDQ];
  ------------------
  |  |  271|      0|#define CV_CPU_AVX_512VBMI2     22
  ------------------
                                                        have[CV_CPU_AVX_512VBMI2] && have[CV_CPU_AVX_512BITALG] && have[CV_CPU_AVX_512VPOPCNTDQ];
  ------------------
  |  |  273|      0|#define CV_CPU_AVX_512BITALG    24
  ------------------
                                                        have[CV_CPU_AVX_512VBMI2] && have[CV_CPU_AVX_512BITALG] && have[CV_CPU_AVX_512VPOPCNTDQ];
  ------------------
  |  |  274|      0|#define CV_CPU_AVX_512VPOPCNTDQ 25
  ------------------
  |  Branch (560:43): [True: 0, False: 0]
  |  Branch (560:72): [True: 0, False: 0]
  |  Branch (560:102): [True: 0, False: 0]
  ------------------
  561|      0|            }
  562|      2|            else
  563|      2|            {
  564|      2|                have[CV_CPU_AVX512_KNL] = false;
  ------------------
  |  |  298|      2|#define CV_CPU_AVX512_KNL       258
  ------------------
  565|      2|                have[CV_CPU_AVX512_KNM] = false;
  ------------------
  |  |  299|      2|#define CV_CPU_AVX512_KNM       259
  ------------------
  566|      2|                have[CV_CPU_AVX512_SKX] = false;
  ------------------
  |  |  296|      2|#define CV_CPU_AVX512_SKX       256
  ------------------
  567|      2|                have[CV_CPU_AVX512_CNL] = false;
  ------------------
  |  |  300|      2|#define CV_CPU_AVX512_CNL       260
  ------------------
  568|      2|                have[CV_CPU_AVX512_CLX] = false;
  ------------------
  |  |  301|      2|#define CV_CPU_AVX512_CLX       261
  ------------------
  569|      2|                have[CV_CPU_AVX512_ICL] = false;
  ------------------
  |  |  302|      2|#define CV_CPU_AVX512_ICL       262
  ------------------
  570|      2|            }
  571|      2|        }
  572|      2|    #endif // CV_CPUID_X86
  573|       |
  574|      2|    #if defined __ANDROID__ || defined __linux__ || defined __QNX__
  575|       |    #ifdef __aarch64__
  576|       |        have[CV_CPU_NEON] = true;
  577|       |        have[CV_CPU_FP16] = true;
  578|       |        int cpufile = open("/proc/self/auxv", O_RDONLY);
  579|       |
  580|       |        if (cpufile >= 0)
  581|       |        {
  582|       |            Elf64_auxv_t auxv;
  583|       |            const size_t size_auxv_t = sizeof(auxv);
  584|       |
  585|       |            while ((size_t)read(cpufile, &auxv, size_auxv_t) == size_auxv_t)
  586|       |            {
  587|       |                // see https://elixir.bootlin.com/linux/latest/source/arch/arm64/include/uapi/asm/hwcap.h
  588|       |                if (auxv.a_type == AT_HWCAP)
  589|       |                {
  590|       |                    have[CV_CPU_NEON_DOTPROD] = (auxv.a_un.a_val & (1 << 20)) != 0; // HWCAP_ASIMDDP
  591|       |                    have[CV_CPU_NEON_FP16] = (auxv.a_un.a_val & (1 << 10)) != 0; // HWCAP_ASIMDHP
  592|       |                }
  593|       |#if defined(AT_HWCAP2)
  594|       |                else if (auxv.a_type == AT_HWCAP2)
  595|       |                {
  596|       |                    have[CV_CPU_NEON_BF16] = (auxv.a_un.a_val & (1 << 14)) != 0; // HWCAP2_BF16
  597|       |                }
  598|       |#endif
  599|       |            }
  600|       |
  601|       |            close(cpufile);
  602|       |        }
  603|       |    #elif defined __arm__ && defined __ANDROID__
  604|       |      #if defined HAVE_CPUFEATURES
  605|       |        CV_LOG_INFO(NULL, "calling android_getCpuFeatures() ...");
  606|       |        uint64_t features = android_getCpuFeatures();
  607|       |        CV_LOG_INFO(NULL, cv::format("calling android_getCpuFeatures() ... Done (%llx)", (long long)features));
  608|       |        have[CV_CPU_NEON] = (features & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
  609|       |        have[CV_CPU_FP16] = (features & ANDROID_CPU_ARM_FEATURE_VFP_FP16) != 0;
  610|       |      #else
  611|       |        CV_LOG_INFO(NULL, "cpufeatures library is not available for CPU detection");
  612|       |        #if CV_NEON
  613|       |        CV_LOG_INFO(NULL, "- NEON instructions is enabled via build flags");
  614|       |        have[CV_CPU_NEON] = true;
  615|       |        #else
  616|       |        CV_LOG_INFO(NULL, "- NEON instructions is NOT enabled via build flags");
  617|       |        #endif
  618|       |        #if CV_FP16
  619|       |        CV_LOG_INFO(NULL, "- FP16 instructions is enabled via build flags");
  620|       |        have[CV_CPU_FP16] = true;
  621|       |        #else
  622|       |        CV_LOG_INFO(NULL, "- FP16 instructions is NOT enabled via build flags");
  623|       |        #endif
  624|       |      #endif
  625|       |    #elif defined __arm__
  626|       |        int cpufile = open("/proc/self/auxv", O_RDONLY);
  627|       |
  628|       |        if (cpufile >= 0)
  629|       |        {
  630|       |            Elf32_auxv_t auxv;
  631|       |            const size_t size_auxv_t = sizeof(auxv);
  632|       |
  633|       |            while ((size_t)read(cpufile, &auxv, size_auxv_t) == size_auxv_t)
  634|       |            {
  635|       |                if (auxv.a_type == AT_HWCAP)
  636|       |                {
  637|       |                    have[CV_CPU_NEON] = (auxv.a_un.a_val & 4096) != 0;
  638|       |                    have[CV_CPU_FP16] = (auxv.a_un.a_val & 2) != 0;
  639|       |                    break;
  640|       |                }
  641|       |            }
  642|       |
  643|       |            close(cpufile);
  644|       |        }
  645|       |    #endif
  646|       |    #elif (defined __APPLE__)
  647|       |    #if defined __ARM_NEON
  648|       |        have[CV_CPU_NEON] = true;
  649|       |    #endif
  650|       |    #if (defined __ARM_FP  && (((__ARM_FP & 0x2) != 0) && defined __ARM_NEON))
  651|       |        have[CV_CPU_FP16] = have[CV_CPU_NEON_FP16] = true;
  652|       |    #endif
  653|       |    // system.cpp may be compiled w/o special -march=armv8...+dotprod, -march=armv8...+bf16 etc.,
  654|       |    // so we check for the features in any case, no mater what are the compile flags.
  655|       |    // We check the real hardware capabilities here.
  656|       |    int has_feat_dotprod = 0;
  657|       |    size_t has_feat_dotprod_size = sizeof(has_feat_dotprod);
  658|       |    sysctlbyname("hw.optional.arm.FEAT_DotProd", &has_feat_dotprod, &has_feat_dotprod_size, NULL, 0);
  659|       |    if (has_feat_dotprod) {
  660|       |        have[CV_CPU_NEON_DOTPROD] = true;
  661|       |    }
  662|       |    int has_feat_bf16 = 0;
  663|       |    size_t has_feat_bf16_size = sizeof(has_feat_bf16);
  664|       |    sysctlbyname("hw.optional.arm.FEAT_BF16", &has_feat_bf16, &has_feat_bf16_size, NULL, 0);
  665|       |    if (has_feat_bf16) {
  666|       |        have[CV_CPU_NEON_BF16] = true;
  667|       |    }
  668|       |    #elif (defined __clang__)
  669|       |    #if defined __ARM_NEON
  670|       |        have[CV_CPU_NEON] = true;
  671|       |        #if (defined __ARM_FP  && ((__ARM_FP & 0x2) != 0))
  672|       |        have[CV_CPU_FP16] = true;
  673|       |        #endif
  674|       |    #endif
  675|       |    #endif
  676|       |    #if defined _ARM_ && (defined(_WIN32_WCE) && _WIN32_WCE >= 0x800)
  677|       |        have[CV_CPU_NEON] = true;
  678|       |    #endif
  679|       |    #if defined _M_ARM64
  680|       |        have[CV_CPU_NEON] = true;
  681|       |    #endif
  682|       |    #ifdef __riscv_vector
  683|       |        have[CV_CPU_RISCVV] = true;
  684|       |    #endif
  685|       |    #ifdef __mips_msa
  686|       |        have[CV_CPU_MSA] = true;
  687|       |    #endif
  688|       |
  689|       |    #if (defined __ppc64__ || defined __PPC64__) && defined HAVE_GETAUXVAL
  690|       |        unsigned int hwcap = getauxval(AT_HWCAP);
  691|       |        if (hwcap & PPC_FEATURE_HAS_VSX) {
  692|       |            hwcap = getauxval(AT_HWCAP2);
  693|       |            if (hwcap & PPC_FEATURE2_ARCH_3_00) {
  694|       |                have[CV_CPU_VSX] = have[CV_CPU_VSX3] = true;
  695|       |            } else {
  696|       |                have[CV_CPU_VSX] = (hwcap & PPC_FEATURE2_ARCH_2_07) != 0;
  697|       |            }
  698|       |        }
  699|       |    #elif (defined __ppc64__ || defined __PPC64__) && defined HAVE_ELF_AUX_INFO
  700|       |        unsigned long hwcap = 0;
  701|       |        elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
  702|       |        if (hwcap & PPC_FEATURE_HAS_VSX) {
  703|       |            elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
  704|       |            if (hwcap & PPC_FEATURE2_ARCH_3_00) {
  705|       |                have[CV_CPU_VSX] = have[CV_CPU_VSX3] = true;
  706|       |            } else {
  707|       |                have[CV_CPU_VSX] = (hwcap & PPC_FEATURE2_ARCH_2_07) != 0;
  708|       |            }
  709|       |        }
  710|       |    #else
  711|       |        // TODO: AIX
  712|       |        #if CV_VSX || defined _ARCH_PWR8 || defined __POWER9_VECTOR__
  713|       |            have[CV_CPU_VSX] = true;
  714|       |        #endif
  715|       |        #if CV_VSX3 || defined __POWER9_VECTOR__
  716|       |            have[CV_CPU_VSX3] = true;
  717|       |        #endif
  718|      2|    #endif
  719|       |
  720|       |    #if defined __riscv && defined __riscv_vector
  721|       |        have[CV_CPU_RVV] = true;
  722|       |    #endif
  723|       |
  724|       |    #if defined __loongarch64 && defined __linux__
  725|       |        int flag = (int)getauxval(AT_HWCAP);
  726|       |
  727|       |        have[CV_CPU_LSX] = (flag & LA_HWCAP_LSX) != 0;
  728|       |        have[CV_CPU_LASX] = (flag & LA_HWCAP_LASX) != 0;
  729|       |    #endif
  730|       |
  731|      2|        bool skip_baseline_check = false;
  732|      2|        if (utils::getConfigurationParameterBool("OPENCV_SKIP_CPU_BASELINE_CHECK"))
  ------------------
  |  Branch (732:13): [True: 0, False: 2]
  ------------------
  733|      0|        {
  734|      0|            skip_baseline_check = true;
  735|      0|        }
  736|      2|        int baseline_features[] = { CV_CPU_BASELINE_FEATURES };
  737|      2|        if (!checkFeatures(baseline_features, sizeof(baseline_features) / sizeof(baseline_features[0]))
  ------------------
  |  Branch (737:13): [True: 0, False: 2]
  ------------------
  738|      2|            && !skip_baseline_check)
  ------------------
  |  Branch (738:16): [True: 0, False: 0]
  ------------------
  739|      0|        {
  740|      0|            fprintf(stderr, "\n"
  741|      0|                    "******************************************************************\n"
  742|      0|                    "* FATAL ERROR:                                                   *\n"
  743|      0|                    "* This OpenCV build doesn't support current CPU/HW configuration *\n"
  744|      0|                    "*                                                                *\n"
  745|      0|                    "* Use OPENCV_DUMP_CONFIG=1 environment variable for details      *\n"
  746|      0|                    "******************************************************************\n");
  747|      0|            fprintf(stderr, "\nRequired baseline features:\n");
  748|      0|            checkFeatures(baseline_features, sizeof(baseline_features) / sizeof(baseline_features[0]), true);
  749|      0|            CV_Error(cv::Error::StsAssert, "Missing support for required CPU baseline features. Check OpenCV build configuration and required CPU/HW setup.");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  750|      0|        }
  751|       |
  752|      2|        readSettings(baseline_features, sizeof(baseline_features) / sizeof(baseline_features[0]));
  753|      2|    }
_ZN2cv10HWFeatures15initializeNamesEv:
  392|      2|    {
  393|  1.02k|        for (int i = 0; i < CV_HARDWARE_MAX_FEATURE; i++)
  ------------------
  |  |  305|  1.02k|#define CV_HARDWARE_MAX_FEATURE 512
  ------------------
  |  Branch (393:25): [True: 1.02k, False: 2]
  ------------------
  394|  1.02k|        {
  395|  1.02k|            g_hwFeatureNames[i] = 0;
  396|  1.02k|        }
  397|      2|        g_hwFeatureNames[CPU_MMX] = "MMX";
  398|      2|        g_hwFeatureNames[CPU_SSE] = "SSE";
  399|      2|        g_hwFeatureNames[CPU_SSE2] = "SSE2";
  400|      2|        g_hwFeatureNames[CPU_SSE3] = "SSE3";
  401|      2|        g_hwFeatureNames[CPU_SSSE3] = "SSSE3";
  402|      2|        g_hwFeatureNames[CPU_SSE4_1] = "SSE4.1";
  403|      2|        g_hwFeatureNames[CPU_SSE4_2] = "SSE4.2";
  404|      2|        g_hwFeatureNames[CPU_POPCNT] = "POPCNT";
  405|      2|        g_hwFeatureNames[CPU_FP16] = "FP16";
  406|      2|        g_hwFeatureNames[CPU_AVX] = "AVX";
  407|      2|        g_hwFeatureNames[CPU_AVX2] = "AVX2";
  408|      2|        g_hwFeatureNames[CPU_FMA3] = "FMA3";
  409|       |
  410|      2|        g_hwFeatureNames[CPU_AVX_512F] = "AVX512F";
  411|      2|        g_hwFeatureNames[CPU_AVX_512BW] = "AVX512BW";
  412|      2|        g_hwFeatureNames[CPU_AVX_512CD] = "AVX512CD";
  413|      2|        g_hwFeatureNames[CPU_AVX_512DQ] = "AVX512DQ";
  414|      2|        g_hwFeatureNames[CPU_AVX_512ER] = "AVX512ER";
  415|      2|        g_hwFeatureNames[CPU_AVX_512IFMA] = "AVX512IFMA";
  416|      2|        g_hwFeatureNames[CPU_AVX_512PF] = "AVX512PF";
  417|      2|        g_hwFeatureNames[CPU_AVX_512VBMI] = "AVX512VBMI";
  418|      2|        g_hwFeatureNames[CPU_AVX_512VL] = "AVX512VL";
  419|      2|        g_hwFeatureNames[CPU_AVX_512VBMI2] = "AVX512VBMI2";
  420|      2|        g_hwFeatureNames[CPU_AVX_512VNNI] = "AVX512VNNI";
  421|      2|        g_hwFeatureNames[CPU_AVX_512BITALG] = "AVX512BITALG";
  422|      2|        g_hwFeatureNames[CPU_AVX_512VPOPCNTDQ] = "AVX512VPOPCNTDQ";
  423|      2|        g_hwFeatureNames[CPU_AVX_5124VNNIW] = "AVX5124VNNIW";
  424|      2|        g_hwFeatureNames[CPU_AVX_5124FMAPS] = "AVX5124FMAPS";
  425|       |
  426|      2|        g_hwFeatureNames[CPU_NEON] = "NEON";
  427|      2|        g_hwFeatureNames[CPU_NEON_DOTPROD] = "NEON_DOTPROD";
  428|      2|        g_hwFeatureNames[CPU_NEON_FP16] = "NEON_FP16";
  429|      2|        g_hwFeatureNames[CPU_NEON_BF16] = "NEON_BF16";
  430|       |
  431|      2|        g_hwFeatureNames[CPU_VSX] = "VSX";
  432|      2|        g_hwFeatureNames[CPU_VSX3] = "VSX3";
  433|       |
  434|      2|        g_hwFeatureNames[CPU_MSA] = "CPU_MSA";
  435|      2|        g_hwFeatureNames[CPU_RISCVV] = "RISCVV";
  436|       |
  437|      2|        g_hwFeatureNames[CPU_AVX512_COMMON] = "AVX512-COMMON";
  438|      2|        g_hwFeatureNames[CPU_AVX512_SKX] = "AVX512-SKX";
  439|      2|        g_hwFeatureNames[CPU_AVX512_KNL] = "AVX512-KNL";
  440|      2|        g_hwFeatureNames[CPU_AVX512_KNM] = "AVX512-KNM";
  441|      2|        g_hwFeatureNames[CPU_AVX512_CNL] = "AVX512-CNL";
  442|      2|        g_hwFeatureNames[CPU_AVX512_CLX] = "AVX512-CLX";
  443|      2|        g_hwFeatureNames[CPU_AVX512_ICL] = "AVX512-ICL";
  444|       |
  445|      2|        g_hwFeatureNames[CPU_RVV] = "RVV";
  446|       |
  447|      2|        g_hwFeatureNames[CPU_LSX]  = "LSX";
  448|      2|        g_hwFeatureNames[CPU_LASX] = "LASX";
  449|      2|    }
system.cpp:_ZL8cv_cpuidPiii:
  293|      4|    {
  294|      4|        int __eax = reg_eax, __ebx = 0, __ecx = reg_ecx, __edx = 0;
  295|       |// tested with available compilers (-fPIC -O2 -m32/-m64): https://godbolt.org/
  296|      4|#if !defined(__PIC__) \
  297|      4|    || defined(__x86_64__) || __GNUC__ >= 5 \
  298|      4|    || defined(__clang__) || defined(__INTEL_COMPILER)
  299|      4|        __asm__("cpuid\n\t"
  300|      4|                : "+a" (__eax), "=b" (__ebx), "+c" (__ecx), "=d" (__edx)
  301|      4|        );
  302|       |#elif defined(__i386__)  // ebx may be reserved as the PIC register
  303|       |        __asm__("xchg{l}\t{%%}ebx, %1\n\t"
  304|       |                "cpuid\n\t"
  305|       |                "xchg{l}\t{%%}ebx, %1\n\t"
  306|       |                : "+a" (__eax), "=&r" (__ebx), "+c" (__ecx), "=d" (__edx)
  307|       |        );
  308|       |#else
  309|       |#error "Configuration error"
  310|       |#endif
  311|      4|        cpuid_data[0] = __eax; cpuid_data[1] = __ebx; cpuid_data[2] = __ecx; cpuid_data[3] = __edx;
  312|      4|    }
_ZN2cv10HWFeatures13checkFeaturesEPKiib:
  756|      2|    {
  757|      2|        bool result = true;
  758|     10|        for (int i = 0; i < count; i++)
  ------------------
  |  Branch (758:25): [True: 8, False: 2]
  ------------------
  759|      8|        {
  760|      8|            int feature = features[i];
  761|      8|            if (feature)
  ------------------
  |  Branch (761:17): [True: 6, False: 2]
  ------------------
  762|      6|            {
  763|      6|                if (have[feature])
  ------------------
  |  Branch (763:21): [True: 6, False: 0]
  ------------------
  764|      6|                {
  765|      6|                    if (dump) fprintf(stderr, "    ID=%3d (%s) - OK\n", feature, getHWFeatureNameSafe(feature));
  ------------------
  |  Branch (765:25): [True: 0, False: 6]
  ------------------
  766|      6|                }
  767|      0|                else
  768|      0|                {
  769|      0|                    result = false;
  770|      0|                    if (dump) fprintf(stderr, "    ID=%3d (%s) - NOT AVAILABLE\n", feature, getHWFeatureNameSafe(feature));
  ------------------
  |  Branch (770:25): [True: 0, False: 0]
  ------------------
  771|      0|                }
  772|      6|            }
  773|      8|        }
  774|      2|        return result;
  775|      2|    }
_ZN2cv10HWFeatures12readSettingsEPKii:
  783|      2|    {
  784|      2|        bool dump = true;
  785|      2|        std::string disabled_features = utils::getConfigurationParameterString("OPENCV_CPU_DISABLE");
  786|      2|        if (!disabled_features.empty())
  ------------------
  |  Branch (786:13): [True: 0, False: 2]
  ------------------
  787|      0|        {
  788|      0|            const char* start = disabled_features.c_str();
  789|      0|            for (;;)
  790|      0|            {
  791|      0|                while (start[0] != 0 && isSymbolSeparator(start[0]))
  ------------------
  |  Branch (791:24): [True: 0, False: 0]
  |  Branch (791:41): [True: 0, False: 0]
  ------------------
  792|      0|                {
  793|      0|                    start++;
  794|      0|                }
  795|      0|                if (start[0] == 0)
  ------------------
  |  Branch (795:21): [True: 0, False: 0]
  ------------------
  796|      0|                    break;
  797|      0|                const char* end = start;
  798|      0|                while (end[0] != 0 && !isSymbolSeparator(end[0]))
  ------------------
  |  Branch (798:24): [True: 0, False: 0]
  |  Branch (798:39): [True: 0, False: 0]
  ------------------
  799|      0|                {
  800|      0|                    end++;
  801|      0|                }
  802|      0|                if (end == start)
  ------------------
  |  Branch (802:21): [True: 0, False: 0]
  ------------------
  803|      0|                    continue;
  804|      0|                cv::String feature(start, end);
  805|      0|                start = end;
  806|       |
  807|      0|                CV_Assert(feature.size() > 0);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  808|       |
  809|      0|                bool found = false;
  810|      0|                for (int i = 0; i < CV_HARDWARE_MAX_FEATURE; i++)
  ------------------
  |  |  305|      0|#define CV_HARDWARE_MAX_FEATURE 512
  ------------------
  |  Branch (810:33): [True: 0, False: 0]
  ------------------
  811|      0|                {
  812|      0|                    if (!g_hwFeatureNames[i]) continue;
  ------------------
  |  Branch (812:25): [True: 0, False: 0]
  ------------------
  813|      0|                    size_t len = strlen(g_hwFeatureNames[i]);
  814|      0|                    if (len != feature.size()) continue;
  ------------------
  |  Branch (814:25): [True: 0, False: 0]
  ------------------
  815|      0|                    if (feature.compare(g_hwFeatureNames[i]) == 0)
  ------------------
  |  Branch (815:25): [True: 0, False: 0]
  ------------------
  816|      0|                    {
  817|      0|                        bool isBaseline = false;
  818|      0|                        for (int k = 0; k < baseline_count; k++)
  ------------------
  |  Branch (818:41): [True: 0, False: 0]
  ------------------
  819|      0|                        {
  820|      0|                            if (baseline_features[k] == i)
  ------------------
  |  Branch (820:33): [True: 0, False: 0]
  ------------------
  821|      0|                            {
  822|      0|                                isBaseline = true;
  823|      0|                                break;
  824|      0|                            }
  825|      0|                        }
  826|      0|                        if (isBaseline)
  ------------------
  |  Branch (826:29): [True: 0, False: 0]
  ------------------
  827|      0|                        {
  828|      0|                            if (dump) fprintf(stderr, "OPENCV: Trying to disable baseline CPU feature: '%s'."
  ------------------
  |  Branch (828:33): [True: 0, False: 0]
  ------------------
  829|      0|                                                      "This has very limited effect, because code optimizations for this feature are executed unconditionally "
  830|      0|                                                      "in the most cases.\n", getHWFeatureNameSafe(i));
  831|      0|                        }
  832|      0|                        if (!have[i])
  ------------------
  |  Branch (832:29): [True: 0, False: 0]
  ------------------
  833|      0|                        {
  834|      0|                            if (dump) fprintf(stderr, "OPENCV: Trying to disable unavailable CPU feature on the current platform: '%s'.\n",
  ------------------
  |  Branch (834:33): [True: 0, False: 0]
  ------------------
  835|      0|                                getHWFeatureNameSafe(i));
  836|      0|                        }
  837|      0|                        have[i] = false;
  838|       |
  839|      0|                        found = true;
  840|      0|                        break;
  841|      0|                    }
  842|      0|                }
  843|      0|                if (!found)
  ------------------
  |  Branch (843:21): [True: 0, False: 0]
  ------------------
  844|      0|                {
  845|      0|                    if (dump) fprintf(stderr, "OPENCV: Trying to disable unknown CPU feature: '%s'.\n", feature.c_str());
  ------------------
  |  Branch (845:25): [True: 0, False: 0]
  ------------------
  846|      0|                }
  847|      0|            }
  848|      0|        }
  849|      2|    }
_ZN2cv8internal13InitTimestampC2Ev:
 1017|      2|    InitTimestamp() {
 1018|      2|        Timestamp::getInstance();
 1019|      2|    }
_ZN2cv8internal9Timestamp11getInstanceEv:
 1009|    951|    {
 1010|    951|        static Timestamp g_timestamp;
 1011|    951|        return g_timestamp;
 1012|    951|    }
_ZN2cv8internal9TimestampC2Ev:
  996|      2|        : zeroTickCount(getTickCount())
  997|      2|        , ns_in_ticks(1e9 / getTickFrequency())
  998|      2|    {
  999|       |        // nothing
 1000|      2|    }
_ZN2cv8internal9Timestamp12getTimestampEv:
 1003|    949|    {
 1004|    949|        int64 t = getTickCount();
 1005|    949|        return (int64)((t - zeroTickCount) * ns_in_ticks);
 1006|    949|    }
system.cpp:_ZN2cv7detailsL13getTlsStorageEv:
 1874|    953|{
 1875|    953|    CV_SINGLETON_LAZY_INIT_REF(TlsStorage, new TlsStorage())
  ------------------
  |  |  404|    953|#define CV_SINGLETON_LAZY_INIT_REF(TYPE, INITIALIZER) CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, *instance)
  |  |  ------------------
  |  |  |  |  400|    953|    static TYPE* const instance = INITIALIZER; \
  |  |  |  |  401|    953|    return RET_VALUE;
  |  |  ------------------
  ------------------
 1876|    953|}
_ZN2cv7details10TlsStorageC2Ev:
 1671|      2|        tlsSlotsSize(0)
 1672|      2|    {
 1673|      2|        (void)getTlsAbstraction();  // ensure singeton initialization (for correct order of atexit calls)
 1674|      2|        tlsSlots.reserve(32);
 1675|      2|        threads.reserve(32);
 1676|      2|        g_isTlsStorageInitialized = true;
 1677|      2|    }
system.cpp:_ZN2cv7detailsL17getTlsAbstractionEv:
 1549|    950|{
 1550|    950|    static TlsAbstraction *g_tls = new TlsAbstraction();  // memory leak is intended here to avoid disposing of TLS container
 1551|    950|    static TlsAbstractionReleaseGuard g_tlsReleaseGuard(*g_tls);
 1552|    950|    return g_tls;
 1553|    950|}
_ZN2cv7details26TlsAbstractionReleaseGuardC2ERNS0_14TlsAbstractionE:
 1537|      2|    TlsAbstractionReleaseGuard(TlsAbstraction& tls) : tls_(tls)
 1538|      2|    {
 1539|       |        /* nothing */
 1540|      2|    }
_ZN2cv7details10TlsStorage11reserveSlotEPNS_16TLSDataContainerE:
 1728|      3|    {
 1729|      3|        AutoLock guard(mtxGlobalAccess);
 1730|      3|        CV_Assert(tlsSlotsSize == tlsSlots.size());
  ------------------
  |  |  423|      3|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 3, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1731|       |
 1732|       |        // Find unused slots
 1733|      4|        for(size_t slot = 0; slot < tlsSlotsSize; slot++)
  ------------------
  |  Branch (1733:30): [True: 1, False: 3]
  ------------------
 1734|      1|        {
 1735|      1|            if (tlsSlots[slot].container == NULL)
  ------------------
  |  Branch (1735:17): [True: 0, False: 1]
  ------------------
 1736|      0|            {
 1737|      0|                tlsSlots[slot].container = container;
 1738|      0|                return slot;
 1739|      0|            }
 1740|      1|        }
 1741|       |
 1742|       |        // Create new slot
 1743|      3|        tlsSlots.push_back(TlsSlotInfo(container)); tlsSlotsSize++;
 1744|      3|        return tlsSlotsSize - 1;
 1745|      3|    }
_ZN2cv7details10TlsStorage11TlsSlotInfoC2EPNS_16TLSDataContainerE:
 1865|      3|        TlsSlotInfo(TLSDataContainer* _container) : container(_container) {}
_ZNK2cv7details10TlsStorage7getDataEm:
 1775|    947|    {
 1776|    947|#ifndef CV_THREAD_SANITIZER
 1777|    947|        CV_Assert(tlsSlotsSize > slotIdx);
  ------------------
  |  |  423|    947|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 947, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1778|    947|#endif
 1779|       |
 1780|    947|        TlsAbstraction* tls = getTlsAbstraction();
 1781|    947|        if (NULL == tls)
  ------------------
  |  Branch (1781:13): [True: 0, False: 947]
  ------------------
 1782|      0|            return NULL;  // TLS singleton is not available (terminated)
 1783|       |
 1784|    947|        ThreadData* threadData = (ThreadData*)tls->getData();
 1785|    947|        if(threadData && threadData->slots.size() > slotIdx)
  ------------------
  |  Branch (1785:12): [True: 946, False: 1]
  |  Branch (1785:26): [True: 946, False: 0]
  ------------------
 1786|    946|            return threadData->slots[slotIdx];
 1787|       |
 1788|      1|        return NULL;
 1789|    947|    }
_ZN2cv7details10TlsStorage7setDataEmPv:
 1811|      1|    {
 1812|      1|#ifndef CV_THREAD_SANITIZER
 1813|      1|        CV_Assert(tlsSlotsSize > slotIdx);
  ------------------
  |  |  423|      1|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 1, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1814|      1|#endif
 1815|       |
 1816|      1|        TlsAbstraction* tls = getTlsAbstraction();
 1817|      1|        if (NULL == tls)
  ------------------
  |  Branch (1817:13): [True: 0, False: 1]
  ------------------
 1818|      0|            return;  // TLS singleton is not available (terminated)
 1819|       |
 1820|      1|        ThreadData* threadData = (ThreadData*)tls->getData();
 1821|      1|        if(!threadData)
  ------------------
  |  Branch (1821:12): [True: 1, False: 0]
  ------------------
 1822|      1|        {
 1823|      1|            threadData = new ThreadData;
 1824|      1|            tls->setData((void*)threadData);
 1825|      1|            {
 1826|      1|                AutoLock guard(mtxGlobalAccess);
 1827|       |
 1828|      1|                bool found = false;
 1829|       |                // Find unused slots
 1830|      1|                for(size_t slot = 0; slot < threads.size(); slot++)
  ------------------
  |  Branch (1830:38): [True: 0, False: 1]
  ------------------
 1831|      0|                {
 1832|      0|                    if (threads[slot] == NULL)
  ------------------
  |  Branch (1832:25): [True: 0, False: 0]
  ------------------
 1833|      0|                    {
 1834|      0|                        threadData->idx = (int)slot;
 1835|      0|                        threads[slot] = threadData;
 1836|      0|                        found = true;
 1837|      0|                        break;
 1838|      0|                    }
 1839|      0|                }
 1840|       |
 1841|      1|                if (!found)
  ------------------
  |  Branch (1841:21): [True: 1, False: 0]
  ------------------
 1842|      1|                {
 1843|       |                    // Create new slot
 1844|      1|                    threadData->idx = threads.size();
 1845|      1|                    threads.push_back(threadData);
 1846|      1|                }
 1847|      1|            }
 1848|      1|        }
 1849|       |
 1850|      1|        if(slotIdx >= threadData->slots.size())
  ------------------
  |  Branch (1850:12): [True: 1, False: 0]
  ------------------
 1851|      1|        {
 1852|      1|            AutoLock guard(mtxGlobalAccess); // keep synchronization with gather() calls
 1853|      1|            threadData->slots.resize(slotIdx + 1, NULL);
 1854|      1|        }
 1855|      1|        threadData->slots[slotIdx] = pData;
 1856|      1|    }
_ZN2cv7details10ThreadDataC2Ev:
 1654|      1|    {
 1655|      1|        idx = 0;
 1656|      1|        slots.reserve(32);
 1657|      1|    }
system.cpp:_ZN2cv12_GLOBAL__N_114getThreadIDTLSEv:
 2160|    947|{
 2161|    947|    CV_SINGLETON_LAZY_INIT_REF(TLSData<ThreadID>, new TLSData<ThreadID>());
  ------------------
  |  |  404|    947|#define CV_SINGLETON_LAZY_INIT_REF(TYPE, INITIALIZER) CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, *instance)
  |  |  ------------------
  |  |  |  |  400|    947|    static TYPE* const instance = INITIALIZER; \
  |  |  |  |  401|    947|    return RET_VALUE;
  |  |  ------------------
  ------------------
 2162|      0|}
system.cpp:_ZN2cv12_GLOBAL__N_18ThreadIDC2Ev:
 2150|      1|        id(CV_XADD(&g_threadNum, 1))
  ------------------
  |  |  702|      1|#      define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
  ------------------
 2151|      1|    {
 2152|      1|#ifdef OPENCV_WITH_ITT
 2153|      1|        if (overrideThreadName())
  ------------------
  |  Branch (2153:13): [True: 0, False: 1]
  ------------------
 2154|      0|            __itt_thread_set_name(cv::format("OpenCVThread-%03d", id).c_str());
  ------------------
  |  |  500|      0|#define __itt_thread_set_name     ITTNOTIFY_VOID(thread_set_name)
  |  |  ------------------
  |  |  |  |  255|      0|#define ITTNOTIFY_VOID(n) (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      0|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      0|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define ITTNOTIFY_VOID(n) (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      0|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      0|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (255:27): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2155|      1|#endif
 2156|      1|    }
system.cpp:_ZN2cv12_GLOBAL__N_118overrideThreadNameEv:
 2139|      1|{
 2140|      1|    static bool param = utils::getConfigurationParameterBool("OPENCV_TRACE_ITT_SET_THREAD_NAME", false);
 2141|      1|    return param;
 2142|      1|}
_ZN2cv4readIbEET_RKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKS1_:
 2258|     35|{
 2259|     35|    try
 2260|     35|    {
 2261|     35|        const char * res = envRead(k.c_str());
 2262|     35|        if (res)
  ------------------
  |  Branch (2262:13): [True: 0, False: 35]
  ------------------
 2263|      0|            return parseOption<T>(std::string(res));
 2264|     35|    }
 2265|     35|    catch (const ParseError &err)
 2266|     35|    {
 2267|      0|        CV_Error(cv::Error::StsBadArg, err.toString(k));
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2268|      0|    }
 2269|     35|    return defaultValue;
 2270|     35|}
system.cpp:_ZN2cvL7envReadEPKc:
 2247|     59|{
 2248|       |#ifdef NO_GETENV
 2249|       |    CV_UNUSED(name);
 2250|       |    return NULL;
 2251|       |#else
 2252|     59|    return getenv(name);
 2253|     59|#endif
 2254|     59|}
_ZN2cv4readImEET_RKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKS1_:
 2258|     20|{
 2259|     20|    try
 2260|     20|    {
 2261|     20|        const char * res = envRead(k.c_str());
 2262|     20|        if (res)
  ------------------
  |  Branch (2262:13): [True: 0, False: 20]
  ------------------
 2263|      0|            return parseOption<T>(std::string(res));
 2264|     20|    }
 2265|     20|    catch (const ParseError &err)
 2266|     20|    {
 2267|      0|        CV_Error(cv::Error::StsBadArg, err.toString(k));
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2268|      0|    }
 2269|     20|    return defaultValue;
 2270|     20|}
_ZN2cv4readINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEET_RKS7_RKS8_:
 2258|      4|{
 2259|      4|    try
 2260|      4|    {
 2261|      4|        const char * res = envRead(k.c_str());
 2262|      4|        if (res)
  ------------------
  |  Branch (2262:13): [True: 0, False: 4]
  ------------------
 2263|      0|            return parseOption<T>(std::string(res));
 2264|      4|    }
 2265|      4|    catch (const ParseError &err)
 2266|      4|    {
 2267|      0|        CV_Error(cv::Error::StsBadArg, err.toString(k));
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2268|      0|    }
 2269|      4|    return defaultValue;
 2270|      4|}

_ZN2cv5utils5trace7details6RegionC2ERKNS3_21LocationStaticStorageE:
  434|   100k|    implFlags(0)
  435|   100k|{
  436|       |    // Checks:
  437|       |    // - global enable flag
  438|       |    // - parent region is disabled
  439|       |    // - children count threshold
  440|       |    // - region location
  441|       |    // - depth (opencv nested calls)
  442|   100k|    if (!TraceManager::isActivated())
  ------------------
  |  Branch (442:9): [True: 100k, False: 0]
  ------------------
  443|   100k|    {
  444|   100k|        CV_LOG("Trace is disabled. Bailout");
  ------------------
  |  |   22|   100k|#define CV_LOG(...) {}
  ------------------
  445|   100k|        return;
  446|   100k|    }
  447|       |
  448|      0|    TraceManagerThreadLocal& ctx = getTraceManager().tls.getRef();
  449|      0|    CV_LOG(_spaces(ctx.getCurrentDepth()*4) << "Region(): " << (void*)this << ": " << location.name);
  ------------------
  |  |   22|      0|#define CV_LOG(...) {}
  ------------------
  450|       |
  451|      0|    Region* parentRegion = ctx.stackTopRegion();
  452|      0|    const Region::LocationStaticStorage* parentLocation = ctx.stackTopLocation();
  453|       |
  454|      0|    if (location.flags & REGION_FLAG_REGION_NEXT)
  ------------------
  |  Branch (454:9): [True: 0, False: 0]
  ------------------
  455|      0|    {
  456|      0|        if (parentRegion && parentRegion->pImpl)
  ------------------
  |  Branch (456:13): [True: 0, False: 0]
  |  Branch (456:29): [True: 0, False: 0]
  ------------------
  457|      0|        {
  458|      0|            CV_DbgAssert((parentRegion->pImpl->location.flags & REGION_FLAG_FUNCTION) == 0);
  459|      0|            parentRegion->destroy(); parentRegion->implFlags = 0;
  460|      0|            parentRegion = ctx.stackTopRegion();
  461|      0|            parentLocation = ctx.stackTopLocation();
  462|      0|        }
  463|      0|    }
  464|       |
  465|      0|    int parentChildren = 0;
  466|      0|    if (parentRegion && parentRegion->pImpl)
  ------------------
  |  Branch (466:9): [True: 0, False: 0]
  |  Branch (466:25): [True: 0, False: 0]
  ------------------
  467|      0|    {
  468|      0|        if (parentLocation == NULL)
  ------------------
  |  Branch (468:13): [True: 0, False: 0]
  ------------------
  469|      0|        {
  470|       |            // parallel_for_body code path
  471|      0|            parentChildren = CV_XADD(&parentRegion->pImpl->directChildrenCount, 1) + 1;
  ------------------
  |  |  702|      0|#      define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
  ------------------
  472|      0|        }
  473|      0|        else
  474|      0|        {
  475|      0|            parentChildren = ++parentRegion->pImpl->directChildrenCount;
  476|      0|        }
  477|      0|    }
  478|       |
  479|      0|    int64 beginTimestamp = getTimestampNS();
  480|       |
  481|      0|    int currentDepth = ctx.getCurrentDepth() + 1;
  482|      0|    switch (location.flags & REGION_FLAG_IMPL_MASK)
  483|      0|    {
  484|       |#ifdef HAVE_IPP
  485|       |    case REGION_FLAG_IMPL_IPP:
  486|       |        if (!ctx.stat_status.ignoreDepthImplIPP)
  487|       |            ctx.stat_status.ignoreDepthImplIPP = currentDepth;
  488|       |        break;
  489|       |#endif
  490|      0|#ifdef HAVE_OPENCL
  491|      0|    case REGION_FLAG_IMPL_OPENCL:
  ------------------
  |  Branch (491:5): [True: 0, False: 0]
  ------------------
  492|      0|        if (!ctx.stat_status.ignoreDepthImplOpenCL)
  ------------------
  |  Branch (492:13): [True: 0, False: 0]
  ------------------
  493|      0|            ctx.stat_status.ignoreDepthImplOpenCL = currentDepth;
  494|      0|        break;
  495|      0|#endif
  496|       |#ifdef HAVE_OPENVX
  497|       |    case REGION_FLAG_IMPL_OPENVX:
  498|       |        if (!ctx.stat_status.ignoreDepthImplOpenVX)
  499|       |            ctx.stat_status.ignoreDepthImplOpenVX = currentDepth;
  500|       |        break;
  501|       |#endif
  502|      0|    default:
  ------------------
  |  Branch (502:5): [True: 0, False: 0]
  ------------------
  503|      0|        break;
  504|      0|    }
  505|       |
  506|      0|    ctx.stackPush(this, &location, beginTimestamp);
  507|      0|    implFlags |= REGION_FLAG__NEED_STACK_POP;
  508|       |
  509|      0|    if ((location.flags & REGION_FLAG_REGION_FORCE) == 0)
  ------------------
  |  Branch (509:9): [True: 0, False: 0]
  ------------------
  510|      0|    {
  511|      0|        if (ctx.stat_status._skipDepth >= 0 && currentDepth > ctx.stat_status._skipDepth)
  ------------------
  |  Branch (511:13): [True: 0, False: 0]
  |  Branch (511:48): [True: 0, False: 0]
  ------------------
  512|      0|        {
  513|      0|            CV_LOG(_spaces(ctx.getCurrentDepth()*4) << "Parent region is disabled. Bailout");
  ------------------
  |  |   22|      0|#define CV_LOG(...) {}
  ------------------
  514|      0|            ctx.stat.currentSkippedRegions++;
  515|      0|            return;
  516|      0|        }
  517|       |
  518|      0|        if (param_maxRegionChildrenOpenCV > 0 && (location.flags & REGION_FLAG_APP_CODE) == 0 && parentLocation && (parentLocation->flags & REGION_FLAG_APP_CODE) == 0)
  ------------------
  |  Branch (518:13): [True: 0, False: 0]
  |  Branch (518:50): [True: 0, False: 0]
  |  Branch (518:98): [True: 0, False: 0]
  |  Branch (518:116): [True: 0, False: 0]
  ------------------
  519|      0|        {
  520|      0|            if (parentChildren >= param_maxRegionChildrenOpenCV)
  ------------------
  |  Branch (520:17): [True: 0, False: 0]
  ------------------
  521|      0|            {
  522|      0|                CV_LOG_TRACE_BAILOUT(NULL, _spaces(ctx.getCurrentDepth()*4) << "OpenCV parent region exceeds children count. Bailout");
  ------------------
  |  |   32|      0|#define CV_LOG_TRACE_BAILOUT(tag, ...) CV_LOG_INFO(tag, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  170|      0|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#   define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  |  |  164|      0|        break; \
  |  |  |  |  |  |  165|      0|    }
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  523|      0|                ctx.stat_status.enableSkipMode(currentDepth - 1);
  524|      0|                ctx.stat.currentSkippedRegions++;
  525|      0|                DEBUG_ONLY(ctx.dumpStack(std::cout, false));
  ------------------
  |  |   30|      0|#define DEBUG_ONLY(...) (void)0
  ------------------
  526|      0|                return;
  527|      0|            }
  528|      0|        }
  529|      0|        if (param_maxRegionChildren > 0 && parentChildren >= param_maxRegionChildren)
  ------------------
  |  Branch (529:13): [True: 0, False: 0]
  |  Branch (529:44): [True: 0, False: 0]
  ------------------
  530|      0|        {
  531|      0|            CV_LOG_TRACE_BAILOUT(NULL, _spaces(ctx.getCurrentDepth()*4) << "Parent region exceeds children count. Bailout");
  ------------------
  |  |   32|      0|#define CV_LOG_TRACE_BAILOUT(tag, ...) CV_LOG_INFO(tag, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  170|      0|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#   define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  |  |  164|      0|        break; \
  |  |  |  |  |  |  165|      0|    }
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  532|      0|            ctx.stat_status.enableSkipMode(currentDepth - 1);
  533|      0|            ctx.stat.currentSkippedRegions++;
  534|      0|            DEBUG_ONLY(ctx.dumpStack(std::cout, false));
  ------------------
  |  |   30|      0|#define DEBUG_ONLY(...) (void)0
  ------------------
  535|      0|            return;
  536|      0|        }
  537|      0|    }
  538|       |
  539|      0|    LocationExtraData::init(location);
  540|       |
  541|      0|    if ((*location.ppExtra)->global_location_id == 0)
  ------------------
  |  Branch (541:9): [True: 0, False: 0]
  ------------------
  542|      0|    {
  543|      0|        CV_LOG_TRACE_BAILOUT(NULL, _spaces(ctx.getCurrentDepth()*4) << "Region location is disabled. Bailout");
  ------------------
  |  |   32|      0|#define CV_LOG_TRACE_BAILOUT(tag, ...) CV_LOG_INFO(tag, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  170|      0|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#   define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  |  |  164|      0|        break; \
  |  |  |  |  |  |  165|      0|    }
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  544|      0|        ctx.stat_status.enableSkipMode(currentDepth);
  545|      0|        ctx.stat.currentSkippedRegions++;
  546|      0|        return;
  547|      0|    }
  548|       |
  549|      0|    if (parentLocation && (parentLocation->flags & REGION_FLAG_SKIP_NESTED))
  ------------------
  |  Branch (549:9): [True: 0, False: 0]
  |  Branch (549:27): [True: 0, False: 0]
  ------------------
  550|      0|    {
  551|      0|        CV_LOG(_spaces(ctx.getCurrentDepth()*4) << "Parent region disables inner regions. Bailout");
  ------------------
  |  |   22|      0|#define CV_LOG(...) {}
  ------------------
  552|      0|        ctx.stat_status.enableSkipMode(currentDepth);
  553|      0|        ctx.stat.currentSkippedRegions++;
  554|      0|        return;
  555|      0|    }
  556|       |
  557|      0|    if (param_maxRegionDepthOpenCV)
  ------------------
  |  Branch (557:9): [True: 0, False: 0]
  ------------------
  558|      0|    {
  559|      0|        if ((location.flags & REGION_FLAG_APP_CODE) == 0)
  ------------------
  |  Branch (559:13): [True: 0, False: 0]
  ------------------
  560|      0|        {
  561|      0|            if (ctx.regionDepthOpenCV >= param_maxRegionDepthOpenCV)
  ------------------
  |  Branch (561:17): [True: 0, False: 0]
  ------------------
  562|      0|            {
  563|      0|                CV_LOG(_spaces(ctx.getCurrentDepth()*4) << "OpenCV region depth is exceed = " << ctx.regionDepthOpenCV << ". Bailout");
  ------------------
  |  |   22|      0|#define CV_LOG(...) {}
  ------------------
  564|      0|                if (ctx.stat.currentSkippedRegions == 0)
  ------------------
  |  Branch (564:21): [True: 0, False: 0]
  ------------------
  565|      0|                {
  566|      0|                    DEBUG_ONLY(ctx.dumpStack(std::cout, false));
  ------------------
  |  |   30|      0|#define DEBUG_ONLY(...) (void)0
  ------------------
  567|      0|                }
  568|      0|                ctx.stat_status.enableSkipMode(currentDepth);
  569|      0|                ctx.stat.currentSkippedRegions++;
  570|      0|                return;
  571|      0|            }
  572|      0|        }
  573|      0|    }
  574|       |
  575|      0|    new Impl(ctx, parentRegion, *this, location, beginTimestamp);
  576|      0|    CV_DbgAssert(pImpl != NULL);
  577|      0|    implFlags |= REGION_FLAG__ACTIVE;
  578|       |
  579|       |    // parallel_for path
  580|      0|    if (parentRegion && parentRegion->pImpl)
  ------------------
  |  Branch (580:9): [True: 0, False: 0]
  |  Branch (580:25): [True: 0, False: 0]
  ------------------
  581|      0|    {
  582|      0|        if (parentLocation == NULL)
  ------------------
  |  Branch (582:13): [True: 0, False: 0]
  ------------------
  583|      0|        {
  584|      0|            pImpl->directChildrenCount = parentChildren;
  585|      0|        }
  586|      0|    }
  587|      0|}
_ZN2cv5utils5trace7details12TraceManagerC2Ev:
  837|      2|{
  838|      2|    (void)cv::getTimestampNS();
  839|       |
  840|      2|    isInitialized = true;
  841|      2|    CV_LOG("TraceManager ctor: " << (void*)this);
  ------------------
  |  |   22|      2|#define CV_LOG(...) {}
  ------------------
  842|       |
  843|      2|    CV_LOG("TraceManager configure()");
  ------------------
  |  |   22|      2|#define CV_LOG(...) {}
  ------------------
  844|      2|    activated = getParameterTraceEnable();
  845|       |
  846|      2|    if (activated)
  ------------------
  |  Branch (846:9): [True: 0, False: 2]
  ------------------
  847|      0|        trace_storage.reset(new SyncTraceStorage(std::string(getParameterTraceLocation()) + ".txt"));
  848|       |
  849|      2|#ifdef OPENCV_WITH_ITT
  850|      2|    if (isITTEnabled())
  ------------------
  |  Branch (850:9): [True: 0, False: 2]
  ------------------
  851|      0|    {
  852|      0|        activated = true; // force trace pipeline activation (without OpenCV storage)
  853|      0|        __itt_region_begin(domain, __itt_null, __itt_null, __itt_string_handle_create("OpenCVTrace"));
  ------------------
  |  | 2142|      0|#define __itt_region_begin(d,x,y,z) ITTNOTIFY_VOID_D3(region_begin,d,x,y,z)
  |  |  ------------------
  |  |  |  |  261|      0|#define ITTNOTIFY_VOID_D3(n,d,x,y,z) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      0|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      0|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define ITTNOTIFY_VOID_D3(n,d,x,y,z) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      0|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      0|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      0|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      0|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      0|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      0|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (261:38): [True: 0, False: 0]
  |  |  |  |  |  Branch (261:62): [True: 0, False: 0]
  |  |  |  |  |  Branch (261:88): [True: 0, False: 0]
  |  |  |  |  |  Branch (261:145): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  854|      0|    }
  855|      2|#endif
  856|      2|}
_ZN2cv5utils5trace7details12TraceManager11isActivatedEv:
  896|   100k|{
  897|       |    // Check if process starts shutdown, and set earlyExit to true
  898|       |    // to prevent further instrumentation processing earlier.
  899|   100k|    if (cv::__termination)
  ------------------
  |  Branch (899:9): [True: 0, False: 100k]
  ------------------
  900|      0|    {
  901|      0|        activated = false;
  902|      0|        return false;
  903|      0|    }
  904|       |
  905|   100k|    if (!isInitialized)
  ------------------
  |  Branch (905:9): [True: 2, False: 100k]
  ------------------
  906|      2|    {
  907|      2|        TraceManager& m = getTraceManager();
  908|      2|        CV_UNUSED(m); // TODO
  ------------------
  |  |  173|      2|#define CV_UNUSED(name) (void)name
  ------------------
  909|      2|    }
  910|       |
  911|   100k|    return activated;
  912|   100k|}
_ZN2cv5utils5trace7details15getTraceManagerEv:
  921|      2|{
  922|      2|    CV_SINGLETON_LAZY_INIT_REF(TraceManager, getTraceManagerCallOnce())
  ------------------
  |  |  404|      2|#define CV_SINGLETON_LAZY_INIT_REF(TYPE, INITIALIZER) CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, *instance)
  |  |  ------------------
  |  |  |  |  400|      2|    static TYPE* const instance = INITIALIZER; \
  |  |  |  |  401|      2|    return RET_VALUE;
  |  |  ------------------
  ------------------
  923|      2|}
trace.cpp:_ZN2cv5utils5trace7detailsL12isITTEnabledEv:
  198|      2|{
  199|      2|    static volatile bool isInitialized = false;
  200|      2|    static bool isEnabled = false;
  201|      2|    if (!isInitialized)
  ------------------
  |  Branch (201:9): [True: 2, False: 0]
  ------------------
  202|      2|    {
  203|      2|        cv::AutoLock lock(cv::getInitializationMutex());
  204|      2|        if (!isInitialized)
  ------------------
  |  Branch (204:13): [True: 2, False: 0]
  ------------------
  205|      2|        {
  206|      2|            bool param_traceITTEnable = utils::getConfigurationParameterBool("OPENCV_TRACE_ITT_ENABLE", true);
  207|      2|            if (param_traceITTEnable)
  ------------------
  |  Branch (207:17): [True: 2, False: 0]
  ------------------
  208|      2|            {
  209|      2|                isEnabled = !!(__itt_api_version());
  ------------------
  |  | 4648|      2|#define __itt_api_version     ITTNOTIFY_DATA(api_version)
  |  |  ------------------
  |  |  |  |  256|      2|#define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ?       0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      2|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      2|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ?       0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      2|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      2|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (256:27): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  210|      2|                CV_LOG_ITT("ITT is " << (isEnabled ? "enabled" : "disabled"));
  ------------------
  |  |   28|      2|#define CV_LOG_ITT(...) {}
  ------------------
  211|      2|                domain = __itt_domain_create("OpenCVTrace");
  ------------------
  |  | 1858|      2|#define __itt_domain_create     ITTNOTIFY_DATA(domain_create)
  |  |  ------------------
  |  |  |  |  256|      2|#define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ?       0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      2|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      2|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ?       0 : ITTNOTIFY_NAME(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  253|      2|#define ITTNOTIFY_NAME(n)     ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  240|      2|    ITT_JOIN(x,              \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      2|#define ITT_JOIN(p,n)     ITT_JOIN_AUX(p,n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  226|      2|#define ITT_JOIN_AUX(p,n) p##n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  241|      2|    ITT_JOIN(_,              \
  |  |  |  |  |  |  |  |  242|      2|    ITT_JOIN(ITT_MAJOR,      \
  |  |  |  |  |  |  |  |  243|      2|    ITT_JOIN(_, ITT_MINOR))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (256:27): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  212|      2|            }
  213|      0|            else
  214|      0|            {
  215|      0|                CV_LOG_ITT("ITT is disabled through OpenCV parameter");
  ------------------
  |  |   28|      0|#define CV_LOG_ITT(...) {}
  ------------------
  216|      0|                isEnabled = false;
  217|      0|            }
  218|      2|            isInitialized = true;
  219|      2|        }
  220|      2|    }
  221|      2|    return isEnabled;
  222|      2|}
trace.cpp:_ZN2cv5utils5trace7detailsL23getParameterTraceEnableEv:
   67|      2|{
   68|      2|    static bool param_traceEnable = utils::getConfigurationParameterBool("OPENCV_TRACE", false);
   69|      2|    return param_traceEnable;
   70|      2|}
trace.cpp:_ZN2cv5utils5trace7detailsL23getTraceManagerCallOnceEv:
  916|      2|{
  917|      2|    static TraceManager globalInstance;
  918|      2|    return &globalInstance;
  919|      2|}

_ZN2cv5utils7logging12LogTagConfigC2Ev:
   26|      2|        : namePart()
   27|       |        , level()
   28|       |        , isGlobal()
   29|       |        , hasPrefixWildcard()
   30|       |        , hasSuffixWildcard()
   31|      2|    {
   32|      2|    }

_ZN2cv5utils7logging18LogTagConfigParserC2ENS1_8LogLevelE:
   13|      2|{
   14|      2|    m_parsedGlobal.namePart = "global";
   15|      2|    m_parsedGlobal.isGlobal = true;
   16|      2|    m_parsedGlobal.hasPrefixWildcard = false;
   17|      2|    m_parsedGlobal.hasSuffixWildcard = false;
   18|      2|    m_parsedGlobal.level = defaultUnconfiguredGlobalLevel;
   19|      2|}
_ZN2cv5utils7logging18LogTagConfigParser5parseERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
   31|      2|{
   32|      2|    m_input = input;
   33|      2|    segmentTokens();
   34|      2|    return (m_malformed.empty());
   35|      2|}
_ZNK2cv5utils7logging18LogTagConfigParser12hasMalformedEv:
   38|      2|{
   39|      2|    return !m_malformed.empty();
   40|      2|}
_ZNK2cv5utils7logging18LogTagConfigParser15getGlobalConfigEv:
   43|      2|{
   44|      2|    return m_parsedGlobal;
   45|      2|}
_ZNK2cv5utils7logging18LogTagConfigParser18getFullNameConfigsEv:
   48|      2|{
   49|      2|    return m_parsedFullName;
   50|      2|}
_ZNK2cv5utils7logging18LogTagConfigParser19getFirstPartConfigsEv:
   53|      2|{
   54|      2|    return m_parsedFirstPart;
   55|      2|}
_ZNK2cv5utils7logging18LogTagConfigParser17getAnyPartConfigsEv:
   58|      2|{
   59|      2|    return m_parsedAnyPart;
   60|      2|}
_ZN2cv5utils7logging18LogTagConfigParser13segmentTokensEv:
   68|      2|{
   69|      2|    const size_t len = m_input.length();
   70|      2|    std::vector<std::pair<size_t, size_t>> startStops;
   71|      2|    bool wasSeparator = true;
   72|      2|    for (size_t pos = 0u; pos < len; ++pos)
  ------------------
  |  Branch (72:27): [True: 0, False: 2]
  ------------------
   73|      0|    {
   74|      0|        char c = m_input[pos];
   75|      0|        bool isSeparator = (c == ' ' || c == '\t' || c == ';');
  ------------------
  |  Branch (75:29): [True: 0, False: 0]
  |  Branch (75:41): [True: 0, False: 0]
  |  Branch (75:54): [True: 0, False: 0]
  ------------------
   76|      0|        if (!isSeparator)
  ------------------
  |  Branch (76:13): [True: 0, False: 0]
  ------------------
   77|      0|        {
   78|      0|            if (wasSeparator)
  ------------------
  |  Branch (78:17): [True: 0, False: 0]
  ------------------
   79|      0|            {
   80|      0|                startStops.emplace_back(pos, pos + 1u);
   81|      0|            }
   82|      0|            else
   83|      0|            {
   84|      0|                startStops.back().second = pos + 1u;
   85|      0|            }
   86|      0|        }
   87|      0|        wasSeparator = isSeparator;
   88|      0|    }
   89|      2|    for (const auto& startStop : startStops)
  ------------------
  |  Branch (89:32): [True: 0, False: 2]
  ------------------
   90|      0|    {
   91|      0|        const auto s = m_input.substr(startStop.first, startStop.second - startStop.first);
   92|      0|        parseNameAndLevel(s);
   93|      0|    }
   94|      2|}

_ZN2cv5utils7logging13LogTagManagerC2ENS1_8LogLevelE:
   18|      2|    : m_mutex()
   19|      2|    , m_globalLogTag(new LogTag(m_globalName, defaultUnconfiguredGlobalLevel))
   20|      2|    , m_config(std::make_shared<LogTagConfigParser>(defaultUnconfiguredGlobalLevel))
   21|      2|{
   22|      2|    assign(m_globalName, m_globalLogTag.get());
   23|      2|}
_ZN2cv5utils7logging13LogTagManager15setConfigStringERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEb:
   30|      2|{
   31|      2|    m_config->parse(configString);
   32|      2|    if (m_config->hasMalformed())
  ------------------
  |  Branch (32:9): [True: 0, False: 2]
  ------------------
   33|      0|    {
   34|      0|        return;
   35|      0|    }
   36|      2|    if (!apply)
  ------------------
  |  Branch (36:9): [True: 0, False: 2]
  ------------------
   37|      0|    {
   38|      0|        return;
   39|      0|    }
   40|       |    // The following code is arranged with "priority by overwriting",
   41|       |    // where when the same log tag has multiple matches, the last code
   42|       |    // block has highest priority by literally overwriting the effects
   43|       |    // from the earlier code blocks.
   44|       |    //
   45|       |    // Matching by full name has highest priority.
   46|       |    // Matching by any name part has moderate priority.
   47|       |    // Matching by first name part (prefix) has lowest priority.
   48|       |    //
   49|      2|    const auto& globalConfig = m_config->getGlobalConfig();
   50|      2|    m_globalLogTag->level = globalConfig.level;
   51|      2|    for (const auto& config : m_config->getFirstPartConfigs())
  ------------------
  |  Branch (51:29): [True: 0, False: 2]
  ------------------
   52|      0|    {
   53|      0|        setLevelByFirstPart(config.namePart, config.level);
   54|      0|    }
   55|      2|    for (const auto& config : m_config->getAnyPartConfigs())
  ------------------
  |  Branch (55:29): [True: 0, False: 2]
  ------------------
   56|      0|    {
   57|      0|        setLevelByAnyPart(config.namePart, config.level);
   58|      0|    }
   59|      2|    for (const auto& config : m_config->getFullNameConfigs())
  ------------------
  |  Branch (59:29): [True: 0, False: 2]
  ------------------
   60|      0|    {
   61|      0|        setLevelByFullName(config.namePart, config.level);
   62|      0|    }
   63|      2|}
_ZN2cv5utils7logging13LogTagManager6assignERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPNS1_6LogTagE:
   71|      2|{
   72|      2|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|      2|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|      2|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      2|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      2|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|      2|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|      2|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|      2|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|      2|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|      2|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|      2|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   73|      2|    LockType lock(m_mutex);
   74|      2|    FullNameLookupResult result(fullName);
   75|      2|    result.m_findCrossReferences = true;
   76|      2|    m_nameTable.addOrLookupFullName(result);
   77|      2|    FullNameInfo& fullNameInfo = *result.m_fullNameInfoPtr;
   78|      2|    const bool isPtrChanged = (fullNameInfo.logTagPtr != ptr);
   79|      2|    if (!isPtrChanged)
  ------------------
  |  Branch (79:9): [True: 0, False: 2]
  ------------------
   80|      0|    {
   81|      0|        return;
   82|      0|    }
   83|      2|    fullNameInfo.logTagPtr = ptr;
   84|      2|    if (!ptr)
  ------------------
  |  Branch (84:9): [True: 0, False: 2]
  ------------------
   85|      0|    {
   86|      0|        return;
   87|      0|    }
   88|      2|    const bool hasAppliedFullNameConfig = internal_applyFullNameConfigToTag(fullNameInfo);
   89|      2|    if (hasAppliedFullNameConfig)
  ------------------
  |  Branch (89:9): [True: 0, False: 2]
  ------------------
   90|      0|    {
   91|      0|        return;
   92|      0|    }
   93|      2|    internal_applyNamePartConfigToSpecificTag(result);
   94|      2|}
_ZN2cv5utils7logging13LogTagManager3getERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  103|      2|{
  104|      2|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|      2|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|      2|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      2|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      2|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|      2|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|      2|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|      2|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|      2|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|      2|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|      2|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  105|      2|    LockType lock(m_mutex);
  106|      2|    FullNameInfo* fullNameInfoPtr = m_nameTable.getFullNameInfo(fullName);
  107|      2|    if (fullNameInfoPtr && fullNameInfoPtr->logTagPtr)
  ------------------
  |  Branch (107:9): [True: 2, False: 0]
  |  Branch (107:28): [True: 2, False: 0]
  ------------------
  108|      2|    {
  109|      2|        return fullNameInfoPtr->logTagPtr;
  110|      2|    }
  111|      0|    return nullptr;
  112|      2|}
_ZN2cv5utils7logging13LogTagManager14splitNamePartsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  171|      2|{
  172|      2|    const size_t npos = std::string::npos;
  173|      2|    const size_t len = fullName.length();
  174|      2|    std::vector<std::string> nameParts;
  175|      2|    size_t start = 0u;
  176|      4|    while (start < len)
  ------------------
  |  Branch (176:12): [True: 2, False: 2]
  ------------------
  177|      2|    {
  178|      2|        size_t nextPeriod = fullName.find('.', start);
  179|      2|        if (nextPeriod == npos)
  ------------------
  |  Branch (179:13): [True: 2, False: 0]
  ------------------
  180|      2|        {
  181|      2|            nextPeriod = len;
  182|      2|        }
  183|      2|        if (nextPeriod >= start + 1u)
  ------------------
  |  Branch (183:13): [True: 2, False: 0]
  ------------------
  184|      2|        {
  185|      2|            nameParts.emplace_back(fullName.substr(start, nextPeriod - start));
  186|      2|        }
  187|      2|        start = nextPeriod + 1u;
  188|      2|    }
  189|      2|    return nameParts;
  190|      2|}
_ZN2cv5utils7logging13LogTagManager24internal_isNamePartMatchENS2_13MatchingScopeEm:
  193|      2|{
  194|      2|    switch (scope)
  195|      2|    {
  196|      0|    case MatchingScope::FirstNamePart:
  ------------------
  |  Branch (196:5): [True: 0, False: 2]
  ------------------
  197|      0|        return (matchingPos == 0u);
  198|      0|    case MatchingScope::AnyNamePart:
  ------------------
  |  Branch (198:5): [True: 0, False: 2]
  ------------------
  199|      0|        return true;
  200|      2|    case MatchingScope::None:
  ------------------
  |  Branch (200:5): [True: 2, False: 0]
  ------------------
  201|      2|    case MatchingScope::Full:
  ------------------
  |  Branch (201:5): [True: 0, False: 2]
  ------------------
  202|      2|    default:
  ------------------
  |  Branch (202:5): [True: 0, False: 2]
  ------------------
  203|      2|        return false;
  204|      2|    }
  205|      2|}
_ZN2cv5utils7logging13LogTagManager33internal_applyFullNameConfigToTagERNS2_12FullNameInfoE:
  208|      2|{
  209|      2|    if (!fullNameInfo.logTagPtr)
  ------------------
  |  Branch (209:9): [True: 0, False: 2]
  ------------------
  210|      0|    {
  211|      0|        return false;
  212|      0|    }
  213|      2|    if (fullNameInfo.parsedLevel.scope == MatchingScope::Full)
  ------------------
  |  Branch (213:9): [True: 0, False: 2]
  ------------------
  214|      0|    {
  215|      0|        fullNameInfo.logTagPtr->level = fullNameInfo.parsedLevel.level;
  216|      0|        return true;
  217|      0|    }
  218|      2|    return false;
  219|      2|}
_ZN2cv5utils7logging13LogTagManager41internal_applyNamePartConfigToSpecificTagERNS2_20FullNameLookupResultE:
  222|      2|{
  223|      2|    const FullNameInfo& fullNameInfo = *fullNameResult.m_fullNameInfoPtr;
  224|      2|    LogTag* const logTag = fullNameInfo.logTagPtr;
  225|      2|    if (!logTag)
  ------------------
  |  Branch (225:9): [True: 0, False: 2]
  ------------------
  226|      0|    {
  227|      0|        return false;
  228|      0|    }
  229|      2|    CV_Assert(fullNameResult.m_findCrossReferences);
  ------------------
  |  |  423|      2|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 2, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  230|      2|    const auto& crossReferences = fullNameResult.m_crossReferences;
  231|      2|    const size_t matchingNamePartCount = crossReferences.size();
  232|      4|    for (size_t k = 0u; k < matchingNamePartCount; ++k)
  ------------------
  |  Branch (232:25): [True: 2, False: 2]
  ------------------
  233|      2|    {
  234|      2|        const auto& match = crossReferences.at(k);
  235|      2|        const auto& namePartInfo = *match.m_namePartInfo;
  236|      2|        const auto& parsedLevel = namePartInfo.parsedLevel;
  237|      2|        const auto scope = parsedLevel.scope;
  238|      2|        const LogLevel level = parsedLevel.level;
  239|      2|        const size_t matchingPos = match.m_matchingPos;
  240|      2|        const bool isMatch = internal_isNamePartMatch(scope, matchingPos);
  241|      2|        if (isMatch)
  ------------------
  |  Branch (241:13): [True: 0, False: 2]
  ------------------
  242|      0|        {
  243|      0|            logTag->level = level;
  244|      0|            return true;
  245|      0|        }
  246|      2|    }
  247|      2|    return false;
  248|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable19addOrLookupFullNameERNS2_20FullNameLookupResultE:
  289|      2|{
  290|      2|    const auto fullNameIdAndFlag = internal_addOrLookupFullName(result.m_fullName);
  291|      2|    result.m_fullNameId = fullNameIdAndFlag.first;
  292|      2|    result.m_nameParts = LogTagManager::splitNameParts(result.m_fullName);
  293|      2|    internal_addOrLookupNameParts(result.m_nameParts, result.m_namePartIds);
  294|      2|    const bool isNew = fullNameIdAndFlag.second;
  295|      2|    if (isNew)
  ------------------
  |  Branch (295:9): [True: 2, False: 0]
  ------------------
  296|      2|    {
  297|      2|        internal_addCrossReference(result.m_fullNameId, result.m_namePartIds);
  298|      2|    }
  299|       |    // ====== IMPORTANT ====== Critical order-of-operation ======
  300|       |    // The gathering of the pointers of FullNameInfo and NamePartInfo are performed
  301|       |    // as the last step of the operation, so that these pointer are not invalidated
  302|       |    // by the vector append operations earlier in this function.
  303|       |    // ======
  304|      2|    result.m_fullNameInfoPtr = internal_getFullNameInfo(result.m_fullNameId);
  305|      2|    if (result.m_findCrossReferences)
  ------------------
  |  Branch (305:9): [True: 2, False: 0]
  ------------------
  306|      2|    {
  307|      2|        internal_findMatchingNamePartsForFullName(result);
  308|      2|    }
  309|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable28internal_addOrLookupFullNameERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  322|      2|{
  323|      2|    const auto fullNameIdIter = m_fullNameIds.find(fullName);
  324|      2|    if (fullNameIdIter != m_fullNameIds.end())
  ------------------
  |  Branch (324:9): [True: 0, False: 2]
  ------------------
  325|      0|    {
  326|      0|        return std::make_pair(fullNameIdIter->second, false);
  327|      0|    }
  328|      2|    const size_t fullNameId = m_fullNameInfos.size();
  329|      2|    m_fullNameInfos.emplace_back(FullNameInfo{});
  330|      2|    m_fullNameIds.emplace(fullName, fullNameId);
  331|      2|    return std::make_pair(fullNameId, true);
  332|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable29internal_addOrLookupNamePartsERKNSt3__16vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEERNS5_ImNS9_ImEEEE:
  336|      2|{
  337|      2|    const size_t namePartCount = nameParts.size();
  338|      2|    namePartIds.resize(namePartCount, ~(size_t)0u);
  339|      4|    for (size_t namePartIndex = 0u; namePartIndex < namePartCount; ++namePartIndex)
  ------------------
  |  Branch (339:37): [True: 2, False: 2]
  ------------------
  340|      2|    {
  341|      2|        const std::string& namePart = nameParts.at(namePartIndex);
  342|      2|        const size_t namePartId = internal_addOrLookupNamePart(namePart);
  343|      2|        namePartIds.at(namePartIndex) = namePartId;
  344|      2|    }
  345|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable28internal_addOrLookupNamePartERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  348|      2|{
  349|      2|    const auto namePartIter = m_namePartIds.find(namePart);
  350|      2|    if (namePartIter != m_namePartIds.end())
  ------------------
  |  Branch (350:9): [True: 0, False: 2]
  ------------------
  351|      0|    {
  352|      0|        return namePartIter->second;
  353|      0|    }
  354|      2|    const size_t namePartId = m_namePartInfos.size();
  355|      2|    m_namePartInfos.emplace_back(NamePartInfo{});
  356|      2|    m_namePartIds.emplace(namePart, namePartId);
  357|      2|    return namePartId;
  358|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable26internal_addCrossReferenceEmRKNSt3__16vectorImNS4_9allocatorImEEEE:
  361|      2|{
  362|      2|    const size_t namePartCount = namePartIds.size();
  363|      4|    for (size_t namePartPos = 0u; namePartPos < namePartCount; ++namePartPos)
  ------------------
  |  Branch (363:35): [True: 2, False: 2]
  ------------------
  364|      2|    {
  365|      2|        const size_t namePartId = namePartIds.at(namePartPos);
  366|      2|        m_fullNameToNamePartIds.emplace(fullNameId, std::make_pair(namePartId, namePartPos));
  367|      2|        m_namePartToFullNameIds.emplace(namePartId, std::make_pair(fullNameId, namePartPos));
  368|      2|    }
  369|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable15getFullNameInfoERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  372|      2|{
  373|      2|    const auto fullNameIdIter = m_fullNameIds.find(fullName);
  374|      2|    if (fullNameIdIter == m_fullNameIds.end())
  ------------------
  |  Branch (374:9): [True: 0, False: 2]
  ------------------
  375|      0|    {
  376|      0|        return nullptr;
  377|      0|    }
  378|      2|    const size_t fullNameId = fullNameIdIter->second;
  379|      2|    return internal_getFullNameInfo(fullNameId);
  380|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable24internal_getFullNameInfoEm:
  383|      4|{
  384|      4|    return std::addressof(m_fullNameInfos.at(fullNameId));
  385|      4|}
_ZN2cv5utils7logging13LogTagManager9NameTable24internal_getNamePartInfoEm:
  388|      2|{
  389|      2|    return std::addressof(m_namePartInfos.at(namePartId));
  390|      2|}
_ZN2cv5utils7logging13LogTagManager9NameTable41internal_findMatchingNamePartsForFullNameERNS2_20FullNameLookupResultE:
  393|      2|{
  394|      2|    const size_t fullNameId = fullNameResult.m_fullNameId;
  395|      2|    FullNameInfo* fullNameInfo = fullNameResult.m_fullNameInfoPtr;
  396|      2|    const auto& namePartIds = fullNameResult.m_namePartIds;
  397|      2|    const size_t namePartCount = namePartIds.size();
  398|      2|    auto& crossReferences = fullNameResult.m_crossReferences;
  399|      2|    crossReferences.clear();
  400|      2|    crossReferences.reserve(namePartCount);
  401|      4|    for (size_t matchingPos = 0u; matchingPos < namePartCount; ++matchingPos)
  ------------------
  |  Branch (401:35): [True: 2, False: 2]
  ------------------
  402|      2|    {
  403|      2|        const size_t namePartId = namePartIds.at(matchingPos);
  404|      2|        NamePartInfo* namePartInfo = internal_getNamePartInfo(namePartId);
  405|      2|        crossReferences.emplace_back(CrossReference(fullNameId, namePartId, matchingPos, fullNameInfo, namePartInfo));
  406|      2|    }
  407|      2|}

_ZN2cv5utils7logging13LogTagManager11ParsedLevelC2Ev:
   58|      4|            , scope(MatchingScope::None)
   59|      4|        {
   60|      4|        }
_ZN2cv5utils7logging13LogTagManager14CrossReferenceC2EmmmPNS2_12FullNameInfoEPNS2_12NamePartInfoE:
   84|      2|            : m_fullNameId(fullNameId)
   85|      2|            , m_namePartId(namePartId)
   86|      2|            , m_matchingPos(matchingPos)
   87|      2|            , m_fullNameInfo(fullNameInfo)
   88|      2|            , m_namePartInfo(namePartInfo)
   89|      2|        {
   90|      2|        }
_ZN2cv5utils7logging13LogTagManager20FullNameLookupResultC2ERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  120|      2|            : m_fullName(fullName)
  121|      2|            , m_nameParts()
  122|       |            , m_fullNameId()
  123|      2|            , m_namePartIds()
  124|       |            , m_fullNameInfoPtr()
  125|       |            , m_findCrossReferences()
  126|      2|            , m_crossReferences()
  127|      2|        {
  128|      2|        }

_ZN2cv3dnn14dnn4_v202412239DictValueC2Eb:
   63|  1.19k|    explicit DictValue(bool i)           : type(Param::INT), pi(new AutoBuffer<int64,1>) { (*pi)[0] = i ? 1 : 0; }       //!< Constructs integer scalar
  ------------------
  |  Branch (63:103): [True: 1.06k, False: 136]
  ------------------
_ZN2cv3dnn14dnn4_v202412239DictValueC2El:
   64|  3.33k|    explicit DictValue(int64 i = 0)      : type(Param::INT), pi(new AutoBuffer<int64,1>) { (*pi)[0] = i; }       //!< Constructs integer scalar
_ZN2cv3dnn14dnn4_v202412239DictValueC2Ei:
   65|    138|    CV_WRAP explicit DictValue(int i)    : type(Param::INT), pi(new AutoBuffer<int64,1>) { (*pi)[0] = i; }       //!< Constructs integer scalar
_ZN2cv3dnn14dnn4_v202412239DictValueC2Ed:
   67|    178|    CV_WRAP explicit DictValue(double p)         : type(Param::REAL), pd(new AutoBuffer<double,1>) { (*pd)[0] = p; }     //!< Constructs floating point scalar
_ZN2cv3dnn14dnn4_v202412239DictValueC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
   68|  1.88k|    CV_WRAP explicit DictValue(const String &s)  : type(Param::STRING), ps(new AutoBuffer<String,1>) { (*ps)[0] = s; }   //!< Constructs string scalar
_ZN2cv3dnn14dnn4_v202412239DictValueC2EPKc:
   69|    280|    explicit DictValue(const char *s)            : type(Param::STRING), ps(new AutoBuffer<String,1>) { (*ps)[0] = s; }   //!< @overload
_ZN2cv3dnn14dnn4_v202412239DictValueC2ENS_5ParamEPv:
  109|     74|    DictValue(Param _type, void *_p) : type(_type), pv(_p) {}

_ZNK2cv3dnn14dnn4_v202412239DictValue3getIlEET_i:
   87|     65|{
   88|     65|    CV_Assert((idx == -1 && size() == 1) || (idx >= 0 && idx < size()));
  ------------------
  |  |  423|    195|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 65, False: 0]
  |  |  |  Branch (423:38): [True: 65, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   89|     65|    idx = (idx == -1) ? 0 : idx;
  ------------------
  |  Branch (89:11): [True: 65, False: 0]
  ------------------
   90|       |
   91|     65|    if (type == Param::INT)
  ------------------
  |  Branch (91:9): [True: 7, False: 58]
  ------------------
   92|      7|    {
   93|      7|        return (*pi)[idx];
   94|      7|    }
   95|     58|    else if (type == Param::REAL)
  ------------------
  |  Branch (95:14): [True: 57, False: 1]
  ------------------
   96|     57|    {
   97|     57|        double doubleValue = (*pd)[idx];
   98|       |
   99|     57|        double fracpart, intpart;
  100|     57|        fracpart = std::modf(doubleValue, &intpart);
  101|     57|        CV_Assert(fracpart == 0.0);
  ------------------
  |  |  423|     57|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 56, False: 1]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  102|       |
  103|     56|        return (int64)doubleValue;
  104|     57|    }
  105|      1|    else if (type == Param::STRING)
  ------------------
  |  Branch (105:14): [True: 1, False: 0]
  ------------------
  106|      1|    {
  107|      1|        return std::atoi((*ps)[idx].c_str());
  108|      1|    }
  109|      0|    else
  110|      0|    {
  111|      0|        CV_Assert(isInt() || isReal() || isString());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  112|      0|        return 0;
  113|      0|    }
  114|     65|}
_ZNK2cv3dnn14dnn4_v202412239DictValue3getIbEET_i:
  135|     65|{
  136|     65|    return (get<int64>(idx) != 0);
  137|     65|}
_ZN2cv3dnn14dnn4_v202412239DictValue7releaseEv:
  190|  28.3k|{
  191|  28.3k|    switch (type)
  ------------------
  |  Branch (191:13): [True: 0, False: 28.3k]
  ------------------
  192|  28.3k|    {
  193|  18.6k|    case Param::INT:
  ------------------
  |  Branch (193:5): [True: 18.6k, False: 9.71k]
  ------------------
  194|  18.6k|        delete pi;
  195|  18.6k|        break;
  196|  8.63k|    case Param::STRING:
  ------------------
  |  Branch (196:5): [True: 8.63k, False: 19.7k]
  ------------------
  197|  8.63k|        delete ps;
  198|  8.63k|        break;
  199|  1.08k|    case Param::REAL:
  ------------------
  |  Branch (199:5): [True: 1.08k, False: 27.2k]
  ------------------
  200|  1.08k|        delete pd;
  201|  1.08k|        break;
  202|      0|    case Param::BOOLEAN:
  ------------------
  |  Branch (202:5): [True: 0, False: 28.3k]
  ------------------
  203|      0|    case Param::MAT:
  ------------------
  |  Branch (203:5): [True: 0, False: 28.3k]
  ------------------
  204|      0|    case Param::MAT_VECTOR:
  ------------------
  |  Branch (204:5): [True: 0, False: 28.3k]
  ------------------
  205|      0|    case Param::ALGORITHM:
  ------------------
  |  Branch (205:5): [True: 0, False: 28.3k]
  ------------------
  206|      0|    case Param::FLOAT:
  ------------------
  |  Branch (206:5): [True: 0, False: 28.3k]
  ------------------
  207|      0|    case Param::UNSIGNED_INT:
  ------------------
  |  Branch (207:5): [True: 0, False: 28.3k]
  ------------------
  208|      0|    case Param::UINT64:
  ------------------
  |  Branch (208:5): [True: 0, False: 28.3k]
  ------------------
  209|      0|    case Param::UCHAR:
  ------------------
  |  Branch (209:5): [True: 0, False: 28.3k]
  ------------------
  210|      0|    case Param::SCALAR:
  ------------------
  |  Branch (210:5): [True: 0, False: 28.3k]
  ------------------
  211|      0|        break; // unhandled
  212|  28.3k|    }
  213|  28.3k|}
_ZNK2cv3dnn14dnn4_v202412239DictValue4sizeEv:
  278|     65|{
  279|     65|    switch (type)
  ------------------
  |  Branch (279:13): [True: 0, False: 65]
  ------------------
  280|     65|    {
  281|      7|    case Param::INT:
  ------------------
  |  Branch (281:5): [True: 7, False: 58]
  ------------------
  282|      7|        return (int)pi->size();
  283|      1|    case Param::STRING:
  ------------------
  |  Branch (283:5): [True: 1, False: 64]
  ------------------
  284|      1|        return (int)ps->size();
  285|     57|    case Param::REAL:
  ------------------
  |  Branch (285:5): [True: 57, False: 8]
  ------------------
  286|     57|        return (int)pd->size();
  287|      0|    case Param::BOOLEAN:
  ------------------
  |  Branch (287:5): [True: 0, False: 65]
  ------------------
  288|      0|    case Param::MAT:
  ------------------
  |  Branch (288:5): [True: 0, False: 65]
  ------------------
  289|      0|    case Param::MAT_VECTOR:
  ------------------
  |  Branch (289:5): [True: 0, False: 65]
  ------------------
  290|      0|    case Param::ALGORITHM:
  ------------------
  |  Branch (290:5): [True: 0, False: 65]
  ------------------
  291|      0|    case Param::FLOAT:
  ------------------
  |  Branch (291:5): [True: 0, False: 65]
  ------------------
  292|      0|    case Param::UNSIGNED_INT:
  ------------------
  |  Branch (292:5): [True: 0, False: 65]
  ------------------
  293|      0|    case Param::UINT64:
  ------------------
  |  Branch (293:5): [True: 0, False: 65]
  ------------------
  294|      0|    case Param::UCHAR:
  ------------------
  |  Branch (294:5): [True: 0, False: 65]
  ------------------
  295|      0|    case Param::SCALAR:
  ------------------
  |  Branch (295:5): [True: 0, False: 65]
  ------------------
  296|      0|        break; // unhandled
  297|     65|    }
  298|      0|    CV_Error_(Error::StsInternal, ("Unhandled type (%d)", static_cast<int>(type)));
  ------------------
  |  |  413|      0|#define CV_Error_( code, args ) cv::error( code, cv::format args, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  299|     65|}
_ZNK2cv3dnn14dnn4_v202412234Dict3hasERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  330|     16|{
  331|     16|    return dict.count(key) != 0;
  332|     16|}
_ZN2cv3dnn14dnn4_v202412239DictValueC2ERKS2_:
  251|  21.2k|{
  252|  21.2k|    type = r.type;
  253|       |
  254|  21.2k|    if (r.type == Param::INT)
  ------------------
  |  Branch (254:9): [True: 13.9k, False: 7.30k]
  ------------------
  255|  13.9k|        pi = new AutoBuffer<int64, 1>(*r.pi);
  256|  7.30k|    else if (r.type == Param::STRING)
  ------------------
  |  Branch (256:14): [True: 6.47k, False: 830]
  ------------------
  257|  6.47k|        ps = new AutoBuffer<String, 1>(*r.ps);
  258|    830|    else if (r.type == Param::REAL)
  ------------------
  |  Branch (258:14): [True: 830, False: 0]
  ------------------
  259|    830|        pd = new AutoBuffer<double, 1>(*r.pd);
  260|  21.2k|}
_ZN2cv3dnn14dnn4_v202412239DictValueD2Ev:
  216|  28.3k|{
  217|  28.3k|    release();
  218|  28.3k|}
_ZNK2cv3dnn14dnn4_v202412234Dict3getIbEET_RKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEERKS4_:
  362|  11.1k|{
  363|  11.1k|    _Dict::const_iterator i = dict.find(key);
  364|       |
  365|  11.1k|    if (i != dict.end())
  ------------------
  |  Branch (365:9): [True: 65, False: 11.0k]
  ------------------
  366|     65|        return i->second.get<T>();
  367|  11.0k|    else
  368|  11.0k|        return defaultValue;
  369|  11.1k|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIbEERKT_RKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEES6_:
  373|  1.19k|{
  374|  1.19k|    _Dict::iterator i = dict.find(key);
  375|       |
  376|  1.19k|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 1.19k]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|  1.19k|    else
  379|  1.19k|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|  1.19k|    return value;
  382|  1.19k|}
_ZN2cv3dnn14dnn4_v202412239DictValue9arrayRealIPfEES2_T_i:
   62|     74|{
   63|     74|    DictValue res(Param::REAL, new AutoBuffer<double, 1>(size));
   64|    222|    for (int j = 0; j < size; begin++, j++)
  ------------------
  |  Branch (64:21): [True: 148, False: 74]
  ------------------
   65|    148|        (*res.pd)[j] = *begin;
   66|     74|    return res;
   67|     74|}
_ZN2cv3dnn14dnn4_v202412234Dict3setINS1_9DictValueEEERKT_RKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEES7_:
  373|     74|{
  374|     74|    _Dict::iterator i = dict.find(key);
  375|       |
  376|     74|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 74]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|     74|    else
  379|     74|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|     74|    return value;
  382|     74|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIfEERKT_RKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEES6_:
  373|    178|{
  374|    178|    _Dict::iterator i = dict.find(key);
  375|       |
  376|    178|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 178]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|    178|    else
  379|    178|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|    178|    return value;
  382|    178|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIiEERKT_RKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEES6_:
  373|    138|{
  374|    138|    _Dict::iterator i = dict.find(key);
  375|       |
  376|    138|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 138]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|    138|    else
  379|    138|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|    138|    return value;
  382|    138|}
_ZN2cv3dnn14dnn4_v202412234Dict3setINSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEERKT_RKSA_SD_:
  373|  1.88k|{
  374|  1.88k|    _Dict::iterator i = dict.find(key);
  375|       |
  376|  1.88k|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 1.88k]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|  1.88k|    else
  379|  1.88k|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|  1.88k|    return value;
  382|  1.88k|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIA4_cEERKT_RKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEES7_:
  373|    244|{
  374|    244|    _Dict::iterator i = dict.find(key);
  375|       |
  376|    244|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 244]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|    244|    else
  379|    244|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|    244|    return value;
  382|    244|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIlEERKT_RKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEES6_:
  373|  3.33k|{
  374|  3.33k|    _Dict::iterator i = dict.find(key);
  375|       |
  376|  3.33k|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 3.33k]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|  3.33k|    else
  379|  3.33k|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|  3.33k|    return value;
  382|  3.33k|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIPKcEERKT_RKNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEES8_:
  373|     27|{
  374|     27|    _Dict::iterator i = dict.find(key);
  375|       |
  376|     27|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 27]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|     27|    else
  379|     27|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|     27|    return value;
  382|     27|}
_ZN2cv3dnn14dnn4_v202412234Dict3setIA5_cEERKT_RKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEES7_:
  373|      9|{
  374|      9|    _Dict::iterator i = dict.find(key);
  375|       |
  376|      9|    if (i != dict.end())
  ------------------
  |  Branch (376:9): [True: 0, False: 9]
  ------------------
  377|      0|        i->second = DictValue(value);
  378|      9|    else
  379|      9|        dict.insert(std::make_pair(key, DictValue(value)));
  380|       |
  381|      9|    return value;
  382|      9|}

_ZN17opencv_tensorflow19AttrValue_ListValueC2EPN6google8protobuf5ArenaEb:
  203|  9.44k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  204|  9.44k|  s_(arena),
  205|  9.44k|  i_(arena),
  206|  9.44k|  f_(arena),
  207|  9.44k|  b_(arena),
  208|  9.44k|  type_(arena),
  209|  9.44k|  shape_(arena),
  210|  9.44k|  tensor_(arena) {
  211|  9.44k|  SharedCtor();
  212|  9.44k|  if (!is_message_owned) {
  ------------------
  |  Branch (212:7): [True: 9.44k, False: 0]
  ------------------
  213|  9.44k|    RegisterArenaDtor(arena);
  214|  9.44k|  }
  215|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.AttrValue.ListValue)
  216|  9.44k|}
_ZN17opencv_tensorflow19AttrValue_ListValueD2Ev:
  233|  9.44k|AttrValue_ListValue::~AttrValue_ListValue() {
  234|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.AttrValue.ListValue)
  235|  9.44k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (235:7): [True: 0, False: 9.44k]
  ------------------
  236|  9.44k|  SharedDtor();
  237|  9.44k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  238|  9.44k|}
_ZN17opencv_tensorflow19AttrValue_ListValue14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  270|  10.0k|const char* AttrValue_ListValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  271|  10.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  272|  1.09M|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (272:10): [True: 1.08M, False: 9.40k]
  ------------------
  273|  1.08M|    uint32_t tag;
  274|  1.08M|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  275|  1.08M|    switch (tag >> 3) {
  276|       |      // repeated bytes s = 2;
  277|  5.02k|      case 2:
  ------------------
  |  Branch (277:7): [True: 5.02k, False: 1.07M]
  ------------------
  278|  5.02k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  279|  1.87k|          ptr -= 1;
  280|  2.95k|          do {
  281|  2.95k|            ptr += 1;
  282|  2.95k|            auto str = _internal_add_s();
  283|  2.95k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  284|  2.95k|            CHK_(ptr);
  ------------------
  |  |  271|  2.95k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  285|  2.95k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (285:17): [True: 453, False: 2.49k]
  ------------------
  286|  2.95k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (286:20): [True: 1.07k, False: 1.41k]
  ------------------
  287|  1.87k|        } else
  288|  3.15k|          goto handle_unusual;
  289|  1.87k|        continue;
  290|       |      // repeated int64 i = 3 [packed = true];
  291|   510k|      case 3:
  ------------------
  |  Branch (291:7): [True: 510k, False: 574k]
  ------------------
  292|   510k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
  293|  2.01k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_i(), ptr, ctx);
  294|  2.01k|          CHK_(ptr);
  ------------------
  |  |  271|  2.01k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  295|   508k|        } else if (static_cast<uint8_t>(tag) == 24) {
  ------------------
  |  Branch (295:20): [True: 506k, False: 2.58k]
  ------------------
  296|   506k|          _internal_add_i(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  297|   506k|          CHK_(ptr);
  ------------------
  |  |  271|   506k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  298|   506k|        } else
  299|  2.58k|          goto handle_unusual;
  300|   508k|        continue;
  301|       |      // repeated float f = 4 [packed = true];
  302|   508k|      case 4:
  ------------------
  |  Branch (302:7): [True: 3.50k, False: 1.08M]
  ------------------
  303|  3.50k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  304|  1.08k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_f(), ptr, ctx);
  305|  1.08k|          CHK_(ptr);
  ------------------
  |  |  271|  1.08k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  306|  2.42k|        } else if (static_cast<uint8_t>(tag) == 37) {
  ------------------
  |  Branch (306:20): [True: 1.87k, False: 552]
  ------------------
  307|  1.87k|          _internal_add_f(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
  308|  1.87k|          ptr += sizeof(float);
  309|  1.87k|        } else
  310|    552|          goto handle_unusual;
  311|  2.92k|        continue;
  312|       |      // repeated bool b = 5 [packed = true];
  313|  10.3k|      case 5:
  ------------------
  |  Branch (313:7): [True: 10.3k, False: 1.07M]
  ------------------
  314|  10.3k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
  315|  2.42k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedBoolParser(_internal_mutable_b(), ptr, ctx);
  316|  2.42k|          CHK_(ptr);
  ------------------
  |  |  271|  2.42k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  317|  7.89k|        } else if (static_cast<uint8_t>(tag) == 40) {
  ------------------
  |  Branch (317:20): [True: 7.10k, False: 783]
  ------------------
  318|  7.10k|          _internal_add_b(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  319|  7.10k|          CHK_(ptr);
  ------------------
  |  |  271|  7.10k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  320|  7.10k|        } else
  321|    783|          goto handle_unusual;
  322|  9.22k|        continue;
  323|       |      // repeated .opencv_tensorflow.DataType type = 6 [packed = true];
  324|   526k|      case 6:
  ------------------
  |  Branch (324:7): [True: 526k, False: 558k]
  ------------------
  325|   526k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
  326|    548|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_type(), ptr, ctx);
  327|    548|          CHK_(ptr);
  ------------------
  |  |  271|    548|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  328|   525k|        } else if (static_cast<uint8_t>(tag) == 48) {
  ------------------
  |  Branch (328:20): [True: 524k, False: 1.94k]
  ------------------
  329|   524k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  330|   524k|          CHK_(ptr);
  ------------------
  |  |  271|   524k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  331|   524k|          _internal_add_type(static_cast<::opencv_tensorflow::DataType>(val));
  332|   524k|        } else
  333|  1.94k|          goto handle_unusual;
  334|   524k|        continue;
  335|       |      // repeated .opencv_tensorflow.TensorShapeProto shape = 7;
  336|   524k|      case 7:
  ------------------
  |  Branch (336:7): [True: 3.12k, False: 1.08M]
  ------------------
  337|  3.12k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
  338|  1.80k|          ptr -= 1;
  339|  2.68k|          do {
  340|  2.68k|            ptr += 1;
  341|  2.68k|            ptr = ctx->ParseMessage(_internal_add_shape(), ptr);
  342|  2.68k|            CHK_(ptr);
  ------------------
  |  |  271|  2.68k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  343|  2.66k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (343:17): [True: 563, False: 2.09k]
  ------------------
  344|  2.66k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(ptr));
  ------------------
  |  Branch (344:20): [True: 880, False: 1.21k]
  ------------------
  345|  1.80k|        } else
  346|  1.31k|          goto handle_unusual;
  347|  1.78k|        continue;
  348|       |      // repeated .opencv_tensorflow.TensorProto tensor = 8;
  349|  3.98k|      case 8:
  ------------------
  |  Branch (349:7): [True: 3.98k, False: 1.08M]
  ------------------
  350|  3.98k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
  351|  3.35k|          ptr -= 1;
  352|  4.76k|          do {
  353|  4.76k|            ptr += 1;
  354|  4.76k|            ptr = ctx->ParseMessage(_internal_add_tensor(), ptr);
  355|  4.76k|            CHK_(ptr);
  ------------------
  |  |  271|  4.76k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  356|  4.70k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (356:17): [True: 1.21k, False: 3.49k]
  ------------------
  357|  4.70k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr));
  ------------------
  |  Branch (357:20): [True: 1.41k, False: 2.08k]
  ------------------
  358|  3.35k|        } else
  359|    627|          goto handle_unusual;
  360|  3.29k|        continue;
  361|  21.7k|      default:
  ------------------
  |  Branch (361:7): [True: 21.7k, False: 1.06M]
  ------------------
  362|  21.7k|        goto handle_unusual;
  363|  1.08M|    }  // switch
  364|  32.6k|  handle_unusual:
  365|  32.6k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (365:9): [True: 28, False: 32.6k]
  |  Branch (365:23): [True: 21, False: 32.6k]
  ------------------
  366|     49|      CHK_(ptr);
  ------------------
  |  |  271|     49|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  367|     47|      ctx->SetLastTag(tag);
  368|     47|      goto message_done;
  369|     49|    }
  370|  32.6k|    ptr = UnknownFieldParse(
  371|  32.6k|        tag,
  372|  32.6k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  373|  32.6k|        ptr, ctx);
  374|  32.6k|    CHK_(ptr != nullptr);
  ------------------
  |  |  271|  32.6k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  375|  32.6k|  }  // while
  376|  10.0k|message_done:
  377|  10.0k|  return ptr;
  378|    638|failure:
  379|    638|  ptr = nullptr;
  380|    638|  goto message_done;
  381|  10.0k|#undef CHK_
  382|  10.0k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue12ByteSizeLongEv:
  448|  3.90k|size_t AttrValue_ListValue::ByteSizeLong() const {
  449|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.AttrValue.ListValue)
  450|  3.90k|  size_t total_size = 0;
  451|       |
  452|  3.90k|  uint32_t cached_has_bits = 0;
  453|       |  // Prevent compiler warnings about cached_has_bits being unused
  454|  3.90k|  (void) cached_has_bits;
  455|       |
  456|       |  // repeated bytes s = 2;
  457|  3.90k|  total_size += 1 *
  458|  3.90k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(s_.size());
  459|  5.53k|  for (int i = 0, n = s_.size(); i < n; i++) {
  ------------------
  |  Branch (459:34): [True: 1.62k, False: 3.90k]
  ------------------
  460|  1.62k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
  461|  1.62k|      s_.Get(i));
  462|  1.62k|  }
  463|       |
  464|       |  // repeated int64 i = 3 [packed = true];
  465|  3.90k|  {
  466|  3.90k|    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
  467|  3.90k|      Int64Size(this->i_);
  468|  3.90k|    if (data_size > 0) {
  ------------------
  |  Branch (468:9): [True: 1.12k, False: 2.78k]
  ------------------
  469|  1.12k|      total_size += 1 +
  470|  1.12k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  471|  1.12k|            static_cast<int32_t>(data_size));
  472|  1.12k|    }
  473|  3.90k|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  474|  3.90k|    _i_cached_byte_size_.store(cached_size,
  475|  3.90k|                                    std::memory_order_relaxed);
  476|  3.90k|    total_size += data_size;
  477|  3.90k|  }
  478|       |
  479|       |  // repeated float f = 4 [packed = true];
  480|  3.90k|  {
  481|  3.90k|    unsigned int count = static_cast<unsigned int>(this->_internal_f_size());
  482|  3.90k|    size_t data_size = 4UL * count;
  483|  3.90k|    if (data_size > 0) {
  ------------------
  |  Branch (483:9): [True: 258, False: 3.64k]
  ------------------
  484|    258|      total_size += 1 +
  485|    258|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  486|    258|            static_cast<int32_t>(data_size));
  487|    258|    }
  488|  3.90k|    total_size += data_size;
  489|  3.90k|  }
  490|       |
  491|       |  // repeated bool b = 5 [packed = true];
  492|  3.90k|  {
  493|  3.90k|    unsigned int count = static_cast<unsigned int>(this->_internal_b_size());
  494|  3.90k|    size_t data_size = 1UL * count;
  495|  3.90k|    if (data_size > 0) {
  ------------------
  |  Branch (495:9): [True: 988, False: 2.91k]
  ------------------
  496|    988|      total_size += 1 +
  497|    988|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  498|    988|            static_cast<int32_t>(data_size));
  499|    988|    }
  500|  3.90k|    total_size += data_size;
  501|  3.90k|  }
  502|       |
  503|       |  // repeated .opencv_tensorflow.DataType type = 6 [packed = true];
  504|  3.90k|  {
  505|  3.90k|    size_t data_size = 0;
  506|  7.23k|    unsigned int count = static_cast<unsigned int>(this->_internal_type_size());for (unsigned int i = 0; i < count; i++) {
  ------------------
  |  Branch (506:106): [True: 3.32k, False: 3.90k]
  ------------------
  507|  3.32k|      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
  508|  3.32k|        this->_internal_type(static_cast<int>(i)));
  509|  3.32k|    }
  510|  3.90k|    if (data_size > 0) {
  ------------------
  |  Branch (510:9): [True: 1.27k, False: 2.63k]
  ------------------
  511|  1.27k|      total_size += 1 +
  512|  1.27k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  513|  1.27k|            static_cast<int32_t>(data_size));
  514|  1.27k|    }
  515|  3.90k|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  516|  3.90k|    _type_cached_byte_size_.store(cached_size,
  517|  3.90k|                                    std::memory_order_relaxed);
  518|  3.90k|    total_size += data_size;
  519|  3.90k|  }
  520|       |
  521|       |  // repeated .opencv_tensorflow.TensorShapeProto shape = 7;
  522|  3.90k|  total_size += 1UL * this->_internal_shape_size();
  523|  3.90k|  for (const auto& msg : this->shape_) {
  ------------------
  |  Branch (523:24): [True: 1.56k, False: 3.90k]
  ------------------
  524|  1.56k|    total_size +=
  525|  1.56k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  526|  1.56k|  }
  527|       |
  528|       |  // repeated .opencv_tensorflow.TensorProto tensor = 8;
  529|  3.90k|  total_size += 1UL * this->_internal_tensor_size();
  530|  3.90k|  for (const auto& msg : this->tensor_) {
  ------------------
  |  Branch (530:24): [True: 3.16k, False: 3.90k]
  ------------------
  531|  3.16k|    total_size +=
  532|  3.16k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  533|  3.16k|  }
  534|       |
  535|  3.90k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  536|  3.90k|}
_ZN17opencv_tensorflow19AttrValue_ListValue9MergeFromERKS0_:
  551|    619|void AttrValue_ListValue::MergeFrom(const AttrValue_ListValue& from) {
  552|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.AttrValue.ListValue)
  553|    619|  GOOGLE_DCHECK_NE(&from, this);
  554|    619|  uint32_t cached_has_bits = 0;
  555|    619|  (void) cached_has_bits;
  556|       |
  557|    619|  s_.MergeFrom(from.s_);
  558|    619|  i_.MergeFrom(from.i_);
  559|    619|  f_.MergeFrom(from.f_);
  560|    619|  b_.MergeFrom(from.b_);
  561|    619|  type_.MergeFrom(from.type_);
  562|    619|  shape_.MergeFrom(from.shape_);
  563|    619|  tensor_.MergeFrom(from.tensor_);
  564|    619|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  565|    619|}
_ZN17opencv_tensorflow9AttrValueC2EPN6google8protobuf5ArenaEb:
  704|   184k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  705|   184k|  SharedCtor();
  706|   184k|  if (!is_message_owned) {
  ------------------
  |  Branch (706:7): [True: 184k, False: 0]
  ------------------
  707|   184k|    RegisterArenaDtor(arena);
  708|   184k|  }
  709|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.AttrValue)
  710|   184k|}
_ZN17opencv_tensorflow9AttrValueD2Ev:
  767|   184k|AttrValue::~AttrValue() {
  768|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.AttrValue)
  769|   184k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (769:7): [True: 0, False: 184k]
  ------------------
  770|   184k|  SharedDtor();
  771|   184k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  772|   184k|}
_ZN17opencv_tensorflow9AttrValue11clear_valueEv:
  791|   152k|void AttrValue::clear_value() {
  792|       |// @@protoc_insertion_point(one_of_clear_start:opencv_tensorflow.AttrValue)
  793|   152k|  switch (value_case()) {
  ------------------
  |  Branch (793:11): [True: 0, False: 152k]
  ------------------
  794|  11.9k|    case kS: {
  ------------------
  |  Branch (794:5): [True: 11.9k, False: 140k]
  ------------------
  795|  11.9k|      value_.s_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  796|  11.9k|      break;
  797|      0|    }
  798|  15.6k|    case kI: {
  ------------------
  |  Branch (798:5): [True: 15.6k, False: 137k]
  ------------------
  799|       |      // No need to clear
  800|  15.6k|      break;
  801|      0|    }
  802|  1.88k|    case kF: {
  ------------------
  |  Branch (802:5): [True: 1.88k, False: 150k]
  ------------------
  803|       |      // No need to clear
  804|  1.88k|      break;
  805|      0|    }
  806|  7.26k|    case kB: {
  ------------------
  |  Branch (806:5): [True: 7.26k, False: 145k]
  ------------------
  807|       |      // No need to clear
  808|  7.26k|      break;
  809|      0|    }
  810|  2.10k|    case kType: {
  ------------------
  |  Branch (810:5): [True: 2.10k, False: 150k]
  ------------------
  811|       |      // No need to clear
  812|  2.10k|      break;
  813|      0|    }
  814|  3.95k|    case kShape: {
  ------------------
  |  Branch (814:5): [True: 3.95k, False: 148k]
  ------------------
  815|  3.95k|      if (GetArenaForAllocation() == nullptr) {
  ------------------
  |  Branch (815:11): [True: 3.95k, False: 0]
  ------------------
  816|  3.95k|        delete value_.shape_;
  817|  3.95k|      }
  818|  3.95k|      break;
  819|      0|    }
  820|  10.5k|    case kTensor: {
  ------------------
  |  Branch (820:5): [True: 10.5k, False: 142k]
  ------------------
  821|  10.5k|      if (GetArenaForAllocation() == nullptr) {
  ------------------
  |  Branch (821:11): [True: 10.5k, False: 0]
  ------------------
  822|  10.5k|        delete value_.tensor_;
  823|  10.5k|      }
  824|  10.5k|      break;
  825|      0|    }
  826|  9.44k|    case kList: {
  ------------------
  |  Branch (826:5): [True: 9.44k, False: 143k]
  ------------------
  827|  9.44k|      if (GetArenaForAllocation() == nullptr) {
  ------------------
  |  Branch (827:11): [True: 9.44k, False: 0]
  ------------------
  828|  9.44k|        delete value_.list_;
  829|  9.44k|      }
  830|  9.44k|      break;
  831|      0|    }
  832|  5.62k|    case kFunc: {
  ------------------
  |  Branch (832:5): [True: 5.62k, False: 147k]
  ------------------
  833|  5.62k|      if (GetArenaForAllocation() == nullptr) {
  ------------------
  |  Branch (833:11): [True: 5.62k, False: 0]
  ------------------
  834|  5.62k|        delete value_.func_;
  835|  5.62k|      }
  836|  5.62k|      break;
  837|      0|    }
  838|  1.53k|    case kPlaceholder: {
  ------------------
  |  Branch (838:5): [True: 1.53k, False: 151k]
  ------------------
  839|  1.53k|      value_.placeholder_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  840|  1.53k|      break;
  841|      0|    }
  842|  82.7k|    case VALUE_NOT_SET: {
  ------------------
  |  Branch (842:5): [True: 82.7k, False: 70.0k]
  ------------------
  843|  82.7k|      break;
  844|      0|    }
  845|   152k|  }
  846|   152k|  _oneof_case_[0] = VALUE_NOT_SET;
  847|   152k|}
_ZN17opencv_tensorflow9AttrValue5ClearEv:
  850|  29.8k|void AttrValue::Clear() {
  851|       |// @@protoc_insertion_point(message_clear_start:opencv_tensorflow.AttrValue)
  852|  29.8k|  uint32_t cached_has_bits = 0;
  853|       |  // Prevent compiler warnings about cached_has_bits being unused
  854|  29.8k|  (void) cached_has_bits;
  855|       |
  856|  29.8k|  clear_value();
  857|  29.8k|  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  858|  29.8k|}
_ZN17opencv_tensorflow9AttrValue14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  860|  44.2k|const char* AttrValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  861|  44.2k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  862|   121k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (862:10): [True: 82.4k, False: 39.4k]
  ------------------
  863|  82.4k|    uint32_t tag;
  864|  82.4k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  865|  82.4k|    switch (tag >> 3) {
  866|       |      // .opencv_tensorflow.AttrValue.ListValue list = 1;
  867|  12.9k|      case 1:
  ------------------
  |  Branch (867:7): [True: 12.9k, False: 69.5k]
  ------------------
  868|  12.9k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  869|  10.0k|          ptr = ctx->ParseMessage(_internal_mutable_list(), ptr);
  870|  10.0k|          CHK_(ptr);
  ------------------
  |  |  861|  10.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  871|  10.0k|        } else
  872|  2.87k|          goto handle_unusual;
  873|  8.78k|        continue;
  874|       |      // bytes s = 2;
  875|  12.0k|      case 2:
  ------------------
  |  Branch (875:7): [True: 12.0k, False: 70.4k]
  ------------------
  876|  12.0k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  877|  8.55k|          auto str = _internal_mutable_s();
  878|  8.55k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  879|  8.55k|          CHK_(ptr);
  ------------------
  |  |  861|  8.55k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  880|  8.55k|        } else
  881|  3.50k|          goto handle_unusual;
  882|  8.54k|        continue;
  883|       |      // int64 i = 3;
  884|  8.54k|      case 3:
  ------------------
  |  Branch (884:7): [True: 7.77k, False: 74.6k]
  ------------------
  885|  7.77k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
  886|  7.24k|          _internal_set_i(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  887|  7.24k|          CHK_(ptr);
  ------------------
  |  |  861|  7.24k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  888|  7.24k|        } else
  889|    535|          goto handle_unusual;
  890|  7.24k|        continue;
  891|       |      // float f = 4;
  892|  7.24k|      case 4:
  ------------------
  |  Branch (892:7): [True: 5.49k, False: 76.9k]
  ------------------
  893|  5.49k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
  894|  2.10k|          _internal_set_f(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
  895|  2.10k|          ptr += sizeof(float);
  896|  2.10k|        } else
  897|  3.38k|          goto handle_unusual;
  898|  2.10k|        continue;
  899|       |      // bool b = 5;
  900|  5.79k|      case 5:
  ------------------
  |  Branch (900:7): [True: 5.79k, False: 76.6k]
  ------------------
  901|  5.79k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
  902|  5.36k|          _internal_set_b(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  903|  5.36k|          CHK_(ptr);
  ------------------
  |  |  861|  5.36k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  904|  5.36k|        } else
  905|    438|          goto handle_unusual;
  906|  5.35k|        continue;
  907|       |      // .opencv_tensorflow.DataType type = 6;
  908|  5.35k|      case 6:
  ------------------
  |  Branch (908:7): [True: 4.43k, False: 78.0k]
  ------------------
  909|  4.43k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
  910|  3.34k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  911|  3.34k|          CHK_(ptr);
  ------------------
  |  |  861|  3.34k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  912|  3.34k|          _internal_set_type(static_cast<::opencv_tensorflow::DataType>(val));
  913|  3.34k|        } else
  914|  1.08k|          goto handle_unusual;
  915|  3.34k|        continue;
  916|       |      // .opencv_tensorflow.TensorShapeProto shape = 7;
  917|  5.68k|      case 7:
  ------------------
  |  Branch (917:7): [True: 5.68k, False: 76.7k]
  ------------------
  918|  5.68k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
  919|  4.12k|          ptr = ctx->ParseMessage(_internal_mutable_shape(), ptr);
  920|  4.12k|          CHK_(ptr);
  ------------------
  |  |  861|  4.12k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  921|  4.12k|        } else
  922|  1.55k|          goto handle_unusual;
  923|  3.68k|        continue;
  924|       |      // .opencv_tensorflow.TensorProto tensor = 8;
  925|  10.2k|      case 8:
  ------------------
  |  Branch (925:7): [True: 10.2k, False: 72.2k]
  ------------------
  926|  10.2k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
  927|  9.74k|          ptr = ctx->ParseMessage(_internal_mutable_tensor(), ptr);
  928|  9.74k|          CHK_(ptr);
  ------------------
  |  |  861|  9.74k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  929|  9.74k|        } else
  930|    491|          goto handle_unusual;
  931|  8.52k|        continue;
  932|       |      // string placeholder = 9;
  933|  8.52k|      case 9:
  ------------------
  |  Branch (933:7): [True: 2.94k, False: 79.5k]
  ------------------
  934|  2.94k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
  935|  2.47k|          auto str = _internal_mutable_placeholder();
  936|  2.47k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  937|  2.47k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.AttrValue.placeholder"));
  ------------------
  |  |  861|  2.47k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  938|  2.47k|          CHK_(ptr);
  ------------------
  |  |  861|  2.47k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  939|  2.47k|        } else
  940|    472|          goto handle_unusual;
  941|  2.46k|        continue;
  942|       |      // .opencv_tensorflow.NameAttrList func = 10;
  943|  7.97k|      case 10:
  ------------------
  |  Branch (943:7): [True: 7.97k, False: 74.4k]
  ------------------
  944|  7.97k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
  945|  6.15k|          ptr = ctx->ParseMessage(_internal_mutable_func(), ptr);
  946|  6.15k|          CHK_(ptr);
  ------------------
  |  |  861|  6.15k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  947|  6.15k|        } else
  948|  1.81k|          goto handle_unusual;
  949|  4.47k|        continue;
  950|  7.10k|      default:
  ------------------
  |  Branch (950:7): [True: 7.10k, False: 75.3k]
  ------------------
  951|  7.10k|        goto handle_unusual;
  952|  82.4k|    }  // switch
  953|  23.2k|  handle_unusual:
  954|  23.2k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (954:9): [True: 40, False: 23.2k]
  |  Branch (954:23): [True: 23, False: 23.2k]
  ------------------
  955|     63|      CHK_(ptr);
  ------------------
  |  |  861|     63|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  956|     61|      ctx->SetLastTag(tag);
  957|     61|      goto message_done;
  958|     63|    }
  959|  23.2k|    ptr = UnknownFieldParse(
  960|  23.2k|        tag,
  961|  23.2k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  962|  23.2k|        ptr, ctx);
  963|  23.2k|    CHK_(ptr != nullptr);
  ------------------
  |  |  861|  23.2k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  964|  23.2k|  }  // while
  965|  44.2k|message_done:
  966|  44.2k|  return ptr;
  967|  4.73k|failure:
  968|  4.73k|  ptr = nullptr;
  969|  4.73k|  goto message_done;
  970|  44.2k|#undef CHK_
  971|  44.2k|}
_ZNK17opencv_tensorflow9AttrValue12ByteSizeLongEv:
 1060|  51.6k|size_t AttrValue::ByteSizeLong() const {
 1061|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.AttrValue)
 1062|  51.6k|  size_t total_size = 0;
 1063|       |
 1064|  51.6k|  uint32_t cached_has_bits = 0;
 1065|       |  // Prevent compiler warnings about cached_has_bits being unused
 1066|  51.6k|  (void) cached_has_bits;
 1067|       |
 1068|  51.6k|  switch (value_case()) {
  ------------------
  |  Branch (1068:11): [True: 0, False: 51.6k]
  ------------------
 1069|       |    // bytes s = 2;
 1070|  2.54k|    case kS: {
  ------------------
  |  Branch (1070:5): [True: 2.54k, False: 49.0k]
  ------------------
 1071|  2.54k|      total_size += 1 +
 1072|  2.54k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
 1073|  2.54k|          this->_internal_s());
 1074|  2.54k|      break;
 1075|      0|    }
 1076|       |    // int64 i = 3;
 1077|  4.11k|    case kI: {
  ------------------
  |  Branch (1077:5): [True: 4.11k, False: 47.5k]
  ------------------
 1078|  4.11k|      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_i());
 1079|  4.11k|      break;
 1080|      0|    }
 1081|       |    // float f = 4;
 1082|    504|    case kF: {
  ------------------
  |  Branch (1082:5): [True: 504, False: 51.1k]
  ------------------
 1083|    504|      total_size += 1 + 4;
 1084|    504|      break;
 1085|      0|    }
 1086|       |    // bool b = 5;
 1087|  1.37k|    case kB: {
  ------------------
  |  Branch (1087:5): [True: 1.37k, False: 50.2k]
  ------------------
 1088|  1.37k|      total_size += 1 + 1;
 1089|  1.37k|      break;
 1090|      0|    }
 1091|       |    // .opencv_tensorflow.DataType type = 6;
 1092|    267|    case kType: {
  ------------------
  |  Branch (1092:5): [True: 267, False: 51.3k]
  ------------------
 1093|    267|      total_size += 1 +
 1094|    267|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
 1095|    267|      break;
 1096|      0|    }
 1097|       |    // .opencv_tensorflow.TensorShapeProto shape = 7;
 1098|  1.35k|    case kShape: {
  ------------------
  |  Branch (1098:5): [True: 1.35k, False: 50.2k]
  ------------------
 1099|  1.35k|      total_size += 1 +
 1100|  1.35k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1101|  1.35k|          *value_.shape_);
 1102|  1.35k|      break;
 1103|      0|    }
 1104|       |    // .opencv_tensorflow.TensorProto tensor = 8;
 1105|  5.29k|    case kTensor: {
  ------------------
  |  Branch (1105:5): [True: 5.29k, False: 46.3k]
  ------------------
 1106|  5.29k|      total_size += 1 +
 1107|  5.29k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1108|  5.29k|          *value_.tensor_);
 1109|  5.29k|      break;
 1110|      0|    }
 1111|       |    // .opencv_tensorflow.AttrValue.ListValue list = 1;
 1112|  3.90k|    case kList: {
  ------------------
  |  Branch (1112:5): [True: 3.90k, False: 47.7k]
  ------------------
 1113|  3.90k|      total_size += 1 +
 1114|  3.90k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1115|  3.90k|          *value_.list_);
 1116|  3.90k|      break;
 1117|      0|    }
 1118|       |    // .opencv_tensorflow.NameAttrList func = 10;
 1119|  2.15k|    case kFunc: {
  ------------------
  |  Branch (1119:5): [True: 2.15k, False: 49.4k]
  ------------------
 1120|  2.15k|      total_size += 1 +
 1121|  2.15k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1122|  2.15k|          *value_.func_);
 1123|  2.15k|      break;
 1124|      0|    }
 1125|       |    // string placeholder = 9;
 1126|    416|    case kPlaceholder: {
  ------------------
  |  Branch (1126:5): [True: 416, False: 51.2k]
  ------------------
 1127|    416|      total_size += 1 +
 1128|    416|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1129|    416|          this->_internal_placeholder());
 1130|    416|      break;
 1131|      0|    }
 1132|  29.7k|    case VALUE_NOT_SET: {
  ------------------
  |  Branch (1132:5): [True: 29.7k, False: 21.9k]
  ------------------
 1133|  29.7k|      break;
 1134|      0|    }
 1135|  51.6k|  }
 1136|  51.6k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1137|  51.6k|}
_ZN17opencv_tensorflow9AttrValue9MergeFromERKS0_:
 1152|  29.8k|void AttrValue::MergeFrom(const AttrValue& from) {
 1153|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.AttrValue)
 1154|  29.8k|  GOOGLE_DCHECK_NE(&from, this);
 1155|  29.8k|  uint32_t cached_has_bits = 0;
 1156|  29.8k|  (void) cached_has_bits;
 1157|       |
 1158|  29.8k|  switch (from.value_case()) {
  ------------------
  |  Branch (1158:11): [True: 0, False: 29.8k]
  ------------------
 1159|  5.77k|    case kS: {
  ------------------
  |  Branch (1159:5): [True: 5.77k, False: 24.0k]
  ------------------
 1160|  5.77k|      _internal_set_s(from._internal_s());
 1161|  5.77k|      break;
 1162|      0|    }
 1163|  10.1k|    case kI: {
  ------------------
  |  Branch (1163:5): [True: 10.1k, False: 19.7k]
  ------------------
 1164|  10.1k|      _internal_set_i(from._internal_i());
 1165|  10.1k|      break;
 1166|      0|    }
 1167|    537|    case kF: {
  ------------------
  |  Branch (1167:5): [True: 537, False: 29.2k]
  ------------------
 1168|    537|      _internal_set_f(from._internal_f());
 1169|    537|      break;
 1170|      0|    }
 1171|  3.26k|    case kB: {
  ------------------
  |  Branch (1171:5): [True: 3.26k, False: 26.5k]
  ------------------
 1172|  3.26k|      _internal_set_b(from._internal_b());
 1173|  3.26k|      break;
 1174|      0|    }
 1175|    132|    case kType: {
  ------------------
  |  Branch (1175:5): [True: 132, False: 29.6k]
  ------------------
 1176|    132|      _internal_set_type(from._internal_type());
 1177|    132|      break;
 1178|      0|    }
 1179|    260|    case kShape: {
  ------------------
  |  Branch (1179:5): [True: 260, False: 29.5k]
  ------------------
 1180|    260|      _internal_mutable_shape()->::opencv_tensorflow::TensorShapeProto::MergeFrom(from._internal_shape());
 1181|    260|      break;
 1182|      0|    }
 1183|  1.20k|    case kTensor: {
  ------------------
  |  Branch (1183:5): [True: 1.20k, False: 28.6k]
  ------------------
 1184|  1.20k|      _internal_mutable_tensor()->::opencv_tensorflow::TensorProto::MergeFrom(from._internal_tensor());
 1185|  1.20k|      break;
 1186|      0|    }
 1187|    619|    case kList: {
  ------------------
  |  Branch (1187:5): [True: 619, False: 29.1k]
  ------------------
 1188|    619|      _internal_mutable_list()->::opencv_tensorflow::AttrValue_ListValue::MergeFrom(from._internal_list());
 1189|    619|      break;
 1190|      0|    }
 1191|    398|    case kFunc: {
  ------------------
  |  Branch (1191:5): [True: 398, False: 29.4k]
  ------------------
 1192|    398|      _internal_mutable_func()->::opencv_tensorflow::NameAttrList::MergeFrom(from._internal_func());
 1193|    398|      break;
 1194|      0|    }
 1195|     71|    case kPlaceholder: {
  ------------------
  |  Branch (1195:5): [True: 71, False: 29.7k]
  ------------------
 1196|     71|      _internal_set_placeholder(from._internal_placeholder());
 1197|     71|      break;
 1198|      0|    }
 1199|  7.44k|    case VALUE_NOT_SET: {
  ------------------
  |  Branch (1199:5): [True: 7.44k, False: 22.3k]
  ------------------
 1200|  7.44k|      break;
 1201|      0|    }
 1202|  29.8k|  }
 1203|  29.8k|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 1204|  29.8k|}
_ZN17opencv_tensorflow9AttrValue8CopyFromERKS0_:
 1206|  29.8k|void AttrValue::CopyFrom(const AttrValue& from) {
 1207|       |// @@protoc_insertion_point(class_specific_copy_from_start:opencv_tensorflow.AttrValue)
 1208|  29.8k|  if (&from == this) return;
  ------------------
  |  Branch (1208:7): [True: 0, False: 29.8k]
  ------------------
 1209|  29.8k|  Clear();
 1210|  29.8k|  MergeFrom(from);
 1211|  29.8k|}
_ZN17opencv_tensorflow9AttrValue12InternalSwapEPS0_:
 1217|  80.1k|void AttrValue::InternalSwap(AttrValue* other) {
 1218|  80.1k|  using std::swap;
 1219|  80.1k|  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
 1220|  80.1k|  swap(value_, other->value_);
 1221|  80.1k|  swap(_oneof_case_[0], other->_oneof_case_[0]);
 1222|  80.1k|}
_ZN17opencv_tensorflow31NameAttrList_AttrEntry_DoNotUseC2EPN6google8protobuf5ArenaE:
 1234|  7.63k|    : SuperType(arena) {}
_ZN17opencv_tensorflow12NameAttrListC2EPN6google8protobuf5ArenaEb:
 1252|  5.62k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 1253|  5.62k|  attr_(arena) {
 1254|  5.62k|  SharedCtor();
 1255|  5.62k|  if (!is_message_owned) {
  ------------------
  |  Branch (1255:7): [True: 5.62k, False: 0]
  ------------------
 1256|  5.62k|    RegisterArenaDtor(arena);
 1257|  5.62k|  }
 1258|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.NameAttrList)
 1259|  5.62k|}
_ZN17opencv_tensorflow12NameAttrListD2Ev:
 1282|  5.62k|NameAttrList::~NameAttrList() {
 1283|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.NameAttrList)
 1284|  5.62k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (1284:7): [True: 0, False: 5.62k]
  ------------------
 1285|  5.62k|  SharedDtor();
 1286|  5.62k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1287|  5.62k|}
_ZN17opencv_tensorflow12NameAttrList14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
 1319|  6.15k|const char* NameAttrList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 1320|  6.15k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 1321|  24.5k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (1321:10): [True: 19.8k, False: 4.66k]
  ------------------
 1322|  19.8k|    uint32_t tag;
 1323|  19.8k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 1324|  19.8k|    switch (tag >> 3) {
 1325|       |      // string name = 1;
 1326|  5.28k|      case 1:
  ------------------
  |  Branch (1326:7): [True: 5.28k, False: 14.6k]
  ------------------
 1327|  5.28k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 1328|  4.29k|          auto str = _internal_mutable_name();
 1329|  4.29k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1330|  4.29k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.NameAttrList.name"));
  ------------------
  |  | 1320|  4.29k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1331|  4.28k|          CHK_(ptr);
  ------------------
  |  | 1320|  4.28k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1332|  4.28k|        } else
 1333|    990|          goto handle_unusual;
 1334|  4.28k|        continue;
 1335|       |      // map<string, .opencv_tensorflow.AttrValue> attr = 2;
 1336|  6.85k|      case 2:
  ------------------
  |  Branch (1336:7): [True: 6.85k, False: 13.0k]
  ------------------
 1337|  6.85k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 1338|  5.70k|          ptr -= 1;
 1339|  8.23k|          do {
 1340|  8.23k|            ptr += 1;
 1341|  8.23k|            ptr = ctx->ParseMessage(&attr_, ptr);
 1342|  8.23k|            CHK_(ptr);
  ------------------
  |  | 1320|  8.23k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1343|  6.80k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1343:17): [True: 1.71k, False: 5.09k]
  ------------------
 1344|  6.80k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (1344:20): [True: 2.53k, False: 2.56k]
  ------------------
 1345|  5.70k|        } else
 1346|  1.15k|          goto handle_unusual;
 1347|  4.27k|        continue;
 1348|  7.75k|      default:
  ------------------
  |  Branch (1348:7): [True: 7.75k, False: 12.1k]
  ------------------
 1349|  7.75k|        goto handle_unusual;
 1350|  19.8k|    }  // switch
 1351|  9.89k|  handle_unusual:
 1352|  9.89k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (1352:9): [True: 20, False: 9.87k]
  |  Branch (1352:23): [True: 3, False: 9.87k]
  ------------------
 1353|     23|      CHK_(ptr);
  ------------------
  |  | 1320|     23|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1354|     19|      ctx->SetLastTag(tag);
 1355|     19|      goto message_done;
 1356|     23|    }
 1357|  9.87k|    ptr = UnknownFieldParse(
 1358|  9.87k|        tag,
 1359|  9.87k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 1360|  9.87k|        ptr, ctx);
 1361|  9.87k|    CHK_(ptr != nullptr);
  ------------------
  |  | 1320|  9.87k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1362|  9.87k|  }  // while
 1363|  6.15k|message_done:
 1364|  6.15k|  return ptr;
 1365|  1.47k|failure:
 1366|  1.47k|  ptr = nullptr;
 1367|  1.47k|  goto message_done;
 1368|  6.15k|#undef CHK_
 1369|  6.15k|}
_ZNK17opencv_tensorflow12NameAttrList12ByteSizeLongEv:
 1437|  2.15k|size_t NameAttrList::ByteSizeLong() const {
 1438|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.NameAttrList)
 1439|  2.15k|  size_t total_size = 0;
 1440|       |
 1441|  2.15k|  uint32_t cached_has_bits = 0;
 1442|       |  // Prevent compiler warnings about cached_has_bits being unused
 1443|  2.15k|  (void) cached_has_bits;
 1444|       |
 1445|       |  // map<string, .opencv_tensorflow.AttrValue> attr = 2;
 1446|  2.15k|  total_size += 1 *
 1447|  2.15k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_attr_size());
 1448|  2.15k|  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::opencv_tensorflow::AttrValue >::const_iterator
 1449|  2.15k|      it = this->_internal_attr().begin();
 1450|  5.32k|      it != this->_internal_attr().end(); ++it) {
  ------------------
  |  Branch (1450:7): [True: 3.17k, False: 2.15k]
  ------------------
 1451|  3.17k|    total_size += NameAttrList_AttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
 1452|  3.17k|  }
 1453|       |
 1454|       |  // string name = 1;
 1455|  2.15k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (1455:7): [True: 738, False: 1.41k]
  ------------------
 1456|    738|    total_size += 1 +
 1457|    738|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1458|    738|        this->_internal_name());
 1459|    738|  }
 1460|       |
 1461|  2.15k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1462|  2.15k|}
_ZN17opencv_tensorflow12NameAttrList9MergeFromERKS0_:
 1477|    398|void NameAttrList::MergeFrom(const NameAttrList& from) {
 1478|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.NameAttrList)
 1479|    398|  GOOGLE_DCHECK_NE(&from, this);
 1480|    398|  uint32_t cached_has_bits = 0;
 1481|    398|  (void) cached_has_bits;
 1482|       |
 1483|    398|  attr_.MergeFrom(from.attr_);
 1484|    398|  if (!from._internal_name().empty()) {
  ------------------
  |  Branch (1484:7): [True: 75, False: 323]
  ------------------
 1485|     75|    _internal_set_name(from._internal_name());
 1486|     75|  }
 1487|    398|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 1488|    398|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow19AttrValue_ListValueEJEEEPT_PS1_DpOT0_:
 1523|  9.44k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::AttrValue_ListValue* Arena::CreateMaybeMessage< ::opencv_tensorflow::AttrValue_ListValue >(Arena* arena) {
 1524|  9.44k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::AttrValue_ListValue >(arena);
 1525|  9.44k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow9AttrValueEJEEEPT_PS1_DpOT0_:
 1526|  84.5k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::AttrValue* Arena::CreateMaybeMessage< ::opencv_tensorflow::AttrValue >(Arena* arena) {
 1527|  84.5k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::AttrValue >(arena);
 1528|  84.5k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow31NameAttrList_AttrEntry_DoNotUseEJEEEPT_PS1_DpOT0_:
 1529|  7.63k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::NameAttrList_AttrEntry_DoNotUse* Arena::CreateMaybeMessage< ::opencv_tensorflow::NameAttrList_AttrEntry_DoNotUse >(Arena* arena) {
 1530|  7.63k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::NameAttrList_AttrEntry_DoNotUse >(arena);
 1531|  7.63k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow12NameAttrListEJEEEPT_PS1_DpOT0_:
 1532|  5.62k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::NameAttrList* Arena::CreateMaybeMessage< ::opencv_tensorflow::NameAttrList >(Arena* arena) {
 1533|  5.62k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::NameAttrList >(arena);
 1534|  5.62k|}
_ZN17opencv_tensorflow19AttrValue_ListValue10SharedCtorEv:
  230|  9.44k|inline void AttrValue_ListValue::SharedCtor() {
  231|  9.44k|}
_ZN17opencv_tensorflow19AttrValue_ListValue10SharedDtorEv:
  240|  9.44k|inline void AttrValue_ListValue::SharedDtor() {
  241|  9.44k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  242|  9.44k|}
_ZN17opencv_tensorflow19AttrValue_ListValue17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  248|  9.44k|void AttrValue_ListValue::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  249|  9.44k|}
_ZN17opencv_tensorflow9AttrValue10SharedCtorEv:
  763|   184k|inline void AttrValue::SharedCtor() {
  764|   184k|clear_has_value();
  765|   184k|}
_ZN17opencv_tensorflow9AttrValue10SharedDtorEv:
  774|   184k|inline void AttrValue::SharedDtor() {
  775|   184k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  776|   184k|  if (has_value()) {
  ------------------
  |  Branch (776:7): [True: 52.9k, False: 131k]
  ------------------
  777|  52.9k|    clear_value();
  778|  52.9k|  }
  779|   184k|}
_ZN17opencv_tensorflow9AttrValue17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  785|   184k|void AttrValue::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  786|   184k|}
_ZN17opencv_tensorflow12NameAttrList10SharedCtorEv:
 1275|  5.62k|inline void NameAttrList::SharedCtor() {
 1276|  5.62k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1277|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1278|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1279|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1280|  5.62k|}
_ZN17opencv_tensorflow12NameAttrList10SharedDtorEv:
 1289|  5.62k|inline void NameAttrList::SharedDtor() {
 1290|  5.62k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 1291|  5.62k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1292|  5.62k|}
_ZN17opencv_tensorflow12NameAttrList17RegisterArenaDtorEPN6google8protobuf5ArenaE:
 1299|  5.62k|inline void NameAttrList::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena) {
 1300|  5.62k|  if (arena != nullptr) {
  ------------------
  |  Branch (1300:7): [True: 0, False: 5.62k]
  ------------------
 1301|      0|    arena->OwnCustomDestructor(this, &NameAttrList::ArenaDtor);
 1302|      0|  }
 1303|  5.62k|}

_ZN17opencv_tensorflow9AttrValue24_internal_mutable_tensorEv:
 1630|  10.9k|inline ::opencv_tensorflow::TensorProto* AttrValue::_internal_mutable_tensor() {
 1631|  10.9k|  if (!_internal_has_tensor()) {
  ------------------
  |  Branch (1631:7): [True: 10.5k, False: 387]
  ------------------
 1632|  10.5k|    clear_value();
 1633|  10.5k|    set_has_tensor();
 1634|  10.5k|    value_.tensor_ = CreateMaybeMessage< ::opencv_tensorflow::TensorProto >(GetArenaForAllocation());
 1635|  10.5k|  }
 1636|  10.9k|  return value_.tensor_;
 1637|  10.9k|}
_ZNK17opencv_tensorflow9AttrValue20_internal_has_tensorEv:
 1579|  12.1k|inline bool AttrValue::_internal_has_tensor() const {
 1580|  12.1k|  return value_case() == kTensor;
 1581|  12.1k|}
_ZNK17opencv_tensorflow9AttrValue10value_caseEv:
 1880|   574k|inline AttrValue::ValueCase AttrValue::value_case() const {
 1881|   574k|  return AttrValue::ValueCase(_oneof_case_[0]);
 1882|   574k|}
_ZN17opencv_tensorflow9AttrValue14set_has_tensorEv:
 1585|  10.5k|inline void AttrValue::set_has_tensor() {
 1586|  10.5k|  _oneof_case_[0] = kTensor;
 1587|  10.5k|}
_ZNK17opencv_tensorflow9AttrValue16_internal_tensorEv:
 1602|  1.20k|inline const ::opencv_tensorflow::TensorProto& AttrValue::_internal_tensor() const {
 1603|  1.20k|  return _internal_has_tensor()
  ------------------
  |  Branch (1603:10): [True: 1.20k, False: 0]
  ------------------
 1604|  1.20k|      ? *value_.tensor_
 1605|  1.20k|      : reinterpret_cast< ::opencv_tensorflow::TensorProto&>(::opencv_tensorflow::_TensorProto_default_instance_);
 1606|  1.20k|}
_ZN17opencv_tensorflow9AttrValueaSERKS0_:
  393|  29.8k|  inline AttrValue& operator=(const AttrValue& from) {
  394|  29.8k|    CopyFrom(from);
  395|  29.8k|    return *this;
  396|  29.8k|  }
_ZNK17opencv_tensorflow9AttrValue1bEv:
 1465|  1.07k|inline bool AttrValue::b() const {
 1466|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.AttrValue.b)
 1467|  1.07k|  return _internal_b();
 1468|  1.07k|}
_ZNK17opencv_tensorflow9AttrValue11_internal_bEv:
 1452|  4.33k|inline bool AttrValue::_internal_b() const {
 1453|  4.33k|  if (_internal_has_b()) {
  ------------------
  |  Branch (1453:7): [True: 4.33k, False: 0]
  ------------------
 1454|  4.33k|    return value_.b_;
 1455|  4.33k|  }
 1456|      0|  return false;
 1457|  4.33k|}
_ZNK17opencv_tensorflow9AttrValue15_internal_has_bEv:
 1437|  12.9k|inline bool AttrValue::_internal_has_b() const {
 1438|  12.9k|  return value_case() == kB;
 1439|  12.9k|}
_ZNK17opencv_tensorflow9AttrValue1sEv:
 1294|  1.88k|inline const std::string& AttrValue::s() const {
 1295|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.AttrValue.s)
 1296|  1.88k|  return _internal_s();
 1297|  1.88k|}
_ZNK17opencv_tensorflow9AttrValue11_internal_sEv:
 1313|  10.1k|inline const std::string& AttrValue::_internal_s() const {
 1314|  10.1k|  if (_internal_has_s()) {
  ------------------
  |  Branch (1314:7): [True: 10.1k, False: 0]
  ------------------
 1315|  10.1k|    return value_.s_.Get();
 1316|  10.1k|  }
 1317|      0|  return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
 1318|  10.1k|}
_ZNK17opencv_tensorflow9AttrValue15_internal_has_sEv:
 1279|  24.5k|inline bool AttrValue::_internal_has_s() const {
 1280|  24.5k|  return value_case() == kS;
 1281|  24.5k|}
_ZNK17opencv_tensorflow9AttrValue14_internal_listEv:
 1676|    619|inline const ::opencv_tensorflow::AttrValue_ListValue& AttrValue::_internal_list() const {
 1677|    619|  return _internal_has_list()
  ------------------
  |  Branch (1677:10): [True: 619, False: 0]
  ------------------
 1678|    619|      ? *value_.list_
 1679|    619|      : reinterpret_cast< ::opencv_tensorflow::AttrValue_ListValue&>(::opencv_tensorflow::_AttrValue_ListValue_default_instance_);
 1680|    619|}
_ZNK17opencv_tensorflow9AttrValue18_internal_has_listEv:
 1645|  11.3k|inline bool AttrValue::_internal_has_list() const {
 1646|  11.3k|  return value_case() == kList;
 1647|  11.3k|}
_ZNK17opencv_tensorflow9AttrValue1fEv:
 1427|    178|inline float AttrValue::f() const {
 1428|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.AttrValue.f)
 1429|    178|  return _internal_f();
 1430|    178|}
_ZNK17opencv_tensorflow9AttrValue11_internal_fEv:
 1414|    715|inline float AttrValue::_internal_f() const {
 1415|    715|  if (_internal_has_f()) {
  ------------------
  |  Branch (1415:7): [True: 715, False: 0]
  ------------------
 1416|    715|    return value_.f_;
 1417|    715|  }
 1418|      0|  return 0;
 1419|    715|}
_ZNK17opencv_tensorflow9AttrValue15_internal_has_fEv:
 1399|  3.35k|inline bool AttrValue::_internal_has_f() const {
 1400|  3.35k|  return value_case() == kF;
 1401|  3.35k|}
_ZNK17opencv_tensorflow9AttrValue1iEv:
 1389|  3.33k|inline int64_t AttrValue::i() const {
 1390|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.AttrValue.i)
 1391|  3.33k|  return _internal_i();
 1392|  3.33k|}
_ZNK17opencv_tensorflow9AttrValue11_internal_iEv:
 1376|  17.5k|inline int64_t AttrValue::_internal_i() const {
 1377|  17.5k|  if (_internal_has_i()) {
  ------------------
  |  Branch (1377:7): [True: 17.5k, False: 0]
  ------------------
 1378|  17.5k|    return value_.i_;
 1379|  17.5k|  }
 1380|      0|  return int64_t{0};
 1381|  17.5k|}
_ZNK17opencv_tensorflow9AttrValue15_internal_has_iEv:
 1361|  34.8k|inline bool AttrValue::_internal_has_i() const {
 1362|  34.8k|  return value_case() == kI;
 1363|  34.8k|}
_ZNK17opencv_tensorflow9AttrValue14_internal_typeEv:
 1490|    399|inline ::opencv_tensorflow::DataType AttrValue::_internal_type() const {
 1491|    399|  if (_internal_has_type()) {
  ------------------
  |  Branch (1491:7): [True: 399, False: 0]
  ------------------
 1492|    399|    return static_cast< ::opencv_tensorflow::DataType >(value_.type_);
 1493|    399|  }
 1494|      0|  return static_cast< ::opencv_tensorflow::DataType >(0);
 1495|    399|}
_ZNK17opencv_tensorflow9AttrValue18_internal_has_typeEv:
 1475|  3.87k|inline bool AttrValue::_internal_has_type() const {
 1476|  3.87k|  return value_case() == kType;
 1477|  3.87k|}
_ZNK17opencv_tensorflow9AttrValue15_internal_shapeEv:
 1536|    260|inline const ::opencv_tensorflow::TensorShapeProto& AttrValue::_internal_shape() const {
 1537|    260|  return _internal_has_shape()
  ------------------
  |  Branch (1537:10): [True: 260, False: 0]
  ------------------
 1538|    260|      ? *value_.shape_
 1539|    260|      : reinterpret_cast< ::opencv_tensorflow::TensorShapeProto&>(::opencv_tensorflow::_TensorShapeProto_default_instance_);
 1540|    260|}
_ZNK17opencv_tensorflow9AttrValue19_internal_has_shapeEv:
 1513|  4.64k|inline bool AttrValue::_internal_has_shape() const {
 1514|  4.64k|  return value_case() == kShape;
 1515|  4.64k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue20_internal_shape_sizeEv:
 1201|  3.90k|inline int AttrValue_ListValue::_internal_shape_size() const {
 1202|  3.90k|  return shape_.size();
 1203|  3.90k|}
_ZN17opencv_tensorflow9AttrValue4SwapEPS0_:
  447|  80.1k|  inline void Swap(AttrValue* other) {
  448|  80.1k|    if (other == this) return;
  ------------------
  |  Branch (448:9): [True: 0, False: 80.1k]
  ------------------
  449|       |  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
  450|       |    if (GetOwningArena() != nullptr &&
  451|       |        GetOwningArena() == other->GetOwningArena()) {
  452|       |   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
  453|  80.1k|    if (GetOwningArena() == other->GetOwningArena()) {
  ------------------
  |  Branch (453:9): [True: 80.1k, False: 0]
  ------------------
  454|  80.1k|  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
  455|  80.1k|      InternalSwap(other);
  456|  80.1k|    } else {
  457|      0|      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
  458|      0|    }
  459|  80.1k|  }
_ZN17opencv_tensorflow9AttrValue10ValueUnionC2Ev:
  712|   184k|    constexpr ValueUnion() : _constinit_{} {}
_ZN17opencv_tensorflow31NameAttrList_AttrEntry_DoNotUse11ValidateKeyEPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  747|  4.72k|  static bool ValidateKey(std::string* s) {
  748|  4.72k|    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "opencv_tensorflow.NameAttrList.AttrEntry.key");
  749|  4.72k| }
_ZN17opencv_tensorflow31NameAttrList_AttrEntry_DoNotUse13ValidateValueEPv:
  750|  2.90k|  static bool ValidateValue(void*) { return true; }
_ZN17opencv_tensorflow19AttrValue_ListValue15_internal_add_sEv:
  985|  2.95k|inline std::string* AttrValue_ListValue::_internal_add_s() {
  986|  2.95k|  return s_.Add();
  987|  2.95k|}
_ZN17opencv_tensorflow19AttrValue_ListValue15_internal_add_iEl:
 1037|   506k|inline void AttrValue_ListValue::_internal_add_i(int64_t value) {
 1038|   506k|  i_.Add(value);
 1039|   506k|}
_ZN17opencv_tensorflow19AttrValue_ListValue19_internal_mutable_iEv:
 1054|  2.01k|AttrValue_ListValue::_internal_mutable_i() {
 1055|  2.01k|  return &i_;
 1056|  2.01k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue16_internal_f_sizeEv:
 1064|  3.90k|inline int AttrValue_ListValue::_internal_f_size() const {
 1065|  3.90k|  return f_.size();
 1066|  3.90k|}
_ZN17opencv_tensorflow19AttrValue_ListValue15_internal_add_fEf:
 1084|  1.87k|inline void AttrValue_ListValue::_internal_add_f(float value) {
 1085|  1.87k|  f_.Add(value);
 1086|  1.87k|}
_ZN17opencv_tensorflow19AttrValue_ListValue19_internal_mutable_fEv:
 1101|  1.08k|AttrValue_ListValue::_internal_mutable_f() {
 1102|  1.08k|  return &f_;
 1103|  1.08k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue16_internal_b_sizeEv:
 1111|  3.90k|inline int AttrValue_ListValue::_internal_b_size() const {
 1112|  3.90k|  return b_.size();
 1113|  3.90k|}
_ZN17opencv_tensorflow19AttrValue_ListValue15_internal_add_bEb:
 1131|  7.10k|inline void AttrValue_ListValue::_internal_add_b(bool value) {
 1132|  7.10k|  b_.Add(value);
 1133|  7.10k|}
_ZN17opencv_tensorflow19AttrValue_ListValue19_internal_mutable_bEv:
 1148|  2.42k|AttrValue_ListValue::_internal_mutable_b() {
 1149|  2.42k|  return &b_;
 1150|  2.42k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue19_internal_type_sizeEv:
 1158|  3.90k|inline int AttrValue_ListValue::_internal_type_size() const {
 1159|  3.90k|  return type_.size();
 1160|  3.90k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue14_internal_typeEi:
 1167|  3.32k|inline ::opencv_tensorflow::DataType AttrValue_ListValue::_internal_type(int index) const {
 1168|  3.32k|  return static_cast< ::opencv_tensorflow::DataType >(type_.Get(index));
 1169|  3.32k|}
_ZN17opencv_tensorflow19AttrValue_ListValue18_internal_add_typeENS_8DataTypeE:
 1178|   524k|inline void AttrValue_ListValue::_internal_add_type(::opencv_tensorflow::DataType value) {
 1179|   524k|  type_.Add(value);
 1180|   524k|}
_ZN17opencv_tensorflow19AttrValue_ListValue22_internal_mutable_typeEv:
 1191|    548|AttrValue_ListValue::_internal_mutable_type() {
 1192|    548|  return &type_;
 1193|    548|}
_ZN17opencv_tensorflow19AttrValue_ListValue19_internal_add_shapeEv:
 1223|  2.68k|inline ::opencv_tensorflow::TensorShapeProto* AttrValue_ListValue::_internal_add_shape() {
 1224|  2.68k|  return shape_.Add();
 1225|  2.68k|}
_ZNK17opencv_tensorflow19AttrValue_ListValue21_internal_tensor_sizeEv:
 1238|  3.90k|inline int AttrValue_ListValue::_internal_tensor_size() const {
 1239|  3.90k|  return tensor_.size();
 1240|  3.90k|}
_ZN17opencv_tensorflow19AttrValue_ListValue20_internal_add_tensorEv:
 1260|  4.76k|inline ::opencv_tensorflow::TensorProto* AttrValue_ListValue::_internal_add_tensor() {
 1261|  4.76k|  return tensor_.Add();
 1262|  4.76k|}
_ZN17opencv_tensorflow9AttrValue9set_has_sEv:
 1285|  11.9k|inline void AttrValue::set_has_s() {
 1286|  11.9k|  _oneof_case_[0] = kS;
 1287|  11.9k|}
_ZN17opencv_tensorflow9AttrValue15_internal_set_sERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
 1319|  5.77k|inline void AttrValue::_internal_set_s(const std::string& value) {
 1320|  5.77k|  if (!_internal_has_s()) {
  ------------------
  |  Branch (1320:7): [True: 5.77k, False: 0]
  ------------------
 1321|  5.77k|    clear_value();
 1322|  5.77k|    set_has_s();
 1323|  5.77k|    value_.s_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1324|  5.77k|  }
 1325|  5.77k|  value_.s_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 1326|  5.77k|}
_ZN17opencv_tensorflow9AttrValue19_internal_mutable_sEv:
 1327|  8.55k|inline std::string* AttrValue::_internal_mutable_s() {
 1328|  8.55k|  if (!_internal_has_s()) {
  ------------------
  |  Branch (1328:7): [True: 6.18k, False: 2.37k]
  ------------------
 1329|  6.18k|    clear_value();
 1330|  6.18k|    set_has_s();
 1331|  6.18k|    value_.s_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1332|  6.18k|  }
 1333|  8.55k|  return value_.s_.Mutable(
 1334|  8.55k|      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1335|  8.55k|}
_ZN17opencv_tensorflow9AttrValue9set_has_iEv:
 1367|  15.6k|inline void AttrValue::set_has_i() {
 1368|  15.6k|  _oneof_case_[0] = kI;
 1369|  15.6k|}
_ZN17opencv_tensorflow9AttrValue15_internal_set_iEl:
 1382|  17.3k|inline void AttrValue::_internal_set_i(int64_t value) {
 1383|  17.3k|  if (!_internal_has_i()) {
  ------------------
  |  Branch (1383:7): [True: 15.6k, False: 1.64k]
  ------------------
 1384|  15.6k|    clear_value();
 1385|  15.6k|    set_has_i();
 1386|  15.6k|  }
 1387|  17.3k|  value_.i_ = value;
 1388|  17.3k|}
_ZN17opencv_tensorflow9AttrValue9set_has_fEv:
 1405|  1.88k|inline void AttrValue::set_has_f() {
 1406|  1.88k|  _oneof_case_[0] = kF;
 1407|  1.88k|}
_ZN17opencv_tensorflow9AttrValue15_internal_set_fEf:
 1420|  2.64k|inline void AttrValue::_internal_set_f(float value) {
 1421|  2.64k|  if (!_internal_has_f()) {
  ------------------
  |  Branch (1421:7): [True: 1.88k, False: 760]
  ------------------
 1422|  1.88k|    clear_value();
 1423|  1.88k|    set_has_f();
 1424|  1.88k|  }
 1425|  2.64k|  value_.f_ = value;
 1426|  2.64k|}
_ZN17opencv_tensorflow9AttrValue9set_has_bEv:
 1443|  7.26k|inline void AttrValue::set_has_b() {
 1444|  7.26k|  _oneof_case_[0] = kB;
 1445|  7.26k|}
_ZN17opencv_tensorflow9AttrValue15_internal_set_bEb:
 1458|  8.62k|inline void AttrValue::_internal_set_b(bool value) {
 1459|  8.62k|  if (!_internal_has_b()) {
  ------------------
  |  Branch (1459:7): [True: 7.26k, False: 1.35k]
  ------------------
 1460|  7.26k|    clear_value();
 1461|  7.26k|    set_has_b();
 1462|  7.26k|  }
 1463|  8.62k|  value_.b_ = value;
 1464|  8.62k|}
_ZN17opencv_tensorflow9AttrValue12set_has_typeEv:
 1481|  2.10k|inline void AttrValue::set_has_type() {
 1482|  2.10k|  _oneof_case_[0] = kType;
 1483|  2.10k|}
_ZN17opencv_tensorflow9AttrValue18_internal_set_typeENS_8DataTypeE:
 1500|  3.47k|inline void AttrValue::_internal_set_type(::opencv_tensorflow::DataType value) {
 1501|  3.47k|  if (!_internal_has_type()) {
  ------------------
  |  Branch (1501:7): [True: 2.10k, False: 1.37k]
  ------------------
 1502|  2.10k|    clear_value();
 1503|  2.10k|    set_has_type();
 1504|  2.10k|  }
 1505|  3.47k|  value_.type_ = value;
 1506|  3.47k|}
_ZN17opencv_tensorflow9AttrValue13set_has_shapeEv:
 1519|  3.95k|inline void AttrValue::set_has_shape() {
 1520|  3.95k|  _oneof_case_[0] = kShape;
 1521|  3.95k|}
_ZN17opencv_tensorflow9AttrValue23_internal_mutable_shapeEv:
 1564|  4.38k|inline ::opencv_tensorflow::TensorShapeProto* AttrValue::_internal_mutable_shape() {
 1565|  4.38k|  if (!_internal_has_shape()) {
  ------------------
  |  Branch (1565:7): [True: 3.95k, False: 434]
  ------------------
 1566|  3.95k|    clear_value();
 1567|  3.95k|    set_has_shape();
 1568|  3.95k|    value_.shape_ = CreateMaybeMessage< ::opencv_tensorflow::TensorShapeProto >(GetArenaForAllocation());
 1569|  3.95k|  }
 1570|  4.38k|  return value_.shape_;
 1571|  4.38k|}
_ZN17opencv_tensorflow9AttrValue12set_has_listEv:
 1651|  9.44k|inline void AttrValue::set_has_list() {
 1652|  9.44k|  _oneof_case_[0] = kList;
 1653|  9.44k|}
_ZN17opencv_tensorflow9AttrValue22_internal_mutable_listEv:
 1704|  10.7k|inline ::opencv_tensorflow::AttrValue_ListValue* AttrValue::_internal_mutable_list() {
 1705|  10.7k|  if (!_internal_has_list()) {
  ------------------
  |  Branch (1705:7): [True: 9.44k, False: 1.26k]
  ------------------
 1706|  9.44k|    clear_value();
 1707|  9.44k|    set_has_list();
 1708|  9.44k|    value_.list_ = CreateMaybeMessage< ::opencv_tensorflow::AttrValue_ListValue >(GetArenaForAllocation());
 1709|  9.44k|  }
 1710|  10.7k|  return value_.list_;
 1711|  10.7k|}
_ZNK17opencv_tensorflow9AttrValue18_internal_has_funcEv:
 1719|  6.95k|inline bool AttrValue::_internal_has_func() const {
 1720|  6.95k|  return value_case() == kFunc;
 1721|  6.95k|}
_ZN17opencv_tensorflow9AttrValue12set_has_funcEv:
 1725|  5.62k|inline void AttrValue::set_has_func() {
 1726|  5.62k|  _oneof_case_[0] = kFunc;
 1727|  5.62k|}
_ZNK17opencv_tensorflow9AttrValue14_internal_funcEv:
 1750|    398|inline const ::opencv_tensorflow::NameAttrList& AttrValue::_internal_func() const {
 1751|    398|  return _internal_has_func()
  ------------------
  |  Branch (1751:10): [True: 398, False: 0]
  ------------------
 1752|    398|      ? *value_.func_
 1753|    398|      : reinterpret_cast< ::opencv_tensorflow::NameAttrList&>(::opencv_tensorflow::_NameAttrList_default_instance_);
 1754|    398|}
_ZN17opencv_tensorflow9AttrValue22_internal_mutable_funcEv:
 1778|  6.55k|inline ::opencv_tensorflow::NameAttrList* AttrValue::_internal_mutable_func() {
 1779|  6.55k|  if (!_internal_has_func()) {
  ------------------
  |  Branch (1779:7): [True: 5.62k, False: 934]
  ------------------
 1780|  5.62k|    clear_value();
 1781|  5.62k|    set_has_func();
 1782|  5.62k|    value_.func_ = CreateMaybeMessage< ::opencv_tensorflow::NameAttrList >(GetArenaForAllocation());
 1783|  5.62k|  }
 1784|  6.55k|  return value_.func_;
 1785|  6.55k|}
_ZNK17opencv_tensorflow9AttrValue25_internal_has_placeholderEv:
 1793|  3.03k|inline bool AttrValue::_internal_has_placeholder() const {
 1794|  3.03k|  return value_case() == kPlaceholder;
 1795|  3.03k|}
_ZN17opencv_tensorflow9AttrValue19set_has_placeholderEv:
 1799|  1.53k|inline void AttrValue::set_has_placeholder() {
 1800|  1.53k|  _oneof_case_[0] = kPlaceholder;
 1801|  1.53k|}
_ZNK17opencv_tensorflow9AttrValue21_internal_placeholderEv:
 1827|    487|inline const std::string& AttrValue::_internal_placeholder() const {
 1828|    487|  if (_internal_has_placeholder()) {
  ------------------
  |  Branch (1828:7): [True: 487, False: 0]
  ------------------
 1829|    487|    return value_.placeholder_.Get();
 1830|    487|  }
 1831|      0|  return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
 1832|    487|}
_ZN17opencv_tensorflow9AttrValue25_internal_set_placeholderERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
 1833|     71|inline void AttrValue::_internal_set_placeholder(const std::string& value) {
 1834|     71|  if (!_internal_has_placeholder()) {
  ------------------
  |  Branch (1834:7): [True: 71, False: 0]
  ------------------
 1835|     71|    clear_value();
 1836|     71|    set_has_placeholder();
 1837|     71|    value_.placeholder_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1838|     71|  }
 1839|     71|  value_.placeholder_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 1840|     71|}
_ZN17opencv_tensorflow9AttrValue29_internal_mutable_placeholderEv:
 1841|  2.47k|inline std::string* AttrValue::_internal_mutable_placeholder() {
 1842|  2.47k|  if (!_internal_has_placeholder()) {
  ------------------
  |  Branch (1842:7): [True: 1.46k, False: 1.00k]
  ------------------
 1843|  1.46k|    clear_value();
 1844|  1.46k|    set_has_placeholder();
 1845|  1.46k|    value_.placeholder_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1846|  1.46k|  }
 1847|  2.47k|  return value_.placeholder_.Mutable(
 1848|  2.47k|      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1849|  2.47k|}
_ZNK17opencv_tensorflow9AttrValue9has_valueEv:
 1874|   184k|inline bool AttrValue::has_value() const {
 1875|   184k|  return value_case() != VALUE_NOT_SET;
 1876|   184k|}
_ZN17opencv_tensorflow9AttrValue15clear_has_valueEv:
 1877|   184k|inline void AttrValue::clear_has_value() {
 1878|   184k|  _oneof_case_[0] = VALUE_NOT_SET;
 1879|   184k|}
_ZNK17opencv_tensorflow12NameAttrList14_internal_nameEv:
 1909|  3.36k|inline const std::string& NameAttrList::_internal_name() const {
 1910|  3.36k|  return name_.Get();
 1911|  3.36k|}
_ZN17opencv_tensorflow12NameAttrList18_internal_set_nameERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
 1912|     75|inline void NameAttrList::_internal_set_name(const std::string& value) {
 1913|       |
 1914|     75|  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 1915|     75|}
_ZN17opencv_tensorflow12NameAttrList22_internal_mutable_nameEv:
 1916|  4.29k|inline std::string* NameAttrList::_internal_mutable_name() {
 1917|       |
 1918|  4.29k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1919|  4.29k|}
_ZNK17opencv_tensorflow12NameAttrList19_internal_attr_sizeEv:
 1941|  2.15k|inline int NameAttrList::_internal_attr_size() const {
 1942|  2.15k|  return attr_.size();
 1943|  2.15k|}
_ZNK17opencv_tensorflow12NameAttrList14_internal_attrEv:
 1951|  7.47k|NameAttrList::_internal_attr() const {
 1952|  7.47k|  return attr_.GetMap();
 1953|  7.47k|}

_ZN17opencv_tensorflow18FunctionDefLibraryC2EPN6google8protobuf5ArenaEb:
  199|  5.21k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  200|  5.21k|  function_(arena),
  201|  5.21k|  gradient_(arena) {
  202|  5.21k|  SharedCtor();
  203|  5.21k|  if (!is_message_owned) {
  ------------------
  |  Branch (203:7): [True: 5.21k, False: 0]
  ------------------
  204|  5.21k|    RegisterArenaDtor(arena);
  205|  5.21k|  }
  206|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.FunctionDefLibrary)
  207|  5.21k|}
_ZN17opencv_tensorflow18FunctionDefLibraryD2Ev:
  219|  5.21k|FunctionDefLibrary::~FunctionDefLibrary() {
  220|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.FunctionDefLibrary)
  221|  5.21k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (221:7): [True: 0, False: 5.21k]
  ------------------
  222|  5.21k|  SharedDtor();
  223|  5.21k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  224|  5.21k|}
_ZN17opencv_tensorflow18FunctionDefLibrary14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  251|  44.0k|const char* FunctionDefLibrary::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  252|  44.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  253|   110k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (253:10): [True: 70.0k, False: 40.2k]
  ------------------
  254|  70.0k|    uint32_t tag;
  255|  70.0k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  256|  70.0k|    switch (tag >> 3) {
  257|       |      // repeated .opencv_tensorflow.FunctionDef function = 1;
  258|  31.4k|      case 1:
  ------------------
  |  Branch (258:7): [True: 31.4k, False: 38.6k]
  ------------------
  259|  31.4k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  260|  29.4k|          ptr -= 1;
  261|  31.0k|          do {
  262|  31.0k|            ptr += 1;
  263|  31.0k|            ptr = ctx->ParseMessage(_internal_add_function(), ptr);
  264|  31.0k|            CHK_(ptr);
  ------------------
  |  |  252|  31.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  265|  27.6k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (265:17): [True: 15.2k, False: 12.4k]
  ------------------
  266|  27.6k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
  ------------------
  |  Branch (266:20): [True: 1.53k, False: 10.8k]
  ------------------
  267|  29.4k|        } else
  268|  2.01k|          goto handle_unusual;
  269|  26.1k|        continue;
  270|       |      // repeated .opencv_tensorflow.GradientDef gradient = 2;
  271|  26.1k|      case 2:
  ------------------
  |  Branch (271:7): [True: 14.5k, False: 55.5k]
  ------------------
  272|  14.5k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  273|  6.83k|          ptr -= 1;
  274|  8.88k|          do {
  275|  8.88k|            ptr += 1;
  276|  8.88k|            ptr = ctx->ParseMessage(_internal_add_gradient(), ptr);
  277|  8.88k|            CHK_(ptr);
  ------------------
  |  |  252|  8.88k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  278|  8.62k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (278:17): [True: 1.98k, False: 6.63k]
  ------------------
  279|  8.62k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (279:20): [True: 2.05k, False: 4.58k]
  ------------------
  280|  6.83k|        } else
  281|  7.74k|          goto handle_unusual;
  282|  6.57k|        continue;
  283|  24.0k|      default:
  ------------------
  |  Branch (283:7): [True: 24.0k, False: 46.0k]
  ------------------
  284|  24.0k|        goto handle_unusual;
  285|  70.0k|    }  // switch
  286|  33.7k|  handle_unusual:
  287|  33.7k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (287:9): [True: 16, False: 33.7k]
  |  Branch (287:23): [True: 19, False: 33.7k]
  ------------------
  288|     35|      CHK_(ptr);
  ------------------
  |  |  252|     35|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  289|     33|      ctx->SetLastTag(tag);
  290|     33|      goto message_done;
  291|     35|    }
  292|  33.7k|    ptr = UnknownFieldParse(
  293|  33.7k|        tag,
  294|  33.7k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  295|  33.7k|        ptr, ctx);
  296|  33.7k|    CHK_(ptr != nullptr);
  ------------------
  |  |  252|  33.7k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  297|  33.7k|  }  // while
  298|  44.0k|message_done:
  299|  44.0k|  return ptr;
  300|  3.70k|failure:
  301|  3.70k|  ptr = nullptr;
  302|  3.70k|  goto message_done;
  303|  44.0k|#undef CHK_
  304|  44.0k|}
_ZNK17opencv_tensorflow18FunctionDefLibrary12ByteSizeLongEv:
  336|  1.28k|size_t FunctionDefLibrary::ByteSizeLong() const {
  337|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.FunctionDefLibrary)
  338|  1.28k|  size_t total_size = 0;
  339|       |
  340|  1.28k|  uint32_t cached_has_bits = 0;
  341|       |  // Prevent compiler warnings about cached_has_bits being unused
  342|  1.28k|  (void) cached_has_bits;
  343|       |
  344|       |  // repeated .opencv_tensorflow.FunctionDef function = 1;
  345|  1.28k|  total_size += 1UL * this->_internal_function_size();
  346|  23.0k|  for (const auto& msg : this->function_) {
  ------------------
  |  Branch (346:24): [True: 23.0k, False: 1.28k]
  ------------------
  347|  23.0k|    total_size +=
  348|  23.0k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  349|  23.0k|  }
  350|       |
  351|       |  // repeated .opencv_tensorflow.GradientDef gradient = 2;
  352|  1.28k|  total_size += 1UL * this->_internal_gradient_size();
  353|  5.91k|  for (const auto& msg : this->gradient_) {
  ------------------
  |  Branch (353:24): [True: 5.91k, False: 1.28k]
  ------------------
  354|  5.91k|    total_size +=
  355|  5.91k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  356|  5.91k|  }
  357|       |
  358|  1.28k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  359|  1.28k|}
_ZN17opencv_tensorflow35FunctionDef_Node_AttrEntry_DoNotUseC2EPN6google8protobuf5ArenaE:
  413|  8.63k|    : SuperType(arena) {}
_ZN17opencv_tensorflow16FunctionDef_NodeC2EPN6google8protobuf5ArenaEb:
  434|  10.5k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  435|  10.5k|  ret_(arena),
  436|  10.5k|  arg_(arena),
  437|  10.5k|  dep_(arena),
  438|  10.5k|  attr_(arena) {
  439|  10.5k|  SharedCtor();
  440|  10.5k|  if (!is_message_owned) {
  ------------------
  |  Branch (440:7): [True: 10.5k, False: 0]
  ------------------
  441|  10.5k|    RegisterArenaDtor(arena);
  442|  10.5k|  }
  443|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.FunctionDef.Node)
  444|  10.5k|}
_ZN17opencv_tensorflow16FunctionDef_NodeD2Ev:
  470|  10.5k|FunctionDef_Node::~FunctionDef_Node() {
  471|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.FunctionDef.Node)
  472|  10.5k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (472:7): [True: 0, False: 10.5k]
  ------------------
  473|  10.5k|  SharedDtor();
  474|  10.5k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  475|  10.5k|}
_ZN17opencv_tensorflow16FunctionDef_Node14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  510|  10.5k|const char* FunctionDef_Node::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  511|  10.5k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  512|  62.6k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (512:10): [True: 52.7k, False: 9.89k]
  ------------------
  513|  52.7k|    uint32_t tag;
  514|  52.7k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  515|  52.7k|    switch (tag >> 3) {
  516|       |      // repeated string ret = 1;
  517|  5.00k|      case 1:
  ------------------
  |  Branch (517:7): [True: 5.00k, False: 47.7k]
  ------------------
  518|  5.00k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  519|  3.98k|          ptr -= 1;
  520|  18.6k|          do {
  521|  18.6k|            ptr += 1;
  522|  18.6k|            auto str = _internal_add_ret();
  523|  18.6k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  524|  18.6k|            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.FunctionDef.Node.ret"));
  ------------------
  |  |  511|  18.6k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  525|  18.6k|            CHK_(ptr);
  ------------------
  |  |  511|  18.6k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  526|  18.5k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (526:17): [True: 557, False: 18.0k]
  ------------------
  527|  18.5k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
  ------------------
  |  Branch (527:20): [True: 14.6k, False: 3.41k]
  ------------------
  528|  3.98k|        } else
  529|  1.01k|          goto handle_unusual;
  530|  3.97k|        continue;
  531|       |      // string op = 2;
  532|  12.6k|      case 2:
  ------------------
  |  Branch (532:7): [True: 12.6k, False: 40.1k]
  ------------------
  533|  12.6k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  534|  7.97k|          auto str = _internal_mutable_op();
  535|  7.97k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  536|  7.97k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.FunctionDef.Node.op"));
  ------------------
  |  |  511|  7.97k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  537|  7.96k|          CHK_(ptr);
  ------------------
  |  |  511|  7.96k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  538|  7.96k|        } else
  539|  4.64k|          goto handle_unusual;
  540|  7.96k|        continue;
  541|       |      // repeated string arg = 3;
  542|  7.96k|      case 3:
  ------------------
  |  Branch (542:7): [True: 3.97k, False: 48.8k]
  ------------------
  543|  3.97k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
  544|  2.57k|          ptr -= 1;
  545|  4.18k|          do {
  546|  4.18k|            ptr += 1;
  547|  4.18k|            auto str = _internal_add_arg();
  548|  4.18k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  549|  4.18k|            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.FunctionDef.Node.arg"));
  ------------------
  |  |  511|  4.18k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  550|  4.17k|            CHK_(ptr);
  ------------------
  |  |  511|  4.17k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  551|  4.17k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (551:17): [True: 339, False: 3.83k]
  ------------------
  552|  4.17k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
  ------------------
  |  Branch (552:20): [True: 1.60k, False: 2.22k]
  ------------------
  553|  2.57k|        } else
  554|  1.39k|          goto handle_unusual;
  555|  2.56k|        continue;
  556|       |      // repeated string dep = 4;
  557|  3.74k|      case 4:
  ------------------
  |  Branch (557:7): [True: 3.74k, False: 49.0k]
  ------------------
  558|  3.74k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  559|  2.27k|          ptr -= 1;
  560|  8.08k|          do {
  561|  8.08k|            ptr += 1;
  562|  8.08k|            auto str = _internal_add_dep();
  563|  8.08k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  564|  8.08k|            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.FunctionDef.Node.dep"));
  ------------------
  |  |  511|  8.08k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  565|  8.08k|            CHK_(ptr);
  ------------------
  |  |  511|  8.08k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  566|  8.07k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (566:17): [True: 429, False: 7.64k]
  ------------------
  567|  8.07k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
  ------------------
  |  Branch (567:20): [True: 5.81k, False: 1.83k]
  ------------------
  568|  2.27k|        } else
  569|  1.46k|          goto handle_unusual;
  570|  2.26k|        continue;
  571|       |      // map<string, .opencv_tensorflow.AttrValue> attr = 5;
  572|  11.6k|      case 5:
  ------------------
  |  Branch (572:7): [True: 11.6k, False: 41.0k]
  ------------------
  573|  11.6k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
  574|  5.74k|          ptr -= 1;
  575|  9.40k|          do {
  576|  9.40k|            ptr += 1;
  577|  9.40k|            ptr = ctx->ParseMessage(&attr_, ptr);
  578|  9.40k|            CHK_(ptr);
  ------------------
  |  |  511|  9.40k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  579|  8.91k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (579:17): [True: 668, False: 8.25k]
  ------------------
  580|  8.91k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
  ------------------
  |  Branch (580:20): [True: 3.66k, False: 4.59k]
  ------------------
  581|  5.74k|        } else
  582|  5.95k|          goto handle_unusual;
  583|  5.25k|        continue;
  584|  15.7k|      default:
  ------------------
  |  Branch (584:7): [True: 15.7k, False: 37.0k]
  ------------------
  585|  15.7k|        goto handle_unusual;
  586|  52.7k|    }  // switch
  587|  30.2k|  handle_unusual:
  588|  30.2k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (588:9): [True: 26, False: 30.1k]
  |  Branch (588:23): [True: 7, False: 30.1k]
  ------------------
  589|     33|      CHK_(ptr);
  ------------------
  |  |  511|     33|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  590|     32|      ctx->SetLastTag(tag);
  591|     32|      goto message_done;
  592|     33|    }
  593|  30.1k|    ptr = UnknownFieldParse(
  594|  30.1k|        tag,
  595|  30.1k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  596|  30.1k|        ptr, ctx);
  597|  30.1k|    CHK_(ptr != nullptr);
  ------------------
  |  |  511|  30.1k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  598|  30.1k|  }  // while
  599|  10.5k|message_done:
  600|  10.5k|  return ptr;
  601|    615|failure:
  602|    615|  ptr = nullptr;
  603|    615|  goto message_done;
  604|  10.5k|#undef CHK_
  605|  10.5k|}
_ZNK17opencv_tensorflow16FunctionDef_Node12ByteSizeLongEv:
  703|  6.79k|size_t FunctionDef_Node::ByteSizeLong() const {
  704|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.FunctionDef.Node)
  705|  6.79k|  size_t total_size = 0;
  706|       |
  707|  6.79k|  uint32_t cached_has_bits = 0;
  708|       |  // Prevent compiler warnings about cached_has_bits being unused
  709|  6.79k|  (void) cached_has_bits;
  710|       |
  711|       |  // repeated string ret = 1;
  712|  6.79k|  total_size += 1 *
  713|  6.79k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(ret_.size());
  714|  9.04k|  for (int i = 0, n = ret_.size(); i < n; i++) {
  ------------------
  |  Branch (714:36): [True: 2.25k, False: 6.79k]
  ------------------
  715|  2.25k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  716|  2.25k|      ret_.Get(i));
  717|  2.25k|  }
  718|       |
  719|       |  // repeated string arg = 3;
  720|  6.79k|  total_size += 1 *
  721|  6.79k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(arg_.size());
  722|  9.20k|  for (int i = 0, n = arg_.size(); i < n; i++) {
  ------------------
  |  Branch (722:36): [True: 2.41k, False: 6.79k]
  ------------------
  723|  2.41k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  724|  2.41k|      arg_.Get(i));
  725|  2.41k|  }
  726|       |
  727|       |  // repeated string dep = 4;
  728|  6.79k|  total_size += 1 *
  729|  6.79k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(dep_.size());
  730|  13.2k|  for (int i = 0, n = dep_.size(); i < n; i++) {
  ------------------
  |  Branch (730:36): [True: 6.48k, False: 6.79k]
  ------------------
  731|  6.48k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  732|  6.48k|      dep_.Get(i));
  733|  6.48k|  }
  734|       |
  735|       |  // map<string, .opencv_tensorflow.AttrValue> attr = 5;
  736|  6.79k|  total_size += 1 *
  737|  6.79k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_attr_size());
  738|  6.79k|  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::opencv_tensorflow::AttrValue >::const_iterator
  739|  6.79k|      it = this->_internal_attr().begin();
  740|  9.72k|      it != this->_internal_attr().end(); ++it) {
  ------------------
  |  Branch (740:7): [True: 2.93k, False: 6.79k]
  ------------------
  741|  2.93k|    total_size += FunctionDef_Node_AttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  742|  2.93k|  }
  743|       |
  744|       |  // string op = 2;
  745|  6.79k|  if (!this->_internal_op().empty()) {
  ------------------
  |  Branch (745:7): [True: 967, False: 5.82k]
  ------------------
  746|    967|    total_size += 1 +
  747|    967|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  748|    967|        this->_internal_op());
  749|    967|  }
  750|       |
  751|  6.79k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  752|  6.79k|}
_ZN17opencv_tensorflow11FunctionDefC2EPN6google8protobuf5ArenaEb:
  835|  31.0k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  836|  31.0k|  node_(arena) {
  837|  31.0k|  SharedCtor();
  838|  31.0k|  if (!is_message_owned) {
  ------------------
  |  Branch (838:7): [True: 31.0k, False: 0]
  ------------------
  839|  31.0k|    RegisterArenaDtor(arena);
  840|  31.0k|  }
  841|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.FunctionDef)
  842|  31.0k|}
_ZN17opencv_tensorflow11FunctionDefD2Ev:
  859|  31.0k|FunctionDef::~FunctionDef() {
  860|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.FunctionDef)
  861|  31.0k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (861:7): [True: 0, False: 31.0k]
  ------------------
  862|  31.0k|  SharedDtor();
  863|  31.0k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  864|  31.0k|}
_ZN17opencv_tensorflow11FunctionDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  895|  31.0k|const char* FunctionDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  896|  31.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  897|  99.2k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (897:10): [True: 71.4k, False: 27.7k]
  ------------------
  898|  71.4k|    uint32_t tag;
  899|  71.4k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  900|  71.4k|    switch (tag >> 3) {
  901|       |      // .opencv_tensorflow.OpDef signature = 1;
  902|  22.6k|      case 1:
  ------------------
  |  Branch (902:7): [True: 22.6k, False: 48.8k]
  ------------------
  903|  22.6k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  904|  22.0k|          ptr = ctx->ParseMessage(_internal_mutable_signature(), ptr);
  905|  22.0k|          CHK_(ptr);
  ------------------
  |  |  896|  22.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  906|  22.0k|        } else
  907|    629|          goto handle_unusual;
  908|  19.8k|        continue;
  909|       |      // repeated .opencv_tensorflow.FunctionDef.Node node = 2;
  910|  19.8k|      case 2:
  ------------------
  |  Branch (910:7): [True: 17.1k, False: 54.3k]
  ------------------
  911|  17.1k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  912|  8.02k|          ptr -= 1;
  913|  10.5k|          do {
  914|  10.5k|            ptr += 1;
  915|  10.5k|            ptr = ctx->ParseMessage(_internal_add_node(), ptr);
  916|  10.5k|            CHK_(ptr);
  ------------------
  |  |  896|  10.5k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  917|  9.60k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (917:17): [True: 3.01k, False: 6.59k]
  ------------------
  918|  9.60k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (918:20): [True: 2.51k, False: 4.07k]
  ------------------
  919|  8.02k|        } else
  920|  9.09k|          goto handle_unusual;
  921|  7.09k|        continue;
  922|  31.7k|      default:
  ------------------
  |  Branch (922:7): [True: 31.7k, False: 39.7k]
  ------------------
  923|  31.7k|        goto handle_unusual;
  924|  71.4k|    }  // switch
  925|  41.4k|  handle_unusual:
  926|  41.4k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (926:9): [True: 18, False: 41.4k]
  |  Branch (926:23): [True: 12, False: 41.3k]
  ------------------
  927|     30|      CHK_(ptr);
  ------------------
  |  |  896|     30|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  928|     28|      ctx->SetLastTag(tag);
  929|     28|      goto message_done;
  930|     30|    }
  931|  41.3k|    ptr = UnknownFieldParse(
  932|  41.3k|        tag,
  933|  41.3k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  934|  41.3k|        ptr, ctx);
  935|  41.3k|    CHK_(ptr != nullptr);
  ------------------
  |  |  896|  41.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  936|  41.3k|  }  // while
  937|  31.0k|message_done:
  938|  31.0k|  return ptr;
  939|  3.18k|failure:
  940|  3.18k|  ptr = nullptr;
  941|  3.18k|  goto message_done;
  942|  31.0k|#undef CHK_
  943|  31.0k|}
_ZNK17opencv_tensorflow11FunctionDef12ByteSizeLongEv:
  975|  23.0k|size_t FunctionDef::ByteSizeLong() const {
  976|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.FunctionDef)
  977|  23.0k|  size_t total_size = 0;
  978|       |
  979|  23.0k|  uint32_t cached_has_bits = 0;
  980|       |  // Prevent compiler warnings about cached_has_bits being unused
  981|  23.0k|  (void) cached_has_bits;
  982|       |
  983|       |  // repeated .opencv_tensorflow.FunctionDef.Node node = 2;
  984|  23.0k|  total_size += 1UL * this->_internal_node_size();
  985|  23.0k|  for (const auto& msg : this->node_) {
  ------------------
  |  Branch (985:24): [True: 6.79k, False: 23.0k]
  ------------------
  986|  6.79k|    total_size +=
  987|  6.79k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  988|  6.79k|  }
  989|       |
  990|       |  // .opencv_tensorflow.OpDef signature = 1;
  991|  23.0k|  if (this->_internal_has_signature()) {
  ------------------
  |  Branch (991:7): [True: 16.2k, False: 6.75k]
  ------------------
  992|  16.2k|    total_size += 1 +
  993|  16.2k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
  994|  16.2k|        *signature_);
  995|  16.2k|  }
  996|       |
  997|  23.0k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  998|  23.0k|}
_ZN17opencv_tensorflow11GradientDefC2EPN6google8protobuf5ArenaEb:
 1058|  8.88k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 1059|  8.88k|  SharedCtor();
 1060|  8.88k|  if (!is_message_owned) {
  ------------------
  |  Branch (1060:7): [True: 8.88k, False: 0]
  ------------------
 1061|  8.88k|    RegisterArenaDtor(arena);
 1062|  8.88k|  }
 1063|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.GradientDef)
 1064|  8.88k|}
_ZN17opencv_tensorflow11GradientDefD2Ev:
 1098|  8.88k|GradientDef::~GradientDef() {
 1099|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.GradientDef)
 1100|  8.88k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (1100:7): [True: 0, False: 8.88k]
  ------------------
 1101|  8.88k|  SharedDtor();
 1102|  8.88k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1103|  8.88k|}
_ZN17opencv_tensorflow11GradientDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
 1132|  8.88k|const char* GradientDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 1133|  8.88k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 1134|  17.7k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (1134:10): [True: 8.97k, False: 8.79k]
  ------------------
 1135|  8.97k|    uint32_t tag;
 1136|  8.97k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 1137|  8.97k|    switch (tag >> 3) {
 1138|       |      // string function_name = 1;
 1139|  2.27k|      case 1:
  ------------------
  |  Branch (1139:7): [True: 2.27k, False: 6.69k]
  ------------------
 1140|  2.27k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 1141|  2.00k|          auto str = _internal_mutable_function_name();
 1142|  2.00k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1143|  2.00k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.GradientDef.function_name"));
  ------------------
  |  | 1133|  2.00k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1144|  1.99k|          CHK_(ptr);
  ------------------
  |  | 1133|  1.99k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1145|  1.99k|        } else
 1146|    272|          goto handle_unusual;
 1147|  1.99k|        continue;
 1148|       |      // string gradient_func = 2;
 1149|  3.93k|      case 2:
  ------------------
  |  Branch (1149:7): [True: 3.93k, False: 5.04k]
  ------------------
 1150|  3.93k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 1151|  2.34k|          auto str = _internal_mutable_gradient_func();
 1152|  2.34k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1153|  2.34k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.GradientDef.gradient_func"));
  ------------------
  |  | 1133|  2.34k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1154|  2.33k|          CHK_(ptr);
  ------------------
  |  | 1133|  2.33k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1155|  2.33k|        } else
 1156|  1.59k|          goto handle_unusual;
 1157|  2.33k|        continue;
 1158|  2.76k|      default:
  ------------------
  |  Branch (1158:7): [True: 2.76k, False: 6.21k]
  ------------------
 1159|  2.76k|        goto handle_unusual;
 1160|  8.97k|    }  // switch
 1161|  4.62k|  handle_unusual:
 1162|  4.62k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (1162:9): [True: 11, False: 4.61k]
  |  Branch (1162:23): [True: 12, False: 4.60k]
  ------------------
 1163|     23|      CHK_(ptr);
  ------------------
  |  | 1133|     23|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1164|     22|      ctx->SetLastTag(tag);
 1165|     22|      goto message_done;
 1166|     23|    }
 1167|  4.60k|    ptr = UnknownFieldParse(
 1168|  4.60k|        tag,
 1169|  4.60k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 1170|  4.60k|        ptr, ctx);
 1171|  4.60k|    CHK_(ptr != nullptr);
  ------------------
  |  | 1133|  4.60k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1172|  4.60k|  }  // while
 1173|  8.88k|message_done:
 1174|  8.88k|  return ptr;
 1175|     65|failure:
 1176|     65|  ptr = nullptr;
 1177|     65|  goto message_done;
 1178|  8.88k|#undef CHK_
 1179|  8.88k|}
_ZNK17opencv_tensorflow11GradientDef12ByteSizeLongEv:
 1215|  5.91k|size_t GradientDef::ByteSizeLong() const {
 1216|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.GradientDef)
 1217|  5.91k|  size_t total_size = 0;
 1218|       |
 1219|  5.91k|  uint32_t cached_has_bits = 0;
 1220|       |  // Prevent compiler warnings about cached_has_bits being unused
 1221|  5.91k|  (void) cached_has_bits;
 1222|       |
 1223|       |  // string function_name = 1;
 1224|  5.91k|  if (!this->_internal_function_name().empty()) {
  ------------------
  |  Branch (1224:7): [True: 563, False: 5.35k]
  ------------------
 1225|    563|    total_size += 1 +
 1226|    563|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1227|    563|        this->_internal_function_name());
 1228|    563|  }
 1229|       |
 1230|       |  // string gradient_func = 2;
 1231|  5.91k|  if (!this->_internal_gradient_func().empty()) {
  ------------------
  |  Branch (1231:7): [True: 712, False: 5.20k]
  ------------------
 1232|    712|    total_size += 1 +
 1233|    712|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1234|    712|        this->_internal_gradient_func());
 1235|    712|  }
 1236|       |
 1237|  5.91k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1238|  5.91k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow18FunctionDefLibraryEJEEEPT_PS1_DpOT0_:
 1305|  5.21k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::FunctionDefLibrary* Arena::CreateMaybeMessage< ::opencv_tensorflow::FunctionDefLibrary >(Arena* arena) {
 1306|  5.21k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::FunctionDefLibrary >(arena);
 1307|  5.21k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow35FunctionDef_Node_AttrEntry_DoNotUseEJEEEPT_PS1_DpOT0_:
 1308|  8.63k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::FunctionDef_Node_AttrEntry_DoNotUse* Arena::CreateMaybeMessage< ::opencv_tensorflow::FunctionDef_Node_AttrEntry_DoNotUse >(Arena* arena) {
 1309|  8.63k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::FunctionDef_Node_AttrEntry_DoNotUse >(arena);
 1310|  8.63k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow16FunctionDef_NodeEJEEEPT_PS1_DpOT0_:
 1311|  10.5k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::FunctionDef_Node* Arena::CreateMaybeMessage< ::opencv_tensorflow::FunctionDef_Node >(Arena* arena) {
 1312|  10.5k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::FunctionDef_Node >(arena);
 1313|  10.5k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow11FunctionDefEJEEEPT_PS1_DpOT0_:
 1314|  31.0k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::FunctionDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::FunctionDef >(Arena* arena) {
 1315|  31.0k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::FunctionDef >(arena);
 1316|  31.0k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow11GradientDefEJEEEPT_PS1_DpOT0_:
 1317|  8.88k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::GradientDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::GradientDef >(Arena* arena) {
 1318|  8.88k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::GradientDef >(arena);
 1319|  8.88k|}
_ZN17opencv_tensorflow18FunctionDefLibrary10SharedCtorEv:
  216|  5.21k|inline void FunctionDefLibrary::SharedCtor() {
  217|  5.21k|}
_ZN17opencv_tensorflow18FunctionDefLibrary10SharedDtorEv:
  226|  5.21k|inline void FunctionDefLibrary::SharedDtor() {
  227|  5.21k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  228|  5.21k|}
_ZN17opencv_tensorflow18FunctionDefLibrary17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  234|  5.21k|void FunctionDefLibrary::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  235|  5.21k|}
_ZN17opencv_tensorflow16FunctionDef_Node10SharedCtorEv:
  463|  10.5k|inline void FunctionDef_Node::SharedCtor() {
  464|  10.5k|op_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  465|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  466|       |  op_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  467|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  468|  10.5k|}
_ZN17opencv_tensorflow16FunctionDef_Node10SharedDtorEv:
  477|  10.5k|inline void FunctionDef_Node::SharedDtor() {
  478|  10.5k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  479|  10.5k|  op_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  480|  10.5k|}
_ZN17opencv_tensorflow16FunctionDef_Node17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  487|  10.5k|inline void FunctionDef_Node::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena) {
  488|  10.5k|  if (arena != nullptr) {
  ------------------
  |  Branch (488:7): [True: 0, False: 10.5k]
  ------------------
  489|      0|    arena->OwnCustomDestructor(this, &FunctionDef_Node::ArenaDtor);
  490|      0|  }
  491|  10.5k|}
_ZN17opencv_tensorflow11FunctionDef10SharedCtorEv:
  855|  31.0k|inline void FunctionDef::SharedCtor() {
  856|  31.0k|signature_ = nullptr;
  857|  31.0k|}
_ZN17opencv_tensorflow11FunctionDef10SharedDtorEv:
  866|  31.0k|inline void FunctionDef::SharedDtor() {
  867|  31.0k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  868|  31.0k|  if (this != internal_default_instance()) delete signature_;
  ------------------
  |  Branch (868:7): [True: 31.0k, False: 0]
  ------------------
  869|  31.0k|}
_ZN17opencv_tensorflow11FunctionDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  875|  31.0k|void FunctionDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  876|  31.0k|}
_ZN17opencv_tensorflow11GradientDef10SharedCtorEv:
 1087|  8.88k|inline void GradientDef::SharedCtor() {
 1088|  8.88k|function_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1089|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1090|       |  function_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1091|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1092|  8.88k|gradient_func_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1093|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1094|       |  gradient_func_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1095|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1096|  8.88k|}
_ZN17opencv_tensorflow11GradientDef10SharedDtorEv:
 1105|  8.88k|inline void GradientDef::SharedDtor() {
 1106|  8.88k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 1107|  8.88k|  function_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1108|  8.88k|  gradient_func_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1109|  8.88k|}
_ZN17opencv_tensorflow11GradientDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
 1115|  8.88k|void GradientDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 1116|  8.88k|}

_ZN17opencv_tensorflow35FunctionDef_Node_AttrEntry_DoNotUse11ValidateKeyEPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  279|  7.02k|  static bool ValidateKey(std::string* s) {
  280|  7.02k|    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "opencv_tensorflow.FunctionDef.Node.AttrEntry.key");
  281|  7.02k| }
_ZN17opencv_tensorflow35FunctionDef_Node_AttrEntry_DoNotUse13ValidateValueEPv:
  282|  3.07k|  static bool ValidateValue(void*) { return true; }
_ZN17opencv_tensorflow11FunctionDef25internal_default_instanceEv:
  585|  54.0k|  static inline const FunctionDef* internal_default_instance() {
  586|  54.0k|    return reinterpret_cast<const FunctionDef*>(
  587|  54.0k|               &_FunctionDef_default_instance_);
  588|  54.0k|  }
_ZNK17opencv_tensorflow18FunctionDefLibrary23_internal_function_sizeEv:
  896|  1.28k|inline int FunctionDefLibrary::_internal_function_size() const {
  897|  1.28k|  return function_.size();
  898|  1.28k|}
_ZN17opencv_tensorflow18FunctionDefLibrary22_internal_add_functionEv:
  921|  31.0k|inline ::opencv_tensorflow::FunctionDef* FunctionDefLibrary::_internal_add_function() {
  922|  31.0k|  return function_.Add();
  923|  31.0k|}
_ZNK17opencv_tensorflow18FunctionDefLibrary23_internal_gradient_sizeEv:
  936|  1.28k|inline int FunctionDefLibrary::_internal_gradient_size() const {
  937|  1.28k|  return gradient_.size();
  938|  1.28k|}
_ZN17opencv_tensorflow18FunctionDefLibrary22_internal_add_gradientEv:
  961|  8.88k|inline ::opencv_tensorflow::GradientDef* FunctionDefLibrary::_internal_add_gradient() {
  962|  8.88k|  return gradient_.Add();
  963|  8.88k|}
_ZN17opencv_tensorflow16FunctionDef_Node17_internal_add_retEv:
 1025|  18.6k|inline std::string* FunctionDef_Node::_internal_add_ret() {
 1026|  18.6k|  return ret_.Add();
 1027|  18.6k|}
_ZNK17opencv_tensorflow16FunctionDef_Node12_internal_opEv:
 1076|  7.76k|inline const std::string& FunctionDef_Node::_internal_op() const {
 1077|  7.76k|  return op_.Get();
 1078|  7.76k|}
_ZN17opencv_tensorflow16FunctionDef_Node20_internal_mutable_opEv:
 1083|  7.97k|inline std::string* FunctionDef_Node::_internal_mutable_op() {
 1084|       |
 1085|  7.97k|  return op_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1086|  7.97k|}
_ZN17opencv_tensorflow16FunctionDef_Node17_internal_add_argEv:
 1151|  4.18k|inline std::string* FunctionDef_Node::_internal_add_arg() {
 1152|  4.18k|  return arg_.Add();
 1153|  4.18k|}
_ZN17opencv_tensorflow16FunctionDef_Node17_internal_add_depEv:
 1226|  8.08k|inline std::string* FunctionDef_Node::_internal_add_dep() {
 1227|  8.08k|  return dep_.Add();
 1228|  8.08k|}
_ZNK17opencv_tensorflow16FunctionDef_Node19_internal_attr_sizeEv:
 1258|  6.79k|inline int FunctionDef_Node::_internal_attr_size() const {
 1259|  6.79k|  return attr_.size();
 1260|  6.79k|}
_ZNK17opencv_tensorflow16FunctionDef_Node14_internal_attrEv:
 1265|  16.5k|FunctionDef_Node::_internal_attr() const {
 1266|  16.5k|  return attr_.GetMap();
 1267|  16.5k|}
_ZNK17opencv_tensorflow11FunctionDef23_internal_has_signatureEv:
 1288|  23.0k|inline bool FunctionDef::_internal_has_signature() const {
 1289|  23.0k|  return this != internal_default_instance() && signature_ != nullptr;
  ------------------
  |  Branch (1289:10): [True: 23.0k, False: 0]
  |  Branch (1289:49): [True: 16.2k, False: 6.75k]
  ------------------
 1290|  23.0k|}
_ZN17opencv_tensorflow11FunctionDef27_internal_mutable_signatureEv:
 1338|  22.0k|inline ::opencv_tensorflow::OpDef* FunctionDef::_internal_mutable_signature() {
 1339|       |
 1340|  22.0k|  if (signature_ == nullptr) {
  ------------------
  |  Branch (1340:7): [True: 20.7k, False: 1.24k]
  ------------------
 1341|  20.7k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::OpDef>(GetArenaForAllocation());
 1342|  20.7k|    signature_ = p;
 1343|  20.7k|  }
 1344|  22.0k|  return signature_;
 1345|  22.0k|}
_ZNK17opencv_tensorflow11FunctionDef19_internal_node_sizeEv:
 1374|  23.0k|inline int FunctionDef::_internal_node_size() const {
 1375|  23.0k|  return node_.size();
 1376|  23.0k|}
_ZN17opencv_tensorflow11FunctionDef18_internal_add_nodeEv:
 1399|  10.5k|inline ::opencv_tensorflow::FunctionDef_Node* FunctionDef::_internal_add_node() {
 1400|  10.5k|  return node_.Add();
 1401|  10.5k|}
_ZNK17opencv_tensorflow11GradientDef23_internal_function_nameEv:
 1437|  6.48k|inline const std::string& GradientDef::_internal_function_name() const {
 1438|  6.48k|  return function_name_.Get();
 1439|  6.48k|}
_ZN17opencv_tensorflow11GradientDef31_internal_mutable_function_nameEv:
 1444|  2.00k|inline std::string* GradientDef::_internal_mutable_function_name() {
 1445|       |
 1446|  2.00k|  return function_name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1447|  2.00k|}
_ZNK17opencv_tensorflow11GradientDef23_internal_gradient_funcEv:
 1488|  6.63k|inline const std::string& GradientDef::_internal_gradient_func() const {
 1489|  6.63k|  return gradient_func_.Get();
 1490|  6.63k|}
_ZN17opencv_tensorflow11GradientDef31_internal_mutable_gradient_funcEv:
 1495|  2.34k|inline std::string* GradientDef::_internal_mutable_gradient_func() {
 1496|       |
 1497|  2.34k|  return gradient_func_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1498|  2.34k|}

_ZN17opencv_tensorflow8GraphDefC2EPN6google8protobuf5ArenaEb:
  177|  35.8k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  178|  35.8k|  node_(arena) {
  179|  35.8k|  SharedCtor();
  180|  35.8k|  if (!is_message_owned) {
  ------------------
  |  Branch (180:7): [True: 35.8k, False: 0]
  ------------------
  181|  35.8k|    RegisterArenaDtor(arena);
  182|  35.8k|  }
  183|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.GraphDef)
  184|  35.8k|}
_ZN17opencv_tensorflow8GraphDefD2Ev:
  210|  35.8k|GraphDef::~GraphDef() {
  211|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.GraphDef)
  212|  35.8k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (212:7): [True: 0, False: 35.8k]
  ------------------
  213|  35.8k|  SharedDtor();
  214|  35.8k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  215|  35.8k|}
_ZN17opencv_tensorflow8GraphDef5ClearEv:
  233|  17.9k|void GraphDef::Clear() {
  234|       |// @@protoc_insertion_point(message_clear_start:opencv_tensorflow.GraphDef)
  235|  17.9k|  uint32_t cached_has_bits = 0;
  236|       |  // Prevent compiler warnings about cached_has_bits being unused
  237|  17.9k|  (void) cached_has_bits;
  238|       |
  239|  17.9k|  node_.Clear();
  240|  17.9k|  if (GetArenaForAllocation() == nullptr && library_ != nullptr) {
  ------------------
  |  Branch (240:7): [True: 17.9k, False: 0]
  |  Branch (240:45): [True: 0, False: 17.9k]
  ------------------
  241|      0|    delete library_;
  242|      0|  }
  243|  17.9k|  library_ = nullptr;
  244|  17.9k|  if (GetArenaForAllocation() == nullptr && versions_ != nullptr) {
  ------------------
  |  Branch (244:7): [True: 17.9k, False: 0]
  |  Branch (244:45): [True: 0, False: 17.9k]
  ------------------
  245|      0|    delete versions_;
  246|      0|  }
  247|  17.9k|  versions_ = nullptr;
  248|  17.9k|  version_ = 0;
  249|  17.9k|  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  250|  17.9k|}
_ZN17opencv_tensorflow8GraphDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  252|  17.9k|const char* GraphDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  253|  17.9k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  254|  6.64M|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (254:10): [True: 6.64M, False: 4.55k]
  ------------------
  255|  6.64M|    uint32_t tag;
  256|  6.64M|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  257|  6.64M|    switch (tag >> 3) {
  258|       |      // repeated .opencv_tensorflow.NodeDef node = 1;
  259|   146k|      case 1:
  ------------------
  |  Branch (259:7): [True: 146k, False: 6.49M]
  ------------------
  260|   146k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  261|  58.4k|          ptr -= 1;
  262|   891k|          do {
  263|   891k|            ptr += 1;
  264|   891k|            ptr = ctx->ParseMessage(_internal_add_node(), ptr);
  265|   891k|            CHK_(ptr);
  ------------------
  |  |  253|   891k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  266|   885k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (266:17): [True: 3.80k, False: 881k]
  ------------------
  267|   885k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
  ------------------
  |  Branch (267:20): [True: 832k, False: 48.3k]
  ------------------
  268|  58.4k|        } else
  269|  87.5k|          goto handle_unusual;
  270|  52.1k|        continue;
  271|       |      // .opencv_tensorflow.FunctionDefLibrary library = 2;
  272|   311k|      case 2:
  ------------------
  |  Branch (272:7): [True: 311k, False: 6.33M]
  ------------------
  273|   311k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  274|  44.0k|          ptr = ctx->ParseMessage(_internal_mutable_library(), ptr);
  275|  44.0k|          CHK_(ptr);
  ------------------
  |  |  253|  44.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  276|  44.0k|        } else
  277|   267k|          goto handle_unusual;
  278|  40.1k|        continue;
  279|       |      // int32 version = 3 [deprecated = true];
  280|  56.5k|      case 3:
  ------------------
  |  Branch (280:7): [True: 56.5k, False: 6.58M]
  ------------------
  281|  56.5k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
  282|  44.4k|          version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
  283|  44.4k|          CHK_(ptr);
  ------------------
  |  |  253|  44.4k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  284|  44.4k|        } else
  285|  12.0k|          goto handle_unusual;
  286|  44.4k|        continue;
  287|       |      // .opencv_tensorflow.VersionDef versions = 4;
  288|  44.4k|      case 4:
  ------------------
  |  Branch (288:7): [True: 43.2k, False: 6.60M]
  ------------------
  289|  43.2k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  290|  8.11k|          ptr = ctx->ParseMessage(_internal_mutable_versions(), ptr);
  291|  8.11k|          CHK_(ptr);
  ------------------
  |  |  253|  8.11k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  292|  8.11k|        } else
  293|  35.1k|          goto handle_unusual;
  294|  7.43k|        continue;
  295|  6.08M|      default:
  ------------------
  |  Branch (295:7): [True: 6.08M, False: 557k]
  ------------------
  296|  6.08M|        goto handle_unusual;
  297|  6.64M|    }  // switch
  298|  6.48M|  handle_unusual:
  299|  6.48M|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (299:9): [True: 1.34k, False: 6.48M]
  |  Branch (299:23): [True: 617, False: 6.48M]
  ------------------
  300|  1.95k|      CHK_(ptr);
  ------------------
  |  |  253|  1.95k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  301|  1.94k|      ctx->SetLastTag(tag);
  302|  1.94k|      goto message_done;
  303|  1.95k|    }
  304|  6.48M|    ptr = UnknownFieldParse(
  305|  6.48M|        tag,
  306|  6.48M|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  307|  6.48M|        ptr, ctx);
  308|  6.48M|    CHK_(ptr != nullptr);
  ------------------
  |  |  253|  6.48M|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  309|  6.48M|  }  // while
  310|  17.9k|message_done:
  311|  17.9k|  return ptr;
  312|  11.4k|failure:
  313|  11.4k|  ptr = nullptr;
  314|  11.4k|  goto message_done;
  315|  17.9k|#undef CHK_
  316|  17.9k|}
_ZNK17opencv_tensorflow8GraphDef12ByteSizeLongEv:
  362|  24.7k|size_t GraphDef::ByteSizeLong() const {
  363|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.GraphDef)
  364|  24.7k|  size_t total_size = 0;
  365|       |
  366|  24.7k|  uint32_t cached_has_bits = 0;
  367|       |  // Prevent compiler warnings about cached_has_bits being unused
  368|  24.7k|  (void) cached_has_bits;
  369|       |
  370|       |  // repeated .opencv_tensorflow.NodeDef node = 1;
  371|  24.7k|  total_size += 1UL * this->_internal_node_size();
  372|   810k|  for (const auto& msg : this->node_) {
  ------------------
  |  Branch (372:24): [True: 810k, False: 24.7k]
  ------------------
  373|   810k|    total_size +=
  374|   810k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  375|   810k|  }
  376|       |
  377|       |  // .opencv_tensorflow.FunctionDefLibrary library = 2;
  378|  24.7k|  if (this->_internal_has_library()) {
  ------------------
  |  Branch (378:7): [True: 1.28k, False: 23.4k]
  ------------------
  379|  1.28k|    total_size += 1 +
  380|  1.28k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
  381|  1.28k|        *library_);
  382|  1.28k|  }
  383|       |
  384|       |  // .opencv_tensorflow.VersionDef versions = 4;
  385|  24.7k|  if (this->_internal_has_versions()) {
  ------------------
  |  Branch (385:7): [True: 581, False: 24.1k]
  ------------------
  386|    581|    total_size += 1 +
  387|    581|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
  388|    581|        *versions_);
  389|    581|  }
  390|       |
  391|       |  // int32 version = 3 [deprecated = true];
  392|  24.7k|  if (this->_internal_version() != 0) {
  ------------------
  |  Branch (392:7): [True: 677, False: 24.0k]
  ------------------
  393|    677|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_version());
  394|    677|  }
  395|       |
  396|  24.7k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  397|  24.7k|}
_ZNK17opencv_tensorflow8GraphDef13IsInitializedEv:
  438|  6.18k|bool GraphDef::IsInitialized() const {
  439|  6.18k|  return true;
  440|  6.18k|}
_ZN17opencv_tensorflow26NodeDef_AttrEntry_DoNotUseC2EPN6google8protobuf5ArenaE:
  464|  65.6k|    : SuperType(arena) {}
_ZN17opencv_tensorflow7NodeDefC2EPN6google8protobuf5ArenaEb:
  485|   891k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  486|   891k|  input_(arena),
  487|   891k|  attr_(arena) {
  488|   891k|  SharedCtor();
  489|   891k|  if (!is_message_owned) {
  ------------------
  |  Branch (489:7): [True: 891k, False: 0]
  ------------------
  490|   891k|    RegisterArenaDtor(arena);
  491|   891k|  }
  492|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.NodeDef)
  493|   891k|}
_ZN17opencv_tensorflow7NodeDefC2ERKS0_:
  495|    196|  : ::PROTOBUF_NAMESPACE_ID::Message(),
  496|    196|      input_(from.input_) {
  497|    196|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  498|    196|  attr_.MergeFrom(from.attr_);
  499|    196|  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  500|       |  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  501|       |    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  502|       |  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  503|    196|  if (!from._internal_name().empty()) {
  ------------------
  |  Branch (503:7): [True: 156, False: 40]
  ------------------
  504|    156|    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
  505|    156|      GetArenaForAllocation());
  506|    156|  }
  507|    196|  op_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  508|       |  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  509|       |    op_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  510|       |  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  511|    196|  if (!from._internal_op().empty()) {
  ------------------
  |  Branch (511:7): [True: 196, False: 0]
  ------------------
  512|    196|    op_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_op(),
  513|    196|      GetArenaForAllocation());
  514|    196|  }
  515|    196|  device_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  516|       |  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  517|       |    device_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  518|       |  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  519|    196|  if (!from._internal_device().empty()) {
  ------------------
  |  Branch (519:7): [True: 5, False: 191]
  ------------------
  520|      5|    device_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_device(),
  521|      5|      GetArenaForAllocation());
  522|      5|  }
  523|       |  // @@protoc_insertion_point(copy_constructor:opencv_tensorflow.NodeDef)
  524|    196|}
_ZN17opencv_tensorflow7NodeDefD2Ev:
  541|   891k|NodeDef::~NodeDef() {
  542|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.NodeDef)
  543|   891k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (543:7): [True: 0, False: 891k]
  ------------------
  544|   891k|  SharedDtor();
  545|   891k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  546|   891k|}
_ZN17opencv_tensorflow7NodeDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  583|   891k|const char* NodeDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  584|   891k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  585|  1.43M|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (585:10): [True: 550k, False: 885k]
  ------------------
  586|   550k|    uint32_t tag;
  587|   550k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  588|   550k|    switch (tag >> 3) {
  589|       |      // string name = 1;
  590|  42.6k|      case 1:
  ------------------
  |  Branch (590:7): [True: 42.6k, False: 507k]
  ------------------
  591|  42.6k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  592|  34.3k|          auto str = _internal_mutable_name();
  593|  34.3k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  594|  34.3k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.NodeDef.name"));
  ------------------
  |  |  584|  34.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  595|  34.3k|          CHK_(ptr);
  ------------------
  |  |  584|  34.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  596|  34.3k|        } else
  597|  8.24k|          goto handle_unusual;
  598|  34.2k|        continue;
  599|       |      // string op = 2;
  600|   142k|      case 2:
  ------------------
  |  Branch (600:7): [True: 142k, False: 407k]
  ------------------
  601|   142k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  602|   127k|          auto str = _internal_mutable_op();
  603|   127k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  604|   127k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.NodeDef.op"));
  ------------------
  |  |  584|   127k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  605|   127k|          CHK_(ptr);
  ------------------
  |  |  584|   127k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  606|   127k|        } else
  607|  15.7k|          goto handle_unusual;
  608|   127k|        continue;
  609|       |      // repeated string input = 3;
  610|   138k|      case 3:
  ------------------
  |  Branch (610:7): [True: 138k, False: 412k]
  ------------------
  611|   138k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
  612|   118k|          ptr -= 1;
  613|   155k|          do {
  614|   155k|            ptr += 1;
  615|   155k|            auto str = _internal_add_input();
  616|   155k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  617|   155k|            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.NodeDef.input"));
  ------------------
  |  |  584|   155k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  618|   155k|            CHK_(ptr);
  ------------------
  |  |  584|   155k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  619|   155k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (619:17): [True: 81.5k, False: 73.8k]
  ------------------
  620|   155k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
  ------------------
  |  Branch (620:20): [True: 37.2k, False: 36.6k]
  ------------------
  621|   118k|        } else
  622|  20.1k|          goto handle_unusual;
  623|   118k|        continue;
  624|       |      // string device = 4;
  625|   118k|      case 4:
  ------------------
  |  Branch (625:7): [True: 14.3k, False: 536k]
  ------------------
  626|  14.3k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  627|  6.44k|          auto str = _internal_mutable_device();
  628|  6.44k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  629|  6.44k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.NodeDef.device"));
  ------------------
  |  |  584|  6.44k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  630|  6.43k|          CHK_(ptr);
  ------------------
  |  |  584|  6.43k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  631|  6.43k|        } else
  632|  7.89k|          goto handle_unusual;
  633|  6.42k|        continue;
  634|       |      // map<string, .opencv_tensorflow.AttrValue> attr = 5;
  635|  76.0k|      case 5:
  ------------------
  |  Branch (635:7): [True: 76.0k, False: 474k]
  ------------------
  636|  76.0k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
  637|  53.6k|          ptr -= 1;
  638|  69.1k|          do {
  639|  69.1k|            ptr += 1;
  640|  69.1k|            ptr = ctx->ParseMessage(&attr_, ptr);
  641|  69.1k|            CHK_(ptr);
  ------------------
  |  |  584|  69.1k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  642|  63.6k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (642:17): [True: 13.2k, False: 50.4k]
  ------------------
  643|  63.6k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
  ------------------
  |  Branch (643:20): [True: 15.4k, False: 34.9k]
  ------------------
  644|  53.6k|        } else
  645|  22.3k|          goto handle_unusual;
  646|  48.2k|        continue;
  647|   136k|      default:
  ------------------
  |  Branch (647:7): [True: 136k, False: 414k]
  ------------------
  648|   136k|        goto handle_unusual;
  649|   550k|    }  // switch
  650|   210k|  handle_unusual:
  651|   210k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (651:9): [True: 22, False: 210k]
  |  Branch (651:23): [True: 33, False: 210k]
  ------------------
  652|     55|      CHK_(ptr);
  ------------------
  |  |  584|     55|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  653|     53|      ctx->SetLastTag(tag);
  654|     53|      goto message_done;
  655|     55|    }
  656|   210k|    ptr = UnknownFieldParse(
  657|   210k|        tag,
  658|   210k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  659|   210k|        ptr, ctx);
  660|   210k|    CHK_(ptr != nullptr);
  ------------------
  |  |  584|   210k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  661|   210k|  }  // while
  662|   891k|message_done:
  663|   891k|  return ptr;
  664|  5.85k|failure:
  665|  5.85k|  ptr = nullptr;
  666|  5.85k|  goto message_done;
  667|   891k|#undef CHK_
  668|   891k|}
_ZNK17opencv_tensorflow7NodeDef12ByteSizeLongEv:
  766|   810k|size_t NodeDef::ByteSizeLong() const {
  767|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.NodeDef)
  768|   810k|  size_t total_size = 0;
  769|       |
  770|   810k|  uint32_t cached_has_bits = 0;
  771|       |  // Prevent compiler warnings about cached_has_bits being unused
  772|   810k|  (void) cached_has_bits;
  773|       |
  774|       |  // repeated string input = 3;
  775|   810k|  total_size += 1 *
  776|   810k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(input_.size());
  777|   965k|  for (int i = 0, n = input_.size(); i < n; i++) {
  ------------------
  |  Branch (777:38): [True: 154k, False: 810k]
  ------------------
  778|   154k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  779|   154k|      input_.Get(i));
  780|   154k|  }
  781|       |
  782|       |  // map<string, .opencv_tensorflow.AttrValue> attr = 5;
  783|   810k|  total_size += 1 *
  784|   810k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_attr_size());
  785|   810k|  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::opencv_tensorflow::AttrValue >::const_iterator
  786|   810k|      it = this->_internal_attr().begin();
  787|   854k|      it != this->_internal_attr().end(); ++it) {
  ------------------
  |  Branch (787:7): [True: 43.2k, False: 810k]
  ------------------
  788|  43.2k|    total_size += NodeDef_AttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  789|  43.2k|  }
  790|       |
  791|       |  // string name = 1;
  792|   810k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (792:7): [True: 22.6k, False: 788k]
  ------------------
  793|  22.6k|    total_size += 1 +
  794|  22.6k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  795|  22.6k|        this->_internal_name());
  796|  22.6k|  }
  797|       |
  798|       |  // string op = 2;
  799|   810k|  if (!this->_internal_op().empty()) {
  ------------------
  |  Branch (799:7): [True: 110k, False: 700k]
  ------------------
  800|   110k|    total_size += 1 +
  801|   110k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  802|   110k|        this->_internal_op());
  803|   110k|  }
  804|       |
  805|       |  // string device = 4;
  806|   810k|  if (!this->_internal_device().empty()) {
  ------------------
  |  Branch (806:7): [True: 2.11k, False: 808k]
  ------------------
  807|  2.11k|    total_size += 1 +
  808|  2.11k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  809|  2.11k|        this->_internal_device());
  810|  2.11k|  }
  811|       |
  812|   810k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  813|   810k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow26NodeDef_AttrEntry_DoNotUseEJEEEPT_PS1_DpOT0_:
  895|  65.6k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::NodeDef_AttrEntry_DoNotUse* Arena::CreateMaybeMessage< ::opencv_tensorflow::NodeDef_AttrEntry_DoNotUse >(Arena* arena) {
  896|  65.6k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::NodeDef_AttrEntry_DoNotUse >(arena);
  897|  65.6k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow7NodeDefEJEEEPT_PS1_DpOT0_:
  898|   891k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::NodeDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::NodeDef >(Arena* arena) {
  899|   891k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::NodeDef >(arena);
  900|   891k|}
_ZN17opencv_tensorflow8GraphDef10SharedCtorEv:
  203|  35.8k|inline void GraphDef::SharedCtor() {
  204|  35.8k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
  205|  35.8k|    reinterpret_cast<char*>(&library_) - reinterpret_cast<char*>(this)),
  206|  35.8k|    0, static_cast<size_t>(reinterpret_cast<char*>(&version_) -
  207|  35.8k|    reinterpret_cast<char*>(&library_)) + sizeof(version_));
  208|  35.8k|}
_ZN17opencv_tensorflow8GraphDef10SharedDtorEv:
  217|  35.8k|inline void GraphDef::SharedDtor() {
  218|  35.8k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  219|  35.8k|  if (this != internal_default_instance()) delete library_;
  ------------------
  |  Branch (219:7): [True: 35.8k, False: 0]
  ------------------
  220|  35.8k|  if (this != internal_default_instance()) delete versions_;
  ------------------
  |  Branch (220:7): [True: 35.8k, False: 0]
  ------------------
  221|  35.8k|}
_ZN17opencv_tensorflow8GraphDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  227|  35.8k|void GraphDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  228|  35.8k|}
_ZN17opencv_tensorflow7NodeDef10SharedCtorEv:
  526|   891k|inline void NodeDef::SharedCtor() {
  527|   891k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  528|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  529|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  530|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  531|   891k|op_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  532|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  533|       |  op_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  534|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  535|   891k|device_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  536|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  537|       |  device_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  538|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  539|   891k|}
_ZN17opencv_tensorflow7NodeDef10SharedDtorEv:
  548|   891k|inline void NodeDef::SharedDtor() {
  549|   891k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  550|   891k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  551|   891k|  op_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  552|   891k|  device_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  553|   891k|}
_ZN17opencv_tensorflow7NodeDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  560|   891k|inline void NodeDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena) {
  561|   891k|  if (arena != nullptr) {
  ------------------
  |  Branch (561:7): [True: 0, False: 891k]
  ------------------
  562|      0|    arena->OwnCustomDestructor(this, &NodeDef::ArenaDtor);
  563|      0|  }
  564|   891k|}

_ZN17opencv_tensorflow8GraphDefC2Ev:
   85|  35.8k|  inline GraphDef() : GraphDef(nullptr) {}
_ZN17opencv_tensorflow8GraphDef12mutable_nodeEv:
  570|  63.3k|GraphDef::mutable_node() {
  571|       |  // @@protoc_insertion_point(field_mutable_list:opencv_tensorflow.GraphDef.node)
  572|  63.3k|  return &node_;
  573|  63.3k|}
_ZNK17opencv_tensorflow7NodeDef2opEv:
  848|  10.7M|inline const std::string& NodeDef::op() const {
  849|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.NodeDef.op)
  850|  10.7M|  return _internal_op();
  851|  10.7M|}
_ZNK17opencv_tensorflow7NodeDef12_internal_opEv:
  864|  11.7M|inline const std::string& NodeDef::_internal_op() const {
  865|  11.7M|  return op_.Get();
  866|  11.7M|}
_ZNK17opencv_tensorflow7NodeDef4nameEv:
  797|   295M|inline const std::string& NodeDef::name() const {
  798|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.NodeDef.name)
  799|   295M|  return _internal_name();
  800|   295M|}
_ZNK17opencv_tensorflow7NodeDef14_internal_nameEv:
  813|   296M|inline const std::string& NodeDef::_internal_name() const {
  814|   296M|  return name_.Get();
  815|   296M|}
_ZNK17opencv_tensorflow7NodeDef10input_sizeEv:
  899|   584M|inline int NodeDef::input_size() const {
  900|   584M|  return _internal_input_size();
  901|   584M|}
_ZNK17opencv_tensorflow7NodeDef20_internal_input_sizeEv:
  896|   584M|inline int NodeDef::_internal_input_size() const {
  897|   584M|  return input_.size();
  898|   584M|}
_ZNK17opencv_tensorflow7NodeDef5inputEi:
  913|   510M|inline const std::string& NodeDef::input(int index) const {
  914|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.NodeDef.input)
  915|   510M|  return _internal_input(index);
  916|   510M|}
_ZNK17opencv_tensorflow7NodeDef15_internal_inputEi:
  910|   510M|inline const std::string& NodeDef::_internal_input(int index) const {
  911|   510M|  return input_.Get(index);
  912|   510M|}
_ZNK17opencv_tensorflow8GraphDef9node_sizeEv:
  559|   290M|inline int GraphDef::node_size() const {
  560|   290M|  return _internal_node_size();
  561|   290M|}
_ZNK17opencv_tensorflow8GraphDef19_internal_node_sizeEv:
  556|   290M|inline int GraphDef::_internal_node_size() const {
  557|   290M|  return node_.size();
  558|   290M|}
_ZNK17opencv_tensorflow7NodeDef4attrEv:
 1033|  38.5k|NodeDef::attr() const {
 1034|       |  // @@protoc_insertion_point(field_map:opencv_tensorflow.NodeDef.attr)
 1035|  38.5k|  return _internal_attr();
 1036|  38.5k|}
_ZNK17opencv_tensorflow7NodeDef14_internal_attrEv:
 1029|  1.70M|NodeDef::_internal_attr() const {
 1030|  1.70M|  return attr_.GetMap();
 1031|  1.70M|}
_ZNK17opencv_tensorflow8GraphDef4nodeEi:
  577|  3.42M|inline const ::opencv_tensorflow::NodeDef& GraphDef::node(int index) const {
  578|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.GraphDef.node)
  579|  3.42M|  return _internal_node(index);
  580|  3.42M|}
_ZNK17opencv_tensorflow8GraphDef14_internal_nodeEi:
  574|  3.42M|inline const ::opencv_tensorflow::NodeDef& GraphDef::_internal_node(int index) const {
  575|  3.42M|  return node_.Get(index);
  576|  3.42M|}
_ZN17opencv_tensorflow8GraphDef12mutable_nodeEi:
  565|   296M|inline ::opencv_tensorflow::NodeDef* GraphDef::mutable_node(int index) {
  566|       |  // @@protoc_insertion_point(field_mutable:opencv_tensorflow.GraphDef.node)
  567|   296M|  return node_.Mutable(index);
  568|   296M|}
_ZN17opencv_tensorflow7NodeDef9set_inputEiRKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  921|   215M|inline void NodeDef::set_input(int index, const std::string& value) {
  922|   215M|  input_.Mutable(index)->assign(value);
  923|       |  // @@protoc_insertion_point(field_set:opencv_tensorflow.NodeDef.input)
  924|   215M|}
_ZNK17opencv_tensorflow8GraphDef12has_versionsEv:
  599|     54|inline bool GraphDef::has_versions() const {
  600|     54|  return _internal_has_versions();
  601|     54|}
_ZNK17opencv_tensorflow8GraphDef22_internal_has_versionsEv:
  596|  24.8k|inline bool GraphDef::_internal_has_versions() const {
  597|  24.8k|  return this != internal_default_instance() && versions_ != nullptr;
  ------------------
  |  Branch (597:10): [True: 24.8k, False: 0]
  |  Branch (597:49): [True: 606, False: 24.2k]
  ------------------
  598|  24.8k|}
_ZN17opencv_tensorflow8GraphDef25internal_default_instanceEv:
  125|   121k|  static inline const GraphDef* internal_default_instance() {
  126|   121k|    return reinterpret_cast<const GraphDef*>(
  127|   121k|               &_GraphDef_default_instance_);
  128|   121k|  }
_ZNK17opencv_tensorflow8GraphDef8versionsEv:
  607|     25|inline const ::opencv_tensorflow::VersionDef& GraphDef::versions() const {
  608|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.GraphDef.versions)
  609|     25|  return _internal_versions();
  610|     25|}
_ZNK17opencv_tensorflow8GraphDef18_internal_versionsEv:
  602|     25|inline const ::opencv_tensorflow::VersionDef& GraphDef::_internal_versions() const {
  603|     25|  const ::opencv_tensorflow::VersionDef* p = versions_;
  604|     25|  return p != nullptr ? *p : reinterpret_cast<const ::opencv_tensorflow::VersionDef&>(
  ------------------
  |  Branch (604:10): [True: 25, False: 0]
  ------------------
  605|      0|      ::opencv_tensorflow::_VersionDef_default_instance_);
  606|     25|}
_ZN17opencv_tensorflow26NodeDef_AttrEntry_DoNotUse11ValidateKeyEPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  303|  32.4k|  static bool ValidateKey(std::string* s) {
  304|  32.4k|    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "opencv_tensorflow.NodeDef.AttrEntry.key");
  305|  32.4k| }
_ZN17opencv_tensorflow26NodeDef_AttrEntry_DoNotUse13ValidateValueEPv:
  306|  33.0k|  static bool ValidateValue(void*) { return true; }
_ZN17opencv_tensorflow8GraphDef18_internal_add_nodeEv:
  581|   891k|inline ::opencv_tensorflow::NodeDef* GraphDef::_internal_add_node() {
  582|   891k|  return node_.Add();
  583|   891k|}
_ZN17opencv_tensorflow8GraphDef26_internal_mutable_versionsEv:
  646|  8.11k|inline ::opencv_tensorflow::VersionDef* GraphDef::_internal_mutable_versions() {
  647|       |
  648|  8.11k|  if (versions_ == nullptr) {
  ------------------
  |  Branch (648:7): [True: 1.30k, False: 6.81k]
  ------------------
  649|  1.30k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::VersionDef>(GetArenaForAllocation());
  650|  1.30k|    versions_ = p;
  651|  1.30k|  }
  652|  8.11k|  return versions_;
  653|  8.11k|}
_ZNK17opencv_tensorflow8GraphDef17_internal_versionEv:
  685|  25.4k|inline int32_t GraphDef::_internal_version() const {
  686|  25.4k|  return version_;
  687|  25.4k|}
_ZNK17opencv_tensorflow8GraphDef21_internal_has_libraryEv:
  702|  24.7k|inline bool GraphDef::_internal_has_library() const {
  703|  24.7k|  return this != internal_default_instance() && library_ != nullptr;
  ------------------
  |  Branch (703:10): [True: 24.7k, False: 0]
  |  Branch (703:49): [True: 1.28k, False: 23.4k]
  ------------------
  704|  24.7k|}
_ZN17opencv_tensorflow8GraphDef25_internal_mutable_libraryEv:
  752|  44.0k|inline ::opencv_tensorflow::FunctionDefLibrary* GraphDef::_internal_mutable_library() {
  753|       |
  754|  44.0k|  if (library_ == nullptr) {
  ------------------
  |  Branch (754:7): [True: 5.21k, False: 38.8k]
  ------------------
  755|  5.21k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::FunctionDefLibrary>(GetArenaForAllocation());
  756|  5.21k|    library_ = p;
  757|  5.21k|  }
  758|  44.0k|  return library_;
  759|  44.0k|}
_ZN17opencv_tensorflow7NodeDef22_internal_mutable_nameEv:
  820|  34.3k|inline std::string* NodeDef::_internal_mutable_name() {
  821|       |
  822|  34.3k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  823|  34.3k|}
_ZN17opencv_tensorflow7NodeDef20_internal_mutable_opEv:
  871|   127k|inline std::string* NodeDef::_internal_mutable_op() {
  872|       |
  873|   127k|  return op_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  874|   127k|}
_ZN17opencv_tensorflow7NodeDef19_internal_add_inputEv:
  939|   155k|inline std::string* NodeDef::_internal_add_input() {
  940|   155k|  return input_.Add();
  941|   155k|}
_ZNK17opencv_tensorflow7NodeDef16_internal_deviceEv:
  990|   813k|inline const std::string& NodeDef::_internal_device() const {
  991|   813k|  return device_.Get();
  992|   813k|}
_ZN17opencv_tensorflow7NodeDef24_internal_mutable_deviceEv:
  997|  6.44k|inline std::string* NodeDef::_internal_mutable_device() {
  998|       |
  999|  6.44k|  return device_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1000|  6.44k|}
_ZNK17opencv_tensorflow7NodeDef19_internal_attr_sizeEv:
 1022|   810k|inline int NodeDef::_internal_attr_size() const {
 1023|   810k|  return attr_.size();
 1024|   810k|}
_ZN17opencv_tensorflow7NodeDef6set_opIRA4_KcJEEEvOT_DpT0_:
  854|  2.48k|void NodeDef::set_op(ArgT0&& arg0, ArgT... args) {
  855|       |
  856|  2.48k| op_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  857|       |  // @@protoc_insertion_point(field_set:opencv_tensorflow.NodeDef.op)
  858|  2.48k|}

_ZN17opencv_tensorflow12OpDef_ArgDefC2EPN6google8protobuf5ArenaEb:
  239|  18.1k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  240|  18.1k|  SharedCtor();
  241|  18.1k|  if (!is_message_owned) {
  ------------------
  |  Branch (241:7): [True: 18.1k, False: 0]
  ------------------
  242|  18.1k|    RegisterArenaDtor(arena);
  243|  18.1k|  }
  244|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.OpDef.ArgDef)
  245|  18.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDefD2Ev:
  322|  18.1k|OpDef_ArgDef::~OpDef_ArgDef() {
  323|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.OpDef.ArgDef)
  324|  18.1k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (324:7): [True: 0, False: 18.1k]
  ------------------
  325|  18.1k|  SharedDtor();
  326|  18.1k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  327|  18.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  365|  18.1k|const char* OpDef_ArgDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  366|  18.1k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  367|  57.7k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (367:10): [True: 39.7k, False: 18.0k]
  ------------------
  368|  39.7k|    uint32_t tag;
  369|  39.7k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  370|  39.7k|    switch (tag >> 3) {
  371|       |      // string name = 1;
  372|  3.24k|      case 1:
  ------------------
  |  Branch (372:7): [True: 3.24k, False: 36.5k]
  ------------------
  373|  3.24k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  374|  2.40k|          auto str = _internal_mutable_name();
  375|  2.40k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  376|  2.40k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.ArgDef.name"));
  ------------------
  |  |  366|  2.40k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  377|  2.39k|          CHK_(ptr);
  ------------------
  |  |  366|  2.39k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  378|  2.39k|        } else
  379|    847|          goto handle_unusual;
  380|  2.39k|        continue;
  381|       |      // string description = 2;
  382|  10.6k|      case 2:
  ------------------
  |  Branch (382:7): [True: 10.6k, False: 29.0k]
  ------------------
  383|  10.6k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  384|  3.69k|          auto str = _internal_mutable_description();
  385|  3.69k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  386|  3.69k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.ArgDef.description"));
  ------------------
  |  |  366|  3.69k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  387|  3.69k|          CHK_(ptr);
  ------------------
  |  |  366|  3.69k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  388|  3.69k|        } else
  389|  6.98k|          goto handle_unusual;
  390|  3.69k|        continue;
  391|       |      // .opencv_tensorflow.DataType type = 3;
  392|  6.45k|      case 3:
  ------------------
  |  Branch (392:7): [True: 6.45k, False: 33.3k]
  ------------------
  393|  6.45k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
  394|  6.08k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  395|  6.08k|          CHK_(ptr);
  ------------------
  |  |  366|  6.08k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  396|  6.08k|          _internal_set_type(static_cast<::opencv_tensorflow::DataType>(val));
  397|  6.08k|        } else
  398|    364|          goto handle_unusual;
  399|  6.08k|        continue;
  400|       |      // string type_attr = 4;
  401|  6.08k|      case 4:
  ------------------
  |  Branch (401:7): [True: 4.80k, False: 34.9k]
  ------------------
  402|  4.80k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  403|  3.86k|          auto str = _internal_mutable_type_attr();
  404|  3.86k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  405|  3.86k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.ArgDef.type_attr"));
  ------------------
  |  |  366|  3.86k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  406|  3.86k|          CHK_(ptr);
  ------------------
  |  |  366|  3.86k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  407|  3.86k|        } else
  408|    942|          goto handle_unusual;
  409|  3.85k|        continue;
  410|       |      // string number_attr = 5;
  411|  3.85k|      case 5:
  ------------------
  |  Branch (411:7): [True: 2.61k, False: 37.1k]
  ------------------
  412|  2.61k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
  413|  2.15k|          auto str = _internal_mutable_number_attr();
  414|  2.15k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  415|  2.15k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.ArgDef.number_attr"));
  ------------------
  |  |  366|  2.15k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  416|  2.15k|          CHK_(ptr);
  ------------------
  |  |  366|  2.15k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  417|  2.15k|        } else
  418|    463|          goto handle_unusual;
  419|  2.14k|        continue;
  420|       |      // string type_list_attr = 6;
  421|  3.14k|      case 6:
  ------------------
  |  Branch (421:7): [True: 3.14k, False: 36.6k]
  ------------------
  422|  3.14k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
  423|  1.72k|          auto str = _internal_mutable_type_list_attr();
  424|  1.72k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  425|  1.72k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.ArgDef.type_list_attr"));
  ------------------
  |  |  366|  1.72k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  426|  1.72k|          CHK_(ptr);
  ------------------
  |  |  366|  1.72k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  427|  1.72k|        } else
  428|  1.41k|          goto handle_unusual;
  429|  1.72k|        continue;
  430|       |      // bool is_ref = 16;
  431|  1.72k|      case 16:
  ------------------
  |  Branch (431:7): [True: 1.32k, False: 38.4k]
  ------------------
  432|  1.32k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
  433|  1.10k|          is_ref_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  434|  1.10k|          CHK_(ptr);
  ------------------
  |  |  366|  1.10k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  435|  1.10k|        } else
  436|    222|          goto handle_unusual;
  437|  1.10k|        continue;
  438|  7.49k|      default:
  ------------------
  |  Branch (438:7): [True: 7.49k, False: 32.2k]
  ------------------
  439|  7.49k|        goto handle_unusual;
  440|  39.7k|    }  // switch
  441|  18.7k|  handle_unusual:
  442|  18.7k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (442:9): [True: 12, False: 18.7k]
  |  Branch (442:23): [True: 5, False: 18.7k]
  ------------------
  443|     17|      CHK_(ptr);
  ------------------
  |  |  366|     17|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  444|     16|      ctx->SetLastTag(tag);
  445|     16|      goto message_done;
  446|     17|    }
  447|  18.7k|    ptr = UnknownFieldParse(
  448|  18.7k|        tag,
  449|  18.7k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  450|  18.7k|        ptr, ctx);
  451|  18.7k|    CHK_(ptr != nullptr);
  ------------------
  |  |  366|  18.7k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  452|  18.7k|  }  // while
  453|  18.1k|message_done:
  454|  18.1k|  return ptr;
  455|     70|failure:
  456|     70|  ptr = nullptr;
  457|     70|  goto message_done;
  458|  18.1k|#undef CHK_
  459|  18.1k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef12ByteSizeLongEv:
  538|  12.2k|size_t OpDef_ArgDef::ByteSizeLong() const {
  539|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.OpDef.ArgDef)
  540|  12.2k|  size_t total_size = 0;
  541|       |
  542|  12.2k|  uint32_t cached_has_bits = 0;
  543|       |  // Prevent compiler warnings about cached_has_bits being unused
  544|  12.2k|  (void) cached_has_bits;
  545|       |
  546|       |  // string name = 1;
  547|  12.2k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (547:7): [True: 829, False: 11.3k]
  ------------------
  548|    829|    total_size += 1 +
  549|    829|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  550|    829|        this->_internal_name());
  551|    829|  }
  552|       |
  553|       |  // string description = 2;
  554|  12.2k|  if (!this->_internal_description().empty()) {
  ------------------
  |  Branch (554:7): [True: 948, False: 11.2k]
  ------------------
  555|    948|    total_size += 1 +
  556|    948|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  557|    948|        this->_internal_description());
  558|    948|  }
  559|       |
  560|       |  // string type_attr = 4;
  561|  12.2k|  if (!this->_internal_type_attr().empty()) {
  ------------------
  |  Branch (561:7): [True: 1.32k, False: 10.8k]
  ------------------
  562|  1.32k|    total_size += 1 +
  563|  1.32k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  564|  1.32k|        this->_internal_type_attr());
  565|  1.32k|  }
  566|       |
  567|       |  // string number_attr = 5;
  568|  12.2k|  if (!this->_internal_number_attr().empty()) {
  ------------------
  |  Branch (568:7): [True: 423, False: 11.7k]
  ------------------
  569|    423|    total_size += 1 +
  570|    423|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  571|    423|        this->_internal_number_attr());
  572|    423|  }
  573|       |
  574|       |  // string type_list_attr = 6;
  575|  12.2k|  if (!this->_internal_type_list_attr().empty()) {
  ------------------
  |  Branch (575:7): [True: 799, False: 11.4k]
  ------------------
  576|    799|    total_size += 1 +
  577|    799|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  578|    799|        this->_internal_type_list_attr());
  579|    799|  }
  580|       |
  581|       |  // .opencv_tensorflow.DataType type = 3;
  582|  12.2k|  if (this->_internal_type() != 0) {
  ------------------
  |  Branch (582:7): [True: 946, False: 11.2k]
  ------------------
  583|    946|    total_size += 1 +
  584|    946|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
  585|    946|  }
  586|       |
  587|       |  // bool is_ref = 16;
  588|  12.2k|  if (this->_internal_is_ref() != 0) {
  ------------------
  |  Branch (588:7): [True: 240, False: 11.9k]
  ------------------
  589|    240|    total_size += 2 + 1;
  590|    240|  }
  591|       |
  592|  12.2k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  593|  12.2k|}
_ZN17opencv_tensorflow13OpDef_AttrDefC2EPN6google8protobuf5ArenaEb:
  723|  10.3k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  724|  10.3k|  SharedCtor();
  725|  10.3k|  if (!is_message_owned) {
  ------------------
  |  Branch (725:7): [True: 10.3k, False: 0]
  ------------------
  726|  10.3k|    RegisterArenaDtor(arena);
  727|  10.3k|  }
  728|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.OpDef.AttrDef)
  729|  10.3k|}
_ZN17opencv_tensorflow13OpDef_AttrDefD2Ev:
  792|  10.3k|OpDef_AttrDef::~OpDef_AttrDef() {
  793|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.OpDef.AttrDef)
  794|  10.3k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (794:7): [True: 0, False: 10.3k]
  ------------------
  795|  10.3k|  SharedDtor();
  796|  10.3k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  797|  10.3k|}
_ZN17opencv_tensorflow13OpDef_AttrDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  841|  10.3k|const char* OpDef_AttrDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  842|  10.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  843|  51.2k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (843:10): [True: 41.0k, False: 10.2k]
  ------------------
  844|  41.0k|    uint32_t tag;
  845|  41.0k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  846|  41.0k|    switch (tag >> 3) {
  847|       |      // string name = 1;
  848|  4.45k|      case 1:
  ------------------
  |  Branch (848:7): [True: 4.45k, False: 36.6k]
  ------------------
  849|  4.45k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
  850|  2.54k|          auto str = _internal_mutable_name();
  851|  2.54k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  852|  2.54k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.AttrDef.name"));
  ------------------
  |  |  842|  2.54k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  853|  2.54k|          CHK_(ptr);
  ------------------
  |  |  842|  2.54k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  854|  2.54k|        } else
  855|  1.90k|          goto handle_unusual;
  856|  2.54k|        continue;
  857|       |      // string type = 2;
  858|  8.51k|      case 2:
  ------------------
  |  Branch (858:7): [True: 8.51k, False: 32.5k]
  ------------------
  859|  8.51k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  860|  6.63k|          auto str = _internal_mutable_type();
  861|  6.63k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  862|  6.63k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.AttrDef.type"));
  ------------------
  |  |  842|  6.63k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  863|  6.63k|          CHK_(ptr);
  ------------------
  |  |  842|  6.63k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  864|  6.63k|        } else
  865|  1.87k|          goto handle_unusual;
  866|  6.62k|        continue;
  867|       |      // .opencv_tensorflow.AttrValue default_value = 3;
  868|  6.62k|      case 3:
  ------------------
  |  Branch (868:7): [True: 4.35k, False: 36.7k]
  ------------------
  869|  4.35k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
  870|  3.84k|          ptr = ctx->ParseMessage(_internal_mutable_default_value(), ptr);
  871|  3.84k|          CHK_(ptr);
  ------------------
  |  |  842|  3.84k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  872|  3.84k|        } else
  873|    505|          goto handle_unusual;
  874|  3.83k|        continue;
  875|       |      // string description = 4;
  876|  6.26k|      case 4:
  ------------------
  |  Branch (876:7): [True: 6.26k, False: 34.8k]
  ------------------
  877|  6.26k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  878|  5.35k|          auto str = _internal_mutable_description();
  879|  5.35k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  880|  5.35k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.AttrDef.description"));
  ------------------
  |  |  842|  5.35k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  881|  5.35k|          CHK_(ptr);
  ------------------
  |  |  842|  5.35k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  882|  5.35k|        } else
  883|    910|          goto handle_unusual;
  884|  5.34k|        continue;
  885|       |      // bool has_minimum = 5;
  886|  7.95k|      case 5:
  ------------------
  |  Branch (886:7): [True: 7.95k, False: 33.1k]
  ------------------
  887|  7.95k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
  888|  5.24k|          has_minimum_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  889|  5.24k|          CHK_(ptr);
  ------------------
  |  |  842|  5.24k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  890|  5.24k|        } else
  891|  2.70k|          goto handle_unusual;
  892|  5.24k|        continue;
  893|       |      // int64 minimum = 6;
  894|  5.24k|      case 6:
  ------------------
  |  Branch (894:7): [True: 2.96k, False: 38.1k]
  ------------------
  895|  2.96k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
  896|  2.76k|          minimum_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  897|  2.76k|          CHK_(ptr);
  ------------------
  |  |  842|  2.76k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  898|  2.76k|        } else
  899|    202|          goto handle_unusual;
  900|  2.76k|        continue;
  901|       |      // .opencv_tensorflow.AttrValue allowed_values = 7;
  902|  2.76k|      case 7:
  ------------------
  |  Branch (902:7): [True: 1.62k, False: 39.4k]
  ------------------
  903|  1.62k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
  904|  1.09k|          ptr = ctx->ParseMessage(_internal_mutable_allowed_values(), ptr);
  905|  1.09k|          CHK_(ptr);
  ------------------
  |  |  842|  1.09k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  906|  1.09k|        } else
  907|    536|          goto handle_unusual;
  908|  1.07k|        continue;
  909|  4.96k|      default:
  ------------------
  |  Branch (909:7): [True: 4.96k, False: 36.1k]
  ------------------
  910|  4.96k|        goto handle_unusual;
  911|  41.0k|    }  // switch
  912|  13.6k|  handle_unusual:
  913|  13.6k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (913:9): [True: 12, False: 13.5k]
  |  Branch (913:23): [True: 4, False: 13.5k]
  ------------------
  914|     16|      CHK_(ptr);
  ------------------
  |  |  842|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  915|     15|      ctx->SetLastTag(tag);
  916|     15|      goto message_done;
  917|     16|    }
  918|  13.5k|    ptr = UnknownFieldParse(
  919|  13.5k|        tag,
  920|  13.5k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  921|  13.5k|        ptr, ctx);
  922|  13.5k|    CHK_(ptr != nullptr);
  ------------------
  |  |  842|  13.5k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  923|  13.5k|  }  // while
  924|  10.3k|message_done:
  925|  10.3k|  return ptr;
  926|    100|failure:
  927|    100|  ptr = nullptr;
  928|    100|  goto message_done;
  929|  10.3k|#undef CHK_
  930|  10.3k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef12ByteSizeLongEv:
 1004|  7.07k|size_t OpDef_AttrDef::ByteSizeLong() const {
 1005|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.OpDef.AttrDef)
 1006|  7.07k|  size_t total_size = 0;
 1007|       |
 1008|  7.07k|  uint32_t cached_has_bits = 0;
 1009|       |  // Prevent compiler warnings about cached_has_bits being unused
 1010|  7.07k|  (void) cached_has_bits;
 1011|       |
 1012|       |  // string name = 1;
 1013|  7.07k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (1013:7): [True: 829, False: 6.24k]
  ------------------
 1014|    829|    total_size += 1 +
 1015|    829|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1016|    829|        this->_internal_name());
 1017|    829|  }
 1018|       |
 1019|       |  // string type = 2;
 1020|  7.07k|  if (!this->_internal_type().empty()) {
  ------------------
  |  Branch (1020:7): [True: 1.32k, False: 5.74k]
  ------------------
 1021|  1.32k|    total_size += 1 +
 1022|  1.32k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1023|  1.32k|        this->_internal_type());
 1024|  1.32k|  }
 1025|       |
 1026|       |  // string description = 4;
 1027|  7.07k|  if (!this->_internal_description().empty()) {
  ------------------
  |  Branch (1027:7): [True: 1.01k, False: 6.06k]
  ------------------
 1028|  1.01k|    total_size += 1 +
 1029|  1.01k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1030|  1.01k|        this->_internal_description());
 1031|  1.01k|  }
 1032|       |
 1033|       |  // .opencv_tensorflow.AttrValue default_value = 3;
 1034|  7.07k|  if (this->_internal_has_default_value()) {
  ------------------
  |  Branch (1034:7): [True: 1.71k, False: 5.36k]
  ------------------
 1035|  1.71k|    total_size += 1 +
 1036|  1.71k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1037|  1.71k|        *default_value_);
 1038|  1.71k|  }
 1039|       |
 1040|       |  // .opencv_tensorflow.AttrValue allowed_values = 7;
 1041|  7.07k|  if (this->_internal_has_allowed_values()) {
  ------------------
  |  Branch (1041:7): [True: 605, False: 6.47k]
  ------------------
 1042|    605|    total_size += 1 +
 1043|    605|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1044|    605|        *allowed_values_);
 1045|    605|  }
 1046|       |
 1047|       |  // int64 minimum = 6;
 1048|  7.07k|  if (this->_internal_minimum() != 0) {
  ------------------
  |  Branch (1048:7): [True: 647, False: 6.42k]
  ------------------
 1049|    647|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_minimum());
 1050|    647|  }
 1051|       |
 1052|       |  // bool has_minimum = 5;
 1053|  7.07k|  if (this->_internal_has_minimum() != 0) {
  ------------------
  |  Branch (1053:7): [True: 503, False: 6.57k]
  ------------------
 1054|    503|    total_size += 1 + 1;
 1055|    503|  }
 1056|       |
 1057|  7.07k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1058|  7.07k|}
_ZN17opencv_tensorflow5OpDefC2EPN6google8protobuf5ArenaEb:
 1161|  20.7k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
 1162|  20.7k|  input_arg_(arena),
 1163|  20.7k|  output_arg_(arena),
 1164|  20.7k|  attr_(arena) {
 1165|  20.7k|  SharedCtor();
 1166|  20.7k|  if (!is_message_owned) {
  ------------------
  |  Branch (1166:7): [True: 20.7k, False: 0]
  ------------------
 1167|  20.7k|    RegisterArenaDtor(arena);
 1168|  20.7k|  }
 1169|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.OpDef)
 1170|  20.7k|}
_ZN17opencv_tensorflow5OpDefD2Ev:
 1231|  20.7k|OpDef::~OpDef() {
 1232|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.OpDef)
 1233|  20.7k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (1233:7): [True: 0, False: 20.7k]
  ------------------
 1234|  20.7k|  SharedDtor();
 1235|  20.7k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1236|  20.7k|}
_ZN17opencv_tensorflow5OpDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
 1278|  22.0k|const char* OpDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 1279|  22.0k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 1280|   102k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (1280:10): [True: 81.4k, False: 20.6k]
  ------------------
 1281|  81.4k|    uint32_t tag;
 1282|  81.4k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 1283|  81.4k|    switch (tag >> 3) {
 1284|       |      // string name = 1;
 1285|  9.08k|      case 1:
  ------------------
  |  Branch (1285:7): [True: 9.08k, False: 72.3k]
  ------------------
 1286|  9.08k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
 1287|  4.82k|          auto str = _internal_mutable_name();
 1288|  4.82k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1289|  4.82k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.name"));
  ------------------
  |  | 1279|  4.82k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1290|  4.81k|          CHK_(ptr);
  ------------------
  |  | 1279|  4.81k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1291|  4.81k|        } else
 1292|  4.26k|          goto handle_unusual;
 1293|  4.80k|        continue;
 1294|       |      // repeated .opencv_tensorflow.OpDef.ArgDef input_arg = 2;
 1295|  16.1k|      case 2:
  ------------------
  |  Branch (1295:7): [True: 16.1k, False: 65.3k]
  ------------------
 1296|  16.1k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 1297|  6.86k|          ptr -= 1;
 1298|  10.3k|          do {
 1299|  10.3k|            ptr += 1;
 1300|  10.3k|            ptr = ctx->ParseMessage(_internal_add_input_arg(), ptr);
 1301|  10.3k|            CHK_(ptr);
  ------------------
  |  | 1279|  10.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1302|  10.0k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1302:17): [True: 2.24k, False: 7.78k]
  ------------------
 1303|  10.0k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (1303:20): [True: 3.49k, False: 4.29k]
  ------------------
 1304|  6.86k|        } else
 1305|  9.24k|          goto handle_unusual;
 1306|  6.53k|        continue;
 1307|       |      // repeated .opencv_tensorflow.OpDef.ArgDef output_arg = 3;
 1308|  12.3k|      case 3:
  ------------------
  |  Branch (1308:7): [True: 12.3k, False: 69.0k]
  ------------------
 1309|  12.3k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
 1310|  6.61k|          ptr -= 1;
 1311|  7.74k|          do {
 1312|  7.74k|            ptr += 1;
 1313|  7.74k|            ptr = ctx->ParseMessage(_internal_add_output_arg(), ptr);
 1314|  7.74k|            CHK_(ptr);
  ------------------
  |  | 1279|  7.74k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1315|  7.53k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1315:17): [True: 2.17k, False: 5.36k]
  ------------------
 1316|  7.53k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
  ------------------
  |  Branch (1316:20): [True: 1.13k, False: 4.23k]
  ------------------
 1317|  6.61k|        } else
 1318|  5.71k|          goto handle_unusual;
 1319|  6.40k|        continue;
 1320|       |      // repeated .opencv_tensorflow.OpDef.AttrDef attr = 4;
 1321|  7.34k|      case 4:
  ------------------
  |  Branch (1321:7): [True: 7.34k, False: 74.0k]
  ------------------
 1322|  7.34k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
 1323|  6.31k|          ptr -= 1;
 1324|  10.3k|          do {
 1325|  10.3k|            ptr += 1;
 1326|  10.3k|            ptr = ctx->ParseMessage(_internal_add_attr(), ptr);
 1327|  10.3k|            CHK_(ptr);
  ------------------
  |  | 1279|  10.3k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1328|  9.84k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (1328:17): [True: 1.74k, False: 8.09k]
  ------------------
 1329|  9.84k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
  ------------------
  |  Branch (1329:20): [True: 4.00k, False: 4.08k]
  ------------------
 1330|  6.31k|        } else
 1331|  1.02k|          goto handle_unusual;
 1332|  5.83k|        continue;
 1333|       |      // string summary = 5;
 1334|  6.50k|      case 5:
  ------------------
  |  Branch (1334:7): [True: 6.50k, False: 74.8k]
  ------------------
 1335|  6.50k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
 1336|  3.37k|          auto str = _internal_mutable_summary();
 1337|  3.37k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1338|  3.37k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.summary"));
  ------------------
  |  | 1279|  3.37k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1339|  3.37k|          CHK_(ptr);
  ------------------
  |  | 1279|  3.37k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1340|  3.37k|        } else
 1341|  3.13k|          goto handle_unusual;
 1342|  3.37k|        continue;
 1343|       |      // string description = 6;
 1344|  6.05k|      case 6:
  ------------------
  |  Branch (1344:7): [True: 6.05k, False: 75.3k]
  ------------------
 1345|  6.05k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
 1346|  2.38k|          auto str = _internal_mutable_description();
 1347|  2.38k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1348|  2.38k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDef.description"));
  ------------------
  |  | 1279|  2.38k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1349|  2.38k|          CHK_(ptr);
  ------------------
  |  | 1279|  2.38k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1350|  2.38k|        } else
 1351|  3.67k|          goto handle_unusual;
 1352|  2.38k|        continue;
 1353|       |      // .opencv_tensorflow.OpDeprecation deprecation = 8;
 1354|  4.70k|      case 8:
  ------------------
  |  Branch (1354:7): [True: 4.70k, False: 76.7k]
  ------------------
 1355|  4.70k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
 1356|  3.89k|          ptr = ctx->ParseMessage(_internal_mutable_deprecation(), ptr);
 1357|  3.89k|          CHK_(ptr);
  ------------------
  |  | 1279|  3.89k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1358|  3.89k|        } else
 1359|    817|          goto handle_unusual;
 1360|  3.68k|        continue;
 1361|       |      // bool is_aggregate = 16;
 1362|  3.68k|      case 16:
  ------------------
  |  Branch (1362:7): [True: 1.94k, False: 79.4k]
  ------------------
 1363|  1.94k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
 1364|  1.74k|          is_aggregate_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 1365|  1.74k|          CHK_(ptr);
  ------------------
  |  | 1279|  1.74k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1366|  1.74k|        } else
 1367|    196|          goto handle_unusual;
 1368|  1.74k|        continue;
 1369|       |      // bool is_stateful = 17;
 1370|  1.74k|      case 17:
  ------------------
  |  Branch (1370:7): [True: 1.50k, False: 79.9k]
  ------------------
 1371|  1.50k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
 1372|  1.30k|          is_stateful_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 1373|  1.30k|          CHK_(ptr);
  ------------------
  |  | 1279|  1.30k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1374|  1.30k|        } else
 1375|    198|          goto handle_unusual;
 1376|  1.30k|        continue;
 1377|       |      // bool is_commutative = 18;
 1378|  1.30k|      case 18:
  ------------------
  |  Branch (1378:7): [True: 1.01k, False: 80.3k]
  ------------------
 1379|  1.01k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
 1380|    820|          is_commutative_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 1381|    820|          CHK_(ptr);
  ------------------
  |  | 1279|    820|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1382|    820|        } else
 1383|    195|          goto handle_unusual;
 1384|    819|        continue;
 1385|       |      // bool allows_uninitialized_input = 19;
 1386|  1.01k|      case 19:
  ------------------
  |  Branch (1386:7): [True: 1.01k, False: 80.3k]
  ------------------
 1387|  1.01k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
 1388|    945|          allows_uninitialized_input_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
 1389|    945|          CHK_(ptr);
  ------------------
  |  | 1279|    945|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1390|    945|        } else
 1391|     66|          goto handle_unusual;
 1392|    944|        continue;
 1393|  13.8k|      default:
  ------------------
  |  Branch (1393:7): [True: 13.8k, False: 67.6k]
  ------------------
 1394|  13.8k|        goto handle_unusual;
 1395|  81.4k|    }  // switch
 1396|  42.3k|  handle_unusual:
 1397|  42.3k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (1397:9): [True: 17, False: 42.3k]
  |  Branch (1397:23): [True: 18, False: 42.2k]
  ------------------
 1398|     35|      CHK_(ptr);
  ------------------
  |  | 1279|     35|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1399|     34|      ctx->SetLastTag(tag);
 1400|     34|      goto message_done;
 1401|     35|    }
 1402|  42.2k|    ptr = UnknownFieldParse(
 1403|  42.2k|        tag,
 1404|  42.2k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 1405|  42.2k|        ptr, ctx);
 1406|  42.2k|    CHK_(ptr != nullptr);
  ------------------
  |  | 1279|  42.2k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1407|  42.2k|  }  // while
 1408|  22.0k|message_done:
 1409|  22.0k|  return ptr;
 1410|  1.33k|failure:
 1411|  1.33k|  ptr = nullptr;
 1412|  1.33k|  goto message_done;
 1413|  22.0k|#undef CHK_
 1414|  22.0k|}
_ZNK17opencv_tensorflow5OpDef12ByteSizeLongEv:
 1516|  16.2k|size_t OpDef::ByteSizeLong() const {
 1517|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.OpDef)
 1518|  16.2k|  size_t total_size = 0;
 1519|       |
 1520|  16.2k|  uint32_t cached_has_bits = 0;
 1521|       |  // Prevent compiler warnings about cached_has_bits being unused
 1522|  16.2k|  (void) cached_has_bits;
 1523|       |
 1524|       |  // repeated .opencv_tensorflow.OpDef.ArgDef input_arg = 2;
 1525|  16.2k|  total_size += 1UL * this->_internal_input_arg_size();
 1526|  16.2k|  for (const auto& msg : this->input_arg_) {
  ------------------
  |  Branch (1526:24): [True: 6.82k, False: 16.2k]
  ------------------
 1527|  6.82k|    total_size +=
 1528|  6.82k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
 1529|  6.82k|  }
 1530|       |
 1531|       |  // repeated .opencv_tensorflow.OpDef.ArgDef output_arg = 3;
 1532|  16.2k|  total_size += 1UL * this->_internal_output_arg_size();
 1533|  16.2k|  for (const auto& msg : this->output_arg_) {
  ------------------
  |  Branch (1533:24): [True: 5.38k, False: 16.2k]
  ------------------
 1534|  5.38k|    total_size +=
 1535|  5.38k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
 1536|  5.38k|  }
 1537|       |
 1538|       |  // repeated .opencv_tensorflow.OpDef.AttrDef attr = 4;
 1539|  16.2k|  total_size += 1UL * this->_internal_attr_size();
 1540|  16.2k|  for (const auto& msg : this->attr_) {
  ------------------
  |  Branch (1540:24): [True: 7.07k, False: 16.2k]
  ------------------
 1541|  7.07k|    total_size +=
 1542|  7.07k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
 1543|  7.07k|  }
 1544|       |
 1545|       |  // string name = 1;
 1546|  16.2k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (1546:7): [True: 1.00k, False: 15.2k]
  ------------------
 1547|  1.00k|    total_size += 1 +
 1548|  1.00k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1549|  1.00k|        this->_internal_name());
 1550|  1.00k|  }
 1551|       |
 1552|       |  // string summary = 5;
 1553|  16.2k|  if (!this->_internal_summary().empty()) {
  ------------------
  |  Branch (1553:7): [True: 614, False: 15.6k]
  ------------------
 1554|    614|    total_size += 1 +
 1555|    614|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1556|    614|        this->_internal_summary());
 1557|    614|  }
 1558|       |
 1559|       |  // string description = 6;
 1560|  16.2k|  if (!this->_internal_description().empty()) {
  ------------------
  |  Branch (1560:7): [True: 664, False: 15.6k]
  ------------------
 1561|    664|    total_size += 1 +
 1562|    664|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1563|    664|        this->_internal_description());
 1564|    664|  }
 1565|       |
 1566|       |  // .opencv_tensorflow.OpDeprecation deprecation = 8;
 1567|  16.2k|  if (this->_internal_has_deprecation()) {
  ------------------
  |  Branch (1567:7): [True: 2.26k, False: 14.0k]
  ------------------
 1568|  2.26k|    total_size += 1 +
 1569|  2.26k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
 1570|  2.26k|        *deprecation_);
 1571|  2.26k|  }
 1572|       |
 1573|       |  // bool is_commutative = 18;
 1574|  16.2k|  if (this->_internal_is_commutative() != 0) {
  ------------------
  |  Branch (1574:7): [True: 130, False: 16.1k]
  ------------------
 1575|    130|    total_size += 2 + 1;
 1576|    130|  }
 1577|       |
 1578|       |  // bool is_aggregate = 16;
 1579|  16.2k|  if (this->_internal_is_aggregate() != 0) {
  ------------------
  |  Branch (1579:7): [True: 874, False: 15.4k]
  ------------------
 1580|    874|    total_size += 2 + 1;
 1581|    874|  }
 1582|       |
 1583|       |  // bool is_stateful = 17;
 1584|  16.2k|  if (this->_internal_is_stateful() != 0) {
  ------------------
  |  Branch (1584:7): [True: 67, False: 16.2k]
  ------------------
 1585|     67|    total_size += 2 + 1;
 1586|     67|  }
 1587|       |
 1588|       |  // bool allows_uninitialized_input = 19;
 1589|  16.2k|  if (this->_internal_allows_uninitialized_input() != 0) {
  ------------------
  |  Branch (1589:7): [True: 67, False: 16.2k]
  ------------------
 1590|     67|    total_size += 2 + 1;
 1591|     67|  }
 1592|       |
 1593|  16.2k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1594|  16.2k|}
_ZN17opencv_tensorflow13OpDeprecationC2EPN6google8protobuf5ArenaEb:
 1701|  3.44k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
 1702|  3.44k|  SharedCtor();
 1703|  3.44k|  if (!is_message_owned) {
  ------------------
  |  Branch (1703:7): [True: 3.44k, False: 0]
  ------------------
 1704|  3.44k|    RegisterArenaDtor(arena);
 1705|  3.44k|  }
 1706|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.OpDeprecation)
 1707|  3.44k|}
_ZN17opencv_tensorflow13OpDeprecationD2Ev:
 1731|  3.44k|OpDeprecation::~OpDeprecation() {
 1732|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.OpDeprecation)
 1733|  3.44k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (1733:7): [True: 0, False: 3.44k]
  ------------------
 1734|  3.44k|  SharedDtor();
 1735|  3.44k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 1736|  3.44k|}
_ZN17opencv_tensorflow13OpDeprecation14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
 1764|  3.89k|const char* OpDeprecation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 1765|  3.89k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
 1766|  19.4k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (1766:10): [True: 15.5k, False: 3.83k]
  ------------------
 1767|  15.5k|    uint32_t tag;
 1768|  15.5k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
 1769|  15.5k|    switch (tag >> 3) {
 1770|       |      // int32 version = 1;
 1771|  1.37k|      case 1:
  ------------------
  |  Branch (1771:7): [True: 1.37k, False: 14.2k]
  ------------------
 1772|  1.37k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
 1773|  1.16k|          version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
 1774|  1.16k|          CHK_(ptr);
  ------------------
  |  | 1765|  1.16k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1775|  1.16k|        } else
 1776|    203|          goto handle_unusual;
 1777|  1.16k|        continue;
 1778|       |      // string explanation = 2;
 1779|  3.90k|      case 2:
  ------------------
  |  Branch (1779:7): [True: 3.90k, False: 11.6k]
  ------------------
 1780|  3.90k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
 1781|  2.68k|          auto str = _internal_mutable_explanation();
 1782|  2.68k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
 1783|  2.68k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.OpDeprecation.explanation"));
  ------------------
  |  | 1765|  2.68k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1784|  2.68k|          CHK_(ptr);
  ------------------
  |  | 1765|  2.68k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1785|  2.68k|        } else
 1786|  1.21k|          goto handle_unusual;
 1787|  2.67k|        continue;
 1788|  10.3k|      default:
  ------------------
  |  Branch (1788:7): [True: 10.3k, False: 5.27k]
  ------------------
 1789|  10.3k|        goto handle_unusual;
 1790|  15.5k|    }  // switch
 1791|  11.7k|  handle_unusual:
 1792|  11.7k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (1792:9): [True: 12, False: 11.7k]
  |  Branch (1792:23): [True: 4, False: 11.7k]
  ------------------
 1793|     16|      CHK_(ptr);
  ------------------
  |  | 1765|     16|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1794|     11|      ctx->SetLastTag(tag);
 1795|     11|      goto message_done;
 1796|     16|    }
 1797|  11.7k|    ptr = UnknownFieldParse(
 1798|  11.7k|        tag,
 1799|  11.7k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
 1800|  11.7k|        ptr, ctx);
 1801|  11.7k|    CHK_(ptr != nullptr);
  ------------------
  |  | 1765|  11.7k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
 1802|  11.7k|  }  // while
 1803|  3.89k|message_done:
 1804|  3.89k|  return ptr;
 1805|     42|failure:
 1806|     42|  ptr = nullptr;
 1807|     42|  goto message_done;
 1808|  3.89k|#undef CHK_
 1809|  3.89k|}
_ZNK17opencv_tensorflow13OpDeprecation12ByteSizeLongEv:
 1841|  2.26k|size_t OpDeprecation::ByteSizeLong() const {
 1842|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.OpDeprecation)
 1843|  2.26k|  size_t total_size = 0;
 1844|       |
 1845|  2.26k|  uint32_t cached_has_bits = 0;
 1846|       |  // Prevent compiler warnings about cached_has_bits being unused
 1847|  2.26k|  (void) cached_has_bits;
 1848|       |
 1849|       |  // string explanation = 2;
 1850|  2.26k|  if (!this->_internal_explanation().empty()) {
  ------------------
  |  Branch (1850:7): [True: 988, False: 1.28k]
  ------------------
 1851|    988|    total_size += 1 +
 1852|    988|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
 1853|    988|        this->_internal_explanation());
 1854|    988|  }
 1855|       |
 1856|       |  // int32 version = 1;
 1857|  2.26k|  if (this->_internal_version() != 0) {
  ------------------
  |  Branch (1857:7): [True: 70, False: 2.19k]
  ------------------
 1858|     70|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_version());
 1859|     70|  }
 1860|       |
 1861|  2.26k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
 1862|  2.26k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow12OpDef_ArgDefEJEEEPT_PS1_DpOT0_:
 2110|  18.1k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::OpDef_ArgDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::OpDef_ArgDef >(Arena* arena) {
 2111|  18.1k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::OpDef_ArgDef >(arena);
 2112|  18.1k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow13OpDef_AttrDefEJEEEPT_PS1_DpOT0_:
 2113|  10.3k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::OpDef_AttrDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::OpDef_AttrDef >(Arena* arena) {
 2114|  10.3k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::OpDef_AttrDef >(arena);
 2115|  10.3k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow5OpDefEJEEEPT_PS1_DpOT0_:
 2116|  20.7k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::OpDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::OpDef >(Arena* arena) {
 2117|  20.7k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::OpDef >(arena);
 2118|  20.7k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow13OpDeprecationEJEEEPT_PS1_DpOT0_:
 2119|  3.44k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::OpDeprecation* Arena::CreateMaybeMessage< ::opencv_tensorflow::OpDeprecation >(Arena* arena) {
 2120|  3.44k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::OpDeprecation >(arena);
 2121|  3.44k|}
_ZN17opencv_tensorflow12OpDef_ArgDef10SharedCtorEv:
  295|  18.1k|inline void OpDef_ArgDef::SharedCtor() {
  296|  18.1k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  297|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  298|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  299|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  300|  18.1k|description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  301|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  302|       |  description_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  303|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  304|  18.1k|type_attr_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  305|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  306|       |  type_attr_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  307|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  308|  18.1k|number_attr_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  309|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  310|       |  number_attr_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  311|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  312|  18.1k|type_list_attr_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  313|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  314|       |  type_list_attr_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  315|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  316|  18.1k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
  317|  18.1k|    reinterpret_cast<char*>(&type_) - reinterpret_cast<char*>(this)),
  318|  18.1k|    0, static_cast<size_t>(reinterpret_cast<char*>(&is_ref_) -
  319|  18.1k|    reinterpret_cast<char*>(&type_)) + sizeof(is_ref_));
  320|  18.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDef10SharedDtorEv:
  329|  18.1k|inline void OpDef_ArgDef::SharedDtor() {
  330|  18.1k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  331|  18.1k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  332|  18.1k|  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  333|  18.1k|  type_attr_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  334|  18.1k|  number_attr_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  335|  18.1k|  type_list_attr_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  336|  18.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  342|  18.1k|void OpDef_ArgDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  343|  18.1k|}
_ZN17opencv_tensorflow13OpDef_AttrDef10SharedCtorEv:
  773|  10.3k|inline void OpDef_AttrDef::SharedCtor() {
  774|  10.3k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  775|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  776|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  777|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  778|  10.3k|type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  779|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  780|       |  type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  781|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  782|  10.3k|description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  783|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  784|       |  description_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  785|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  786|  10.3k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
  787|  10.3k|    reinterpret_cast<char*>(&default_value_) - reinterpret_cast<char*>(this)),
  788|  10.3k|    0, static_cast<size_t>(reinterpret_cast<char*>(&has_minimum_) -
  789|  10.3k|    reinterpret_cast<char*>(&default_value_)) + sizeof(has_minimum_));
  790|  10.3k|}
_ZN17opencv_tensorflow13OpDef_AttrDef10SharedDtorEv:
  799|  10.3k|inline void OpDef_AttrDef::SharedDtor() {
  800|  10.3k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  801|  10.3k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  802|  10.3k|  type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  803|  10.3k|  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  804|  10.3k|  if (this != internal_default_instance()) delete default_value_;
  ------------------
  |  Branch (804:7): [True: 10.3k, False: 0]
  ------------------
  805|  10.3k|  if (this != internal_default_instance()) delete allowed_values_;
  ------------------
  |  Branch (805:7): [True: 10.3k, False: 0]
  ------------------
  806|  10.3k|}
_ZN17opencv_tensorflow13OpDef_AttrDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  812|  10.3k|void OpDef_AttrDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  813|  10.3k|}
_ZN17opencv_tensorflow5OpDef10SharedCtorEv:
 1212|  20.7k|inline void OpDef::SharedCtor() {
 1213|  20.7k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1214|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1215|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1216|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1217|  20.7k|summary_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1218|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1219|       |  summary_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1220|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1221|  20.7k|description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1222|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1223|       |  description_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1224|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1225|  20.7k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
 1226|  20.7k|    reinterpret_cast<char*>(&deprecation_) - reinterpret_cast<char*>(this)),
 1227|  20.7k|    0, static_cast<size_t>(reinterpret_cast<char*>(&allows_uninitialized_input_) -
 1228|  20.7k|    reinterpret_cast<char*>(&deprecation_)) + sizeof(allows_uninitialized_input_));
 1229|  20.7k|}
_ZN17opencv_tensorflow5OpDef10SharedDtorEv:
 1238|  20.7k|inline void OpDef::SharedDtor() {
 1239|  20.7k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 1240|  20.7k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1241|  20.7k|  summary_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1242|  20.7k|  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1243|  20.7k|  if (this != internal_default_instance()) delete deprecation_;
  ------------------
  |  Branch (1243:7): [True: 20.7k, False: 0]
  ------------------
 1244|  20.7k|}
_ZN17opencv_tensorflow5OpDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
 1250|  20.7k|void OpDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 1251|  20.7k|}
_ZN17opencv_tensorflow13OpDeprecation10SharedCtorEv:
 1723|  3.44k|inline void OpDeprecation::SharedCtor() {
 1724|  3.44k|explanation_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1725|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1726|       |  explanation_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
 1727|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 1728|  3.44k|version_ = 0;
 1729|  3.44k|}
_ZN17opencv_tensorflow13OpDeprecation10SharedDtorEv:
 1738|  3.44k|inline void OpDeprecation::SharedDtor() {
 1739|  3.44k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 1740|  3.44k|  explanation_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 1741|  3.44k|}
_ZN17opencv_tensorflow13OpDeprecation17RegisterArenaDtorEPN6google8protobuf5ArenaE:
 1747|  3.44k|void OpDeprecation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
 1748|  3.44k|}

_ZN17opencv_tensorflow13OpDef_AttrDef25internal_default_instanceEv:
  366|  34.7k|  static inline const OpDef_AttrDef* internal_default_instance() {
  367|  34.7k|    return reinterpret_cast<const OpDef_AttrDef*>(
  368|  34.7k|               &_OpDef_AttrDef_default_instance_);
  369|  34.7k|  }
_ZN17opencv_tensorflow5OpDef25internal_default_instanceEv:
  611|  37.0k|  static inline const OpDef* internal_default_instance() {
  612|  37.0k|    return reinterpret_cast<const OpDef*>(
  613|  37.0k|               &_OpDef_default_instance_);
  614|  37.0k|  }
_ZNK17opencv_tensorflow12OpDef_ArgDef14_internal_nameEv:
 1224|  13.0k|inline const std::string& OpDef_ArgDef::_internal_name() const {
 1225|  13.0k|  return name_.Get();
 1226|  13.0k|}
_ZN17opencv_tensorflow12OpDef_ArgDef22_internal_mutable_nameEv:
 1231|  2.40k|inline std::string* OpDef_ArgDef::_internal_mutable_name() {
 1232|       |
 1233|  2.40k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1234|  2.40k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef21_internal_descriptionEv:
 1275|  13.1k|inline const std::string& OpDef_ArgDef::_internal_description() const {
 1276|  13.1k|  return description_.Get();
 1277|  13.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDef29_internal_mutable_descriptionEv:
 1282|  3.69k|inline std::string* OpDef_ArgDef::_internal_mutable_description() {
 1283|       |
 1284|  3.69k|  return description_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1285|  3.69k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef14_internal_typeEv:
 1310|  13.1k|inline ::opencv_tensorflow::DataType OpDef_ArgDef::_internal_type() const {
 1311|  13.1k|  return static_cast< ::opencv_tensorflow::DataType >(type_);
 1312|  13.1k|}
_ZN17opencv_tensorflow12OpDef_ArgDef18_internal_set_typeENS_8DataTypeE:
 1317|  6.08k|inline void OpDef_ArgDef::_internal_set_type(::opencv_tensorflow::DataType value) {
 1318|       |
 1319|  6.08k|  type_ = value;
 1320|  6.08k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef19_internal_type_attrEv:
 1346|  13.5k|inline const std::string& OpDef_ArgDef::_internal_type_attr() const {
 1347|  13.5k|  return type_attr_.Get();
 1348|  13.5k|}
_ZN17opencv_tensorflow12OpDef_ArgDef27_internal_mutable_type_attrEv:
 1353|  3.86k|inline std::string* OpDef_ArgDef::_internal_mutable_type_attr() {
 1354|       |
 1355|  3.86k|  return type_attr_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1356|  3.86k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef21_internal_number_attrEv:
 1397|  12.6k|inline const std::string& OpDef_ArgDef::_internal_number_attr() const {
 1398|  12.6k|  return number_attr_.Get();
 1399|  12.6k|}
_ZN17opencv_tensorflow12OpDef_ArgDef29_internal_mutable_number_attrEv:
 1404|  2.15k|inline std::string* OpDef_ArgDef::_internal_mutable_number_attr() {
 1405|       |
 1406|  2.15k|  return number_attr_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1407|  2.15k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef24_internal_type_list_attrEv:
 1448|  13.0k|inline const std::string& OpDef_ArgDef::_internal_type_list_attr() const {
 1449|  13.0k|  return type_list_attr_.Get();
 1450|  13.0k|}
_ZN17opencv_tensorflow12OpDef_ArgDef32_internal_mutable_type_list_attrEv:
 1455|  1.72k|inline std::string* OpDef_ArgDef::_internal_mutable_type_list_attr() {
 1456|       |
 1457|  1.72k|  return type_list_attr_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1458|  1.72k|}
_ZNK17opencv_tensorflow12OpDef_ArgDef16_internal_is_refEv:
 1483|  12.2k|inline bool OpDef_ArgDef::_internal_is_ref() const {
 1484|  12.2k|  return is_ref_;
 1485|  12.2k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef14_internal_nameEv:
 1523|  7.90k|inline const std::string& OpDef_AttrDef::_internal_name() const {
 1524|  7.90k|  return name_.Get();
 1525|  7.90k|}
_ZN17opencv_tensorflow13OpDef_AttrDef22_internal_mutable_nameEv:
 1530|  2.54k|inline std::string* OpDef_AttrDef::_internal_mutable_name() {
 1531|       |
 1532|  2.54k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1533|  2.54k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef14_internal_typeEv:
 1574|  8.40k|inline const std::string& OpDef_AttrDef::_internal_type() const {
 1575|  8.40k|  return type_.Get();
 1576|  8.40k|}
_ZN17opencv_tensorflow13OpDef_AttrDef22_internal_mutable_typeEv:
 1581|  6.63k|inline std::string* OpDef_AttrDef::_internal_mutable_type() {
 1582|       |
 1583|  6.63k|  return type_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1584|  6.63k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef27_internal_has_default_valueEv:
 1606|  7.07k|inline bool OpDef_AttrDef::_internal_has_default_value() const {
 1607|  7.07k|  return this != internal_default_instance() && default_value_ != nullptr;
  ------------------
  |  Branch (1607:10): [True: 7.07k, False: 0]
  |  Branch (1607:49): [True: 1.71k, False: 5.36k]
  ------------------
 1608|  7.07k|}
_ZN17opencv_tensorflow13OpDef_AttrDef31_internal_mutable_default_valueEv:
 1656|  3.84k|inline ::opencv_tensorflow::AttrValue* OpDef_AttrDef::_internal_mutable_default_value() {
 1657|       |
 1658|  3.84k|  if (default_value_ == nullptr) {
  ------------------
  |  Branch (1658:7): [True: 2.57k, False: 1.27k]
  ------------------
 1659|  2.57k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::AttrValue>(GetArenaForAllocation());
 1660|  2.57k|    default_value_ = p;
 1661|  2.57k|  }
 1662|  3.84k|  return default_value_;
 1663|  3.84k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef21_internal_descriptionEv:
 1711|  8.08k|inline const std::string& OpDef_AttrDef::_internal_description() const {
 1712|  8.08k|  return description_.Get();
 1713|  8.08k|}
_ZN17opencv_tensorflow13OpDef_AttrDef29_internal_mutable_descriptionEv:
 1718|  5.35k|inline std::string* OpDef_AttrDef::_internal_mutable_description() {
 1719|       |
 1720|  5.35k|  return description_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1721|  5.35k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef21_internal_has_minimumEv:
 1746|  7.07k|inline bool OpDef_AttrDef::_internal_has_minimum() const {
 1747|  7.07k|  return has_minimum_;
 1748|  7.07k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef17_internal_minimumEv:
 1766|  7.72k|inline int64_t OpDef_AttrDef::_internal_minimum() const {
 1767|  7.72k|  return minimum_;
 1768|  7.72k|}
_ZNK17opencv_tensorflow13OpDef_AttrDef28_internal_has_allowed_valuesEv:
 1783|  7.07k|inline bool OpDef_AttrDef::_internal_has_allowed_values() const {
 1784|  7.07k|  return this != internal_default_instance() && allowed_values_ != nullptr;
  ------------------
  |  Branch (1784:10): [True: 7.07k, False: 0]
  |  Branch (1784:49): [True: 605, False: 6.47k]
  ------------------
 1785|  7.07k|}
_ZN17opencv_tensorflow13OpDef_AttrDef32_internal_mutable_allowed_valuesEv:
 1833|  1.09k|inline ::opencv_tensorflow::AttrValue* OpDef_AttrDef::_internal_mutable_allowed_values() {
 1834|       |
 1835|  1.09k|  if (allowed_values_ == nullptr) {
  ------------------
  |  Branch (1835:7): [True: 882, False: 209]
  ------------------
 1836|    882|    auto* p = CreateMaybeMessage<::opencv_tensorflow::AttrValue>(GetArenaForAllocation());
 1837|    882|    allowed_values_ = p;
 1838|    882|  }
 1839|  1.09k|  return allowed_values_;
 1840|  1.09k|}
_ZNK17opencv_tensorflow5OpDef14_internal_nameEv:
 1892|  17.2k|inline const std::string& OpDef::_internal_name() const {
 1893|  17.2k|  return name_.Get();
 1894|  17.2k|}
_ZN17opencv_tensorflow5OpDef22_internal_mutable_nameEv:
 1899|  4.82k|inline std::string* OpDef::_internal_mutable_name() {
 1900|       |
 1901|  4.82k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 1902|  4.82k|}
_ZNK17opencv_tensorflow5OpDef24_internal_input_arg_sizeEv:
 1924|  16.2k|inline int OpDef::_internal_input_arg_size() const {
 1925|  16.2k|  return input_arg_.size();
 1926|  16.2k|}
_ZN17opencv_tensorflow5OpDef23_internal_add_input_argEv:
 1949|  10.3k|inline ::opencv_tensorflow::OpDef_ArgDef* OpDef::_internal_add_input_arg() {
 1950|  10.3k|  return input_arg_.Add();
 1951|  10.3k|}
_ZNK17opencv_tensorflow5OpDef25_internal_output_arg_sizeEv:
 1964|  16.2k|inline int OpDef::_internal_output_arg_size() const {
 1965|  16.2k|  return output_arg_.size();
 1966|  16.2k|}
_ZN17opencv_tensorflow5OpDef24_internal_add_output_argEv:
 1989|  7.74k|inline ::opencv_tensorflow::OpDef_ArgDef* OpDef::_internal_add_output_arg() {
 1990|  7.74k|  return output_arg_.Add();
 1991|  7.74k|}
_ZNK17opencv_tensorflow5OpDef19_internal_attr_sizeEv:
 2004|  16.2k|inline int OpDef::_internal_attr_size() const {
 2005|  16.2k|  return attr_.size();
 2006|  16.2k|}
_ZN17opencv_tensorflow5OpDef18_internal_add_attrEv:
 2029|  10.3k|inline ::opencv_tensorflow::OpDef_AttrDef* OpDef::_internal_add_attr() {
 2030|  10.3k|  return attr_.Add();
 2031|  10.3k|}
_ZNK17opencv_tensorflow5OpDef25_internal_has_deprecationEv:
 2044|  16.2k|inline bool OpDef::_internal_has_deprecation() const {
 2045|  16.2k|  return this != internal_default_instance() && deprecation_ != nullptr;
  ------------------
  |  Branch (2045:10): [True: 16.2k, False: 0]
  |  Branch (2045:49): [True: 2.26k, False: 14.0k]
  ------------------
 2046|  16.2k|}
_ZN17opencv_tensorflow5OpDef29_internal_mutable_deprecationEv:
 2100|  3.89k|inline ::opencv_tensorflow::OpDeprecation* OpDef::_internal_mutable_deprecation() {
 2101|       |
 2102|  3.89k|  if (deprecation_ == nullptr) {
  ------------------
  |  Branch (2102:7): [True: 3.44k, False: 449]
  ------------------
 2103|  3.44k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::OpDeprecation>(GetArenaForAllocation());
 2104|  3.44k|    deprecation_ = p;
 2105|  3.44k|  }
 2106|  3.89k|  return deprecation_;
 2107|  3.89k|}
_ZNK17opencv_tensorflow5OpDef17_internal_summaryEv:
 2153|  16.9k|inline const std::string& OpDef::_internal_summary() const {
 2154|  16.9k|  return summary_.Get();
 2155|  16.9k|}
_ZN17opencv_tensorflow5OpDef25_internal_mutable_summaryEv:
 2160|  3.37k|inline std::string* OpDef::_internal_mutable_summary() {
 2161|       |
 2162|  3.37k|  return summary_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 2163|  3.37k|}
_ZNK17opencv_tensorflow5OpDef21_internal_descriptionEv:
 2204|  16.9k|inline const std::string& OpDef::_internal_description() const {
 2205|  16.9k|  return description_.Get();
 2206|  16.9k|}
_ZN17opencv_tensorflow5OpDef29_internal_mutable_descriptionEv:
 2211|  2.38k|inline std::string* OpDef::_internal_mutable_description() {
 2212|       |
 2213|  2.38k|  return description_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 2214|  2.38k|}
_ZNK17opencv_tensorflow5OpDef24_internal_is_commutativeEv:
 2239|  16.2k|inline bool OpDef::_internal_is_commutative() const {
 2240|  16.2k|  return is_commutative_;
 2241|  16.2k|}
_ZNK17opencv_tensorflow5OpDef22_internal_is_aggregateEv:
 2259|  16.2k|inline bool OpDef::_internal_is_aggregate() const {
 2260|  16.2k|  return is_aggregate_;
 2261|  16.2k|}
_ZNK17opencv_tensorflow5OpDef21_internal_is_statefulEv:
 2279|  16.2k|inline bool OpDef::_internal_is_stateful() const {
 2280|  16.2k|  return is_stateful_;
 2281|  16.2k|}
_ZNK17opencv_tensorflow5OpDef36_internal_allows_uninitialized_inputEv:
 2299|  16.2k|inline bool OpDef::_internal_allows_uninitialized_input() const {
 2300|  16.2k|  return allows_uninitialized_input_;
 2301|  16.2k|}
_ZNK17opencv_tensorflow13OpDeprecation17_internal_versionEv:
 2323|  2.33k|inline int32_t OpDeprecation::_internal_version() const {
 2324|  2.33k|  return version_;
 2325|  2.33k|}
_ZNK17opencv_tensorflow13OpDeprecation21_internal_explanationEv:
 2359|  3.25k|inline const std::string& OpDeprecation::_internal_explanation() const {
 2360|  3.25k|  return explanation_.Get();
 2361|  3.25k|}
_ZN17opencv_tensorflow13OpDeprecation29_internal_mutable_explanationEv:
 2366|  2.68k|inline std::string* OpDeprecation::_internal_mutable_explanation() {
 2367|       |
 2368|  2.68k|  return explanation_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 2369|  2.68k|}

_ZN17opencv_tensorflow11TensorProtoC2EPN6google8protobuf5ArenaEb:
  135|  16.6k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  136|  16.6k|  float_val_(arena),
  137|  16.6k|  double_val_(arena),
  138|  16.6k|  int_val_(arena),
  139|  16.6k|  string_val_(arena),
  140|  16.6k|  scomplex_val_(arena),
  141|  16.6k|  int64_val_(arena),
  142|  16.6k|  bool_val_(arena),
  143|  16.6k|  dcomplex_val_(arena),
  144|  16.6k|  half_val_(arena) {
  145|  16.6k|  SharedCtor();
  146|  16.6k|  if (!is_message_owned) {
  ------------------
  |  Branch (146:7): [True: 16.6k, False: 0]
  ------------------
  147|  16.6k|    RegisterArenaDtor(arena);
  148|  16.6k|  }
  149|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.TensorProto)
  150|  16.6k|}
_ZN17opencv_tensorflow11TensorProtoD2Ev:
  193|  16.6k|TensorProto::~TensorProto() {
  194|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.TensorProto)
  195|  16.6k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (195:7): [True: 0, False: 16.6k]
  ------------------
  196|  16.6k|  SharedDtor();
  197|  16.6k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  198|  16.6k|}
_ZN17opencv_tensorflow11TensorProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  242|  14.5k|const char* TensorProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  243|  14.5k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  244|   528k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (244:10): [True: 514k, False: 13.9k]
  ------------------
  245|   514k|    uint32_t tag;
  246|   514k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  247|   514k|    switch (tag >> 3) {
  248|       |      // .opencv_tensorflow.DataType dtype = 1;
  249|  8.55k|      case 1:
  ------------------
  |  Branch (249:7): [True: 8.55k, False: 506k]
  ------------------
  250|  8.55k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
  251|  6.46k|          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  252|  6.46k|          CHK_(ptr);
  ------------------
  |  |  243|  6.46k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  253|  6.46k|          _internal_set_dtype(static_cast<::opencv_tensorflow::DataType>(val));
  254|  6.46k|        } else
  255|  2.09k|          goto handle_unusual;
  256|  6.46k|        continue;
  257|       |      // .opencv_tensorflow.TensorShapeProto tensor_shape = 2;
  258|  10.1k|      case 2:
  ------------------
  |  Branch (258:7): [True: 10.1k, False: 504k]
  ------------------
  259|  10.1k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  260|  3.33k|          ptr = ctx->ParseMessage(_internal_mutable_tensor_shape(), ptr);
  261|  3.33k|          CHK_(ptr);
  ------------------
  |  |  243|  3.33k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  262|  3.33k|        } else
  263|  6.86k|          goto handle_unusual;
  264|  3.27k|        continue;
  265|       |      // int32 version_number = 3;
  266|  39.1k|      case 3:
  ------------------
  |  Branch (266:7): [True: 39.1k, False: 475k]
  ------------------
  267|  39.1k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
  268|  38.7k|          version_number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
  269|  38.7k|          CHK_(ptr);
  ------------------
  |  |  243|  38.7k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  270|  38.7k|        } else
  271|    379|          goto handle_unusual;
  272|  38.7k|        continue;
  273|       |      // bytes tensor_content = 4;
  274|  38.7k|      case 4:
  ------------------
  |  Branch (274:7): [True: 5.13k, False: 509k]
  ------------------
  275|  5.13k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
  276|  2.01k|          auto str = _internal_mutable_tensor_content();
  277|  2.01k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  278|  2.01k|          CHK_(ptr);
  ------------------
  |  |  243|  2.01k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  279|  2.01k|        } else
  280|  3.11k|          goto handle_unusual;
  281|  2.01k|        continue;
  282|       |      // repeated float float_val = 5 [packed = true];
  283|  23.2k|      case 5:
  ------------------
  |  Branch (283:7): [True: 23.2k, False: 491k]
  ------------------
  284|  23.2k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
  285|  11.1k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_float_val(), ptr, ctx);
  286|  11.1k|          CHK_(ptr);
  ------------------
  |  |  243|  11.1k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  287|  12.0k|        } else if (static_cast<uint8_t>(tag) == 45) {
  ------------------
  |  Branch (287:20): [True: 3.27k, False: 8.80k]
  ------------------
  288|  3.27k|          _internal_add_float_val(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
  289|  3.27k|          ptr += sizeof(float);
  290|  3.27k|        } else
  291|  8.80k|          goto handle_unusual;
  292|  14.3k|        continue;
  293|       |      // repeated double double_val = 6 [packed = true];
  294|  20.7k|      case 6:
  ------------------
  |  Branch (294:7): [True: 20.7k, False: 493k]
  ------------------
  295|  20.7k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
  296|  1.13k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_double_val(), ptr, ctx);
  297|  1.13k|          CHK_(ptr);
  ------------------
  |  |  243|  1.13k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  298|  19.6k|        } else if (static_cast<uint8_t>(tag) == 49) {
  ------------------
  |  Branch (298:20): [True: 1.20k, False: 18.4k]
  ------------------
  299|  1.20k|          _internal_add_double_val(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
  300|  1.20k|          ptr += sizeof(double);
  301|  1.20k|        } else
  302|  18.4k|          goto handle_unusual;
  303|  2.25k|        continue;
  304|       |      // repeated int32 int_val = 7 [packed = true];
  305|  4.49k|      case 7:
  ------------------
  |  Branch (305:7): [True: 4.49k, False: 510k]
  ------------------
  306|  4.49k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
  307|    817|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_int_val(), ptr, ctx);
  308|    817|          CHK_(ptr);
  ------------------
  |  |  243|    817|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  309|  3.68k|        } else if (static_cast<uint8_t>(tag) == 56) {
  ------------------
  |  Branch (309:20): [True: 3.42k, False: 258]
  ------------------
  310|  3.42k|          _internal_add_int_val(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
  311|  3.42k|          CHK_(ptr);
  ------------------
  |  |  243|  3.42k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  312|  3.42k|        } else
  313|    258|          goto handle_unusual;
  314|  4.23k|        continue;
  315|       |      // repeated bytes string_val = 8;
  316|  4.23k|      case 8:
  ------------------
  |  Branch (316:7): [True: 2.96k, False: 511k]
  ------------------
  317|  2.96k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
  318|  1.77k|          ptr -= 1;
  319|  2.61k|          do {
  320|  2.61k|            ptr += 1;
  321|  2.61k|            auto str = _internal_add_string_val();
  322|  2.61k|            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  323|  2.61k|            CHK_(ptr);
  ------------------
  |  |  243|  2.61k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  324|  2.61k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (324:17): [True: 679, False: 1.93k]
  ------------------
  325|  2.61k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr));
  ------------------
  |  Branch (325:20): [True: 839, False: 1.09k]
  ------------------
  326|  1.77k|        } else
  327|  1.19k|          goto handle_unusual;
  328|  1.77k|        continue;
  329|       |      // repeated float scomplex_val = 9 [packed = true];
  330|   278k|      case 9:
  ------------------
  |  Branch (330:7): [True: 278k, False: 236k]
  ------------------
  331|   278k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
  332|    476|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_scomplex_val(), ptr, ctx);
  333|    476|          CHK_(ptr);
  ------------------
  |  |  243|    476|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  334|   277k|        } else if (static_cast<uint8_t>(tag) == 77) {
  ------------------
  |  Branch (334:20): [True: 274k, False: 3.07k]
  ------------------
  335|   274k|          _internal_add_scomplex_val(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
  336|   274k|          ptr += sizeof(float);
  337|   274k|        } else
  338|  3.07k|          goto handle_unusual;
  339|   275k|        continue;
  340|       |      // repeated int64 int64_val = 10 [packed = true];
  341|   275k|      case 10:
  ------------------
  |  Branch (341:7): [True: 15.9k, False: 498k]
  ------------------
  342|  15.9k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
  343|    985|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_int64_val(), ptr, ctx);
  344|    985|          CHK_(ptr);
  ------------------
  |  |  243|    985|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  345|  14.9k|        } else if (static_cast<uint8_t>(tag) == 80) {
  ------------------
  |  Branch (345:20): [True: 14.7k, False: 244]
  ------------------
  346|  14.7k|          _internal_add_int64_val(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  347|  14.7k|          CHK_(ptr);
  ------------------
  |  |  243|  14.7k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  348|  14.7k|        } else
  349|    244|          goto handle_unusual;
  350|  15.6k|        continue;
  351|       |      // repeated bool bool_val = 11 [packed = true];
  352|  41.2k|      case 11:
  ------------------
  |  Branch (352:7): [True: 41.2k, False: 473k]
  ------------------
  353|  41.2k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
  354|  8.39k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedBoolParser(_internal_mutable_bool_val(), ptr, ctx);
  355|  8.39k|          CHK_(ptr);
  ------------------
  |  |  243|  8.39k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  356|  32.8k|        } else if (static_cast<uint8_t>(tag) == 88) {
  ------------------
  |  Branch (356:20): [True: 32.2k, False: 533]
  ------------------
  357|  32.2k|          _internal_add_bool_val(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
  358|  32.2k|          CHK_(ptr);
  ------------------
  |  |  243|  32.2k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  359|  32.2k|        } else
  360|    533|          goto handle_unusual;
  361|  40.6k|        continue;
  362|       |      // repeated double dcomplex_val = 12 [packed = true];
  363|  40.6k|      case 12:
  ------------------
  |  Branch (363:7): [True: 28.8k, False: 485k]
  ------------------
  364|  28.8k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
  365|    912|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_dcomplex_val(), ptr, ctx);
  366|    912|          CHK_(ptr);
  ------------------
  |  |  243|    912|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  367|  27.9k|        } else if (static_cast<uint8_t>(tag) == 97) {
  ------------------
  |  Branch (367:20): [True: 27.0k, False: 913]
  ------------------
  368|  27.0k|          _internal_add_dcomplex_val(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
  369|  27.0k|          ptr += sizeof(double);
  370|  27.0k|        } else
  371|    913|          goto handle_unusual;
  372|  27.9k|        continue;
  373|       |      // repeated int32 half_val = 13 [packed = true];
  374|  28.8k|      case 13:
  ------------------
  |  Branch (374:7): [True: 28.8k, False: 485k]
  ------------------
  375|  28.8k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
  376|  1.39k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_half_val(), ptr, ctx);
  377|  1.39k|          CHK_(ptr);
  ------------------
  |  |  243|  1.39k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  378|  27.4k|        } else if (static_cast<uint8_t>(tag) == 104) {
  ------------------
  |  Branch (378:20): [True: 16.4k, False: 11.0k]
  ------------------
  379|  16.4k|          _internal_add_half_val(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
  380|  16.4k|          CHK_(ptr);
  ------------------
  |  |  243|  16.4k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  381|  16.4k|        } else
  382|  11.0k|          goto handle_unusual;
  383|  17.8k|        continue;
  384|  17.8k|      default:
  ------------------
  |  Branch (384:7): [True: 6.94k, False: 507k]
  ------------------
  385|  6.94k|        goto handle_unusual;
  386|   514k|    }  // switch
  387|  63.8k|  handle_unusual:
  388|  63.8k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (388:9): [True: 24, False: 63.8k]
  |  Branch (388:23): [True: 17, False: 63.8k]
  ------------------
  389|     41|      CHK_(ptr);
  ------------------
  |  |  243|     41|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  390|     40|      ctx->SetLastTag(tag);
  391|     40|      goto message_done;
  392|     41|    }
  393|  63.8k|    ptr = UnknownFieldParse(
  394|  63.8k|        tag,
  395|  63.8k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  396|  63.8k|        ptr, ctx);
  397|  63.8k|    CHK_(ptr != nullptr);
  ------------------
  |  |  243|  63.8k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  398|  63.8k|  }  // while
  399|  14.5k|message_done:
  400|  14.5k|  return ptr;
  401|    539|failure:
  402|    539|  ptr = nullptr;
  403|    539|  goto message_done;
  404|  14.5k|#undef CHK_
  405|  14.5k|}
_ZNK17opencv_tensorflow11TensorProto12ByteSizeLongEv:
  506|  8.46k|size_t TensorProto::ByteSizeLong() const {
  507|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.TensorProto)
  508|  8.46k|  size_t total_size = 0;
  509|       |
  510|  8.46k|  uint32_t cached_has_bits = 0;
  511|       |  // Prevent compiler warnings about cached_has_bits being unused
  512|  8.46k|  (void) cached_has_bits;
  513|       |
  514|       |  // repeated float float_val = 5 [packed = true];
  515|  8.46k|  {
  516|  8.46k|    unsigned int count = static_cast<unsigned int>(this->_internal_float_val_size());
  517|  8.46k|    size_t data_size = 4UL * count;
  518|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (518:9): [True: 731, False: 7.73k]
  ------------------
  519|    731|      total_size += 1 +
  520|    731|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  521|    731|            static_cast<int32_t>(data_size));
  522|    731|    }
  523|  8.46k|    total_size += data_size;
  524|  8.46k|  }
  525|       |
  526|       |  // repeated double double_val = 6 [packed = true];
  527|  8.46k|  {
  528|  8.46k|    unsigned int count = static_cast<unsigned int>(this->_internal_double_val_size());
  529|  8.46k|    size_t data_size = 8UL * count;
  530|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (530:9): [True: 223, False: 8.24k]
  ------------------
  531|    223|      total_size += 1 +
  532|    223|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  533|    223|            static_cast<int32_t>(data_size));
  534|    223|    }
  535|  8.46k|    total_size += data_size;
  536|  8.46k|  }
  537|       |
  538|       |  // repeated int32 int_val = 7 [packed = true];
  539|  8.46k|  {
  540|  8.46k|    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
  541|  8.46k|      Int32Size(this->int_val_);
  542|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (542:9): [True: 587, False: 7.88k]
  ------------------
  543|    587|      total_size += 1 +
  544|    587|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  545|    587|            static_cast<int32_t>(data_size));
  546|    587|    }
  547|  8.46k|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  548|  8.46k|    _int_val_cached_byte_size_.store(cached_size,
  549|  8.46k|                                    std::memory_order_relaxed);
  550|  8.46k|    total_size += data_size;
  551|  8.46k|  }
  552|       |
  553|       |  // repeated bytes string_val = 8;
  554|  8.46k|  total_size += 1 *
  555|  8.46k|      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(string_val_.size());
  556|  10.0k|  for (int i = 0, n = string_val_.size(); i < n; i++) {
  ------------------
  |  Branch (556:43): [True: 1.57k, False: 8.46k]
  ------------------
  557|  1.57k|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
  558|  1.57k|      string_val_.Get(i));
  559|  1.57k|  }
  560|       |
  561|       |  // repeated float scomplex_val = 9 [packed = true];
  562|  8.46k|  {
  563|  8.46k|    unsigned int count = static_cast<unsigned int>(this->_internal_scomplex_val_size());
  564|  8.46k|    size_t data_size = 4UL * count;
  565|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (565:9): [True: 304, False: 8.16k]
  ------------------
  566|    304|      total_size += 1 +
  567|    304|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  568|    304|            static_cast<int32_t>(data_size));
  569|    304|    }
  570|  8.46k|    total_size += data_size;
  571|  8.46k|  }
  572|       |
  573|       |  // repeated int64 int64_val = 10 [packed = true];
  574|  8.46k|  {
  575|  8.46k|    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
  576|  8.46k|      Int64Size(this->int64_val_);
  577|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (577:9): [True: 2.74k, False: 5.72k]
  ------------------
  578|  2.74k|      total_size += 1 +
  579|  2.74k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  580|  2.74k|            static_cast<int32_t>(data_size));
  581|  2.74k|    }
  582|  8.46k|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  583|  8.46k|    _int64_val_cached_byte_size_.store(cached_size,
  584|  8.46k|                                    std::memory_order_relaxed);
  585|  8.46k|    total_size += data_size;
  586|  8.46k|  }
  587|       |
  588|       |  // repeated bool bool_val = 11 [packed = true];
  589|  8.46k|  {
  590|  8.46k|    unsigned int count = static_cast<unsigned int>(this->_internal_bool_val_size());
  591|  8.46k|    size_t data_size = 1UL * count;
  592|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (592:9): [True: 2.45k, False: 6.00k]
  ------------------
  593|  2.45k|      total_size += 1 +
  594|  2.45k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  595|  2.45k|            static_cast<int32_t>(data_size));
  596|  2.45k|    }
  597|  8.46k|    total_size += data_size;
  598|  8.46k|  }
  599|       |
  600|       |  // repeated double dcomplex_val = 12 [packed = true];
  601|  8.46k|  {
  602|  8.46k|    unsigned int count = static_cast<unsigned int>(this->_internal_dcomplex_val_size());
  603|  8.46k|    size_t data_size = 8UL * count;
  604|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (604:9): [True: 1.42k, False: 7.04k]
  ------------------
  605|  1.42k|      total_size += 1 +
  606|  1.42k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  607|  1.42k|            static_cast<int32_t>(data_size));
  608|  1.42k|    }
  609|  8.46k|    total_size += data_size;
  610|  8.46k|  }
  611|       |
  612|       |  // repeated int32 half_val = 13 [packed = true];
  613|  8.46k|  {
  614|  8.46k|    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
  615|  8.46k|      Int32Size(this->half_val_);
  616|  8.46k|    if (data_size > 0) {
  ------------------
  |  Branch (616:9): [True: 1.64k, False: 6.82k]
  ------------------
  617|  1.64k|      total_size += 1 +
  618|  1.64k|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  619|  1.64k|            static_cast<int32_t>(data_size));
  620|  1.64k|    }
  621|  8.46k|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  622|  8.46k|    _half_val_cached_byte_size_.store(cached_size,
  623|  8.46k|                                    std::memory_order_relaxed);
  624|  8.46k|    total_size += data_size;
  625|  8.46k|  }
  626|       |
  627|       |  // bytes tensor_content = 4;
  628|  8.46k|  if (!this->_internal_tensor_content().empty()) {
  ------------------
  |  Branch (628:7): [True: 665, False: 7.80k]
  ------------------
  629|    665|    total_size += 1 +
  630|    665|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
  631|    665|        this->_internal_tensor_content());
  632|    665|  }
  633|       |
  634|       |  // .opencv_tensorflow.TensorShapeProto tensor_shape = 2;
  635|  8.46k|  if (this->_internal_has_tensor_shape()) {
  ------------------
  |  Branch (635:7): [True: 2.04k, False: 6.42k]
  ------------------
  636|  2.04k|    total_size += 1 +
  637|  2.04k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
  638|  2.04k|        *tensor_shape_);
  639|  2.04k|  }
  640|       |
  641|       |  // .opencv_tensorflow.DataType dtype = 1;
  642|  8.46k|  if (this->_internal_dtype() != 0) {
  ------------------
  |  Branch (642:7): [True: 891, False: 7.57k]
  ------------------
  643|    891|    total_size += 1 +
  644|    891|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_dtype());
  645|    891|  }
  646|       |
  647|       |  // int32 version_number = 3;
  648|  8.46k|  if (this->_internal_version_number() != 0) {
  ------------------
  |  Branch (648:7): [True: 615, False: 7.85k]
  ------------------
  649|    615|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_version_number());
  650|    615|  }
  651|       |
  652|  8.46k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  653|  8.46k|}
_ZN17opencv_tensorflow11TensorProto9MergeFromERKS0_:
  668|  2.48k|void TensorProto::MergeFrom(const TensorProto& from) {
  669|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.TensorProto)
  670|  2.48k|  GOOGLE_DCHECK_NE(&from, this);
  671|  2.48k|  uint32_t cached_has_bits = 0;
  672|  2.48k|  (void) cached_has_bits;
  673|       |
  674|  2.48k|  float_val_.MergeFrom(from.float_val_);
  675|  2.48k|  double_val_.MergeFrom(from.double_val_);
  676|  2.48k|  int_val_.MergeFrom(from.int_val_);
  677|  2.48k|  string_val_.MergeFrom(from.string_val_);
  678|  2.48k|  scomplex_val_.MergeFrom(from.scomplex_val_);
  679|  2.48k|  int64_val_.MergeFrom(from.int64_val_);
  680|  2.48k|  bool_val_.MergeFrom(from.bool_val_);
  681|  2.48k|  dcomplex_val_.MergeFrom(from.dcomplex_val_);
  682|  2.48k|  half_val_.MergeFrom(from.half_val_);
  683|  2.48k|  if (!from._internal_tensor_content().empty()) {
  ------------------
  |  Branch (683:7): [True: 69, False: 2.42k]
  ------------------
  684|     69|    _internal_set_tensor_content(from._internal_tensor_content());
  685|     69|  }
  686|  2.48k|  if (from._internal_has_tensor_shape()) {
  ------------------
  |  Branch (686:7): [True: 414, False: 2.07k]
  ------------------
  687|    414|    _internal_mutable_tensor_shape()->::opencv_tensorflow::TensorShapeProto::MergeFrom(from._internal_tensor_shape());
  688|    414|  }
  689|  2.48k|  if (from._internal_dtype() != 0) {
  ------------------
  |  Branch (689:7): [True: 335, False: 2.15k]
  ------------------
  690|    335|    _internal_set_dtype(from._internal_dtype());
  691|    335|  }
  692|  2.48k|  if (from._internal_version_number() != 0) {
  ------------------
  |  Branch (692:7): [True: 260, False: 2.22k]
  ------------------
  693|    260|    _internal_set_version_number(from._internal_version_number());
  694|    260|  }
  695|  2.48k|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  696|  2.48k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow11TensorProtoEJEEEPT_PS1_DpOT0_:
  745|  16.6k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::TensorProto* Arena::CreateMaybeMessage< ::opencv_tensorflow::TensorProto >(Arena* arena) {
  746|  16.6k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::TensorProto >(arena);
  747|  16.6k|}
_ZN17opencv_tensorflow11TensorProto10SharedCtorEv:
  182|  16.6k|inline void TensorProto::SharedCtor() {
  183|  16.6k|tensor_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  184|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  185|       |  tensor_content_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  186|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  187|  16.6k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
  188|  16.6k|    reinterpret_cast<char*>(&tensor_shape_) - reinterpret_cast<char*>(this)),
  189|  16.6k|    0, static_cast<size_t>(reinterpret_cast<char*>(&version_number_) -
  190|  16.6k|    reinterpret_cast<char*>(&tensor_shape_)) + sizeof(version_number_));
  191|  16.6k|}
_ZN17opencv_tensorflow11TensorProto10SharedDtorEv:
  200|  16.6k|inline void TensorProto::SharedDtor() {
  201|  16.6k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  202|  16.6k|  tensor_content_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  203|  16.6k|  if (this != internal_default_instance()) delete tensor_shape_;
  ------------------
  |  Branch (203:7): [True: 16.6k, False: 0]
  ------------------
  204|  16.6k|}
_ZN17opencv_tensorflow11TensorProto17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  210|  16.6k|void TensorProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  211|  16.6k|}

_ZNK17opencv_tensorflow11TensorProto26_internal_has_tensor_shapeEv:
  514|  10.9k|inline bool TensorProto::_internal_has_tensor_shape() const {
  515|  10.9k|  return this != internal_default_instance() && tensor_shape_ != nullptr;
  ------------------
  |  Branch (515:10): [True: 10.9k, False: 0]
  |  Branch (515:49): [True: 2.45k, False: 8.50k]
  ------------------
  516|  10.9k|}
_ZN17opencv_tensorflow11TensorProto25internal_default_instanceEv:
  113|  27.5k|  static inline const TensorProto* internal_default_instance() {
  114|  27.5k|    return reinterpret_cast<const TensorProto*>(
  115|  27.5k|               &_TensorProto_default_instance_);
  116|  27.5k|  }
_ZNK17opencv_tensorflow11TensorProto22_internal_tensor_shapeEv:
  520|    414|inline const ::opencv_tensorflow::TensorShapeProto& TensorProto::_internal_tensor_shape() const {
  521|    414|  const ::opencv_tensorflow::TensorShapeProto* p = tensor_shape_;
  522|    414|  return p != nullptr ? *p : reinterpret_cast<const ::opencv_tensorflow::TensorShapeProto&>(
  ------------------
  |  Branch (522:10): [True: 414, False: 0]
  ------------------
  523|      0|      ::opencv_tensorflow::_TensorShapeProto_default_instance_);
  524|    414|}
_ZNK17opencv_tensorflow11TensorProto15_internal_dtypeEv:
  497|  12.1k|inline ::opencv_tensorflow::DataType TensorProto::_internal_dtype() const {
  498|  12.1k|  return static_cast< ::opencv_tensorflow::DataType >(dtype_);
  499|  12.1k|}
_ZNK17opencv_tensorflow11TensorProto24_internal_tensor_contentEv:
  639|  11.6k|inline const std::string& TensorProto::_internal_tensor_content() const {
  640|  11.6k|  return tensor_content_.Get();
  641|  11.6k|}
_ZN17opencv_tensorflow11TensorProto19_internal_set_dtypeENS_8DataTypeE:
  504|  6.79k|inline void TensorProto::_internal_set_dtype(::opencv_tensorflow::DataType value) {
  505|       |
  506|  6.79k|  dtype_ = value;
  507|  6.79k|}
_ZN17opencv_tensorflow11TensorProto30_internal_mutable_tensor_shapeEv:
  564|  3.74k|inline ::opencv_tensorflow::TensorShapeProto* TensorProto::_internal_mutable_tensor_shape() {
  565|       |
  566|  3.74k|  if (tensor_shape_ == nullptr) {
  ------------------
  |  Branch (566:7): [True: 3.02k, False: 722]
  ------------------
  567|  3.02k|    auto* p = CreateMaybeMessage<::opencv_tensorflow::TensorShapeProto>(GetArenaForAllocation());
  568|  3.02k|    tensor_shape_ = p;
  569|  3.02k|  }
  570|  3.74k|  return tensor_shape_;
  571|  3.74k|}
_ZNK17opencv_tensorflow11TensorProto24_internal_version_numberEv:
  603|  11.8k|inline int32_t TensorProto::_internal_version_number() const {
  604|  11.8k|  return version_number_;
  605|  11.8k|}
_ZN17opencv_tensorflow11TensorProto28_internal_set_version_numberEi:
  610|    260|inline void TensorProto::_internal_set_version_number(int32_t value) {
  611|       |
  612|    260|  version_number_ = value;
  613|    260|}
_ZN17opencv_tensorflow11TensorProto28_internal_set_tensor_contentERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  642|     69|inline void TensorProto::_internal_set_tensor_content(const std::string& value) {
  643|       |
  644|     69|  tensor_content_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  645|     69|}
_ZN17opencv_tensorflow11TensorProto32_internal_mutable_tensor_contentEv:
  646|  2.01k|inline std::string* TensorProto::_internal_mutable_tensor_content() {
  647|       |
  648|  2.01k|  return tensor_content_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  649|  2.01k|}
_ZN17opencv_tensorflow11TensorProto22_internal_add_half_valEi:
  691|  16.4k|inline void TensorProto::_internal_add_half_val(int32_t value) {
  692|  16.4k|  half_val_.Add(value);
  693|  16.4k|}
_ZN17opencv_tensorflow11TensorProto26_internal_mutable_half_valEv:
  708|  1.39k|TensorProto::_internal_mutable_half_val() {
  709|  1.39k|  return &half_val_;
  710|  1.39k|}
_ZNK17opencv_tensorflow11TensorProto24_internal_float_val_sizeEv:
  718|  8.46k|inline int TensorProto::_internal_float_val_size() const {
  719|  8.46k|  return float_val_.size();
  720|  8.46k|}
_ZN17opencv_tensorflow11TensorProto23_internal_add_float_valEf:
  738|  3.27k|inline void TensorProto::_internal_add_float_val(float value) {
  739|  3.27k|  float_val_.Add(value);
  740|  3.27k|}
_ZN17opencv_tensorflow11TensorProto27_internal_mutable_float_valEv:
  755|  11.1k|TensorProto::_internal_mutable_float_val() {
  756|  11.1k|  return &float_val_;
  757|  11.1k|}
_ZNK17opencv_tensorflow11TensorProto25_internal_double_val_sizeEv:
  765|  8.46k|inline int TensorProto::_internal_double_val_size() const {
  766|  8.46k|  return double_val_.size();
  767|  8.46k|}
_ZN17opencv_tensorflow11TensorProto24_internal_add_double_valEd:
  785|  1.20k|inline void TensorProto::_internal_add_double_val(double value) {
  786|  1.20k|  double_val_.Add(value);
  787|  1.20k|}
_ZN17opencv_tensorflow11TensorProto28_internal_mutable_double_valEv:
  802|  1.13k|TensorProto::_internal_mutable_double_val() {
  803|  1.13k|  return &double_val_;
  804|  1.13k|}
_ZN17opencv_tensorflow11TensorProto21_internal_add_int_valEi:
  832|  3.42k|inline void TensorProto::_internal_add_int_val(int32_t value) {
  833|  3.42k|  int_val_.Add(value);
  834|  3.42k|}
_ZN17opencv_tensorflow11TensorProto25_internal_mutable_int_valEv:
  849|    817|TensorProto::_internal_mutable_int_val() {
  850|    817|  return &int_val_;
  851|    817|}
_ZN17opencv_tensorflow11TensorProto24_internal_add_string_valEv:
  902|  2.61k|inline std::string* TensorProto::_internal_add_string_val() {
  903|  2.61k|  return string_val_.Add();
  904|  2.61k|}
_ZNK17opencv_tensorflow11TensorProto27_internal_scomplex_val_sizeEv:
  934|  8.46k|inline int TensorProto::_internal_scomplex_val_size() const {
  935|  8.46k|  return scomplex_val_.size();
  936|  8.46k|}
_ZN17opencv_tensorflow11TensorProto26_internal_add_scomplex_valEf:
  954|   274k|inline void TensorProto::_internal_add_scomplex_val(float value) {
  955|   274k|  scomplex_val_.Add(value);
  956|   274k|}
_ZN17opencv_tensorflow11TensorProto30_internal_mutable_scomplex_valEv:
  971|    476|TensorProto::_internal_mutable_scomplex_val() {
  972|    476|  return &scomplex_val_;
  973|    476|}
_ZN17opencv_tensorflow11TensorProto23_internal_add_int64_valEl:
 1001|  14.7k|inline void TensorProto::_internal_add_int64_val(int64_t value) {
 1002|  14.7k|  int64_val_.Add(value);
 1003|  14.7k|}
_ZN17opencv_tensorflow11TensorProto27_internal_mutable_int64_valEv:
 1018|    985|TensorProto::_internal_mutable_int64_val() {
 1019|    985|  return &int64_val_;
 1020|    985|}
_ZNK17opencv_tensorflow11TensorProto23_internal_bool_val_sizeEv:
 1028|  8.46k|inline int TensorProto::_internal_bool_val_size() const {
 1029|  8.46k|  return bool_val_.size();
 1030|  8.46k|}
_ZN17opencv_tensorflow11TensorProto22_internal_add_bool_valEb:
 1048|  32.2k|inline void TensorProto::_internal_add_bool_val(bool value) {
 1049|  32.2k|  bool_val_.Add(value);
 1050|  32.2k|}
_ZN17opencv_tensorflow11TensorProto26_internal_mutable_bool_valEv:
 1065|  8.39k|TensorProto::_internal_mutable_bool_val() {
 1066|  8.39k|  return &bool_val_;
 1067|  8.39k|}
_ZNK17opencv_tensorflow11TensorProto27_internal_dcomplex_val_sizeEv:
 1075|  8.46k|inline int TensorProto::_internal_dcomplex_val_size() const {
 1076|  8.46k|  return dcomplex_val_.size();
 1077|  8.46k|}
_ZN17opencv_tensorflow11TensorProto26_internal_add_dcomplex_valEd:
 1095|  27.0k|inline void TensorProto::_internal_add_dcomplex_val(double value) {
 1096|  27.0k|  dcomplex_val_.Add(value);
 1097|  27.0k|}
_ZN17opencv_tensorflow11TensorProto30_internal_mutable_dcomplex_valEv:
 1112|    912|TensorProto::_internal_mutable_dcomplex_val() {
 1113|    912|  return &dcomplex_val_;
 1114|    912|}

_ZN17opencv_tensorflow20TensorShapeProto_DimC2EPN6google8protobuf5ArenaEb:
  110|  5.04k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  111|  5.04k|  SharedCtor();
  112|  5.04k|  if (!is_message_owned) {
  ------------------
  |  Branch (112:7): [True: 5.04k, False: 0]
  ------------------
  113|  5.04k|    RegisterArenaDtor(arena);
  114|  5.04k|  }
  115|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.TensorShapeProto.Dim)
  116|  5.04k|}
_ZN17opencv_tensorflow20TensorShapeProto_DimD2Ev:
  140|  5.04k|TensorShapeProto_Dim::~TensorShapeProto_Dim() {
  141|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.TensorShapeProto.Dim)
  142|  5.04k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (142:7): [True: 0, False: 5.04k]
  ------------------
  143|  5.04k|  SharedDtor();
  144|  5.04k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  145|  5.04k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  173|  4.22k|const char* TensorShapeProto_Dim::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  174|  4.22k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  175|  9.19k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (175:10): [True: 5.04k, False: 4.15k]
  ------------------
  176|  5.04k|    uint32_t tag;
  177|  5.04k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  178|  5.04k|    switch (tag >> 3) {
  179|       |      // int64 size = 1;
  180|  1.81k|      case 1:
  ------------------
  |  Branch (180:7): [True: 1.81k, False: 3.22k]
  ------------------
  181|  1.81k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
  182|  1.24k|          size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  183|  1.24k|          CHK_(ptr);
  ------------------
  |  |  174|  1.24k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  184|  1.24k|        } else
  185|    567|          goto handle_unusual;
  186|  1.24k|        continue;
  187|       |      // string name = 2;
  188|  1.87k|      case 2:
  ------------------
  |  Branch (188:7): [True: 1.87k, False: 3.16k]
  ------------------
  189|  1.87k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  190|  1.47k|          auto str = _internal_mutable_name();
  191|  1.47k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
  192|  1.47k|          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "opencv_tensorflow.TensorShapeProto.Dim.name"));
  ------------------
  |  |  174|  1.47k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  193|  1.46k|          CHK_(ptr);
  ------------------
  |  |  174|  1.46k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  194|  1.46k|        } else
  195|    406|          goto handle_unusual;
  196|  1.46k|        continue;
  197|  1.46k|      default:
  ------------------
  |  Branch (197:7): [True: 1.35k, False: 3.69k]
  ------------------
  198|  1.35k|        goto handle_unusual;
  199|  5.04k|    }  // switch
  200|  2.32k|  handle_unusual:
  201|  2.32k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (201:9): [True: 7, False: 2.31k]
  |  Branch (201:23): [True: 12, False: 2.30k]
  ------------------
  202|     19|      CHK_(ptr);
  ------------------
  |  |  174|     19|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  203|     18|      ctx->SetLastTag(tag);
  204|     18|      goto message_done;
  205|     19|    }
  206|  2.30k|    ptr = UnknownFieldParse(
  207|  2.30k|        tag,
  208|  2.30k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  209|  2.30k|        ptr, ctx);
  210|  2.30k|    CHK_(ptr != nullptr);
  ------------------
  |  |  174|  2.30k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  211|  2.30k|  }  // while
  212|  4.22k|message_done:
  213|  4.22k|  return ptr;
  214|     52|failure:
  215|     52|  ptr = nullptr;
  216|     52|  goto message_done;
  217|  4.22k|#undef CHK_
  218|  4.22k|}
_ZNK17opencv_tensorflow20TensorShapeProto_Dim12ByteSizeLongEv:
  250|  2.66k|size_t TensorShapeProto_Dim::ByteSizeLong() const {
  251|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.TensorShapeProto.Dim)
  252|  2.66k|  size_t total_size = 0;
  253|       |
  254|  2.66k|  uint32_t cached_has_bits = 0;
  255|       |  // Prevent compiler warnings about cached_has_bits being unused
  256|  2.66k|  (void) cached_has_bits;
  257|       |
  258|       |  // string name = 2;
  259|  2.66k|  if (!this->_internal_name().empty()) {
  ------------------
  |  Branch (259:7): [True: 404, False: 2.26k]
  ------------------
  260|    404|    total_size += 1 +
  261|    404|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
  262|    404|        this->_internal_name());
  263|    404|  }
  264|       |
  265|       |  // int64 size = 1;
  266|  2.66k|  if (this->_internal_size() != 0) {
  ------------------
  |  Branch (266:7): [True: 284, False: 2.38k]
  ------------------
  267|    284|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_size());
  268|    284|  }
  269|       |
  270|  2.66k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  271|  2.66k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim9MergeFromERKS0_:
  286|    817|void TensorShapeProto_Dim::MergeFrom(const TensorShapeProto_Dim& from) {
  287|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.TensorShapeProto.Dim)
  288|    817|  GOOGLE_DCHECK_NE(&from, this);
  289|    817|  uint32_t cached_has_bits = 0;
  290|    817|  (void) cached_has_bits;
  291|       |
  292|    817|  if (!from._internal_name().empty()) {
  ------------------
  |  Branch (292:7): [True: 48, False: 769]
  ------------------
  293|     48|    _internal_set_name(from._internal_name());
  294|     48|  }
  295|    817|  if (from._internal_size() != 0) {
  ------------------
  |  Branch (295:7): [True: 230, False: 587]
  ------------------
  296|    230|    _internal_set_size(from._internal_size());
  297|    230|  }
  298|    817|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  299|    817|}
_ZN17opencv_tensorflow16TensorShapeProtoC2EPN6google8protobuf5ArenaEb:
  339|  10.0k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  340|  10.0k|  dim_(arena) {
  341|  10.0k|  SharedCtor();
  342|  10.0k|  if (!is_message_owned) {
  ------------------
  |  Branch (342:7): [True: 10.0k, False: 0]
  ------------------
  343|  10.0k|    RegisterArenaDtor(arena);
  344|  10.0k|  }
  345|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.TensorShapeProto)
  346|  10.0k|}
_ZN17opencv_tensorflow16TensorShapeProtoD2Ev:
  359|  10.0k|TensorShapeProto::~TensorShapeProto() {
  360|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.TensorShapeProto)
  361|  10.0k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (361:7): [True: 0, False: 10.0k]
  ------------------
  362|  10.0k|  SharedDtor();
  363|  10.0k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  364|  10.0k|}
_ZN17opencv_tensorflow16TensorShapeProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  391|  10.1k|const char* TensorShapeProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  392|  10.1k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  393|  23.8k|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (393:10): [True: 14.0k, False: 9.85k]
  ------------------
  394|  14.0k|    uint32_t tag;
  395|  14.0k|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  396|  14.0k|    switch (tag >> 3) {
  397|       |      // repeated .opencv_tensorflow.TensorShapeProto.Dim dim = 2;
  398|  3.29k|      case 2:
  ------------------
  |  Branch (398:7): [True: 3.29k, False: 10.7k]
  ------------------
  399|  3.29k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
  400|  2.88k|          ptr -= 1;
  401|  4.22k|          do {
  402|  4.22k|            ptr += 1;
  403|  4.22k|            ptr = ctx->ParseMessage(_internal_add_dim(), ptr);
  404|  4.22k|            CHK_(ptr);
  ------------------
  |  |  392|  4.22k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  405|  3.98k|            if (!ctx->DataAvailable(ptr)) break;
  ------------------
  |  Branch (405:17): [True: 1.30k, False: 2.68k]
  ------------------
  406|  3.98k|          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
  ------------------
  |  Branch (406:20): [True: 1.34k, False: 1.34k]
  ------------------
  407|  2.88k|        } else
  408|    417|          goto handle_unusual;
  409|  2.64k|        continue;
  410|       |      // bool unknown_rank = 3;
  411|  5.05k|      case 3:
  ------------------
  |  Branch (411:7): [True: 5.05k, False: 8.95k]
  ------------------
  412|  5.05k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
  413|  4.78k|          unknown_rank_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
  414|  4.78k|          CHK_(ptr);
  ------------------
  |  |  392|  4.78k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  415|  4.78k|        } else
  416|    267|          goto handle_unusual;
  417|  4.78k|        continue;
  418|  5.65k|      default:
  ------------------
  |  Branch (418:7): [True: 5.65k, False: 8.35k]
  ------------------
  419|  5.65k|        goto handle_unusual;
  420|  14.0k|    }  // switch
  421|  6.34k|  handle_unusual:
  422|  6.34k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (422:9): [True: 13, False: 6.32k]
  |  Branch (422:23): [True: 7, False: 6.32k]
  ------------------
  423|     20|      CHK_(ptr);
  ------------------
  |  |  392|     20|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  424|     16|      ctx->SetLastTag(tag);
  425|     16|      goto message_done;
  426|     20|    }
  427|  6.32k|    ptr = UnknownFieldParse(
  428|  6.32k|        tag,
  429|  6.32k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  430|  6.32k|        ptr, ctx);
  431|  6.32k|    CHK_(ptr != nullptr);
  ------------------
  |  |  392|  6.32k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  432|  6.32k|  }  // while
  433|  10.1k|message_done:
  434|  10.1k|  return ptr;
  435|    271|failure:
  436|    271|  ptr = nullptr;
  437|    271|  goto message_done;
  438|  10.1k|#undef CHK_
  439|  10.1k|}
_ZNK17opencv_tensorflow16TensorShapeProto12ByteSizeLongEv:
  469|  4.95k|size_t TensorShapeProto::ByteSizeLong() const {
  470|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.TensorShapeProto)
  471|  4.95k|  size_t total_size = 0;
  472|       |
  473|  4.95k|  uint32_t cached_has_bits = 0;
  474|       |  // Prevent compiler warnings about cached_has_bits being unused
  475|  4.95k|  (void) cached_has_bits;
  476|       |
  477|       |  // repeated .opencv_tensorflow.TensorShapeProto.Dim dim = 2;
  478|  4.95k|  total_size += 1UL * this->_internal_dim_size();
  479|  4.95k|  for (const auto& msg : this->dim_) {
  ------------------
  |  Branch (479:24): [True: 2.66k, False: 4.95k]
  ------------------
  480|  2.66k|    total_size +=
  481|  2.66k|      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  482|  2.66k|  }
  483|       |
  484|       |  // bool unknown_rank = 3;
  485|  4.95k|  if (this->_internal_unknown_rank() != 0) {
  ------------------
  |  Branch (485:7): [True: 117, False: 4.83k]
  ------------------
  486|    117|    total_size += 1 + 1;
  487|    117|  }
  488|       |
  489|  4.95k|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  490|  4.95k|}
_ZN17opencv_tensorflow16TensorShapeProto9MergeFromERKS0_:
  505|  1.05k|void TensorShapeProto::MergeFrom(const TensorShapeProto& from) {
  506|       |// @@protoc_insertion_point(class_specific_merge_from_start:opencv_tensorflow.TensorShapeProto)
  507|  1.05k|  GOOGLE_DCHECK_NE(&from, this);
  508|  1.05k|  uint32_t cached_has_bits = 0;
  509|  1.05k|  (void) cached_has_bits;
  510|       |
  511|  1.05k|  dim_.MergeFrom(from.dim_);
  512|  1.05k|  if (from._internal_unknown_rank() != 0) {
  ------------------
  |  Branch (512:7): [True: 153, False: 901]
  ------------------
  513|    153|    _internal_set_unknown_rank(from._internal_unknown_rank());
  514|    153|  }
  515|  1.05k|  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  516|  1.05k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow20TensorShapeProto_DimEJEEEPT_PS1_DpOT0_:
  545|  5.04k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::TensorShapeProto_Dim* Arena::CreateMaybeMessage< ::opencv_tensorflow::TensorShapeProto_Dim >(Arena* arena) {
  546|  5.04k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::TensorShapeProto_Dim >(arena);
  547|  5.04k|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow16TensorShapeProtoEJEEEPT_PS1_DpOT0_:
  548|  10.0k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::TensorShapeProto* Arena::CreateMaybeMessage< ::opencv_tensorflow::TensorShapeProto >(Arena* arena) {
  549|  10.0k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::TensorShapeProto >(arena);
  550|  10.0k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim10SharedCtorEv:
  132|  5.04k|inline void TensorShapeProto_Dim::SharedCtor() {
  133|  5.04k|name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  134|       |#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  135|       |  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  136|       |#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  137|  5.04k|size_ = int64_t{0};
  138|  5.04k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim10SharedDtorEv:
  147|  5.04k|inline void TensorShapeProto_Dim::SharedDtor() {
  148|  5.04k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  149|  5.04k|  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  150|  5.04k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  156|  5.04k|void TensorShapeProto_Dim::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  157|  5.04k|}
_ZN17opencv_tensorflow16TensorShapeProto10SharedCtorEv:
  355|  10.0k|inline void TensorShapeProto::SharedCtor() {
  356|  10.0k|unknown_rank_ = false;
  357|  10.0k|}
_ZN17opencv_tensorflow16TensorShapeProto10SharedDtorEv:
  366|  10.0k|inline void TensorShapeProto::SharedDtor() {
  367|  10.0k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  368|  10.0k|}
_ZN17opencv_tensorflow16TensorShapeProto17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  374|  10.0k|void TensorShapeProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  375|  10.0k|}

_ZNK17opencv_tensorflow16TensorShapeProto18_internal_dim_sizeEv:
  487|  4.95k|inline int TensorShapeProto::_internal_dim_size() const {
  488|  4.95k|  return dim_.size();
  489|  4.95k|}
_ZNK17opencv_tensorflow20TensorShapeProto_Dim14_internal_sizeEv:
  415|  3.99k|inline int64_t TensorShapeProto_Dim::_internal_size() const {
  416|  3.99k|  return size_;
  417|  3.99k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim18_internal_set_sizeEl:
  422|    230|inline void TensorShapeProto_Dim::_internal_set_size(int64_t value) {
  423|       |
  424|    230|  size_ = value;
  425|    230|}
_ZNK17opencv_tensorflow20TensorShapeProto_Dim14_internal_nameEv:
  451|  3.93k|inline const std::string& TensorShapeProto_Dim::_internal_name() const {
  452|  3.93k|  return name_.Get();
  453|  3.93k|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim18_internal_set_nameERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  454|     48|inline void TensorShapeProto_Dim::_internal_set_name(const std::string& value) {
  455|       |
  456|     48|  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  457|     48|}
_ZN17opencv_tensorflow20TensorShapeProto_Dim22_internal_mutable_nameEv:
  458|  1.47k|inline std::string* TensorShapeProto_Dim::_internal_mutable_name() {
  459|       |
  460|  1.47k|  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  461|  1.47k|}
_ZN17opencv_tensorflow16TensorShapeProto17_internal_add_dimEv:
  512|  4.22k|inline ::opencv_tensorflow::TensorShapeProto_Dim* TensorShapeProto::_internal_add_dim() {
  513|  4.22k|  return dim_.Add();
  514|  4.22k|}
_ZNK17opencv_tensorflow16TensorShapeProto22_internal_unknown_rankEv:
  530|  6.16k|inline bool TensorShapeProto::_internal_unknown_rank() const {
  531|  6.16k|  return unknown_rank_;
  532|  6.16k|}
_ZN17opencv_tensorflow16TensorShapeProto26_internal_set_unknown_rankEb:
  537|    153|inline void TensorShapeProto::_internal_set_unknown_rank(bool value) {
  538|       |
  539|    153|  unknown_rank_ = value;
  540|    153|}

_ZN17opencv_tensorflow10VersionDefC2EPN6google8protobuf5ArenaEb:
   89|  1.30k|  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
   90|  1.30k|  bad_consumers_(arena) {
   91|  1.30k|  SharedCtor();
   92|  1.30k|  if (!is_message_owned) {
  ------------------
  |  Branch (92:7): [True: 1.30k, False: 0]
  ------------------
   93|  1.30k|    RegisterArenaDtor(arena);
   94|  1.30k|  }
   95|       |  // @@protoc_insertion_point(arena_constructor:opencv_tensorflow.VersionDef)
   96|  1.30k|}
_ZN17opencv_tensorflow10VersionDefD2Ev:
  114|  1.30k|VersionDef::~VersionDef() {
  115|       |  // @@protoc_insertion_point(destructor:opencv_tensorflow.VersionDef)
  116|  1.30k|  if (GetArenaForAllocation() != nullptr) return;
  ------------------
  |  Branch (116:7): [True: 0, False: 1.30k]
  ------------------
  117|  1.30k|  SharedDtor();
  118|  1.30k|  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  119|  1.30k|}
_ZN17opencv_tensorflow10VersionDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE:
  148|  8.11k|const char* VersionDef::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  149|  8.11k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  150|  1.72M|  while (!ctx->Done(&ptr)) {
  ------------------
  |  Branch (150:10): [True: 1.71M, False: 7.75k]
  ------------------
  151|  1.71M|    uint32_t tag;
  152|  1.71M|    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
  153|  1.71M|    switch (tag >> 3) {
  154|       |      // int32 producer = 1;
  155|  13.2k|      case 1:
  ------------------
  |  Branch (155:7): [True: 13.2k, False: 1.70M]
  ------------------
  156|  13.2k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
  157|  2.73k|          producer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
  158|  2.73k|          CHK_(ptr);
  ------------------
  |  |  149|  2.73k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  159|  2.73k|        } else
  160|  10.5k|          goto handle_unusual;
  161|  2.73k|        continue;
  162|       |      // int32 min_consumer = 2;
  163|  24.3k|      case 2:
  ------------------
  |  Branch (163:7): [True: 24.3k, False: 1.69M]
  ------------------
  164|  24.3k|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
  165|  23.9k|          min_consumer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
  166|  23.9k|          CHK_(ptr);
  ------------------
  |  |  149|  23.9k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  167|  23.9k|        } else
  168|    362|          goto handle_unusual;
  169|  23.9k|        continue;
  170|       |      // repeated int32 bad_consumers = 3;
  171|  1.43M|      case 3:
  ------------------
  |  Branch (171:7): [True: 1.43M, False: 278k]
  ------------------
  172|  1.43M|        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
  173|  3.26k|          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_bad_consumers(), ptr, ctx);
  174|  3.26k|          CHK_(ptr);
  ------------------
  |  |  149|  3.26k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  175|  1.43M|        } else if (static_cast<uint8_t>(tag) == 24) {
  ------------------
  |  Branch (175:20): [True: 1.42M, False: 4.67k]
  ------------------
  176|  1.42M|          _internal_add_bad_consumers(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
  177|  1.42M|          CHK_(ptr);
  ------------------
  |  |  149|  1.42M|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  178|  1.42M|        } else
  179|  4.67k|          goto handle_unusual;
  180|  1.43M|        continue;
  181|  1.43M|      default:
  ------------------
  |  Branch (181:7): [True: 240k, False: 1.47M]
  ------------------
  182|   240k|        goto handle_unusual;
  183|  1.71M|    }  // switch
  184|   256k|  handle_unusual:
  185|   256k|    if ((tag == 0) || ((tag & 7) == 4)) {
  ------------------
  |  Branch (185:9): [True: 10, False: 256k]
  |  Branch (185:23): [True: 21, False: 256k]
  ------------------
  186|     31|      CHK_(ptr);
  ------------------
  |  |  149|     31|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  187|     27|      ctx->SetLastTag(tag);
  188|     27|      goto message_done;
  189|     31|    }
  190|   256k|    ptr = UnknownFieldParse(
  191|   256k|        tag,
  192|   256k|        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
  193|   256k|        ptr, ctx);
  194|   256k|    CHK_(ptr != nullptr);
  ------------------
  |  |  149|   256k|#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ------------------
  195|   256k|  }  // while
  196|  8.11k|message_done:
  197|  8.11k|  return ptr;
  198|    336|failure:
  199|    336|  ptr = nullptr;
  200|    336|  goto message_done;
  201|  8.11k|#undef CHK_
  202|  8.11k|}
_ZNK17opencv_tensorflow10VersionDef12ByteSizeLongEv:
  239|    581|size_t VersionDef::ByteSizeLong() const {
  240|       |// @@protoc_insertion_point(message_byte_size_start:opencv_tensorflow.VersionDef)
  241|    581|  size_t total_size = 0;
  242|       |
  243|    581|  uint32_t cached_has_bits = 0;
  244|       |  // Prevent compiler warnings about cached_has_bits being unused
  245|    581|  (void) cached_has_bits;
  246|       |
  247|       |  // repeated int32 bad_consumers = 3;
  248|    581|  {
  249|    581|    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
  250|    581|      Int32Size(this->bad_consumers_);
  251|    581|    if (data_size > 0) {
  ------------------
  |  Branch (251:9): [True: 202, False: 379]
  ------------------
  252|    202|      total_size += 1 +
  253|    202|        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
  254|    202|            static_cast<int32_t>(data_size));
  255|    202|    }
  256|    581|    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
  257|    581|    _bad_consumers_cached_byte_size_.store(cached_size,
  258|    581|                                    std::memory_order_relaxed);
  259|    581|    total_size += data_size;
  260|    581|  }
  261|       |
  262|       |  // int32 producer = 1;
  263|    581|  if (this->_internal_producer() != 0) {
  ------------------
  |  Branch (263:7): [True: 71, False: 510]
  ------------------
  264|     71|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_producer());
  265|     71|  }
  266|       |
  267|       |  // int32 min_consumer = 2;
  268|    581|  if (this->_internal_min_consumer() != 0) {
  ------------------
  |  Branch (268:7): [True: 107, False: 474]
  ------------------
  269|    107|    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_min_consumer());
  270|    107|  }
  271|       |
  272|    581|  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
  273|    581|}
_ZN6google8protobuf5Arena18CreateMaybeMessageIN17opencv_tensorflow10VersionDefEJEEEPT_PS1_DpOT0_:
  336|  1.30k|template<> PROTOBUF_NOINLINE ::opencv_tensorflow::VersionDef* Arena::CreateMaybeMessage< ::opencv_tensorflow::VersionDef >(Arena* arena) {
  337|  1.30k|  return Arena::CreateMessageInternal< ::opencv_tensorflow::VersionDef >(arena);
  338|  1.30k|}
_ZN17opencv_tensorflow10VersionDef10SharedCtorEv:
  107|  1.30k|inline void VersionDef::SharedCtor() {
  108|  1.30k|::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
  109|  1.30k|    reinterpret_cast<char*>(&producer_) - reinterpret_cast<char*>(this)),
  110|  1.30k|    0, static_cast<size_t>(reinterpret_cast<char*>(&min_consumer_) -
  111|  1.30k|    reinterpret_cast<char*>(&producer_)) + sizeof(min_consumer_));
  112|  1.30k|}
_ZN17opencv_tensorflow10VersionDef10SharedDtorEv:
  121|  1.30k|inline void VersionDef::SharedDtor() {
  122|  1.30k|  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  123|  1.30k|}
_ZN17opencv_tensorflow10VersionDef17RegisterArenaDtorEPN6google8protobuf5ArenaE:
  129|  1.30k|void VersionDef::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
  130|  1.30k|}

_ZNK17opencv_tensorflow10VersionDef8producerEv:
  266|     25|inline int32_t VersionDef::producer() const {
  267|       |  // @@protoc_insertion_point(field_get:opencv_tensorflow.VersionDef.producer)
  268|     25|  return _internal_producer();
  269|     25|}
_ZNK17opencv_tensorflow10VersionDef18_internal_producerEv:
  263|    677|inline int32_t VersionDef::_internal_producer() const {
  264|    677|  return producer_;
  265|    677|}
_ZNK17opencv_tensorflow10VersionDef22_internal_min_consumerEv:
  283|    688|inline int32_t VersionDef::_internal_min_consumer() const {
  284|    688|  return min_consumer_;
  285|    688|}
_ZN17opencv_tensorflow10VersionDef27_internal_add_bad_consumersEi:
  320|  1.42M|inline void VersionDef::_internal_add_bad_consumers(int32_t value) {
  321|  1.42M|  bad_consumers_.Add(value);
  322|  1.42M|}
_ZN17opencv_tensorflow10VersionDef31_internal_mutable_bad_consumersEv:
  337|  3.26k|VersionDef::_internal_mutable_bad_consumers() {
  338|  3.26k|  return &bad_consumers_;
  339|  3.26k|}

_ZN2cv3dnn19ReadProtoFromBinaryEPN6google8protobuf2io19ZeroCopyInputStreamEPNS2_7MessageE:
 1113|  17.9k|bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) {
 1114|  17.9k|    CodedInputStream coded_input(input);
 1115|  17.9k|#if GOOGLE_PROTOBUF_VERSION >= 3006000
 1116|  17.9k|    coded_input.SetTotalBytesLimit(kProtoReadBytesLimit);
 1117|       |#else
 1118|       |    coded_input.SetTotalBytesLimit(kProtoReadBytesLimit, 536870912);
 1119|       |#endif
 1120|       |
 1121|  17.9k|    return proto->ParseFromCodedStream(&coded_input);
 1122|  17.9k|}
_ZN2cv3dnn25ReadProtoFromBinaryBufferEPKcmPN6google8protobuf7MessageE:
 1155|  17.9k|bool ReadProtoFromBinaryBuffer(const char* data, size_t len, Message* proto) {
 1156|  17.9k|    ArrayInputStream raw_input(data, len);
 1157|  17.9k|    return ReadProtoFromBinary(&raw_input, proto);
 1158|  17.9k|}

_ZN2cv3dnn11GLogWrapperC2EPKcS3_iS3_S3_b:
   71|  17.9k|        file(_file), func(_func), type(_type), cond_str(_cond_str),
   72|  17.9k|        line(_line), cond_status(_cond_status), exit_loop(true) {}
_ZN2cv3dnn11GLogWrapper4exitEv:
   80|  24.0k|    {
   81|  24.0k|        return exit_loop;
   82|  24.0k|    }
_ZN2cv3dnn11GLogWrapper6streamEv:
   75|  17.9k|    {
   76|  17.9k|        return sstream;
   77|  17.9k|    }
_ZN2cv3dnn11GLogWrapper5checkEv:
   85|  17.9k|    {
   86|  17.9k|        exit_loop = false;
   87|       |
   88|  17.9k|        if (cond_str && !cond_status)
  ------------------
  |  Branch (88:13): [True: 17.9k, False: 0]
  |  Branch (88:25): [True: 11.7k, False: 6.18k]
  ------------------
   89|  11.7k|        {
   90|  11.7k|            cv::error(cv::Error::StsError, "FAILED: " + String(cond_str) + ". " + sstream.str(), func, file, line);
   91|  11.7k|        }
   92|  6.18k|        else if (!cond_str && strcmp(type, "CHECK"))
  ------------------
  |  Branch (92:18): [True: 0, False: 6.18k]
  |  Branch (92:31): [True: 0, False: 0]
  ------------------
   93|      0|        {
   94|       |            #ifndef NDEBUG
   95|       |            if (!std::strcmp(type, "INFO"))
   96|       |                std::cout << sstream.str() << std::endl;
   97|       |            else
   98|       |                std::cerr << sstream.str() << std::endl;
   99|       |            #endif
  100|      0|        }
  101|  17.9k|    }

tf_importer.cpp:_ZN2cv3dnn14dnn4_v202412236detail17readNetDiagnosticINS1_12_GLOBAL__N_110TFImporterEJRPKcRmS8_S9_EEENS1_3NetEDpOT0_:
   83|  17.9k|{
   84|  17.9k|    Net maybeDebugNet = readNet<Importer>(std::forward<Args>(args)...);
   85|  17.9k|    if (DNN_DIAGNOSTICS_RUN && !DNN_SKIP_REAL_IMPORT)
  ------------------
  |  Branch (85:9): [True: 0, False: 17.9k]
  |  Branch (85:32): [True: 0, False: 0]
  ------------------
   86|      0|    {
   87|       |        // if we just imported the net in diagnostic mode, disable it and import again
   88|      0|        enableModelDiagnostics(false);
   89|      0|        Net releaseNet = readNet<Importer>(std::forward<Args>(args)...);
   90|      0|        enableModelDiagnostics(true);
   91|      0|        return releaseNet;
   92|      0|    }
   93|  17.9k|    return maybeDebugNet;
   94|  17.9k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v202412236detail7readNetINS1_12_GLOBAL__N_110TFImporterEJRPKcRmS8_S9_EEENS1_3NetEDpOT0_:
   75|  17.9k|{
   76|  17.9k|    Net net;
   77|  17.9k|    Importer importer(net, std::forward<Args>(args)...);
   78|  17.9k|    return net;
   79|  17.9k|}

_ZN2cv3dnn14dnn4_v2024122325getParam_DNN_NETWORK_DUMPEv:
   16|  17.9k|{
   17|  17.9k|    static size_t DNN_NETWORK_DUMP = utils::getConfigurationParameterSizeT("OPENCV_DNN_NETWORK_DUMP", 0);
   18|  17.9k|    return DNN_NETWORK_DUMP;
   19|  17.9k|}
_ZN2cv3dnn14dnn4_v2024122328getParam_DNN_BACKEND_DEFAULTEv:
   37|  35.8k|{
   38|  35.8k|    static int PARAM_DNN_BACKEND_DEFAULT = (int)utils::getConfigurationParameterSizeT("OPENCV_DNN_BACKEND_DEFAULT",
   39|       |#ifdef OPENCV_DNN_BACKEND_DEFAULT
   40|       |            (size_t)OPENCV_DNN_BACKEND_DEFAULT
   41|       |#else
   42|  35.8k|            (size_t)DNN_BACKEND_OPENCV
   43|  35.8k|#endif
   44|  35.8k|    );
   45|  35.8k|    return PARAM_DNN_BACKEND_DEFAULT;
   46|  35.8k|}

_ZN2cv3dnn8SubgraphD2Ev:
   16|   124k|Subgraph::~Subgraph() {}
_ZN2cv3dnn8Subgraph14addNodeToMatchERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEiiii:
   20|  1.40M|{
   21|  1.40M|    int nodeInputs[] = {input_0, input_1, input_2, input_3};
   22|  1.40M|    int numInputs = 0;
   23|  7.04M|    for (int i = 0; i < 4; ++i)
  ------------------
  |  Branch (23:21): [True: 5.63M, False: 1.40M]
  ------------------
   24|  5.63M|    {
   25|  5.63M|        numInputs += (int)(nodeInputs[i] != -1);
   26|  5.63M|    }
   27|  1.40M|    return addNodeToMatch(op, std::vector<int>(&nodeInputs[0], &nodeInputs[0] + numInputs));
   28|  1.40M|}
_ZN2cv3dnn8Subgraph14addNodeToMatchERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS2_6vectorIiNS6_IiEEEE:
   31|  1.41M|{
   32|  2.85M|    for (int i = 0; i < inputs_.size(); ++i)
  ------------------
  |  Branch (32:21): [True: 1.43M, False: 1.41M]
  ------------------
   33|  1.43M|    {
   34|  1.43M|        CV_Assert(inputs_[i] < (int)nodes.size());
  ------------------
  |  |  423|  1.43M|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 1.43M, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   35|  1.43M|    }
   36|  1.41M|    nodes.push_back(op);
   37|  1.41M|    inputs.push_back(inputs_);
   38|  1.41M|    return nodes.size() - 1;
   39|  1.41M|}
_ZN2cv3dnn8Subgraph12setFusedNodeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEiiiiii:
   43|   118k|{
   44|   118k|    int nodeInputs[] = {input_0, input_1, input_2, input_3, input_4, input_5};
   45|   118k|    int numInputs = 0;
   46|   832k|    for (int i = 0; i < 6; ++i)
  ------------------
  |  Branch (46:21): [True: 713k, False: 118k]
  ------------------
   47|   713k|    {
   48|   713k|        CV_Assert(nodeInputs[i] < (int)nodes.size());
  ------------------
  |  |  423|   713k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 713k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   49|   713k|        numInputs += (int)(nodeInputs[i] != -1);
   50|   713k|    }
   51|   118k|    setFusedNode(op, std::vector<int>(&nodeInputs[0], &nodeInputs[0] + numInputs));
   52|   118k|}
_ZN2cv3dnn8Subgraph12setFusedNodeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS2_6vectorIiNS6_IiEEEE:
   55|   124k|{
   56|   124k|    fusedNodeInputs = inputs_;
   57|   124k|    fusedNodeOp = op;
   58|   124k|}
_ZN2cv3dnn8Subgraph14getInputNodeIdERKNS_3PtrINS0_18ImportGraphWrapperEEERKNS2_INS0_17ImportNodeWrapperEEEi:
   63|   114k|{
   64|   114k|    CV_Assert(inpId < node->getNumInputs());
  ------------------
  |  |  423|   114k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 114k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   65|   114k|    std::string name = node->getInputName(inpId);
   66|   114k|    const int numNodes = net->getNumNodes();
   67|   863k|    for (int i = 0; i < numNodes; ++i)
  ------------------
  |  Branch (67:21): [True: 863k, False: 82]
  ------------------
   68|   863k|    {
   69|   863k|        const int numOutputs = net->getNumOutputs(i);
   70|  1.61M|        for (int j = 0; j < numOutputs; j++)
  ------------------
  |  Branch (70:25): [True: 863k, False: 749k]
  ------------------
   71|   863k|        {
   72|   863k|            if (net->getOutputName(i, j) == name)
  ------------------
  |  Branch (72:17): [True: 114k, False: 749k]
  ------------------
   73|   114k|                return i;
   74|   863k|        }
   75|   863k|    }
   76|     82|    CV_Error(Error::StsParseError, "Input node with name " + name + " not found");
  ------------------
  |  |  399|     82|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     82|#define CV_Func __func__
  |  |  ------------------
  ------------------
   77|   114k|}
_ZN2cv3dnn8Subgraph5matchERKNS_3PtrINS0_18ImportGraphWrapperEEEiRNSt3__16vectorIiNS7_9allocatorIiEEEE:
   81|  6.52M|{
   82|  6.52M|    matchedNodesIds.clear();
   83|       |
   84|       |    // Collection of all matchings states across branching.
   85|       |    // If there is no commutative ops in the subgraph - there would be just a single map.
   86|  6.52M|    std::vector<std::shared_ptr<std::map<int, int>>> matchCandidates;
   87|  6.52M|    matchCandidates.push_back(makePtr<std::map<int, int>>());
   88|       |
   89|  6.52M|    struct State
   90|  6.52M|    {
   91|  6.52M|        int nodeToMatch;
   92|  6.52M|        int targetNodeId;
   93|       |        // Every state refers to current matchings pairs as well as
   94|       |        // matchings from parent branches produced by commutative ops.
   95|  6.52M|        std::vector<std::shared_ptr<std::map<int, int>>> matchings;
   96|       |
   97|       |        // When we register a matching pair we should register it in every parent branch.
   98|       |        // This is actual for branching in case of commutative ops only.
   99|  6.52M|        void addMatch(std::pair<int, int> match)
  100|  6.52M|        {
  101|  6.52M|            for (auto& m : matchings)
  102|  6.52M|                m->insert(match);
  103|  6.52M|        }
  104|  6.52M|    };
  105|       |
  106|  6.52M|    std::queue<State> states;
  107|  6.52M|    states.push({nodeId, (int)nodes.size() - 1, matchCandidates});
  108|       |
  109|  13.1M|    while (!states.empty())
  ------------------
  |  Branch (109:12): [True: 6.63M, False: 6.52M]
  ------------------
  110|  6.63M|    {
  111|  6.63M|        auto state = states.front();
  112|  6.63M|        states.pop();
  113|  6.63M|        int nodeToMatch = state.nodeToMatch;
  114|  6.63M|        int targetNodeId = state.targetNodeId;
  115|  6.63M|        auto matchings = state.matchings.back();
  116|       |
  117|  6.63M|        if (matchings->find(targetNodeId) != matchings->end())
  ------------------
  |  Branch (117:13): [True: 0, False: 6.63M]
  ------------------
  118|      0|            continue;
  119|       |
  120|       |        // Empty placeholder matches with any input type
  121|  6.63M|        if (nodes[targetNodeId].empty()) {
  ------------------
  |  Branch (121:13): [True: 13.1k, False: 6.62M]
  ------------------
  122|  13.1k|            state.addMatch({targetNodeId, nodeToMatch});
  123|  13.1k|            continue;
  124|  13.1k|        }
  125|       |
  126|  6.62M|        const Ptr<ImportNodeWrapper> node = net->getNode(nodeToMatch);
  127|  6.62M|        if (node->getType() != nodes[targetNodeId])
  ------------------
  |  Branch (127:13): [True: 6.59M, False: 30.4k]
  ------------------
  128|  6.59M|            continue;
  129|       |
  130|  30.4k|        std::vector<int>& inputNodes = inputs[targetNodeId];
  131|  30.4k|        if (inputNodes.size() != node->getNumInputs())
  ------------------
  |  Branch (131:13): [True: 935, False: 29.4k]
  ------------------
  132|    935|            continue;
  133|       |
  134|  29.4k|        state.addMatch({targetNodeId, nodeToMatch});
  135|       |
  136|  29.4k|        bool isCommutative = net->isCommutativeOp(node->getType());
  137|  29.4k|        if (isCommutative)
  ------------------
  |  Branch (137:13): [True: 28.0k, False: 1.42k]
  ------------------
  138|  28.0k|        {
  139|  28.0k|            if (inputNodes.size() != 2)
  ------------------
  |  Branch (139:17): [True: 0, False: 28.0k]
  ------------------
  140|      0|                CV_Error(Error::StsNotImplemented, "Commutative op fusion with more than 2 inputs");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  141|       |
  142|  28.0k|            auto newMatchings = makePtr<std::map<int, int>>(*matchings);
  143|  28.0k|            matchCandidates.push_back(newMatchings);
  144|  28.0k|            state.matchings.push_back(newMatchings);
  145|  28.0k|            states.push({getInputNodeId(net, node, 0), inputNodes[0], state.matchings});
  146|  28.0k|            states.push({getInputNodeId(net, node, 1), inputNodes[1], state.matchings});
  147|  28.0k|            state.matchings.pop_back();
  148|       |
  149|  28.0k|            newMatchings = makePtr<std::map<int, int>>(*matchings);
  150|  28.0k|            matchCandidates.push_back(newMatchings);
  151|  28.0k|            state.matchings.push_back(newMatchings);
  152|  28.0k|            states.push({getInputNodeId(net, node, 0), inputNodes[1], state.matchings});
  153|  28.0k|            states.push({getInputNodeId(net, node, 1), inputNodes[0], state.matchings});
  154|  28.0k|            state.matchings.pop_back();
  155|  28.0k|        }
  156|  1.42k|        else
  157|  1.42k|        {
  158|  3.78k|            for (int j = 0; j < inputNodes.size(); ++j)
  ------------------
  |  Branch (158:29): [True: 2.35k, False: 1.42k]
  ------------------
  159|  2.35k|            {
  160|  2.35k|                nodeId = getInputNodeId(net, node, j);
  161|  2.35k|                states.push({nodeId, inputNodes[j], state.matchings});
  162|  2.35k|            }
  163|  1.42k|        }
  164|  29.4k|    }
  165|  6.52M|    for (auto& matchings : matchCandidates)
  ------------------
  |  Branch (165:26): [True: 6.58M, False: 6.52M]
  ------------------
  166|  6.58M|    {
  167|  6.58M|        if (matchings->size() != nodes.size())
  ------------------
  |  Branch (167:13): [True: 6.58M, False: 0]
  ------------------
  168|  6.58M|            continue;
  169|      0|        matchedNodesIds.resize(matchings->size());
  170|      0|        for (int i = 0; i < matchings->size(); ++i)
  ------------------
  |  Branch (170:25): [True: 0, False: 0]
  ------------------
  171|      0|        {
  172|      0|            CV_Assert(matchings->find(i) != matchings->end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  173|      0|            matchedNodesIds[i] = matchings->at(i);
  174|      0|        }
  175|      0|        return true;
  176|      0|    }
  177|  6.52M|    return false;
  178|  6.52M|}
_ZN2cv3dnn17simplifySubgraphsERKNS_3PtrINS0_18ImportGraphWrapperEEERKNSt3__16vectorINS1_INS0_8SubgraphEEENS6_9allocatorIS9_EEEE:
  227|  5.66k|{
  228|  5.66k|    int numNodes = net->getNumNodes();
  229|  5.66k|    std::vector<int> matchedNodesIds;
  230|  5.66k|    std::vector<int> nodesToRemove;
  231|   128k|    for (int j = 0; j < patterns.size(); ++j)
  ------------------
  |  Branch (231:21): [True: 123k, False: 5.66k]
  ------------------
  232|   123k|    {
  233|  7.34M|        for (int i = 0; i < numNodes; ++i)
  ------------------
  |  Branch (233:25): [True: 7.22M, False: 123k]
  ------------------
  234|  7.22M|        {
  235|  7.22M|            if (patterns[j]->match(net, i, matchedNodesIds))
  ------------------
  |  Branch (235:17): [True: 0, False: 7.22M]
  ------------------
  236|      0|            {
  237|      0|                patterns[j]->replace(net, matchedNodesIds);
  238|       |                // Remove matched nodes except the last one.
  239|      0|                nodesToRemove.insert(nodesToRemove.end(), matchedNodesIds.begin(), matchedNodesIds.end() - 1);
  240|      0|            }
  241|  7.22M|        }
  242|   123k|    }
  243|       |
  244|  5.66k|    if (nodesToRemove.empty())
  ------------------
  |  Branch (244:9): [True: 5.57k, False: 82]
  ------------------
  245|  5.57k|        return;
  246|       |
  247|       |    // Collect reference counts for every node
  248|     82|    std::vector<int> refcounts(net->getNumNodes(), 0);
  249|     82|    std::map<std::string, int> nodeIds;
  250|       |
  251|       |    // Register node outputs.
  252|       |    // Every usage of one of the node's outputs should be counted.
  253|     82|    for (int nodeId = 0; nodeId < refcounts.size(); ++nodeId) {
  ------------------
  |  Branch (253:26): [True: 0, False: 82]
  ------------------
  254|      0|        for (int i = 0; i < net->getNumOutputs(nodeId); ++i) {
  ------------------
  |  Branch (254:25): [True: 0, False: 0]
  ------------------
  255|      0|            std::string name = net->getOutputName(nodeId, i);
  256|      0|            nodeIds[name] = nodeId;
  257|      0|        }
  258|      0|    }
  259|       |
  260|     82|    for (int nodeId = 0; nodeId < refcounts.size(); ++nodeId) {
  ------------------
  |  Branch (260:26): [True: 0, False: 82]
  ------------------
  261|       |        // Increase counters for node's inputs
  262|      0|        auto node = net->getNode(nodeId);
  263|      0|        for (int i = 0; i < node->getNumInputs(); ++i) {
  ------------------
  |  Branch (263:25): [True: 0, False: 0]
  ------------------
  264|      0|            std::string inpName = node->getInputName(i);
  265|      0|            if (inpName.empty())
  ------------------
  |  Branch (265:17): [True: 0, False: 0]
  ------------------
  266|      0|                continue;
  267|      0|            CV_Assert(nodeIds.find(inpName) != nodeIds.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  268|      0|            refcounts[nodeIds[inpName]] += 1;
  269|      0|        }
  270|      0|    }
  271|       |
  272|       |    // Remove all fused nodes. Indices expected to be in descending order.
  273|     82|    std::sort(nodesToRemove.begin(), nodesToRemove.end(), [](int a, int b) { return a > b; });
  274|     82|    for (int nodeId : nodesToRemove) {
  ------------------
  |  Branch (274:21): [True: 0, False: 82]
  ------------------
  275|      0|        if (refcounts[nodeId] == 0) {
  ------------------
  |  Branch (275:13): [True: 0, False: 0]
  ------------------
  276|       |            // Decrease references to node's inputs and remove node itself
  277|      0|            auto node = net->getNode(nodeId);
  278|      0|            for (int i = 0; i < node->getNumInputs(); ++i) {
  ------------------
  |  Branch (278:29): [True: 0, False: 0]
  ------------------
  279|      0|                std::string inpName = node->getInputName(i);
  280|      0|                refcounts[nodeIds[inpName]] -= 1;
  281|      0|            }
  282|      0|            net->removeNode(nodeId);
  283|      0|            refcounts[nodeId] = -1;  // Same node cannot be removed twice
  284|      0|        }
  285|      0|    }
  286|     82|}
graph_simplifier.cpp:_ZZN2cv3dnn8Subgraph5matchERKNS_3PtrINS0_18ImportGraphWrapperEEEiRNSt3__16vectorIiNS7_9allocatorIiEEEEEN5State8addMatchENS7_4pairIiiEE:
  100|  42.6k|        {
  101|  42.6k|            for (auto& m : matchings)
  ------------------
  |  Branch (101:26): [True: 93.3k, False: 42.6k]
  ------------------
  102|  93.3k|                m->insert(match);
  103|  42.6k|        }

_ZN2cv3dnn18ImportGraphWrapperD2Ev:
   36|  5.66k|    virtual ~ImportGraphWrapper() {}
_ZN2cv3dnn17ImportNodeWrapperD2Ev:
   20|  7.33M|    virtual ~ImportNodeWrapper() {}

_ZN2cv3dnn14dnn4_v2024122322getInitializationMutexEv:
   55|      2|{
   56|      2|    if (__initialization_mutex == NULL)
  ------------------
  |  Branch (56:9): [True: 2, False: 0]
  ------------------
   57|      2|        __initialization_mutex = new Mutex();
   58|      2|    return *__initialization_mutex;
   59|      2|}

_ZN2cv3dnn14dnn4_v202412235LayerC2Ev:
   12|  17.9k|Layer::Layer() { preferableTarget = DNN_TARGET_CPU; }
_ZN2cv3dnn14dnn4_v202412235LayerD2Ev:
  248|  17.9k|Layer::~Layer() {}

_ZN2cv3dnn14dnn4_v202412236detail8LayerPinC2Eii:
   18|  30.8k|        : lid(layerId)
   19|  30.8k|        , oid(outputId)
   20|  30.8k|    {}
_ZN2cv3dnn14dnn4_v202412236detail9LayerDataC2Ev:
   46|  17.9k|        : id(-1)
   47|  17.9k|        , dtype(CV_32F)
  ------------------
  |  |   78|  17.9k|#define CV_32F  5
  ------------------
   48|  17.9k|        , skip(false)
   49|  17.9k|        , flag(0)
   50|  17.9k|    {}
_ZN2cv3dnn14dnn4_v202412236detail9LayerDataC2EiRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEESC_RKiRNS1_11LayerParamsE:
   52|  11.1k|        : id(_id)
   53|  11.1k|        , name(_name)
   54|  11.1k|        , type(_type)
   55|  11.1k|        , dtype(_dtype)
   56|  11.1k|        , params(_params)
   57|  11.1k|        , skip(false)
   58|  11.1k|        , flag(0)
   59|  11.1k|    {
   60|  11.1k|        CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  11.1k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  11.1k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  11.1k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  11.1k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  11.1k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  11.1k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  11.1k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  11.1k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  11.1k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  11.1k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   61|       |
   62|       |        // add logging info
   63|  11.1k|        params.name = name;
   64|  11.1k|        params.type = type;
   65|  11.1k|    }
_ZN2cv3dnn14dnn4_v202412236detail9DataLayerC2Ev:
  130|  17.9k|        : Layer()
  131|  17.9k|    {
  132|  17.9k|        skip = false;
  133|  17.9k|    }
_ZN2cv3dnn14dnn4_v202412236detail9DataLayer8setNamesERKNSt3__16vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEE:
  287|  3.30k|    {
  288|  3.30k|        outNames.assign(names.begin(), names.end());
  289|  3.30k|        shapes.clear();
  290|  3.30k|        shapes.resize(outNames.size());
  291|  3.30k|    }

_ZN2cv3dnn14dnn4_v202412233NetC2Ev:
   14|  17.9k|    : impl(makePtr<Net::Impl>())
   15|  17.9k|{
   16|  17.9k|    setPreferableBackend(DNN_BACKEND_DEFAULT);
   17|  17.9k|}
_ZN2cv3dnn14dnn4_v202412233NetD2Ev:
   20|  21.2k|{
   21|  21.2k|}
_ZN2cv3dnn14dnn4_v202412233Net8addLayerERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEESB_RKiRNS1_11LayerParamsE:
   24|  11.1k|{
   25|  11.1k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  11.1k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  11.1k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  11.1k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  11.1k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  11.1k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  11.1k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  11.1k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  11.1k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  11.1k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  11.1k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   26|  11.1k|    CV_Assert(impl);
  ------------------
  |  |  423|  11.1k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 11.1k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   27|  11.1k|    return impl->addLayer(name, type, dtype, params);
   28|  11.1k|}
_ZN2cv3dnn14dnn4_v202412233Net8addLayerERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEESB_RNS1_11LayerParamsE:
   31|  11.1k|{
   32|  11.1k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  11.1k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  11.1k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  11.1k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  11.1k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  11.1k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  11.1k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  11.1k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  11.1k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  11.1k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  11.1k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  11.1k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  11.1k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   33|  11.1k|    return addLayer(name, type, CV_32F, params);
  ------------------
  |  |   78|  11.1k|#define CV_32F  5
  ------------------
   34|  11.1k|}
_ZN2cv3dnn14dnn4_v202412233Net7connectEiiii:
   50|  10.2k|{
   51|  10.2k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  10.2k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  10.2k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  10.2k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  10.2k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  10.2k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  10.2k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  10.2k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  10.2k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  10.2k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  10.2k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  10.2k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  10.2k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  10.2k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  10.2k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   52|  10.2k|    CV_Assert(impl);
  ------------------
  |  |  423|  10.2k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 10.2k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   53|  10.2k|    impl->connect(outLayerId, outNum, inpLayerId, inpNum);
   54|  10.2k|}
_ZN2cv3dnn14dnn4_v202412233Net20setPreferableBackendEi:
  146|  17.9k|{
  147|  17.9k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  17.9k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  17.9k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  17.9k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  17.9k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  17.9k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  17.9k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  17.9k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  17.9k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  17.9k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  17.9k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  17.9k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  17.9k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  148|  17.9k|    CV_TRACE_ARG(backendId);
  ------------------
  |  |  228|  17.9k|#define CV_TRACE_ARG CV__TRACE_ARG
  |  |  ------------------
  |  |  |  |  199|  17.9k|#define CV__TRACE_ARG(arg_id) CV_TRACE_ARG_VALUE(arg_id, #arg_id, (arg_id))
  |  |  |  |  ------------------
  |  |  |  |  |  |  222|  17.9k|        if (__region_fn.isActive()) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (222:13): [True: 0, False: 17.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  223|  17.9k|        { \
  |  |  |  |  |  |  224|      0|            CV__TRACE_ARG_VALUE(arg_id, arg_name, value); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  196|      0|        CV__TRACE_DEFINE_ARG_(arg_id, arg_name, 0); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  191|      0|    static CV_TRACE_NS::details::TraceArg::ExtraData* CV__TRACE_ARG_EXTRA_VARNAME(arg_id) = 0; \
  |  |  |  |  |  |  |  |  |  |  192|      0|    static const CV_TRACE_NS::details::TraceArg \
  |  |  |  |  |  |  |  |  |  |  193|      0|        CV__TRACE_ARG_VARNAME(arg_id) = { &(CV__TRACE_ARG_EXTRA_VARNAME(arg_id)), name, flags };
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  188|      0|#define CV__TRACE_ARG_EXTRA_VARNAME(arg_id) CVAUX_CONCAT(__cv_trace_arg_extra_ ## arg_id, __LINE__)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  197|      0|        CV_TRACE_NS::details::traceArg((CV__TRACE_ARG_VARNAME(arg_id)), value);
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   36|      0|#define CV_TRACE_NS cv::utils::trace
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV_TRACE_NS::details::traceArg((CV__TRACE_ARG_VARNAME(arg_id)), value);
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  187|      0|#define CV__TRACE_ARG_VARNAME(arg_id) CVAUX_CONCAT(__cv_trace_arg_ ## arg_id, __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  225|      0|        }
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  149|  17.9k|    CV_Assert(impl);
  ------------------
  |  |  423|  17.9k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 17.9k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  150|  17.9k|    return impl->setPreferableBackend(*this, backendId);
  151|  17.9k|}
_ZN2cv3dnn14dnn4_v202412233Net14setInputsNamesERKNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEE:
  162|  3.30k|{
  163|  3.30k|    CV_TRACE_FUNCTION();
  ------------------
  |  |  207|  3.30k|#define CV_TRACE_FUNCTION CV__TRACE_OPENCV_FUNCTION
  |  |  ------------------
  |  |  |  |  151|  3.30k|    CV__TRACE_DEFINE_LOCATION_FN(CV__TRACE_FUNCTION, 0); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|  3.30k|#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  3.30k|    static CV_TRACE_NS::details::Region::LocationExtraData* CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) = 0; \
  |  |  |  |  |  |  |  |  144|  3.30k|    static const CV_TRACE_NS::details::Region::LocationStaticStorage \
  |  |  |  |  |  |  |  |  145|  3.30k|        CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  140|  3.30k|#define CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_extra_, loc_id) , __LINE__)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|  3.30k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  114|  3.30k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                       CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags};
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   53|  3.30k|# define CV_TRACE_FILENAME __FILE__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  152|  3.30k|    const CV_TRACE_NS::details::Region __region_fn(CV__TRACE_LOCATION_VARNAME(fn));
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  3.30k|#define CV__TRACE_LOCATION_VARNAME(loc_id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_trace_location_, loc_id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  3.30k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  3.30k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  164|  3.30k|    CV_Assert(impl);
  ------------------
  |  |  423|  3.30k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 3.30k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  165|  3.30k|    return impl->setInputsNames(inputBlobNames);
  166|  3.30k|}

_ZN2cv3dnn14dnn4_v202412236detail11NetImplBaseC2Ev:
   18|  17.9k|    : networkId(CV_XADD(&g_networkId, 1))
  ------------------
  |  |  702|  17.9k|#      define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
  ------------------
   19|  17.9k|    , networkDumpCounter(0)
   20|  17.9k|    , dumpLevel(getParam_DNN_NETWORK_DUMP())
   21|  17.9k|{
   22|       |    // nothing
   23|  17.9k|}
_ZN2cv3dnn14dnn4_v202412233Net4ImplD2Ev:
   34|  17.9k|{
   35|       |#ifdef HAVE_VULKAN
   36|       |    if (context)
   37|       |        context->reset();
   38|       |#endif
   39|  17.9k|}
_ZN2cv3dnn14dnn4_v202412233Net4ImplC2Ev:
   43|  17.9k|{
   44|       |    // allocate fake net input layer
   45|  17.9k|    netInputLayer = Ptr<DataLayer>(new DataLayer());
   46|  17.9k|    LayerData& inpl = layers.insert(make_pair(0, LayerData())).first->second;
   47|  17.9k|    inpl.id = 0;
   48|  17.9k|    netInputLayer->name = inpl.name = "_input";
   49|  17.9k|    inpl.type = "__NetInputLayer__";
   50|  17.9k|    inpl.layerInstance = netInputLayer;
   51|  17.9k|    layerNameToId.insert(std::make_pair(inpl.name, inpl.id));
   52|       |
   53|  17.9k|    lastLayerId = 0;
   54|  17.9k|    netWasAllocated = false;
   55|  17.9k|    netWasQuantized = false;
   56|  17.9k|    fusion = true;
   57|  17.9k|    isAsync = false;
   58|  17.9k|    preferableBackend = (Backend)getParam_DNN_BACKEND_DEFAULT();
   59|  17.9k|    preferableTarget = DNN_TARGET_CPU;
   60|  17.9k|    hasDynamicShapes = false;
   61|  17.9k|    useWinograd = true;
   62|  17.9k|}
_ZNK2cv3dnn14dnn4_v202412233Net4Impl10getLayerIdERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  242|  11.1k|{
  243|  11.1k|    std::map<String, int>::const_iterator it = layerNameToId.find(layerName);
  244|  11.1k|    return (it != layerNameToId.end()) ? it->second : -1;
  ------------------
  |  Branch (244:12): [True: 28, False: 11.1k]
  ------------------
  245|  11.1k|}
_ZNK2cv3dnn14dnn4_v202412233Net4Impl12getLayerDataEi:
  275|  20.5k|{
  276|  20.5k|    MapIdToLayerData::const_iterator it = layers.find(id);
  277|       |
  278|  20.5k|    if (it == layers.end())
  ------------------
  |  Branch (278:9): [True: 0, False: 20.5k]
  ------------------
  279|      0|        CV_Error(Error::StsObjectNotFound, format("Layer with requested id=%d not found", id));
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  280|       |
  281|  20.5k|    return const_cast<LayerData&>(it->second);
  282|  20.5k|}
_ZN2cv3dnn14dnn4_v202412233Net4Impl13addLayerInputERNS1_6detail9LayerDataEiNS4_8LayerPinE:
  308|  10.2k|{
  309|  10.2k|    if ((int)ld.inputBlobsId.size() <= inNum)
  ------------------
  |  Branch (309:9): [True: 10.2k, False: 0]
  ------------------
  310|  10.2k|    {
  311|  10.2k|        ld.inputBlobsId.resize(inNum + 1);
  312|  10.2k|    }
  313|      0|    else
  314|      0|    {
  315|      0|        LayerPin storedFrom = ld.inputBlobsId[inNum];
  316|      0|        if (storedFrom.valid() && !storedFrom.equal(from))
  ------------------
  |  Branch (316:13): [True: 0, False: 0]
  |  Branch (316:35): [True: 0, False: 0]
  ------------------
  317|      0|            CV_Error(Error::StsError, format("Input #%d of layer \"%s\" already was connected",
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  318|      0|                                             inNum, ld.name.c_str()));
  319|      0|    }
  320|       |
  321|  10.2k|    ld.inputBlobsId[inNum] = from;
  322|  10.2k|}
_ZN2cv3dnn14dnn4_v202412233Net4Impl8addLayerERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEESC_RKiRNS1_11LayerParamsE:
  366|  11.1k|{
  367|  11.1k|    int id = getLayerId(name);
  368|  11.1k|    if (id >= 0)
  ------------------
  |  Branch (368:9): [True: 28, False: 11.1k]
  ------------------
  369|     28|    {
  370|     28|        if (!DNN_DIAGNOSTICS_RUN || type != "NotImplemented")
  ------------------
  |  Branch (370:13): [True: 28, False: 0]
  |  Branch (370:37): [True: 0, False: 0]
  ------------------
  371|     28|        {
  372|     28|            CV_Error(Error::StsBadArg, "Layer \"" + name + "\" already into net");
  ------------------
  |  |  399|     28|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     28|#define CV_Func __func__
  |  |  ------------------
  ------------------
  373|      0|            return -1;
  374|     28|        }
  375|      0|        else
  376|      0|        {
  377|      0|            LayerData& ld = layers.find(id)->second;
  378|      0|            ld.type = type;
  379|      0|            ld.params = params;
  380|      0|            return -1;
  381|      0|        }
  382|     28|    }
  383|       |
  384|  11.1k|    id = ++lastLayerId;
  385|  11.1k|    layerNameToId.insert(std::make_pair(name, id));
  386|  11.1k|    layers.insert(std::make_pair(id, LayerData(id, name, type, dtype, params)));
  387|  11.1k|    if (params.get<bool>("has_dynamic_shapes", false))
  ------------------
  |  Branch (387:9): [True: 63, False: 11.0k]
  ------------------
  388|     63|        hasDynamicShapes = true;
  389|       |
  390|  11.1k|    if (dtype == CV_8S)
  ------------------
  |  |   74|  11.1k|#define CV_8S   1
  ------------------
  |  Branch (390:9): [True: 0, False: 11.1k]
  ------------------
  391|      0|        netWasQuantized = true;
  392|       |
  393|  11.1k|    return id;
  394|  11.1k|}
_ZN2cv3dnn14dnn4_v202412233Net4Impl7connectEiiii:
  407|  10.2k|{
  408|  10.2k|    CV_Assert(outLayerId < inLayerId);
  ------------------
  |  |  423|  10.2k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      4|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 10.2k, False: 4]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  409|  10.2k|    LayerData& ldOut = getLayerData(outLayerId);
  410|  10.2k|    LayerData& ldInp = getLayerData(inLayerId);
  411|       |
  412|  10.2k|    addLayerInput(ldInp, inNum, LayerPin(outLayerId, outNum));
  413|  10.2k|    ldOut.requiredOutputs.insert(outNum);
  414|  10.2k|    ldOut.consumers.push_back(LayerPin(inLayerId, outNum));
  415|       |
  416|  10.2k|    CV_LOG_VERBOSE(NULL, 0, "DNN: connect(" << outLayerId << ":" << outNum << " ==> " << inLayerId << ":" << inNum << ")");
  417|  10.2k|}
_ZN2cv3dnn14dnn4_v202412233Net4Impl14setInputsNamesERKNSt3__16vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEE:
 1384|  3.30k|{
 1385|  3.30k|    CV_Assert(netInputLayer);
  ------------------
  |  |  423|  3.30k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 3.30k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1386|  3.30k|    netInputLayer->setNames(inputBlobNames);
 1387|  3.30k|}

_ZN2cv3dnn14dnn4_v202412233Net4Impl20setPreferableBackendERS2_i:
  170|  17.9k|{
  171|  17.9k|    if (backendId == DNN_BACKEND_DEFAULT)
  ------------------
  |  Branch (171:9): [True: 17.9k, False: 0]
  ------------------
  172|  17.9k|        backendId = (Backend)getParam_DNN_BACKEND_DEFAULT();
  173|       |
  174|  17.9k|    if (backendId == DNN_BACKEND_INFERENCE_ENGINE)
  ------------------
  |  Branch (174:9): [True: 0, False: 17.9k]
  ------------------
  175|      0|        backendId = DNN_BACKEND_INFERENCE_ENGINE_NGRAPH;  // = getInferenceEngineBackendTypeParam();
  176|       |
  177|  17.9k|    if (netWasQuantized && backendId != DNN_BACKEND_OPENCV && backendId != DNN_BACKEND_TIMVX &&
  ------------------
  |  Branch (177:9): [True: 0, False: 17.9k]
  |  Branch (177:28): [True: 0, False: 0]
  |  Branch (177:63): [True: 0, False: 0]
  ------------------
  178|  17.9k|        backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH)
  ------------------
  |  Branch (178:9): [True: 0, False: 0]
  ------------------
  179|      0|    {
  180|      0|        CV_LOG_WARNING(NULL, "DNN: Only default, TIMVX and OpenVINO backends support quantized networks");
  ------------------
  |  |  169|      0|#define CV_LOG_WARNING(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_WARNING, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#   define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
  181|      0|        backendId = DNN_BACKEND_OPENCV;
  182|      0|    }
  183|       |#ifdef HAVE_DNN_NGRAPH
  184|       |    if (netWasQuantized && backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && INF_ENGINE_VER_MAJOR_LT(INF_ENGINE_RELEASE_2023_0))
  185|       |    {
  186|       |        CV_LOG_WARNING(NULL, "DNN: OpenVINO 2023.0 and higher is required to supports quantized networks");
  187|       |        backendId = DNN_BACKEND_OPENCV;
  188|       |    }
  189|       |#endif
  190|       |
  191|  17.9k|    if (preferableBackend != backendId)
  ------------------
  |  Branch (191:9): [True: 0, False: 17.9k]
  ------------------
  192|      0|    {
  193|      0|        clear();
  194|      0|        if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH)
  ------------------
  |  Branch (194:13): [True: 0, False: 0]
  ------------------
  195|      0|        {
  196|       |#if defined(HAVE_INF_ENGINE)
  197|       |            switchToOpenVINOBackend(net);
  198|       |#elif defined(ENABLE_PLUGINS)
  199|       |            auto& networkBackend = dnn_backend::createPluginDNNNetworkBackend("openvino");
  200|      0|            networkBackend.switchBackend(net);
  201|       |#else
  202|       |            CV_Error(Error::StsNotImplemented, "OpenVINO backend is not available in the current OpenCV build");
  203|       |#endif
  204|      0|        }
  205|      0|        else if (backendId == DNN_BACKEND_CANN)
  ------------------
  |  Branch (205:18): [True: 0, False: 0]
  ------------------
  206|      0|        {
  207|       |#ifdef HAVE_CANN
  208|       |            switchToCannBackend(net);
  209|       |#else
  210|      0|            CV_Error(Error::StsNotImplemented, "CANN backend is not availlable in the current OpenCV build");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  211|      0|#endif
  212|      0|        }
  213|      0|        else
  214|      0|        {
  215|      0|            preferableBackend = backendId;
  216|      0|        }
  217|      0|    }
  218|  17.9k|}

_ZN2cv3dnn14dnn4_v2024122317simplifySubgraphsERN17opencv_tensorflow8GraphDefE:
  777|  5.66k|{
  778|  5.66k|    std::vector<Ptr<Subgraph> > subgraphs;
  779|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new BatchNormSubgraph()));
  780|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new BatchNormNoGammaSubgraph()));
  781|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new FlattenSubgraph()));
  782|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new FlattenShapeSubgraph()));
  783|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new SoftMaxKerasSubgraph()));
  784|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ReLU6KerasSubgraph()));
  785|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ReshapeKerasSubgraph(3)));
  786|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new L2NormalizeSubgraph()));
  787|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new DeconvolutionValidKerasSubgraph()));
  788|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new DeconvolutionSameKerasSubgraph()));
  789|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ResizeBilinearSubgraph()));
  790|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new UpsamplingKerasSubgraph("ResizeNearestNeighbor")));
  791|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new UpsamplingKerasSubgraph("ResizeBilinear")));
  792|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new SoftMaxSlimSubgraph()));
  793|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new SoftMaxSlimV2Subgraph()));
  794|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ReshapeAsShapeSubgraph()));
  795|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new KerasMVNSubgraph()));
  796|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new PReLUSubgraph(true)));
  797|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new PReLUSubgraph(false)));
  798|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new FlattenProdSubgraph()));
  799|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ResizeBilinearSubgraphDown()));
  800|  5.66k|    subgraphs.push_back(Ptr<Subgraph>(new ClipByValueSubgraph()));
  801|       |
  802|   713k|    for (int i = 0; i < net.node_size(); ++i)
  ------------------
  |  Branch (802:21): [True: 708k, False: 5.66k]
  ------------------
  803|   708k|    {
  804|   708k|        tensorflow::NodeDef* layer = net.mutable_node(i);
  805|   708k|        if (layer->op() == "AddV2")
  ------------------
  |  Branch (805:13): [True: 2.48k, False: 705k]
  ------------------
  806|  2.48k|            layer->set_op("Add");
  807|   708k|    }
  808|       |
  809|  5.66k|    simplifySubgraphs(Ptr<ImportGraphWrapper>(new TFGraphWrapper(net)), subgraphs);
  810|  5.66k|}
_ZN2cv3dnn14dnn4_v2024122317RemoveIdentityOpsERN17opencv_tensorflow8GraphDefE:
  813|  5.72k|{
  814|  5.72k|    typedef std::map<String, String>  IdentityOpsMap;
  815|  5.72k|    IdentityOpsMap identity_ops;
  816|       |
  817|  5.72k|    std::vector<int> identity_ops_idx;
  818|       |
  819|  5.72k|    int layersCount = net.node_size();
  820|   718k|    for (int li = 0; li < layersCount; li++)
  ------------------
  |  Branch (820:22): [True: 713k, False: 5.72k]
  ------------------
  821|   713k|    {
  822|   713k|        const tensorflow::NodeDef &layer = net.node(li);
  823|   713k|        String type = layer.op();
  824|       |
  825|   713k|        if (type == "Identity" || type == "Dropout" || type == "PlaceholderWithDefault") {
  ------------------
  |  Branch (825:13): [True: 1.85k, False: 711k]
  |  Branch (825:35): [True: 2.75k, False: 708k]
  |  Branch (825:56): [True: 195, False: 708k]
  ------------------
  826|  4.80k|            identity_ops_idx.push_back(li);
  827|  4.80k|            CV_Assert(layer.input_size() != 0);
  ------------------
  |  |  423|  4.80k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      5|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 4.79k, False: 5]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  828|  4.79k|            identity_ops[layer.name()] = layer.input(0);
  829|  4.79k|        }
  830|   713k|    }
  831|       |
  832|   717k|    for (int li = 0; li < layersCount; li++)
  ------------------
  |  Branch (832:22): [True: 712k, False: 5.66k]
  ------------------
  833|   712k|    {
  834|   712k|        tensorflow::NodeDef* layer = net.mutable_node(li);
  835|   755k|        for (int input_id = 0; input_id < layer->input_size(); input_id++) {
  ------------------
  |  Branch (835:32): [True: 43.6k, False: 712k]
  ------------------
  836|  43.6k|            String input_op_name = layer->input(input_id);
  837|  43.6k|            input_op_name = input_op_name.substr(input_op_name.find('^') + 1,
  838|  43.6k|                                                 input_op_name.rfind(':'));
  839|  43.6k|            IdentityOpsMap::iterator it = identity_ops.find(input_op_name);
  840|       |
  841|  43.6k|            if (it != identity_ops.end()) {
  ------------------
  |  Branch (841:17): [True: 9.58k, False: 34.0k]
  ------------------
  842|  9.58k|                std::set<String> loopCheckSet;
  843|       |                // In case of Identity after Identity
  844|  22.1k|                while (true)
  ------------------
  |  Branch (844:24): [Folded - Ignored]
  ------------------
  845|  22.1k|                {
  846|  22.1k|                    IdentityOpsMap::iterator nextIt = identity_ops.find(it->second);
  847|  22.1k|                    if (nextIt != identity_ops.end())
  ------------------
  |  Branch (847:25): [True: 12.6k, False: 9.52k]
  ------------------
  848|  12.6k|                    {
  849|       |                        // Loop check
  850|  12.6k|                        if (loopCheckSet.find(it->second) != loopCheckSet.end())
  ------------------
  |  Branch (850:29): [True: 64, False: 12.5k]
  ------------------
  851|     64|                            CV_Error(Error::StsError, "Found a loop in your input Tensorflow model, which is illegal!");
  ------------------
  |  |  399|     64|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     64|#define CV_Func __func__
  |  |  ------------------
  ------------------
  852|  12.5k|                        loopCheckSet.insert(it->second);
  853|  12.5k|                        it = nextIt;
  854|  12.5k|                    }
  855|  9.52k|                    else
  856|  9.52k|                        break;
  857|  22.1k|                }
  858|  9.52k|                layer->set_input(input_id, it->second);
  859|  9.52k|            }
  860|  43.6k|        }
  861|   712k|    }
  862|       |
  863|  5.66k|    std::sort(identity_ops_idx.begin(), identity_ops_idx.end());
  864|       |
  865|  5.66k|    int removed_nodes = 0;
  866|  9.56k|    for(size_t i = 0; i < identity_ops_idx.size(); i++) {
  ------------------
  |  Branch (866:23): [True: 3.90k, False: 5.66k]
  ------------------
  867|  3.90k|        int start_id = identity_ops_idx[i] - removed_nodes;
  868|  3.90k|        net.mutable_node()->DeleteSubrange(start_id, 1);
  869|  3.90k|        removed_nodes++;
  870|  3.90k|    }
  871|  5.66k|}
_ZN2cv3dnn14dnn4_v2024122320sortByExecutionOrderERN17opencv_tensorflow8GraphDefE:
 1000|  5.57k|{
 1001|       |    // Maps node's name to index at net.node() list.
 1002|  5.57k|    std::map<std::string, int> nodesMap;
 1003|  5.57k|    std::map<std::string, int>::iterator nodesMapIt;
 1004|   130k|    for (int i = 0; i < net.node_size(); ++i)
  ------------------
  |  Branch (1004:21): [True: 124k, False: 5.57k]
  ------------------
 1005|   124k|    {
 1006|   124k|        const tensorflow::NodeDef& node = net.node(i);
 1007|   124k|        nodesMap.insert(std::make_pair(node.name(), i));
 1008|   124k|    }
 1009|       |
 1010|  5.57k|    CV_CheckEQ(nodesMap.size(), (size_t)net.node_size(), "Node names must be unique");
  ------------------
  |  |  118|  5.57k|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|  5.57k|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|  5.57k|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|  1.11k|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|  1.11k|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|  1.11k|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|  1.11k|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|  1.11k|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|  1.11k|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|  1.11k|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|  1.11k|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|  1.11k|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|  1.11k|    } \
  |  |  |  |  104|  5.57k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1011|       |    // Indices of nodes which use specific node as input.
 1012|  4.46k|    std::vector<std::vector<int> > edges(nodesMap.size());
 1013|  4.46k|    std::vector<int> numRefsToAdd(nodesMap.size(), 0);
 1014|  4.46k|    std::vector<int> nodesToAdd;
 1015|  18.5k|    for (int i = 0; i < net.node_size(); ++i)
  ------------------
  |  Branch (1015:21): [True: 14.1k, False: 4.46k]
  ------------------
 1016|  14.1k|    {
 1017|  14.1k|        const tensorflow::NodeDef& node = net.node(i);
 1018|  14.1k|        int numInputsInGraph = 0;
 1019|  34.2k|        for (int j = 0; j < node.input_size(); ++j)
  ------------------
  |  Branch (1019:25): [True: 20.1k, False: 14.1k]
  ------------------
 1020|  20.1k|        {
 1021|  20.1k|            std::string inpName = node.input(j);
 1022|  20.1k|            inpName = inpName.substr(0, inpName.rfind(':'));
 1023|  20.1k|            inpName = inpName.substr(inpName.find('^') + 1);
 1024|       |
 1025|  20.1k|            nodesMapIt = nodesMap.find(inpName);
 1026|  20.1k|            if (nodesMapIt != nodesMap.end())
  ------------------
  |  Branch (1026:17): [True: 15.2k, False: 4.85k]
  ------------------
 1027|  15.2k|            {
 1028|  15.2k|                edges.at(nodesMapIt->second).push_back(i);
 1029|  15.2k|                numInputsInGraph += 1;
 1030|  15.2k|            }
 1031|  20.1k|        }
 1032|  14.1k|        if (numInputsInGraph == 0)
  ------------------
  |  Branch (1032:13): [True: 11.1k, False: 3.00k]
  ------------------
 1033|  11.1k|            nodesToAdd.push_back(i);
 1034|  3.00k|        else
 1035|  3.00k|        {
 1036|  3.00k|            if (node.op() == "Merge" || node.op() == "RefMerge" || node.op() == "NoOp")
  ------------------
  |  Branch (1036:17): [True: 0, False: 3.00k]
  |  Branch (1036:41): [True: 32, False: 2.97k]
  |  Branch (1036:68): [True: 0, False: 2.97k]
  ------------------
 1037|     32|            {
 1038|     32|                int numControlEdges = 0;
 1039|    234|                for (int j = 0; j < numInputsInGraph; ++j)
  ------------------
  |  Branch (1039:33): [True: 202, False: 32]
  ------------------
 1040|    202|                    numControlEdges += node.input(j).at(0) == '^';
 1041|     32|                numRefsToAdd.at(i) = numControlEdges + 1;
 1042|     32|            }
 1043|  2.97k|            else
 1044|  2.97k|                numRefsToAdd.at(i) = numInputsInGraph;
 1045|  3.00k|        }
 1046|  14.1k|    }
 1047|       |
 1048|  4.46k|    std::vector<int> permIds;
 1049|  4.46k|    permIds.reserve(net.node_size());
 1050|  18.2k|    while (!nodesToAdd.empty())
  ------------------
  |  Branch (1050:12): [True: 13.8k, False: 4.46k]
  ------------------
 1051|  13.8k|    {
 1052|  13.8k|        int nodeToAdd = nodesToAdd.back();
 1053|  13.8k|        nodesToAdd.pop_back();
 1054|       |
 1055|  13.8k|        permIds.push_back(nodeToAdd);
 1056|  27.2k|        for (int i = 0; i < edges.at(nodeToAdd).size(); ++i)
  ------------------
  |  Branch (1056:25): [True: 13.4k, False: 13.8k]
  ------------------
 1057|  13.4k|        {
 1058|  13.4k|            int consumerId = edges.at(nodeToAdd).at(i);
 1059|  13.4k|            if (numRefsToAdd.at(consumerId) > 0)
  ------------------
  |  Branch (1059:17): [True: 13.3k, False: 151]
  ------------------
 1060|  13.3k|            {
 1061|  13.3k|                if (numRefsToAdd.at(consumerId) == 1)
  ------------------
  |  Branch (1061:21): [True: 2.70k, False: 10.6k]
  ------------------
 1062|  2.70k|                    nodesToAdd.push_back(consumerId);
 1063|  10.6k|                else
 1064|  10.6k|                    CV_Assert(numRefsToAdd.at(consumerId) >= 0);
  ------------------
  |  |  423|  10.6k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 10.6k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1065|  13.3k|                numRefsToAdd.at(consumerId) -= 1;
 1066|  13.3k|            }
 1067|  13.4k|        }
 1068|  13.8k|    }
 1069|  4.46k|    CV_Assert(permIds.size() == net.node_size());
  ------------------
  |  |  423|  4.46k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|    211|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 4.25k, False: 211]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1070|  4.25k|    permute(net.mutable_node(), permIds);
 1071|  4.25k|}
_ZN2cv3dnn14dnn4_v2024122319removePhaseSwitchesERN17opencv_tensorflow8GraphDefE:
 1075|  6.11k|{
 1076|  6.11k|    std::vector<int> nodesToRemove;
 1077|  6.11k|    std::map<std::string, int> nodesMap;
 1078|  6.11k|    std::map<std::string, int>::iterator nodesMapIt;
 1079|  6.11k|    std::queue<int> mergeOpSubgraphNodes;
 1080|   816k|    for (int i = 0; i < net.node_size(); ++i)
  ------------------
  |  Branch (1080:21): [True: 810k, False: 6.10k]
  ------------------
 1081|   810k|    {
 1082|   810k|        const tensorflow::NodeDef& node = net.node(i);
 1083|   810k|        nodesMap.insert(std::make_pair(node.name(), i));
 1084|   810k|        if (node.op() == "Switch" || node.op() == "Merge" || node.op() == "NoOp")
  ------------------
  |  Branch (1084:13): [True: 294, False: 810k]
  |  Branch (1084:38): [True: 14.6k, False: 795k]
  |  Branch (1084:62): [True: 78.0k, False: 717k]
  ------------------
 1085|  92.9k|        {
 1086|  92.9k|            CV_Assert(node.input_size() > 0);
  ------------------
  |  |  423|  92.9k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      8|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 92.9k, False: 8]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1087|       |            // Replace consumers' inputs.
 1088|   288M|            for (int j = 0; j < net.node_size(); ++j)
  ------------------
  |  Branch (1088:29): [True: 287M, False: 92.9k]
  ------------------
 1089|   287M|            {
 1090|   287M|                tensorflow::NodeDef* consumer = net.mutable_node(j);
 1091|   582M|                for (int k = 0; k < consumer->input_size(); ++k)
  ------------------
  |  Branch (1091:33): [True: 294M, False: 287M]
  ------------------
 1092|   294M|                {
 1093|   294M|                    std::string inpName = consumer->input(k);
 1094|   294M|                    inpName = inpName.substr(0, inpName.rfind(':'));
 1095|   294M|                    if (inpName == node.name())
  ------------------
  |  Branch (1095:25): [True: 215M, False: 78.0M]
  ------------------
 1096|   215M|                    {
 1097|   215M|                        consumer->set_input(k, node.input(0));
 1098|   215M|                    }
 1099|   294M|                }
 1100|   287M|            }
 1101|  92.9k|            nodesToRemove.push_back(i);
 1102|  92.9k|            if (node.op() == "Merge" || node.op() == "Switch" || node.op() == "NoOp")
  ------------------
  |  Branch (1102:17): [True: 14.6k, False: 78.2k]
  |  Branch (1102:41): [True: 293, False: 77.9k]
  |  Branch (1102:66): [True: 77.9k, False: 0]
  ------------------
 1103|  92.9k|                mergeOpSubgraphNodes.push(i);
 1104|  92.9k|        }
 1105|   810k|    }
 1106|       |
 1107|  6.10k|    std::vector<int> numConsumers(net.node_size(), 0);
 1108|   797k|    for (int i = 0; i < net.node_size(); ++i)
  ------------------
  |  Branch (1108:21): [True: 792k, False: 5.85k]
  ------------------
 1109|   792k|    {
 1110|   792k|        const tensorflow::NodeDef& node = net.node(i);
 1111|   927k|        for (int j = 0; j < node.input_size(); ++j)
  ------------------
  |  Branch (1111:25): [True: 135k, False: 791k]
  ------------------
 1112|   135k|        {
 1113|   135k|            std::string inpName = node.input(j);
 1114|   135k|            inpName = inpName.substr(1 + (int)inpName.find('^'), inpName.rfind(':'));
 1115|   135k|            nodesMapIt = nodesMap.find(inpName);
 1116|   135k|            CV_Assert(nodesMapIt != nodesMap.end());
  ------------------
  |  |  423|   135k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|    249|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 135k, False: 249]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1117|   135k|            numConsumers[nodesMapIt->second] += 1;
 1118|   135k|        }
 1119|   792k|    }
 1120|       |
 1121|       |    // Remove subgraphs of unused nodes which are terminated by Merge nodes.
 1122|  76.5k|    while (!mergeOpSubgraphNodes.empty())
  ------------------
  |  Branch (1122:12): [True: 70.7k, False: 5.72k]
  ------------------
 1123|  70.7k|    {
 1124|  70.7k|        const tensorflow::NodeDef& node = net.node(mergeOpSubgraphNodes.front());
 1125|  70.7k|        mergeOpSubgraphNodes.pop();
 1126|   151k|        for (int i = 0; i < node.input_size(); ++i)
  ------------------
  |  Branch (1126:25): [True: 80.6k, False: 70.6k]
  ------------------
 1127|  80.6k|        {
 1128|  80.6k|            std::string inpName = node.input(i);
 1129|  80.6k|            inpName = inpName.substr(1 + (int)inpName.find('^'), inpName.rfind(':'));
 1130|  80.6k|            nodesMapIt = nodesMap.find(inpName);
 1131|  80.6k|            CV_Assert(nodesMapIt != nodesMap.end());
  ------------------
  |  |  423|  80.6k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 80.6k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1132|  80.6k|            int inpNodeId = nodesMapIt->second;
 1133|       |
 1134|  80.6k|            CV_CheckGT(numConsumers[inpNodeId], 0,
  ------------------
  |  |  123|  80.6k|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|  80.6k|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|  80.6k|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|    130|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|    130|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|    130|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|    130|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|    130|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|    130|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|    130|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|    130|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|    130|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|    130|    } \
  |  |  |  |  104|  80.6k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1135|  80.5k|                       "Input node of the current node should have at least one output node");
 1136|  80.5k|            if (numConsumers[inpNodeId] == 1)
  ------------------
  |  Branch (1136:17): [True: 245, False: 80.3k]
  ------------------
 1137|    245|            {
 1138|    245|                mergeOpSubgraphNodes.push(inpNodeId);
 1139|    245|                nodesToRemove.push_back(inpNodeId);
 1140|    245|            }
 1141|  80.5k|            numConsumers[inpNodeId] -= 1;
 1142|  80.5k|        }
 1143|  70.7k|    }
 1144|  5.72k|    std::sort(nodesToRemove.begin(), nodesToRemove.end());
 1145|  60.9k|    for (int i = nodesToRemove.size() - 1; i >= 0; --i)
  ------------------
  |  Branch (1145:44): [True: 55.2k, False: 5.72k]
  ------------------
 1146|  55.2k|    {
 1147|  55.2k|        if (nodesToRemove[i] < net.node_size())  // Ids might be repeated.
  ------------------
  |  Branch (1147:13): [True: 55.2k, False: 1]
  ------------------
 1148|  55.2k|            net.mutable_node()->DeleteSubrange(nodesToRemove[i], 1);
 1149|  55.2k|    }
 1150|  5.72k|}
_ZN2cv3dnn14dnn4_v2024122317BatchNormSubgraphC2Ev:
  133|  5.66k|    {
  134|  5.66k|        int input = addNodeToMatch("");
  135|  5.66k|        int epsilon = addNodeToMatch("Const");
  136|  5.66k|        int moving_variance = addNodeToMatch("Const");
  137|  5.66k|        int moving_mean = addNodeToMatch("Const");
  138|  5.66k|        int beta = addNodeToMatch("Const");
  139|  5.66k|        int gamma = addNodeToMatch("Const");
  140|  5.66k|        int add = addNodeToMatch("Add", moving_variance, epsilon);
  141|  5.66k|        int rsqrt = addNodeToMatch("Rsqrt", add);
  142|  5.66k|        int mul = addNodeToMatch("Mul", rsqrt, gamma);
  143|  5.66k|        int mul_1 = addNodeToMatch("Mul", input, mul);
  144|  5.66k|        int mul_2 = addNodeToMatch("Mul", moving_mean, mul);
  145|  5.66k|        int sub = addNodeToMatch("Sub", beta, mul_2);
  146|  5.66k|        addNodeToMatch("Add", mul_1, sub);
  147|       |
  148|  5.66k|        setFusedNode("FusedBatchNorm", input, gamma, beta, moving_mean, moving_variance, epsilon);
  149|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122324BatchNormNoGammaSubgraphC2Ev:
  169|  5.66k|    {
  170|  5.66k|        int input = addNodeToMatch("");
  171|  5.66k|        int epsilon = addNodeToMatch("Const");
  172|  5.66k|        int moving_variance = addNodeToMatch("Const");
  173|  5.66k|        int moving_mean = addNodeToMatch("Const");
  174|  5.66k|        int beta = addNodeToMatch("Const");
  175|  5.66k|        int add = addNodeToMatch("Add", moving_variance, epsilon);
  176|  5.66k|        int rsqrt = addNodeToMatch("Rsqrt", add);
  177|  5.66k|        int mul = addNodeToMatch("Mul", input, rsqrt);
  178|  5.66k|        int mul_1 = addNodeToMatch("Mul", moving_mean, rsqrt);
  179|  5.66k|        int sub = addNodeToMatch("Sub", beta, mul_1);
  180|  5.66k|        addNodeToMatch("Add", mul, sub);
  181|       |
  182|       |        // There is a fake reference to beta that will be replaced to a new gamma tensor.
  183|  5.66k|        setFusedNode("FusedBatchNorm", input, beta, beta, moving_mean, moving_variance, epsilon);
  184|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122315FlattenSubgraphC2Ev:
  212|  5.66k|    {
  213|  5.66k|        int input = addNodeToMatch("");
  214|  5.66k|        int shape = addNodeToMatch("Const");
  215|  5.66k|        int stack = addNodeToMatch("Const");
  216|  5.66k|        int stack_1 = addNodeToMatch("Const");
  217|  5.66k|        int stack_2 = addNodeToMatch("Const");
  218|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  219|  5.66k|        int shape_pack = addNodeToMatch("Const");
  220|  5.66k|        int pack = addNodeToMatch("Pack", strided_slice, shape_pack);
  221|  5.66k|        addNodeToMatch("Reshape", input, pack);
  222|       |
  223|  5.66k|        setFusedNode("Flatten", input);
  224|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122320FlattenShapeSubgraphC2Ev:
  232|  5.66k|    {
  233|  5.66k|        int input = addNodeToMatch("");
  234|  5.66k|        int shape = addNodeToMatch("Shape", input);
  235|  5.66k|        int stack = addNodeToMatch("Const");
  236|  5.66k|        int stack_1 = addNodeToMatch("Const");
  237|  5.66k|        int stack_2 = addNodeToMatch("Const");
  238|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  239|  5.66k|        int shape_pack = addNodeToMatch("Const");
  240|  5.66k|        int pack = addNodeToMatch("Pack", strided_slice, shape_pack);
  241|  5.66k|        addNodeToMatch("Reshape", input, pack);
  242|       |
  243|  5.66k|        setFusedNode("Flatten", input);
  244|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122320SoftMaxKerasSubgraphC2Ev:
  272|  5.66k|    {
  273|  5.66k|        int input = addNodeToMatch("");
  274|  5.66k|        int maxReductionIndices = addNodeToMatch("Const");
  275|  5.66k|        int smMax = addNodeToMatch("Max", input, maxReductionIndices);
  276|  5.66k|        int smSub = addNodeToMatch("Sub", input, smMax);
  277|  5.66k|        int smExp = addNodeToMatch("Exp", smSub);
  278|  5.66k|        int sumReductionIndices = addNodeToMatch("Const");
  279|  5.66k|        int smSum = addNodeToMatch("Sum", smExp, sumReductionIndices);
  280|  5.66k|        addNodeToMatch("RealDiv", smExp, smSum);
  281|       |
  282|  5.66k|        setFusedNode("Softmax", input);
  283|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122318ReLU6KerasSubgraphC2Ev:
  290|  5.66k|    {
  291|  5.66k|        int input = addNodeToMatch("");
  292|  5.66k|        int relu = addNodeToMatch("Relu", input);
  293|  5.66k|        maxValueId = addNodeToMatch("Const");
  294|  5.66k|        int clipValue = addNodeToMatch("Const");
  295|  5.66k|        int minimum = addNodeToMatch("Minimum", relu, maxValueId);
  296|  5.66k|        addNodeToMatch("Maximum", minimum, clipValue);
  297|       |
  298|  5.66k|        setFusedNode("Relu6", input);
  299|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122318ReLU6KerasSubgraph5matchERKNS_3PtrINS0_18ImportGraphWrapperEEEiRNSt3__16vectorIiNS8_9allocatorIiEEEE:
  303|   707k|    {
  304|   707k|        if (!Subgraph::match(net, nodeId, matchedNodesIds))
  ------------------
  |  Branch (304:13): [True: 707k, False: 12]
  ------------------
  305|   707k|            return false;
  306|     12|        tensorflow::NodeDef* node = net->getNode(matchedNodesIds[maxValueId]).dynamicCast<TFNodeWrapper>()->node;
  307|     12|        Mat maxValue = getTensorContent(node->attr().at("value").tensor());
  308|     12|        return maxValue.type() == CV_32FC1 && maxValue.total() == 1 && maxValue.at<float>(0) == 6;
  ------------------
  |  |  118|     12|#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
  |  |  ------------------
  |  |  |  |   85|     24|#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   83|     12|#define CV_MAT_DEPTH(flags)     ((flags) & CV_MAT_DEPTH_MASK)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   82|     12|#define CV_MAT_DEPTH_MASK       (CV_DEPTH_MAX - 1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   71|     12|#define CV_DEPTH_MAX  (1 << CV_CN_SHIFT)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   70|     12|#define CV_CN_SHIFT   3
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   70|     12|#define CV_CN_SHIFT   3
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (308:16): [True: 0, False: 12]
  |  Branch (308:47): [True: 0, False: 0]
  |  Branch (308:72): [True: 0, False: 0]
  ------------------
  309|   707k|    }
_ZN2cv3dnn14dnn4_v2024122320ReshapeKerasSubgraphC2Ei:
  320|  5.66k|    ReshapeKerasSubgraph(int _numOutDims) : numOutDims(_numOutDims)
  321|  5.66k|    {
  322|  5.66k|        int input = addNodeToMatch("");
  323|  5.66k|        int shape = addNodeToMatch("Shape", input);
  324|  5.66k|        int stack = addNodeToMatch("Const");
  325|  5.66k|        int stack_1 = addNodeToMatch("Const");
  326|  5.66k|        int stack_2 = addNodeToMatch("Const");
  327|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  328|       |
  329|  5.66k|        std::vector<int> ids(1 + numOutDims);
  330|  5.66k|        ids[0] = strided_slice;
  331|  22.6k|        for (int i = 0; i < numOutDims; ++i)
  ------------------
  |  Branch (331:25): [True: 16.9k, False: 5.66k]
  ------------------
  332|  16.9k|            ids[1 + i] = addNodeToMatch("Const");
  333|  5.66k|        int pack = addNodeToMatch("Pack", ids);
  334|  5.66k|        addNodeToMatch("Reshape", input, pack);
  335|       |
  336|  5.66k|        ids[0] = input;
  337|  5.66k|        setFusedNode("Reshape", ids);
  338|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122320ReshapeKerasSubgraph5matchERKNS_3PtrINS0_18ImportGraphWrapperEEEiRNSt3__16vectorIiNS8_9allocatorIiEEEE:
  342|   707k|    {
  343|   707k|        Ptr<ImportNodeWrapper> node = net->getNode(nodeId);
  344|   707k|        if (node->getNumInputs() == 0)
  ------------------
  |  Branch (344:13): [True: 697k, False: 10.3k]
  ------------------
  345|   697k|            return false;
  346|       |
  347|  10.3k|        inpName = node->getInputName(0);
  348|  10.3k|        return Subgraph::match(net, nodeId, matchedNodesIds);
  349|   707k|    }
_ZN2cv3dnn14dnn4_v2024122319L2NormalizeSubgraphC2Ev:
  381|  5.66k|    {
  382|  5.66k|        int input = addNodeToMatch("");
  383|  5.66k|        int square = addNodeToMatch("Square", input);
  384|  5.66k|        int reductionIndices = addNodeToMatch("Const");
  385|  5.66k|        int sum = addNodeToMatch("Sum", square, reductionIndices);
  386|  5.66k|        int y = addNodeToMatch("Const");
  387|  5.66k|        int maximum = addNodeToMatch("Maximum", sum, y);
  388|  5.66k|        int rsqrt = addNodeToMatch("Rsqrt", maximum);
  389|  5.66k|        addNodeToMatch("Mul", input, rsqrt);
  390|  5.66k|        setFusedNode("L2Normalize", input, reductionIndices);
  391|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122331DeconvolutionValidKerasSubgraphC2Ev:
  398|  5.66k|    {
  399|  5.66k|        int input = addNodeToMatch("");
  400|  5.66k|        int shape = addNodeToMatch("Shape", input);
  401|  5.66k|        int kernel = addNodeToMatch("Const");
  402|       |
  403|  5.66k|        int stack = addNodeToMatch("Const");
  404|  5.66k|        int stack_1 = addNodeToMatch("Const");
  405|  5.66k|        int stack_2 = addNodeToMatch("Const");
  406|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  407|       |
  408|  5.66k|        stack = addNodeToMatch("Const");
  409|  5.66k|        stack_1 = addNodeToMatch("Const");
  410|  5.66k|        stack_2 = addNodeToMatch("Const");
  411|  5.66k|        int strided_slice_1 = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  412|       |
  413|  5.66k|        stack = addNodeToMatch("Const");
  414|  5.66k|        stack_1 = addNodeToMatch("Const");
  415|  5.66k|        stack_2 = addNodeToMatch("Const");
  416|  5.66k|        int strided_slice_2 = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  417|       |
  418|  5.66k|        int mul = addNodeToMatch("Mul", strided_slice_1, addNodeToMatch("Const"));
  419|  5.66k|        int add = addNodeToMatch("Add", mul, addNodeToMatch("Const"));
  420|       |
  421|  5.66k|        int mul_1 = addNodeToMatch("Mul", strided_slice_2, addNodeToMatch("Const"));
  422|  5.66k|        int add_1 = addNodeToMatch("Add", mul_1, addNodeToMatch("Const"));
  423|  5.66k|        int pack = addNodeToMatch("Pack", strided_slice, add, add_1, addNodeToMatch("Const"));
  424|  5.66k|        addNodeToMatch("Conv2DBackpropInput", pack, kernel, input);
  425|       |        // Put any unused Const op to the first input.
  426|  5.66k|        setFusedNode("Conv2DBackpropInput", stack, kernel, input);
  427|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122330DeconvolutionSameKerasSubgraphC2Ev:
  459|  5.66k|    {
  460|  5.66k|        int input = addNodeToMatch("");
  461|  5.66k|        int shape = addNodeToMatch("Shape", input);
  462|  5.66k|        int kernel = addNodeToMatch("Const");
  463|       |
  464|  5.66k|        int stack = addNodeToMatch("Const");
  465|  5.66k|        int stack_1 = addNodeToMatch("Const");
  466|  5.66k|        int stack_2 = addNodeToMatch("Const");
  467|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  468|       |
  469|  5.66k|        stack = addNodeToMatch("Const");
  470|  5.66k|        stack_1 = addNodeToMatch("Const");
  471|  5.66k|        stack_2 = addNodeToMatch("Const");
  472|  5.66k|        int strided_slice_1 = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  473|       |
  474|  5.66k|        stack = addNodeToMatch("Const");
  475|  5.66k|        stack_1 = addNodeToMatch("Const");
  476|  5.66k|        stack_2 = addNodeToMatch("Const");
  477|  5.66k|        int strided_slice_2 = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  478|       |
  479|  5.66k|        int mul = addNodeToMatch("Mul", strided_slice_1, addNodeToMatch("Const"));
  480|       |
  481|  5.66k|        int mul_1 = addNodeToMatch("Mul", strided_slice_2, addNodeToMatch("Const"));
  482|  5.66k|        int pack = addNodeToMatch("Pack", strided_slice, mul, mul_1, addNodeToMatch("Const"));
  483|  5.66k|        addNodeToMatch("Conv2DBackpropInput", pack, kernel, input);
  484|       |        // Put any unused Const op to the first input.
  485|  5.66k|        setFusedNode("Conv2DBackpropInput", stack, kernel, input);
  486|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122322ResizeBilinearSubgraphC2Ev:
  518|  5.66k|    {
  519|  5.66k|        int input = addNodeToMatch("");
  520|  5.66k|        int shapeSource = addNodeToMatch("");
  521|       |
  522|  5.66k|        int shape = addNodeToMatch("Shape", shapeSource);
  523|  5.66k|        int stack = addNodeToMatch("Const");
  524|  5.66k|        int stack_1 = addNodeToMatch("Const");
  525|  5.66k|        int stack_2 = addNodeToMatch("Const");
  526|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  527|  5.66k|        int factorY = addNodeToMatch("Const");
  528|  5.66k|        int mul = addNodeToMatch("Mul", strided_slice, factorY);
  529|       |
  530|  5.66k|        shape = addNodeToMatch("Shape", shapeSource);
  531|  5.66k|        stack = addNodeToMatch("Const");
  532|  5.66k|        stack_1 = addNodeToMatch("Const");
  533|  5.66k|        stack_2 = addNodeToMatch("Const");
  534|  5.66k|        strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  535|  5.66k|        int factorX = addNodeToMatch("Const");
  536|  5.66k|        int mul_1 = addNodeToMatch("Mul", strided_slice, factorX);
  537|       |
  538|  5.66k|        int pack = addNodeToMatch("Pack", mul, mul_1);
  539|       |
  540|  5.66k|        addNodeToMatch("ResizeBilinear", input, pack);
  541|  5.66k|        setFusedNode("ResizeBilinear", input, factorY, factorX);
  542|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122323UpsamplingKerasSubgraphC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  595|  11.3k|    {
  596|  11.3k|        int input = addNodeToMatch("");
  597|  11.3k|        int shape = addNodeToMatch("Shape", input);
  598|  11.3k|        int stack = addNodeToMatch("Const");
  599|  11.3k|        int stack_1 = addNodeToMatch("Const");
  600|  11.3k|        int stack_2 = addNodeToMatch("Const");
  601|  11.3k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  602|  11.3k|        int factors = addNodeToMatch("Const");
  603|  11.3k|        int mul = addNodeToMatch("Mul", strided_slice, factors);
  604|  11.3k|        addNodeToMatch(type, input, mul);
  605|  11.3k|        setFusedNode(type, input, factors);
  606|  11.3k|    }
_ZN2cv3dnn14dnn4_v2024122319SoftMaxSlimSubgraphC2Ev:
  651|  5.66k|    {
  652|  5.66k|        int input = addNodeToMatch("");
  653|  5.66k|        int shape = addNodeToMatch("Const");
  654|  5.66k|        int shapeOp = addNodeToMatch("Shape", input);
  655|  5.66k|        int reshape = addNodeToMatch("Reshape", input, shape);
  656|  5.66k|        int softmax = addNodeToMatch("Softmax", reshape);
  657|  5.66k|        addNodeToMatch("Reshape", softmax, shapeOp);
  658|  5.66k|        setFusedNode("Softmax", input);
  659|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122321SoftMaxSlimV2SubgraphC2Ev:
  666|  5.66k|    {
  667|  5.66k|        int input = addNodeToMatch("");
  668|  5.66k|        int shape = addNodeToMatch("Shape", input);
  669|  5.66k|        int shape_2 = addNodeToMatch("Shape", input);
  670|  5.66k|        int rank = addNodeToMatch("Const");
  671|  5.66k|        int y = addNodeToMatch("Const");
  672|  5.66k|        int sub = addNodeToMatch("Sub", rank, y);
  673|  5.66k|        int begin = addNodeToMatch("Pack", sub);
  674|  5.66k|        int size = addNodeToMatch("Const");
  675|  5.66k|        int slice = addNodeToMatch("Slice", shape, begin, size);
  676|  5.66k|        int values = addNodeToMatch("Const");
  677|  5.66k|        int axis = addNodeToMatch("Const");
  678|  5.66k|        int concat = addNodeToMatch("ConcatV2", values, slice, axis);
  679|  5.66k|        int reshape = addNodeToMatch("Reshape", input, concat);
  680|  5.66k|        int softmax = addNodeToMatch("Softmax", reshape);
  681|  5.66k|        addNodeToMatch("Reshape", softmax, shape_2);
  682|  5.66k|        setFusedNode("Softmax", input);
  683|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122322ReshapeAsShapeSubgraphC2Ev:
  638|  5.66k|    {
  639|  5.66k|        int input = addNodeToMatch("");
  640|  5.66k|        int shapeSrc = addNodeToMatch("");
  641|  5.66k|        int shape = addNodeToMatch("Shape", shapeSrc);
  642|  5.66k|        addNodeToMatch("Reshape", input, shape);
  643|  5.66k|        setFusedNode("Reshape", input, shapeSrc);
  644|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122316KerasMVNSubgraphC2Ev:
  690|  5.66k|    {
  691|  5.66k|        int input = addNodeToMatch("");
  692|  5.66k|        int mean = addNodeToMatch("Mean", input, addNodeToMatch("Const"));
  693|  5.66k|        int grad = addNodeToMatch("StopGradient", mean);
  694|  5.66k|        int diff = addNodeToMatch("SquaredDifference", input, grad);
  695|  5.66k|        int var = addNodeToMatch("Mean", diff, addNodeToMatch("Const"));
  696|  5.66k|        int sub = addNodeToMatch("Sub", input, mean);
  697|  5.66k|        int add_y = addNodeToMatch("Const");
  698|  5.66k|        int add = addNodeToMatch("Add", var, add_y);
  699|  5.66k|        int pow_y = addNodeToMatch("Const");
  700|  5.66k|        int powNode = addNodeToMatch("Pow", add, pow_y);
  701|  5.66k|        addNodeToMatch("RealDiv", sub, powNode);
  702|  5.66k|        setFusedNode("MVN", input, add_y);
  703|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122313PReLUSubgraphC2Eb:
  723|  11.3k|    PReLUSubgraph(bool negativeScales_) : negativeScales(negativeScales_)
  724|  11.3k|    {
  725|  11.3k|        int input = addNodeToMatch("");
  726|  11.3k|        int scales = addNodeToMatch("Const");
  727|  11.3k|        int neg = addNodeToMatch("Neg", input);
  728|  11.3k|        int relu_neg = addNodeToMatch("Relu", neg);
  729|  11.3k|        int finalScales = negativeScales ? addNodeToMatch("Neg", scales) : scales;
  ------------------
  |  Branch (729:27): [True: 5.66k, False: 5.66k]
  ------------------
  730|  11.3k|        int mul = addNodeToMatch("Mul", finalScales, relu_neg);
  731|  11.3k|        int relu_pos = addNodeToMatch("Relu", input);
  732|  11.3k|        addNodeToMatch("Add", relu_pos, mul);
  733|  11.3k|        setFusedNode("PReLU", input, scales);
  734|  11.3k|    }
_ZN2cv3dnn14dnn4_v2024122319FlattenProdSubgraphC2Ev:
  251|  5.66k|    {
  252|  5.66k|        int input = addNodeToMatch("");
  253|  5.66k|        int shape = addNodeToMatch("Shape", input);
  254|  5.66k|        int stack = addNodeToMatch("Const");
  255|  5.66k|        int stack_1 = addNodeToMatch("Const");
  256|  5.66k|        int stack_2 = addNodeToMatch("Const");
  257|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  258|  5.66k|        int prod = addNodeToMatch("Prod", strided_slice, addNodeToMatch("Const"));
  259|  5.66k|        int shape_pack = addNodeToMatch("Const");
  260|  5.66k|        int pack = addNodeToMatch("Pack", shape_pack, prod);
  261|  5.66k|        addNodeToMatch("Reshape", input, pack);
  262|       |
  263|  5.66k|        setFusedNode("Flatten", input);
  264|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122326ResizeBilinearSubgraphDownC2Ev:
  550|  5.66k|    {
  551|  5.66k|        int input = addNodeToMatch("");
  552|  5.66k|        int shapeSource = addNodeToMatch("");
  553|       |
  554|  5.66k|        int shape = addNodeToMatch("Shape", shapeSource);
  555|  5.66k|        int stack = addNodeToMatch("Const");
  556|  5.66k|        int stack_1 = addNodeToMatch("Const");
  557|  5.66k|        int stack_2 = addNodeToMatch("Const");
  558|  5.66k|        int strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  559|  5.66k|        int factorY = addNodeToMatch("Const");
  560|  5.66k|        int div = addNodeToMatch("RealDiv", addNodeToMatch("Cast", strided_slice), factorY);
  561|  5.66k|        int cast = addNodeToMatch("Cast", div);
  562|       |
  563|  5.66k|        shape = addNodeToMatch("Shape", shapeSource);
  564|  5.66k|        stack = addNodeToMatch("Const");
  565|  5.66k|        stack_1 = addNodeToMatch("Const");
  566|  5.66k|        stack_2 = addNodeToMatch("Const");
  567|  5.66k|        strided_slice = addNodeToMatch("StridedSlice", shape, stack, stack_1, stack_2);
  568|  5.66k|        int factorX = addNodeToMatch("Const");
  569|  5.66k|        int div_1 = addNodeToMatch("RealDiv", addNodeToMatch("Cast", strided_slice), factorX);
  570|  5.66k|        int cast_1 = addNodeToMatch("Cast", div_1);
  571|       |
  572|  5.66k|        int pack = addNodeToMatch("Pack", cast, cast_1);
  573|       |
  574|  5.66k|        addNodeToMatch("ResizeBilinear", input, pack);
  575|  5.66k|        setFusedNode("ResizeBilinear", input, factorY, factorX);
  576|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122319ClipByValueSubgraphC2Ev:
  765|  5.66k|    {
  766|  5.66k|        int input = addNodeToMatch("");
  767|  5.66k|        int maxValue = addNodeToMatch("Const");
  768|  5.66k|        int minimum = addNodeToMatch("Minimum", input, maxValue);
  769|  5.66k|        int minValue = addNodeToMatch("Const");
  770|  5.66k|        addNodeToMatch("Maximum", minimum, minValue);
  771|       |
  772|  5.66k|        setFusedNode("ClipByValue", input, minValue, maxValue);
  773|  5.66k|    }
_ZN2cv3dnn14dnn4_v2024122314TFGraphWrapperC2ERN17opencv_tensorflow8GraphDefE:
   73|  5.66k|    TFGraphWrapper(tensorflow::GraphDef& _net) : net(_net) {}
_ZNK2cv3dnn14dnn4_v2024122314TFGraphWrapper7getNodeEi:
   76|  7.33M|    {
   77|  7.33M|        return makePtr<TFNodeWrapper>(net.mutable_node(idx));
   78|  7.33M|    }
_ZN2cv3dnn14dnn4_v2024122313TFNodeWrapperC2EPN17opencv_tensorflow7NodeDefE:
   35|  7.33M|    TFNodeWrapper(tensorflow::NodeDef* _node) : node(_node) {}
_ZNK2cv3dnn14dnn4_v2024122313TFNodeWrapper12getNumInputsEv:
   38|   852k|    {
   39|   852k|        return node->input_size();
   40|   852k|    }
_ZNK2cv3dnn14dnn4_v2024122313TFNodeWrapper12getInputNameEi:
   43|   124k|    {
   44|       |        // If operation produces several tensors, they are specified by index
   45|       |        // after ':' character. In example, "input:0".
   46|   124k|        std::string name = node->input(idx);
   47|   124k|        return name.substr(0, name.rfind(':'));
   48|   124k|    }
_ZNK2cv3dnn14dnn4_v2024122313TFNodeWrapper7getTypeEv:
   51|  6.65M|    {
   52|  6.65M|        return node->op();
   53|  6.65M|    }
_ZNK2cv3dnn14dnn4_v2024122314TFGraphWrapper11getNumNodesEv:
   81|   120k|    {
   82|   120k|        return net.node_size();
   83|   120k|    }
_ZNK2cv3dnn14dnn4_v2024122314TFGraphWrapper13getNumOutputsEi:
   86|   863k|    {
   87|   863k|        return 1;
   88|   863k|    }
_ZNK2cv3dnn14dnn4_v2024122314TFGraphWrapper13getOutputNameEii:
   91|   863k|    {
   92|   863k|        CV_Assert(outId == 0);
  ------------------
  |  |  423|   863k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 863k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
   93|   863k|        return net.node(nodeId).name();
   94|   863k|    }
_ZNK2cv3dnn14dnn4_v2024122314TFGraphWrapper15isCommutativeOpERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  102|  29.4k|    {
  103|  29.4k|        return type == "Add" || type == "Sum" ||
  ------------------
  |  Branch (103:16): [True: 8.84k, False: 20.6k]
  |  Branch (103:33): [True: 66, False: 20.5k]
  ------------------
  104|  29.4k|               type == "Mul" || type == "Prod" ||
  ------------------
  |  Branch (104:16): [True: 18.7k, False: 1.84k]
  |  Branch (104:33): [True: 0, False: 1.84k]
  ------------------
  105|  29.4k|               type == "Max" || type == "Maximum" || type == "Minimum" ||
  ------------------
  |  Branch (105:16): [True: 0, False: 1.84k]
  |  Branch (105:33): [True: 345, False: 1.50k]
  |  Branch (105:54): [True: 75, False: 1.42k]
  ------------------
  106|  29.4k|               type == "Mean" || type == "SquaredDifference";
  ------------------
  |  Branch (106:16): [True: 0, False: 1.42k]
  |  Branch (106:34): [True: 0, False: 1.42k]
  ------------------
  107|  29.4k|    }
tf_graph_simplifier.cpp:_ZN2cv3dnn14dnn4_v20241223L7permuteEPN6google8protobuf16RepeatedPtrFieldIN17opencv_tensorflow7NodeDefEEERKNSt3__16vectorIiNS9_9allocatorIiEEEE:
  970|  4.25k|{
  971|  4.25k|    const int num = data->size();
  972|  4.25k|    CV_Assert(num == indices.size());
  ------------------
  |  |  423|  4.25k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 4.25k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  973|       |
  974|  4.25k|    std::vector<int> elemIdToPos(num);
  975|  4.25k|    std::vector<int> posToElemId(num);
  976|  18.0k|    for (int i = 0; i < num; ++i)
  ------------------
  |  Branch (976:21): [True: 13.7k, False: 4.25k]
  ------------------
  977|  13.7k|    {
  978|  13.7k|        elemIdToPos[i] = i;
  979|  13.7k|        posToElemId[i] = i;
  980|  13.7k|    }
  981|  18.0k|    for (int i = 0; i < num; ++i)
  ------------------
  |  Branch (981:21): [True: 13.7k, False: 4.25k]
  ------------------
  982|  13.7k|    {
  983|  13.7k|        int elemId = indices[i];
  984|  13.7k|        int pos = elemIdToPos[elemId];
  985|  13.7k|        if (pos != i)
  ------------------
  |  Branch (985:13): [True: 7.19k, False: 6.58k]
  ------------------
  986|  7.19k|        {
  987|  7.19k|            data->SwapElements(i, pos);
  988|  7.19k|            const int swappedElemId = posToElemId[i];
  989|  7.19k|            elemIdToPos[elemId] = i;
  990|  7.19k|            elemIdToPos[swappedElemId] = pos;
  991|       |
  992|  7.19k|            posToElemId[i] = elemId;
  993|  7.19k|            posToElemId[pos] = swappedElemId;
  994|  7.19k|        }
  995|  13.7k|    }
  996|  4.25k|}

_ZN2cv3dnn14dnn4_v2024122321readNetFromTensorflowEPKcmS3_m:
 3280|  17.9k|{
 3281|  17.9k|    return detail::readNetDiagnostic<TFImporter>(bufferModel, lenModel, bufferConfig, lenConfig);
 3282|  17.9k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter16buildDispatchMapEv:
  645|  17.9k|{
  646|  17.9k|    static DispatchMap dispatch;
  647|  17.9k|    dispatch["Conv2D"] = dispatch["SpaceToBatchND"] = dispatch["DepthwiseConv2dNative"] =
  648|  17.9k|            dispatch["Pad"] = dispatch["MirrorPad"] = dispatch["Conv3D"] = &TFImporter::parseConvolution;
  649|  17.9k|    dispatch["BiasAdd"] = dispatch["Add"] = dispatch["AddV2"] = dispatch["Sub"] = dispatch["AddN"] = &TFImporter::parseBias;
  650|  17.9k|    dispatch["MatMul"] = dispatch["BatchMatMul"] = &TFImporter::parseMatMul;
  651|  17.9k|    dispatch["Reshape"] = &TFImporter::parseReshape;
  652|  17.9k|    dispatch["Flatten"] = dispatch["Squeeze"] = &TFImporter::parseFlatten;
  653|  17.9k|    dispatch["Transpose"] = &TFImporter::parseTranspose;
  654|  17.9k|    dispatch["Const"] = &TFImporter::parseConstant;
  655|  17.9k|    dispatch["LRN"] = &TFImporter::parseLrn;
  656|  17.9k|    dispatch["Concat"] = dispatch["ConcatV2"] = &TFImporter::parseConcat;
  657|  17.9k|    dispatch["MaxPool"] = dispatch["MaxPool3D"] = &TFImporter::parseMaxPool;
  658|  17.9k|    dispatch["AvgPool"] = dispatch["AvgPool3D"] = &TFImporter::parseAvgPool;
  659|  17.9k|    dispatch["MaxPoolGrad"] = &TFImporter::parseMaxPoolGrad;
  660|  17.9k|    dispatch["Placeholder"] = &TFImporter::parsePlaceholder;
  661|  17.9k|    dispatch["Split"] = &TFImporter::parseSplit;
  662|  17.9k|    dispatch["Slice"] = &TFImporter::parseSlice;
  663|  17.9k|    dispatch["StridedSlice"] = &TFImporter::parseStridedSlice;
  664|  17.9k|    dispatch["Mul"] = dispatch["RealDiv"] = &TFImporter::parseMul;
  665|  17.9k|    dispatch["FusedBatchNorm"] = dispatch["FusedBatchNormV3"] = &TFImporter::parseFusedBatchNorm;
  666|  17.9k|    dispatch["Conv2DBackpropInput"] = &TFImporter::parseConv2DBackpropInput;
  667|  17.9k|    dispatch["BlockLSTM"] = &TFImporter::parseBlockLSTM;
  668|  17.9k|    dispatch["ResizeNearestNeighbor"] = dispatch["ResizeBilinear"] = dispatch["FusedResizeAndPadConv2D"] = &TFImporter::parseResize;
  669|  17.9k|    dispatch["L2Normalize"] = &TFImporter::parseL2Normalize;
  670|  17.9k|    dispatch["PriorBox"] = &TFImporter::parsePriorBox;
  671|  17.9k|    dispatch["Softmax"] = &TFImporter::parseSoftmax;
  672|  17.9k|    dispatch["CropAndResize"] = &TFImporter::parseCropAndResize;
  673|  17.9k|    dispatch["Mean"] = dispatch["Sum"] = dispatch["Max"] = &TFImporter::parseMean;
  674|  17.9k|    dispatch["Pack"] = &TFImporter::parsePack;
  675|  17.9k|    dispatch["ClipByValue"] = &TFImporter::parseClipByValue;
  676|  17.9k|    dispatch["LeakyRelu"] = &TFImporter::parseLeakyRelu;
  677|  17.9k|    dispatch["PReLU"] = &TFImporter::parsePReLU;
  678|  17.9k|    dispatch["Abs"] = dispatch["Tanh"] = dispatch["Sigmoid"] = dispatch["Relu"] =
  679|  17.9k|            dispatch["Elu"] = dispatch["Exp"] = dispatch["Identity"] = dispatch["Relu6"] = &TFImporter::parseActivation;
  680|  17.9k|    dispatch["ExpandDims"] = &TFImporter::parseExpandDims;
  681|  17.9k|    dispatch["Square"] = &TFImporter::parseSquare;
  682|  17.9k|    dispatch["ArgMax"] = dispatch["ArgMin"] = &TFImporter::parseArg;
  683|       |
  684|  17.9k|    return dispatch;
  685|  17.9k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter16parseConvolutionERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
  689|    184|{
  690|    184|    tensorflow::NodeDef layer = layer_;
  691|    184|    std::string name = layer.name();
  692|    184|    std::string type = layer.op();
  693|    184|    int num_inputs = layer.input_size();
  694|       |
  695|    184|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|    184|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|    184|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|    184|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|     25|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|     25|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|     25|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|     25|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|     25|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|     25|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|     25|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|     25|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|     25|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|     25|    } \
  |  |  |  |  104|    184|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  696|       |    // The first node of dilated convolution subgraph.
  697|       |    // Extract input node, dilation rate and paddings.
  698|    159|    std::string input = layer.input(0);
  699|    159|    StrIntVector next_layers;
  700|    159|    if (type == "SpaceToBatchND" || type == "Pad")
  ------------------
  |  Branch (700:9): [True: 0, False: 159]
  |  Branch (700:37): [True: 95, False: 64]
  ------------------
  701|     95|    {
  702|     95|        next_layers = getNextLayers(net, name, "Conv2D");
  703|     95|        if (next_layers.empty())
  ------------------
  |  Branch (703:13): [True: 80, False: 15]
  ------------------
  704|     80|            next_layers = getNextLayers(net, name, "DepthwiseConv2dNative");
  705|     95|    }
  706|       |
  707|    159|    if (type == "SpaceToBatchND")
  ------------------
  |  Branch (707:9): [True: 0, False: 159]
  ------------------
  708|      0|    {
  709|       |        // op: "SpaceToBatchND"
  710|       |        // input: "input"
  711|       |        // input: "SpaceToBatchND/block_shape"
  712|       |        // input: "SpaceToBatchND/paddings"
  713|      0|        CV_CheckEQ(num_inputs, 3, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  714|       |
  715|      0|        DictValue dilation = parseDims(getConstBlob(layer, value_id, 1));
  716|      0|        CV_Assert(dilation.size() == 2);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  717|      0|        layerParams.set("dilation_h", dilation.get<int>(0));
  718|      0|        layerParams.set("dilation_w", dilation.get<int>(1));
  719|       |
  720|      0|        Mat paddings;
  721|      0|        parseTensor<int>(getConstBlob(layer, value_id, 2), paddings);
  722|       |
  723|       |        // paddings is a 2x2 matrix: [[top, bot], [left, right]]
  724|      0|        layerParams.set("pad_h", paddings.at<float>(0));
  725|      0|        layerParams.set("pad_w", paddings.at<float>(2));
  726|       |
  727|      0|        CV_Assert(next_layers.size() == 1);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  728|      0|        layers_to_ignore.insert(next_layers[0].first);
  729|       |
  730|       |        // FIXIT don't override, rewrite this code
  731|      0|        layer = net.node(next_layers[0].second);
  732|      0|        name = layer.name();
  733|      0|        type = layer.op();
  734|      0|        num_inputs = layer.input_size();
  735|      0|        CV_LOG_DEBUG(NULL, "DNN/TF:     switched to layer " << name << " @ " << type << ") with " << num_inputs << " inputs");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
  736|      0|    }
  737|    159|    else if (type == "Pad" || type == "MirrorPad")
  ------------------
  |  Branch (737:14): [True: 95, False: 64]
  |  Branch (737:31): [True: 0, False: 64]
  ------------------
  738|     95|    {
  739|     95|        Mat paddings = getTensorContent(getConstBlob(layer, value_id, 1));
  740|     95|        CV_Assert(paddings.type() == CV_32SC1);
  ------------------
  |  |  423|     95|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|     95|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 95]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  741|      0|        if (paddings.total() == 8)
  ------------------
  |  Branch (741:13): [True: 0, False: 0]
  ------------------
  742|      0|        {
  743|       |            // Perhaps, we have NHWC padding dimensions order.
  744|       |            //  N    H    W    C
  745|       |            // 0 1  2 3  4 5  6 7
  746|      0|            std::swap(paddings.at<int32_t>(2), paddings.at<int32_t>(6));
  747|      0|            std::swap(paddings.at<int32_t>(3), paddings.at<int32_t>(7));
  748|       |            //  N    C    W    H
  749|       |            // 0 1  2 3  4 5  6 7
  750|      0|            std::swap(paddings.at<int32_t>(4), paddings.at<int32_t>(6));
  751|      0|            std::swap(paddings.at<int32_t>(5), paddings.at<int32_t>(7));
  752|       |            //  N    C    H    W
  753|       |            // 0 1  2 3  4 5  6 7
  754|      0|        }
  755|       |
  756|      0|        if (next_layers.empty() || paddings.total() != 8 ||
  ------------------
  |  Branch (756:13): [True: 0, False: 0]
  |  Branch (756:36): [True: 0, False: 0]
  ------------------
  757|      0|            paddings.at<int32_t>(4) != paddings.at<int32_t>(5) ||
  ------------------
  |  Branch (757:13): [True: 0, False: 0]
  ------------------
  758|      0|            paddings.at<int32_t>(6) != paddings.at<int32_t>(7) || type == "MirrorPad")
  ------------------
  |  Branch (758:13): [True: 0, False: 0]
  |  Branch (758:67): [True: 0, False: 0]
  ------------------
  759|      0|        {
  760|       |            // Just a single padding layer.
  761|      0|            layerParams.set("paddings", DictValue::arrayInt<int*>((int*)paddings.data, paddings.total()));
  762|      0|            if (type == "MirrorPad")
  ------------------
  |  Branch (762:17): [True: 0, False: 0]
  ------------------
  763|      0|                layerParams.set("type", "reflect");
  764|       |
  765|      0|            int id = dstNet.addLayer(name, "Padding", layerParams);
  766|      0|            layer_id[name] = id;
  767|       |
  768|      0|            connect(layer_id, dstNet, parsePin(input), id, 0);
  769|      0|            return;
  770|      0|        }
  771|      0|        else
  772|      0|        {
  773|       |            // Merge with subsequent convolutional layer.
  774|      0|            CV_Assert(next_layers.size() == 1);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  775|       |
  776|      0|            layerParams.set("pad_h", paddings.at<int32_t>(4));
  777|      0|            layerParams.set("pad_w", paddings.at<int32_t>(6));
  778|       |
  779|      0|            layers_to_ignore.insert(next_layers[0].first);
  780|       |
  781|       |            // FIXIT don't override, rewrite this code
  782|      0|            layer = net.node(next_layers[0].second);
  783|      0|            name = layer.name();
  784|      0|            type = layer.op();
  785|      0|            num_inputs = layer.input_size();
  786|      0|            CV_LOG_DEBUG(NULL, "DNN/TF:     switched to layer " << name << " @ " << type << ") with " << num_inputs << " inputs");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
  787|      0|        }
  788|      0|    }
  789|       |
  790|       |    // For the object detection networks, TensorFlow Object Detection API
  791|       |    // predicts deltas for bounding boxes in yxYX (ymin, xmin, ymax, xmax)
  792|       |    // order. We can manage it at DetectionOutput layer parsing predictions
  793|       |    // or shuffle last convolution's weights.
  794|     64|    bool locPredTransposed = hasLayerAttr(layer, "loc_pred_transposed") &&
  ------------------
  |  Branch (794:30): [True: 0, False: 64]
  ------------------
  795|     64|                             getLayerAttr(layer, "loc_pred_transposed").b();
  ------------------
  |  Branch (795:30): [True: 0, False: 0]
  ------------------
  796|       |
  797|     64|    layerParams.set("bias_term", false);
  798|     64|    layerParams.blobs.resize(1);
  799|       |
  800|     64|    next_layers = getNextLayers(net, name, "BiasAdd");
  801|     64|    if (next_layers.size() == 1) {
  ------------------
  |  Branch (801:9): [True: 0, False: 64]
  ------------------
  802|      0|        layerParams.set("bias_term", true);
  803|      0|        layerParams.blobs.resize(2);
  804|       |
  805|      0|        int weights_layer_index = next_layers[0].second;
  806|       |
  807|      0|        blobFromTensor(getConstBlob(net.node(weights_layer_index), value_id), layerParams.blobs[1]);
  808|      0|        ExcludeLayer(net, weights_layer_index, 0, false);
  809|      0|        layers_to_ignore.insert(next_layers[0].first);
  810|       |
  811|       |        // Shuffle bias from yxYX to xyXY.
  812|      0|        if (locPredTransposed)
  ------------------
  |  Branch (812:13): [True: 0, False: 0]
  ------------------
  813|      0|        {
  814|      0|            const int numWeights = layerParams.blobs[1].total();
  815|      0|            float* biasData = reinterpret_cast<float*>(layerParams.blobs[1].data);
  816|      0|            CV_Assert(numWeights % 4 == 0);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  817|      0|            for (int i = 0; i < numWeights; i += 2)
  ------------------
  |  Branch (817:29): [True: 0, False: 0]
  ------------------
  818|      0|            {
  819|      0|                std::swap(biasData[i], biasData[i + 1]);
  820|      0|            }
  821|      0|        }
  822|      0|    }
  823|       |
  824|     64|    int kernelTensorInpId = -1;
  825|     64|    const tensorflow::TensorProto& kernelTensor = getConstBlob(layer, value_id, -1, &kernelTensorInpId);
  826|     64|    const String kernelTensorName = layer.input(kernelTensorInpId);
  827|     64|    std::map<String, Mat>::iterator sharedWeightsIt = sharedWeights.find(kernelTensorName);
  828|     64|    if (sharedWeightsIt == sharedWeights.end())
  ------------------
  |  Branch (828:9): [True: 0, False: 64]
  ------------------
  829|      0|    {
  830|      0|        kernelFromTensor(kernelTensor, layerParams.blobs[0]);
  831|      0|        releaseTensor(const_cast<tensorflow::TensorProto*>(&kernelTensor));
  832|       |
  833|      0|        int* kshape = layerParams.blobs[0].size.p;
  834|      0|        const int outCh = kshape[0];
  835|      0|        const int inCh = kshape[1];
  836|      0|        const int height = kshape[2];
  837|      0|        const int width = kshape[3];
  838|      0|        if (type == "DepthwiseConv2dNative")
  ------------------
  |  Branch (838:13): [True: 0, False: 0]
  ------------------
  839|      0|        {
  840|      0|            CV_Assert(!locPredTransposed);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  841|      0|            const int chMultiplier = kshape[0];
  842|       |
  843|      0|            Mat copy = layerParams.blobs[0].clone();
  844|      0|            float* src = (float*)copy.data;
  845|      0|            float* dst = (float*)layerParams.blobs[0].data;
  846|      0|            for (int i = 0; i < chMultiplier; ++i)
  ------------------
  |  Branch (846:29): [True: 0, False: 0]
  ------------------
  847|      0|                for (int j = 0; j < inCh; ++j)
  ------------------
  |  Branch (847:33): [True: 0, False: 0]
  ------------------
  848|      0|                    for (int s = 0; s < height * width; ++s)
  ------------------
  |  Branch (848:37): [True: 0, False: 0]
  ------------------
  849|      0|                    {
  850|      0|                        int src_i = (i * inCh + j) * height * width + s;
  851|      0|                        int dst_i = (j * chMultiplier + i) * height* width + s;
  852|      0|                        dst[dst_i] = src[src_i];
  853|      0|                    }
  854|       |            // TODO Use reshape instead
  855|      0|            kshape[0] = inCh * chMultiplier;
  856|      0|            kshape[1] = 1;
  857|      0|            size_t* kstep = layerParams.blobs[0].step.p;
  858|      0|            kstep[0] = kstep[1]; // fix steps too
  859|      0|        }
  860|       |
  861|       |        // Shuffle output channels from yxYX to xyXY.
  862|      0|        if (locPredTransposed)
  ------------------
  |  Branch (862:13): [True: 0, False: 0]
  ------------------
  863|      0|        {
  864|      0|            const int slice = height * width * inCh;
  865|      0|            for (int i = 0; i < outCh; i += 2)
  ------------------
  |  Branch (865:29): [True: 0, False: 0]
  ------------------
  866|      0|            {
  867|      0|                cv::Mat src(1, slice, CV_32F, layerParams.blobs[0].ptr<float>(i));
  ------------------
  |  |   78|      0|#define CV_32F  5
  ------------------
  868|      0|                cv::Mat dst(1, slice, CV_32F, layerParams.blobs[0].ptr<float>(i + 1));
  ------------------
  |  |   78|      0|#define CV_32F  5
  ------------------
  869|      0|                std::swap_ranges(src.begin<float>(), src.end<float>(), dst.begin<float>());
  870|      0|            }
  871|      0|        }
  872|      0|        sharedWeights[kernelTensorName] = layerParams.blobs[0];
  873|      0|    }
  874|     64|    else
  875|     64|    {
  876|     64|        layerParams.blobs[0] = sharedWeightsIt->second;
  877|     64|    }
  878|     64|    Mat weights = layerParams.blobs[0];
  879|     64|    layerParams.set("kernel_size",  DictValue::arrayInt(&weights.size[2], weights.dims - 2));
  880|       |
  881|     64|    layerParams.set("num_output", layerParams.blobs[0].size[0]);
  882|       |
  883|     64|    setStrides(layerParams, layer);
  884|     64|    if (!layerParams.has("pad_w") && !layerParams.has("pad_h"))
  ------------------
  |  Branch (884:9): [True: 0, False: 64]
  |  Branch (884:9): [True: 0, False: 64]
  |  Branch (884:38): [True: 0, False: 0]
  ------------------
  885|      0|        setPadding(layerParams, layer, input);
  886|       |
  887|       |    // The final node of dilated convolution subgraph.
  888|     64|    next_layers = getNextLayers(net, name, "BatchToSpaceND");
  889|     64|    if (!next_layers.empty())
  ------------------
  |  Branch (889:9): [True: 0, False: 64]
  ------------------
  890|      0|    {
  891|      0|        CV_Assert(next_layers.size() == 1);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  892|      0|        ExcludeLayer(net, next_layers[0].second, 0, false);
  893|      0|        layers_to_ignore.insert(next_layers[0].first);
  894|      0|    }
  895|       |
  896|     64|    int id = dstNet.addLayer(name, "Convolution", layerParams);
  897|     64|    layer_id[name] = id;
  898|       |
  899|       |    // one input only
  900|     64|    connect(layer_id, dstNet, parsePin(input), id, 0);
  901|       |
  902|       |
  903|     64|    if (getDataLayout(name, data_layouts) == DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (903:9): [True: 0, False: 64]
  ------------------
  904|      0|        data_layouts[name] = DNN_LAYOUT_NHWC;
  905|     64|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_113getNextLayersERKN17opencv_tensorflow8GraphDefERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_:
  470|    239|{
  471|    239|   StrIntVector layers;
  472|       |
  473|  1.10k|   for (int li = 0; li < net.node_size(); li++)
  ------------------
  |  Branch (473:21): [True: 865, False: 239]
  ------------------
  474|    865|   {
  475|    865|       const tensorflow::NodeDef& layer = net.node(li);
  476|  5.22k|       for (int input_id = 0; input_id < layer.input_size(); input_id++) {
  ------------------
  |  Branch (476:31): [True: 4.35k, False: 865]
  ------------------
  477|  4.35k|           String input_op_name = parsePin(layer.input(input_id)).name;
  478|  4.35k|           bool type_ok = type.empty() ? true : type == layer.op();
  ------------------
  |  Branch (478:27): [True: 0, False: 4.35k]
  ------------------
  479|  4.35k|           if (input_op_name == layer_name && type_ok)
  ------------------
  |  Branch (479:16): [True: 477, False: 3.88k]
  |  Branch (479:47): [True: 47, False: 430]
  ------------------
  480|     47|               layers.push_back(std::make_pair(layer.name(), li));
  481|  4.35k|       }
  482|    865|   }
  483|       |
  484|    239|   return layers;
  485|    239|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12getConstBlobERKN17opencv_tensorflow7NodeDefENSt3__13mapINS8_12basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEiNS8_4lessISF_EENSD_INS8_4pairIKSF_iEEEEEEiPi:
 2871|    189|                                              int input_blob_index, int* actual_inp_blob_idx) {
 2872|    189|    if (input_blob_index == -1) {
  ------------------
  |  Branch (2872:9): [True: 64, False: 125]
  ------------------
 2873|  1.47k|        for(int i = 0; i < layer.input_size(); i++) {
  ------------------
  |  Branch (2873:24): [True: 1.41k, False: 64]
  ------------------
 2874|  1.41k|            Pin input = parsePin(layer.input(i));
 2875|  1.41k|            if (const_layers.find(input.name) != const_layers.end()) {
  ------------------
  |  Branch (2875:17): [True: 0, False: 1.41k]
  ------------------
 2876|      0|                if (input_blob_index != -1)
  ------------------
  |  Branch (2876:21): [True: 0, False: 0]
  ------------------
 2877|      0|                    CV_Error(Error::StsError, "More than one input is Const op");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2878|       |
 2879|      0|                input_blob_index = i;
 2880|      0|            }
 2881|  1.41k|        }
 2882|     64|    }
 2883|       |
 2884|    189|    if (input_blob_index == -1)
  ------------------
  |  Branch (2884:9): [True: 64, False: 125]
  ------------------
 2885|     64|        CV_Error(Error::StsError, "Const input blob for weights not found");
  ------------------
  |  |  399|     64|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     64|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2886|    125|    CV_CheckLT(input_blob_index, layer.input_size(), "Input index is out of range");
  ------------------
  |  |  121|    125|#define CV_CheckLT(v1, v2, msg)  CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|    125|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|    125|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|     72|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|     72|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|     72|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|     72|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|     72|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|     72|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|     72|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|     72|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|     72|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|     72|    } \
  |  |  |  |  104|    125|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2887|       |
 2888|     53|    Pin kernel_inp = parsePin(layer.input(input_blob_index));
 2889|     53|    if (const_layers.find(kernel_inp.name) == const_layers.end())
  ------------------
  |  Branch (2889:9): [True: 53, False: 0]
  ------------------
 2890|     53|        CV_Error(Error::StsError, "Input [" + layer.input(input_blob_index) +
  ------------------
  |  |  399|     53|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     53|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2891|     53|                                  "] for node [" + layer.name() + "] not found");
 2892|      0|    if (kernel_inp.blobIndex != 0)
  ------------------
  |  Branch (2892:9): [True: 0, False: 0]
  ------------------
 2893|      0|        CV_Error(Error::StsError, "Unsupported kernel input");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2894|       |
 2895|      0|    if(actual_inp_blob_idx) {
  ------------------
  |  Branch (2895:8): [True: 0, False: 0]
  ------------------
 2896|      0|        *actual_inp_blob_idx = input_blob_index;
 2897|      0|    }
 2898|       |
 2899|      0|    int nodeIdx = const_layers.at(kernel_inp.name);
 2900|      0|    if (nodeIdx < netBin.node_size() && netBin.node(nodeIdx).name() == kernel_inp.name)
  ------------------
  |  Branch (2900:9): [True: 0, False: 0]
  |  Branch (2900:41): [True: 0, False: 0]
  ------------------
 2901|      0|    {
 2902|      0|        return netBin.node(nodeIdx).attr().at("value").tensor();
 2903|      0|    }
 2904|      0|    else
 2905|      0|    {
 2906|      0|        CV_Assert_N(nodeIdx < netTxt.node_size(),
  ------------------
  |  |  449|      0|#define CV_Assert_N(...) do { __CV_EXPAND(__CV_CAT(CV_Assert_, __CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__)); } while(0)
  |  |  ------------------
  |  |  |  |   79|      0|#define __CV_EXPAND(x) x
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (79:24): [True: 0, False: 0]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  |  Branch (79:24): [True: 0, False: 0]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (449:119): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2907|      0|                    netTxt.node(nodeIdx).name() == kernel_inp.name);
 2908|      0|        return netTxt.node(nodeIdx).attr().at("value").tensor();
 2909|      0|    }
 2910|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter7connectERKNSt3__13mapINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEiNS4_4lessISB_EENS9_INS4_4pairIKSB_iEEEEEERNS1_3NetERKNS2_3PinEii:
 2849|  10.7k|{
 2850|  10.7k|    std::map<String, int>::const_iterator it = layers_name_id_map.find(outPin.name);
 2851|  10.7k|    if (it == layers_name_id_map.end())
  ------------------
  |  Branch (2851:9): [True: 467, False: 10.2k]
  ------------------
 2852|    467|        CV_Error(Error::StsError, "Input layer not found: " + outPin.name);
  ------------------
  |  |  399|    467|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|    467|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2853|       |
 2854|  10.2k|    std::vector<String>::iterator inpNameIt = std::find(netInputsNames.begin(), netInputsNames.end(), outPin.name);
 2855|  10.2k|    int blobIndex;
 2856|  10.2k|    if (inpNameIt == netInputsNames.end())
  ------------------
  |  Branch (2856:9): [True: 10.2k, False: 0]
  ------------------
 2857|  10.2k|        blobIndex = outPin.blobIndex;
 2858|      0|    else
 2859|      0|        blobIndex = inpNameIt - netInputsNames.begin();
 2860|  10.2k|    network.connect(it->second, blobIndex, input_layer_id, input_blob_id);
 2861|  10.2k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_18parsePinERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  456|  18.3k|{
  457|  18.3k|    Pin pin(name);
  458|       |
  459|  18.3k|    size_t delimiter_pos = name.find_first_of(':');
  460|  18.3k|    if (delimiter_pos != std::string::npos)
  ------------------
  |  Branch (460:9): [True: 4.57k, False: 13.8k]
  ------------------
  461|  4.57k|    {
  462|  4.57k|        pin.name = name.substr(0, delimiter_pos);
  463|  4.57k|        std::istringstream(name.substr(delimiter_pos + 1)) >> pin.blobIndex;
  464|  4.57k|    }
  465|       |
  466|  18.3k|    return pin;
  467|  18.3k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_13PinC2ERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEi:
   72|  18.3k|        name(_name), blobIndex(_blobIndex) {}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_112hasLayerAttrERKN17opencv_tensorflow7NodeDefERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE:
  253|  26.1k|{
  254|  26.1k|    google::protobuf::Map<std::string, tensorflow::AttrValue> attr = layer.attr();
  255|  26.1k|    return attr.find(name) != attr.end();
  256|  26.1k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110setStridesERNS1_11LayerParamsERKN17opencv_tensorflow7NodeDefE:
  317|     31|{
  318|     31|    if (hasLayerAttr(layer, "strides"))
  ------------------
  |  Branch (318:9): [True: 0, False: 31]
  ------------------
  319|      0|    {
  320|      0|        const tensorflow::AttrValue& val = getLayerAttr(layer, "strides");
  321|      0|        int dimX, dimY, dimC, dimD;
  322|      0|        int layout = getDataLayout(layer);
  323|      0|        if (layout == DNN_LAYOUT_NCHW)
  ------------------
  |  Branch (323:13): [True: 0, False: 0]
  ------------------
  324|      0|        {
  325|      0|            dimC = 1; dimY = 2; dimX = 3;
  326|      0|        }
  327|      0|        else if (layout == DNN_LAYOUT_NDHWC)
  ------------------
  |  Branch (327:18): [True: 0, False: 0]
  ------------------
  328|      0|        {
  329|      0|            dimD = 1; dimY = 2; dimX = 3; dimC = 4;
  330|      0|        }
  331|      0|        else
  332|      0|        {
  333|      0|            dimY = 1; dimX = 2; dimC = 3;
  334|      0|        }
  335|      0|        if (!(val.list().i_size() == 4 || val.list().i_size() == 5) ||
  ------------------
  |  Branch (335:15): [True: 0, False: 0]
  |  Branch (335:43): [True: 0, False: 0]
  ------------------
  336|      0|            val.list().i(0) != 1 || val.list().i(dimC) != 1)
  ------------------
  |  Branch (336:13): [True: 0, False: 0]
  |  Branch (336:37): [True: 0, False: 0]
  ------------------
  337|      0|            CV_Error(Error::StsError, "Unsupported strides");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  338|      0|        if (layout == DNN_LAYOUT_NDHWC) {
  ------------------
  |  Branch (338:13): [True: 0, False: 0]
  ------------------
  339|      0|            int strides[] = {static_cast<int>(val.list().i(dimD)),
  340|      0|                             static_cast<int>(val.list().i(dimY)),
  341|      0|                             static_cast<int>(val.list().i(dimX))};
  342|      0|            layerParams.set("stride",  DictValue::arrayInt(strides, 3));
  343|      0|        }
  344|      0|        else
  345|      0|        {
  346|      0|            layerParams.set("stride_h", static_cast<int>(val.list().i(dimY)));
  347|      0|            layerParams.set("stride_w", static_cast<int>(val.list().i(dimX)));
  348|      0|        }
  349|      0|    }
  350|     31|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_113getDataLayoutERKN17opencv_tensorflow7NodeDefE:
  269|  25.2k|{
  270|  25.2k|    if (hasLayerAttr(layer, "data_format"))
  ------------------
  |  Branch (270:9): [True: 0, False: 25.2k]
  ------------------
  271|      0|    {
  272|      0|        std::string format = getLayerAttr(layer, "data_format").s();
  273|      0|        if (format == "NHWC" || format == "channels_last")
  ------------------
  |  Branch (273:13): [True: 0, False: 0]
  |  Branch (273:33): [True: 0, False: 0]
  ------------------
  274|      0|            return DNN_LAYOUT_NHWC;
  275|      0|        else if (format == "NCHW" || format == "channels_first")
  ------------------
  |  Branch (275:18): [True: 0, False: 0]
  |  Branch (275:38): [True: 0, False: 0]
  ------------------
  276|      0|            return DNN_LAYOUT_NCHW;
  277|      0|        else if (format == "NDHWC")
  ------------------
  |  Branch (277:18): [True: 0, False: 0]
  ------------------
  278|      0|            return DNN_LAYOUT_NDHWC;
  279|      0|        else
  280|      0|            CV_Error(Error::StsParseError, "Unknown data_format value: " + format);
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  281|      0|    }
  282|  25.2k|    return DNN_LAYOUT_UNKNOWN;
  283|  25.2k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter10setPaddingERNS1_11LayerParamsERKN17opencv_tensorflow7NodeDefERNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEf:
  607|     16|{
  608|     16|    setPadMode(layerParams, layer);
  609|     16|    int64_t pads[8];
  610|       |
  611|     16|    if (!getExplicitPadding(layerParams, layer, pads))
  ------------------
  |  Branch (611:9): [True: 16, False: 0]
  ------------------
  612|     16|    {
  613|     16|        return;
  614|     16|    }
  615|       |
  616|      0|    LayerParams padLp;
  617|      0|    padLp.name = layer.name() + "/pad";
  618|      0|    padLp.type = "Padding";
  619|      0|    padLp.set("paddings", DictValue::arrayInt(pads, sizeof(pads) / sizeof(pads[0])));
  620|      0|    padLp.set("value", value);
  621|       |
  622|      0|    int id = dstNet.addLayer(padLp.name, padLp.type, padLp);
  623|      0|    layer_id[padLp.name] = id;
  624|       |
  625|      0|    connect(layer_id, dstNet, parsePin(inputName), id, 0);
  626|      0|    inputName = padLp.name;
  627|       |
  628|      0|    layerParams.set("pad_mode", "VALID");
  629|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110setPadModeERNS1_11LayerParamsERKN17opencv_tensorflow7NodeDefE:
  409|     31|{
  410|     31|    if (hasLayerAttr(layer, "padding"))
  ------------------
  |  Branch (410:9): [True: 0, False: 31]
  ------------------
  411|      0|        layerParams.set("pad_mode", getLayerAttr(layer, "padding").s());
  412|     31|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_118getExplicitPaddingERNS1_11LayerParamsERKN17opencv_tensorflow7NodeDefERA8_l:
  415|     16|{
  416|     16|    if (!layerParams.has("pad_mode") ||
  ------------------
  |  Branch (416:9): [True: 16, False: 0]
  |  Branch (416:9): [True: 16, False: 0]
  ------------------
  417|     16|        layerParams.get("pad_mode").getStringValue() != "EXPLICIT")
  ------------------
  |  Branch (417:9): [True: 0, False: 0]
  ------------------
  418|     16|    {
  419|     16|        return false;
  420|     16|    }
  421|       |
  422|      0|    CV_Assert(hasLayerAttr(layer, "explicit_paddings"));
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  423|       |
  424|      0|    const tensorflow::AttrValue& protoPads = getLayerAttr(layer, "explicit_paddings");
  425|      0|    if (protoPads.list().i_size() != 8)
  ------------------
  |  Branch (425:9): [True: 0, False: 0]
  ------------------
  426|      0|    {
  427|      0|        CV_Error(Error::StsNotImplemented, "Unsupported asymmetric padding configuration.");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  428|      0|    }
  429|       |
  430|      0|    int n = sizeof(pads) / sizeof(pads[0]);
  431|      0|    for (int i = 0; i < n; ++i)
  ------------------
  |  Branch (431:21): [True: 0, False: 0]
  ------------------
  432|      0|    {
  433|      0|        pads[i] = protoPads.list().i(i);
  434|      0|    }
  435|       |
  436|      0|    if (getDataLayout(layer) != DNN_LAYOUT_NCHW)
  ------------------
  |  Branch (436:9): [True: 0, False: 0]
  ------------------
  437|      0|    {
  438|      0|        CV_LOG_DEBUG(NULL, "DNN/TF:     Data format " << getLayerAttr(layer, "data_format").s() << ", assuming NHWC.");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
  439|       |        // Perhaps, we have NHWC padding dimensions order.
  440|       |        //  N    H    W    C
  441|       |        // 0 1  2 3  4 5  6 7
  442|      0|        std::swap(pads[2], pads[6]);
  443|      0|        std::swap(pads[3], pads[7]);
  444|       |        //  N    C    W    H
  445|       |        // 0 1  2 3  4 5  6 7
  446|      0|        std::swap(pads[4], pads[6]);
  447|      0|        std::swap(pads[5], pads[7]);
  448|       |        //  N    C    H    W
  449|       |        // 0 1  2 3  4 5  6 7
  450|      0|    }
  451|       |
  452|      0|    return true;
  453|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_113getDataLayoutERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_3mapIS9_NS1_10DataLayoutENS3_4lessIS9_EENS7_INS3_4pairISA_SD_EEEEEE:
  295|    141|{
  296|    141|    std::map<String, DataLayout>::const_iterator it = data_layouts.find(getNodeName(layerName));
  297|    141|    return it != data_layouts.end() ? it->second : DNN_LAYOUT_UNKNOWN;
  ------------------
  |  Branch (297:12): [True: 115, False: 26]
  ------------------
  298|    141|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_111getNodeNameERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE:
  286|  34.5k|{
  287|  34.5k|    return tensorName.substr(0, tensorName.rfind(':'));
  288|  34.5k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter9parseBiasERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
  909|    196|{
  910|    196|    const std::string& name = layer.name();
  911|    196|    const std::string& type = layer.op();
  912|    196|    const int num_inputs = layer.input_size();
  913|       |
  914|    196|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|    196|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|    196|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|    196|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      5|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      5|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      5|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      5|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      5|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      5|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      5|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      5|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      5|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      5|    } \
  |  |  |  |  104|    196|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  915|    191|    bool haveConst = false;
  916|  1.58k|    for(int ii = 0; !haveConst && ii < num_inputs; ++ii)
  ------------------
  |  Branch (916:21): [True: 1.58k, False: 0]
  |  Branch (916:35): [True: 1.39k, False: 191]
  ------------------
  917|  1.39k|    {
  918|  1.39k|        Pin input = parsePin(layer.input(ii));
  919|  1.39k|        haveConst = value_id.find(input.name) != value_id.end();
  920|  1.39k|    }
  921|    191|    CV_Assert(!haveConst || num_inputs == 2);
  ------------------
  |  |  423|    191|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 191, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  922|       |
  923|    191|    if (haveConst)
  ------------------
  |  Branch (923:9): [True: 0, False: 191]
  ------------------
  924|      0|    {
  925|      0|        Mat values = getTensorContent(getConstBlob(layer, value_id));
  926|      0|        CV_Assert(values.type() == CV_32FC1);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
  927|      0|        if (type == "Sub")
  ------------------
  |  Branch (927:13): [True: 0, False: 0]
  ------------------
  928|      0|            values *= -1.0f;
  929|       |
  930|      0|        int id;
  931|      0|        if (values.total() == 1)  // is a scalar.
  ------------------
  |  Branch (931:13): [True: 0, False: 0]
  ------------------
  932|      0|        {
  933|      0|            layerParams.set("shift", values.at<float>(0));
  934|      0|            id = dstNet.addLayer(name, "Power", layerParams);
  935|      0|        }
  936|      0|        else  // is a vector
  937|      0|        {
  938|      0|            layerParams.blobs.resize(1, values);
  939|      0|            id = dstNet.addLayer(name, "Shift", layerParams);
  940|      0|        }
  941|      0|        layer_id[name] = id;
  942|       |
  943|       |        // one input only
  944|      0|        Pin inp0 = parsePin(layer.input(0));
  945|      0|        if (layer_id.find(inp0.name) != layer_id.end())
  ------------------
  |  Branch (945:13): [True: 0, False: 0]
  ------------------
  946|       |            // First operand is a constant.
  947|      0|            connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
  948|      0|        else
  949|      0|            connect(layer_id, dstNet, parsePin(layer.input(1)), id, 0);
  950|      0|    }
  951|    191|    else
  952|    191|    {
  953|    191|        layerParams.set("operation", "sum");
  954|    191|        if (type == "Sub")
  ------------------
  |  Branch (954:13): [True: 74, False: 117]
  ------------------
  955|     74|        {
  956|     74|            static float subCoeffs[] = {1.f, -1.f};
  957|     74|            layerParams.set("coeff", DictValue::arrayReal<float*>(subCoeffs, 2));
  958|     74|        }
  959|       |
  960|    191|        int id = dstNet.addLayer(name, "Eltwise", layerParams);
  961|    191|        layer_id[name] = id;
  962|       |
  963|  1.41k|        for (int ii = 0; ii < num_inputs; ii++)
  ------------------
  |  Branch (963:26): [True: 1.30k, False: 116]
  ------------------
  964|  1.30k|        {
  965|  1.30k|            Pin inp = parsePin(layer.input(ii));
  966|  1.30k|            if (layer_id.find(inp.name) == layer_id.end())
  ------------------
  |  Branch (966:17): [True: 75, False: 1.22k]
  ------------------
  967|     75|                CV_Error(Error::StsError, "Input layer not found: " + inp.name);
  ------------------
  |  |  399|     75|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|     75|#define CV_Func __func__
  |  |  ------------------
  ------------------
  968|  1.22k|            connect(layer_id, dstNet, inp, id, ii);
  969|  1.22k|        }
  970|    191|    }
  971|    191|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter11parseMatMulERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
  974|      6|{
  975|      6|    const std::string& name = layer.name();
  976|      6|    const int num_inputs = layer.input_size();
  977|       |
  978|      6|    CV_CheckEQ(num_inputs, 2, "");
  ------------------
  |  |  118|      6|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      6|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      6|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      2|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      2|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      2|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      2|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      2|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      2|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      2|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      2|    } \
  |  |  |  |  104|      6|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  979|       |
  980|       |    // For the object detection networks, TensorFlow Object Detection API
  981|       |    // predicts deltas for bounding boxes in yxYX (ymin, xmin, ymax, xmax)
  982|       |    // order. We can manage it at DetectionOutput layer parsing predictions
  983|       |    // or shuffle last Faster-RCNN's matmul weights.
  984|      4|    bool locPredTransposed = hasLayerAttr(layer, "loc_pred_transposed") &&
  ------------------
  |  Branch (984:30): [True: 0, False: 4]
  ------------------
  985|      4|                             getLayerAttr(layer, "loc_pred_transposed").b();
  ------------------
  |  Branch (985:30): [True: 0, False: 0]
  ------------------
  986|       |
  987|      4|    layerParams.set("bias_term", false);
  988|      4|    layerParams.blobs.resize(1);
  989|       |
  990|      4|    bool hasConstBlob = false;
  991|     12|    for(int i = 0; i < layer.input_size(); i++) {
  ------------------
  |  Branch (991:20): [True: 8, False: 4]
  ------------------
  992|      8|        if (value_id.find(layer.input(i)) != value_id.end())
  ------------------
  |  Branch (992:13): [True: 0, False: 8]
  ------------------
  993|      0|            hasConstBlob = true;
  994|      8|    }
  995|      4|    if (!hasConstBlob)
  ------------------
  |  Branch (995:9): [True: 4, False: 0]
  ------------------
  996|      4|    {
  997|      4|        layerParams.blobs.clear();
  998|      4|        int id = dstNet.addLayer(name, "InnerProduct", layerParams);
  999|      4|        layer_id[name] = id;
 1000|       |
 1001|       |        // two inputs
 1002|      8|        for(int ii=0; ii<layer.input_size(); ii++){
  ------------------
  |  Branch (1002:23): [True: 4, False: 4]
  ------------------
 1003|      4|            connect(layer_id, dstNet, parsePin(layer.input(ii)), id, ii);
 1004|      4|        }
 1005|      4|        return;
 1006|      4|    }
 1007|       |
 1008|      0|    StrIntVector next_layers = getNextLayers(net, name, "BiasAdd");  // FIXIT Use layers fusion instead
 1009|      0|    if (next_layers.empty())
  ------------------
  |  Branch (1009:9): [True: 0, False: 0]
  ------------------
 1010|      0|    {
 1011|      0|        next_layers = getNextLayers(net, name, "Add");
 1012|      0|    }
 1013|      0|    if (next_layers.size() == 1) {
  ------------------
  |  Branch (1013:9): [True: 0, False: 0]
  ------------------
 1014|      0|        layerParams.set("bias_term", true);
 1015|      0|        layerParams.blobs.resize(2);
 1016|       |
 1017|      0|        int weights_layer_index = next_layers[0].second;
 1018|      0|        blobFromTensor(getConstBlob(net.node(weights_layer_index), value_id), layerParams.blobs[1]);
 1019|      0|        ExcludeLayer(net, weights_layer_index, 0, false);
 1020|      0|        layers_to_ignore.insert(next_layers[0].first);
 1021|       |
 1022|      0|        if (locPredTransposed)
  ------------------
  |  Branch (1022:13): [True: 0, False: 0]
  ------------------
 1023|      0|        {
 1024|      0|            const int numWeights = layerParams.blobs[1].total();
 1025|      0|            float* biasData = reinterpret_cast<float*>(layerParams.blobs[1].data);
 1026|      0|            CV_Assert(numWeights % 4 == 0);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1027|      0|            for (int i = 0; i < numWeights; i += 2)
  ------------------
  |  Branch (1027:29): [True: 0, False: 0]
  ------------------
 1028|      0|            {
 1029|      0|                std::swap(biasData[i], biasData[i + 1]);
 1030|      0|            }
 1031|      0|        }
 1032|      0|    }
 1033|       |
 1034|      0|    int kernel_blob_index = -1;
 1035|      0|    const tensorflow::TensorProto& kernelTensor = getConstBlob(layer, value_id, -1, &kernel_blob_index);
 1036|      0|    const String kernelTensorName = layer.input(kernel_blob_index);
 1037|      0|    std::map<String, Mat>::iterator sharedWeightsIt = sharedWeights.find(kernelTensorName);
 1038|      0|    if (sharedWeightsIt == sharedWeights.end())
  ------------------
  |  Branch (1038:9): [True: 0, False: 0]
  ------------------
 1039|      0|    {
 1040|      0|        blobFromTensor(kernelTensor, layerParams.blobs[0]);
 1041|      0|        releaseTensor(const_cast<tensorflow::TensorProto*>(&kernelTensor));
 1042|      0|        sharedWeights[kernelTensorName] = layerParams.blobs[0];
 1043|      0|    }
 1044|      0|    else
 1045|      0|    {
 1046|      0|        layerParams.blobs[0] = sharedWeightsIt->second;
 1047|      0|    }
 1048|       |
 1049|      0|    if (kernel_blob_index == 1) { // In this case output is computed by x*W formula - W should be transposed
  ------------------
  |  Branch (1049:9): [True: 0, False: 0]
  ------------------
 1050|      0|        Mat data = layerParams.blobs[0].t();
 1051|      0|        layerParams.blobs[0] = data.clone();
 1052|      0|    }
 1053|       |
 1054|      0|    layerParams.set("num_output", layerParams.blobs[0].size[0]);
 1055|      0|    if (locPredTransposed)
  ------------------
  |  Branch (1055:9): [True: 0, False: 0]
  ------------------
 1056|      0|    {
 1057|      0|        CV_Assert(layerParams.blobs[0].dims == 2);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1058|      0|        for (int i = 0; i < layerParams.blobs[0].size[0]; i += 2)
  ------------------
  |  Branch (1058:25): [True: 0, False: 0]
  ------------------
 1059|      0|        {
 1060|      0|            cv::Mat src = layerParams.blobs[0].row(i);
 1061|      0|            cv::Mat dst = layerParams.blobs[0].row(i + 1);
 1062|      0|            std::swap_ranges(src.begin<float>(), src.end<float>(), dst.begin<float>());
 1063|      0|        }
 1064|      0|    }
 1065|       |
 1066|      0|    int id = dstNet.addLayer(name, "InnerProduct", layerParams);
 1067|      0|    layer_id[name] = id;
 1068|       |
 1069|       |    // one input only
 1070|      0|    int input_blob_index = kernel_blob_index == 0 ? 1 : 0;
  ------------------
  |  Branch (1070:28): [True: 0, False: 0]
  ------------------
 1071|      0|    connect(layer_id, dstNet, parsePin(layer.input(input_blob_index)), id, 0);
 1072|      0|    data_layouts[name] = DNN_LAYOUT_PLANAR;
 1073|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12parseReshapeERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1076|     15|{
 1077|     15|    const std::string& name = layer.name();
 1078|     15|    const int num_inputs = layer.input_size();
 1079|       |
 1080|     15|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     15|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     15|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     15|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      2|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      2|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      2|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      2|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      2|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      2|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      2|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      2|    } \
  |  |  |  |  104|     15|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1081|     13|    Pin inpId = parsePin(layer.input(0));
 1082|     13|    DataLayout inpLayout = getDataLayout(layer.input(0), data_layouts);
 1083|       |    // There are two possible implementations: reshape an input using
 1084|       |    // predefined sizes or use a second input blob as a source of new shape.
 1085|     13|    if (value_id.find(layer.input(1)) != value_id.end())
  ------------------
  |  Branch (1085:9): [True: 0, False: 13]
  ------------------
 1086|      0|    {
 1087|      0|        Mat newShape = getTensorContent(getConstBlob(layer, value_id, 1));
 1088|      0|        int newShapeSize = newShape.total();
 1089|      0|        bool hasSwap = false;
 1090|      0|        if (newShapeSize == 4 && hasAllOnes(newShape, 0, 2))
  ------------------
  |  Branch (1090:13): [True: 0, False: 0]
  |  Branch (1090:34): [True: 0, False: 0]
  ------------------
 1091|      0|        {
 1092|       |            // NHWC->NCHW
 1093|      0|            std::swap(*newShape.ptr<int32_t>(0, 2), *newShape.ptr<int32_t>(0, 3));
 1094|      0|            std::swap(*newShape.ptr<int32_t>(0, 1), *newShape.ptr<int32_t>(0, 2));
 1095|      0|            hasSwap = true;
 1096|      0|        }
 1097|       |
 1098|      0|        bool changedType{false};
 1099|       |
 1100|      0|        if (inpLayout == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (1100:13): [True: 0, False: 0]
  ------------------
 1101|      0|        {
 1102|      0|            if (newShapeSize >= 2 || newShape.at<int>(1) == 1)
  ------------------
  |  Branch (1102:17): [True: 0, False: 0]
  |  Branch (1102:38): [True: 0, False: 0]
  ------------------
 1103|      0|            {
 1104|      0|                int order[] = {0, 2, 3, 1};  // From OpenCV's NCHW to NHWC.
 1105|      0|                addPermuteLayer(order, name + "/nhwc", inpId);
 1106|      0|                if (newShapeSize < 4)
  ------------------
  |  Branch (1106:21): [True: 0, False: 0]
  ------------------
 1107|      0|                {
 1108|      0|                    inpLayout = DNN_LAYOUT_NCHW;
 1109|      0|                }
 1110|      0|                else
 1111|      0|                {
 1112|      0|                    inpLayout = DNN_LAYOUT_NHWC;
 1113|      0|                    changedType = newShapeSize == 4 && !hasSwap;
  ------------------
  |  Branch (1113:35): [True: 0, False: 0]
  |  Branch (1113:56): [True: 0, False: 0]
  ------------------
 1114|      0|                }
 1115|      0|            }
 1116|      0|        }
 1117|      0|        layerParams.set("dim", DictValue::arrayInt<int*>(newShape.ptr<int>(), newShapeSize));
 1118|       |
 1119|      0|        std::string setName = changedType ? name + "/realReshape" : name;
  ------------------
  |  Branch (1119:31): [True: 0, False: 0]
  ------------------
 1120|       |
 1121|      0|        int id = dstNet.addLayer(setName, "Reshape", layerParams);
 1122|      0|        layer_id[setName] = id;
 1123|       |
 1124|       |        // one input only
 1125|      0|        connect(layer_id, dstNet, inpId, id, 0);
 1126|      0|        inpId = Pin(setName);
 1127|       |
 1128|      0|        if ((inpLayout == DNN_LAYOUT_NHWC || inpLayout == DNN_LAYOUT_UNKNOWN || inpLayout == DNN_LAYOUT_PLANAR) &&
  ------------------
  |  Branch (1128:14): [True: 0, False: 0]
  |  Branch (1128:46): [True: 0, False: 0]
  |  Branch (1128:81): [True: 0, False: 0]
  ------------------
 1129|      0|            newShapeSize == 4 && !hasSwap)
  ------------------
  |  Branch (1129:13): [True: 0, False: 0]
  |  Branch (1129:34): [True: 0, False: 0]
  ------------------
 1130|      0|        {
 1131|      0|            int order[] = {0, 3, 1, 2};  // Transform back to OpenCV's NCHW.
 1132|       |
 1133|      0|            setName = changedType ? name : name + "/nchw";
  ------------------
  |  Branch (1133:23): [True: 0, False: 0]
  ------------------
 1134|      0|            addPermuteLayer(order, setName, inpId);
 1135|      0|            inpLayout = DNN_LAYOUT_NCHW;
 1136|      0|        }
 1137|       |
 1138|      0|        data_layouts[name] = newShapeSize == 2 ? DNN_LAYOUT_PLANAR : inpLayout;
  ------------------
  |  Branch (1138:30): [True: 0, False: 0]
  ------------------
 1139|      0|    }
 1140|     13|    else
 1141|     13|    {
 1142|     13|        int id = dstNet.addLayer(name, "Reshape", layerParams);
 1143|     13|        layer_id[name] = id;
 1144|     13|        connect(layer_id, dstNet, inpId, id, 0);
 1145|     13|        connect(layer_id, dstNet, parsePin(layer.input(1)), id, 1);
 1146|     13|        data_layouts[name] = inpLayout;
 1147|     13|    }
 1148|     13|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12parseFlattenERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1288|     46|{
 1289|     46|    const std::string& name = layer.name();
 1290|     46|    const std::string& type = layer.op();
 1291|     46|    const int num_inputs = layer.input_size();
 1292|       |
 1293|     46|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     46|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     46|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     46|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     46|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1294|     45|    Pin inpId = parsePin(layer.input(0));
 1295|     45|    int inpLayout = getDataLayout(layer.input(0), data_layouts);
 1296|     45|    if (type == "Squeeze")
  ------------------
  |  Branch (1296:9): [True: 1, False: 44]
  ------------------
 1297|      1|    {
 1298|      1|        CV_Assert(hasLayerAttr(layer, "squeeze_dims"));
  ------------------
  |  |  423|      1|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 1]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1299|      0|        const tensorflow::AttrValue& dims = getLayerAttr(layer, "squeeze_dims");
 1300|      0|        std::vector<int> dimsVector(dims.list().i_size());
 1301|      0|        for (int i = 0; i < dimsVector.size(); ++i)
  ------------------
  |  Branch (1301:25): [True: 0, False: 0]
  ------------------
 1302|      0|            dimsVector[i] = dims.list().i(i);
 1303|       |
 1304|       |        // Flatten layer can squeeze dimensions range into one.
 1305|      0|        std::sort(dimsVector.begin(), dimsVector.end());
 1306|      0|        for (int i = 1; i < dimsVector.size(); ++i)
  ------------------
  |  Branch (1306:25): [True: 0, False: 0]
  ------------------
 1307|      0|        {
 1308|      0|            if (dimsVector[i] != dimsVector[i - 1] + 1)
  ------------------
  |  Branch (1308:17): [True: 0, False: 0]
  ------------------
 1309|      0|                CV_Error(Error::StsNotImplemented, "Unsupported squeeze configuration");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1310|      0|        }
 1311|      0|        int start = dimsVector.front() - 1, end = dimsVector.back();
 1312|      0|        if (start == -1 && end == 0)  // squeeze 0th dimension
  ------------------
  |  Branch (1312:13): [True: 0, False: 0]
  |  Branch (1312:28): [True: 0, False: 0]
  ------------------
 1313|      0|        {
 1314|      0|            start = 0;
 1315|      0|            end = 1;
 1316|      0|        }
 1317|      0|        layerParams.set("axis", start);
 1318|      0|        layerParams.set("end_axis", end);
 1319|      0|    }
 1320|     44|    if (inpLayout == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (1320:9): [True: 0, False: 44]
  ------------------
 1321|      0|    {
 1322|      0|        LayerParams permLP;
 1323|      0|        int order[] = {0, 2, 3, 1};  // From OpenCV's NCHW to NHWC.
 1324|      0|        permLP.set("order", DictValue::arrayInt<int*>(order, 4));
 1325|       |
 1326|      0|        std::string permName = name + "/nchw";
 1327|      0|        CV_Assert(layer_id.find(permName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1328|      0|        int permId = dstNet.addLayer(permName, "Permute", permLP);
 1329|      0|        layer_id[permName] = permId;
 1330|      0|        connect(layer_id, dstNet, inpId, permId, 0);
 1331|      0|        inpId = Pin(permName);
 1332|      0|    }
 1333|     44|    int id = dstNet.addLayer(name, "Flatten", layerParams);
 1334|     44|    layer_id[name] = id;
 1335|     44|    connect(layer_id, dstNet, inpId, id, 0);
 1336|     44|    data_layouts[name] = DNN_LAYOUT_PLANAR;
 1337|     44|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter8parseLrnERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1419|      8|{
 1420|      8|    const std::string& name = layer.name();
 1421|      8|    const int num_inputs = layer.input_size();
 1422|       |
 1423|      8|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|      8|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      8|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      8|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|      8|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1424|      7|    if(hasLayerAttr(layer, "alpha")) {
  ------------------
  |  Branch (1424:8): [True: 0, False: 7]
  ------------------
 1425|      0|        layerParams.set("alpha", getLayerAttr(layer, "alpha").f());
 1426|      0|    }
 1427|      7|    if(hasLayerAttr(layer, "beta")) {
  ------------------
  |  Branch (1427:8): [True: 0, False: 7]
  ------------------
 1428|      0|        layerParams.set("beta", getLayerAttr(layer, "beta").f());
 1429|      0|    }
 1430|      7|    if(hasLayerAttr(layer, "depth_radius")) {
  ------------------
  |  Branch (1430:8): [True: 0, False: 7]
  ------------------
 1431|      0|        int radius = (int)getLayerAttr(layer, "depth_radius").i();
 1432|      0|        layerParams.set("local_size", 2*radius + 1);
 1433|      0|    }
 1434|      7|    if(hasLayerAttr(layer, "bias")) {
  ------------------
  |  Branch (1434:8): [True: 0, False: 7]
  ------------------
 1435|      0|        layerParams.set("bias", getLayerAttr(layer, "bias").f());
 1436|      0|    }
 1437|      7|    layerParams.set("norm_by_size", false);
 1438|       |
 1439|      7|    int id = dstNet.addLayer(name, "LRN", layerParams);
 1440|      7|    layer_id[name] = id;
 1441|       |
 1442|      7|    connectToAllBlobs(layer_id, dstNet, parsePin(layer.input(0)), id, num_inputs);
 1443|      7|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter17connectToAllBlobsERKNSt3__13mapINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEiNS4_4lessISB_EENS9_INS4_4pairIKSB_iEEEEEERNS1_3NetERKNS2_3PinEii:
 2865|    140|{
 2866|    722|    for (int input_blob_id = 0; input_blob_id < input_blobs_count; input_blob_id++)
  ------------------
  |  Branch (2866:33): [True: 582, False: 140]
  ------------------
 2867|    582|        connect(layer_id, network, outPin, input_layer_id, input_blob_id);
 2868|    140|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter11parseConcatERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1447|     11|{
 1448|     11|    const std::string& name = layer.name();
 1449|     11|    const std::string& type = layer.op();
 1450|     11|    const int num_inputs = layer.input_size();
 1451|       |
 1452|     11|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     11|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     11|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     11|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     11|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1453|     10|    int axisId = (type == "Concat" ? 0 : num_inputs - 1);
  ------------------
  |  Branch (1453:19): [True: 10, False: 0]
  ------------------
 1454|     10|    int axis = getConstBlob(layer, value_id, axisId).int_val().Get(0);
 1455|       |
 1456|     10|    if (getDataLayout(name, data_layouts) == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (1456:9): [True: 0, False: 10]
  ------------------
 1457|      0|        axis = toNCHW(axis);
 1458|     10|    else if (getDataLayout(name, data_layouts) == DNN_LAYOUT_NDHWC)
  ------------------
  |  Branch (1458:14): [True: 0, False: 10]
  ------------------
 1459|      0|        axis = toNCDHW(axis);
 1460|     10|    layerParams.set("axis", axis);
 1461|       |
 1462|       |    // input(0) or input(n-1) is concat_dim
 1463|     10|    int from = (type == "Concat" ? 1 : 0);
  ------------------
  |  Branch (1463:17): [True: 0, False: 10]
  ------------------
 1464|     10|    int to = (type == "Concat" ? num_inputs : num_inputs - 1);
  ------------------
  |  Branch (1464:15): [True: 0, False: 10]
  ------------------
 1465|       |
 1466|     10|    for (int ii = from; ii < to; ii++)
  ------------------
  |  Branch (1466:25): [True: 0, False: 10]
  ------------------
 1467|      0|    {
 1468|      0|        Pin inp = parsePin(layer.input(ii));
 1469|      0|        if (layer_id.find(inp.name) == layer_id.end())
  ------------------
  |  Branch (1469:13): [True: 0, False: 0]
  ------------------
 1470|      0|        {
 1471|       |            // There are constant inputs.
 1472|      0|            LayerParams lp;
 1473|      0|            lp.name = inp.name;
 1474|      0|            lp.type = "Const";
 1475|      0|            lp.blobs.resize(1);
 1476|      0|            blobFromTensor(getConstBlob(layer, value_id, ii), lp.blobs.back());
 1477|      0|            CV_Assert_N(!lp.blobs[0].empty(), lp.blobs[0].type() == CV_32F);
  ------------------
  |  |  449|      0|#define CV_Assert_N(...) do { __CV_EXPAND(__CV_CAT(CV_Assert_, __CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__)); } while(0)
  |  |  ------------------
  |  |  |  |   79|      0|#define __CV_EXPAND(x) x
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (79:24): [True: 0, False: 0]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  |  Branch (79:24): [True: 0, False: 0]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (449:119): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1478|       |
 1479|      0|            int constInpId = dstNet.addLayer(lp.name, lp.type, lp);
 1480|      0|            layer_id[lp.name] = constInpId;
 1481|      0|        }
 1482|      0|    }
 1483|       |
 1484|     10|    int id = dstNet.addLayer(name, "Concat", layerParams);
 1485|     10|    layer_id[name] = id;
 1486|       |
 1487|     10|    for (int ii = from; ii < to; ii++)
  ------------------
  |  Branch (1487:25): [True: 0, False: 10]
  ------------------
 1488|      0|    {
 1489|      0|        Pin inp = parsePin(layer.input(ii));
 1490|      0|        if (layer_id.find(inp.name) == layer_id.end())
  ------------------
  |  Branch (1490:13): [True: 0, False: 0]
  ------------------
 1491|      0|            CV_Error(Error::StsError, "Input layer not found: " + inp.name);
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1492|      0|        connect(layer_id, dstNet, inp, id, ii - from);
 1493|      0|    }
 1494|     10|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12parseMaxPoolERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1498|     16|{
 1499|     16|    const std::string& name = layer.name();
 1500|     16|    const int num_inputs = layer.input_size();
 1501|     16|    std::string inputName = layer.input(0);
 1502|       |
 1503|     16|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     16|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     16|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     16|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|     16|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1504|     16|    layerParams.set("pool", "max");
 1505|       |
 1506|     16|    setKSize(layerParams, layer);
 1507|     16|    setStrides(layerParams, layer);
 1508|     16|    setPadding(layerParams, layer, inputName, -std::numeric_limits<float>::infinity());
 1509|       |    // Test_TensorFlow_nets.EAST_text_detection/1, NGRAPH/CPU
 1510|     16|    layerParams.set("ceil_mode", false);
 1511|       |
 1512|     16|    int id = dstNet.addLayer(name, "Pooling", layerParams);
 1513|     16|    layer_id[name] = id;
 1514|       |
 1515|     16|    connectToAllBlobs(layer_id, dstNet, parsePin(inputName), id, num_inputs);
 1516|     16|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_18setKSizeERNS1_11LayerParamsERKN17opencv_tensorflow7NodeDefE:
  367|     31|{
  368|     31|    if (hasLayerAttr(layer, "ksize"))
  ------------------
  |  Branch (368:9): [True: 0, False: 31]
  ------------------
  369|      0|    {
  370|      0|        const tensorflow::AttrValue& val = getLayerAttr(layer, "ksize");
  371|      0|        int dimX, dimY, dimC, dimD;
  372|      0|        int layout = getDataLayout(layer);
  373|      0|        if (layout == DNN_LAYOUT_NCHW)
  ------------------
  |  Branch (373:13): [True: 0, False: 0]
  ------------------
  374|      0|        {
  375|      0|            dimC = 1; dimY = 2; dimX = 3;
  376|      0|        }
  377|      0|        else if (layout == DNN_LAYOUT_NDHWC)
  ------------------
  |  Branch (377:18): [True: 0, False: 0]
  ------------------
  378|      0|        {
  379|      0|            dimD = 1; dimY = 2; dimX = 3; dimC = 4;
  380|      0|        }
  381|      0|        else
  382|      0|        {
  383|      0|            dimY = 1; dimX = 2; dimC = 3;
  384|      0|        }
  385|      0|        if (!(val.list().i_size() == 4 || val.list().i_size() == 5) ||
  ------------------
  |  Branch (385:15): [True: 0, False: 0]
  |  Branch (385:43): [True: 0, False: 0]
  ------------------
  386|      0|            val.list().i(0) != 1 || val.list().i(dimC) != 1)
  ------------------
  |  Branch (386:13): [True: 0, False: 0]
  |  Branch (386:37): [True: 0, False: 0]
  ------------------
  387|      0|            CV_Error(Error::StsError, "Unsupported ksize");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
  388|       |
  389|      0|        if (layout == DNN_LAYOUT_NDHWC) {
  ------------------
  |  Branch (389:13): [True: 0, False: 0]
  ------------------
  390|      0|            int kernel[] = {static_cast<int>(val.list().i(dimD)),
  391|      0|                            static_cast<int>(val.list().i(dimY)),
  392|      0|                            static_cast<int>(val.list().i(dimX))};
  393|      0|            layerParams.set("kernel_size",  DictValue::arrayInt(kernel, 3));
  394|      0|        }
  395|      0|        else
  396|      0|        {
  397|      0|            layerParams.set("kernel_h", static_cast<int>(val.list().i(dimY)));
  398|      0|            layerParams.set("kernel_w", static_cast<int>(val.list().i(dimX)));
  399|      0|        }
  400|      0|    }
  401|     31|    else
  402|     31|    {
  403|     31|        layerParams.set("kernel_h", 1);
  404|     31|        layerParams.set("kernel_w", 1);
  405|     31|    }
  406|     31|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12parseAvgPoolERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1520|     16|{
 1521|     16|    const std::string& name = layer.name();
 1522|     16|    const int num_inputs = layer.input_size();
 1523|       |
 1524|     16|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     16|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     16|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     16|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     16|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1525|     15|    layerParams.set("pool", "ave");
 1526|     15|    layerParams.set("ave_pool_padded_area", false);
 1527|     15|    setKSize(layerParams, layer);
 1528|     15|    setStrides(layerParams, layer);
 1529|     15|    setPadMode(layerParams, layer);
 1530|       |
 1531|     15|    int id = dstNet.addLayer(name, "Pooling", layerParams);
 1532|     15|    layer_id[name] = id;
 1533|       |
 1534|     15|    connectToAllBlobs(layer_id, dstNet, parsePin(layer.input(0)), id, num_inputs);
 1535|     15|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter10parseSplitERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1612|      2|{
 1613|       |    // TODO: determining axis index remapping by input dimensions order of input blob
 1614|       |    // TODO: slicing input may be Const op
 1615|       |    // TODO: slicing kernels for convolutions - in current implementation it is impossible
 1616|       |    // TODO: add parsing num of slices parameter
 1617|      2|    const std::string& name = layer.name();
 1618|      2|    const int num_inputs = layer.input_size();
 1619|       |
 1620|      2|    CV_CheckEQ(num_inputs, 2, "");
  ------------------
  |  |  118|      2|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      2|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      2|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|      2|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1621|       |    // num_split
 1622|       |    // 1st blob is dims tensor
 1623|      1|    int axis = getConstBlob(layer, value_id, 0).int_val().Get(0);
 1624|      1|    if (getDataLayout(name, data_layouts) == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (1624:9): [True: 0, False: 1]
  ------------------
 1625|      0|        axis = toNCHW(axis);
 1626|      1|    layerParams.set("axis", axis);
 1627|       |
 1628|      1|    if (hasLayerAttr(layer, "num_split"))
  ------------------
  |  Branch (1628:9): [True: 0, False: 1]
  ------------------
 1629|      0|        layerParams.set("num_split", getLayerAttr(layer, "num_split").i());
 1630|       |
 1631|      1|    int id = dstNet.addLayer(name, "Slice", layerParams);
 1632|      1|    layer_id[name] = id;
 1633|       |
 1634|       |    // one input only
 1635|      1|    connect(layer_id, dstNet, parsePin(layer.input(1)), id, 0);
 1636|      1|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter10parseSliceERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1639|      4|{
 1640|       |    // op: "Slice"
 1641|       |    // input: "input_node"
 1642|       |    // input: "Slice/begin"
 1643|       |    // input: "Slice/size"
 1644|      4|    const std::string& name = layer.name();
 1645|      4|    const int num_inputs = layer.input_size();
 1646|       |
 1647|      4|    CV_CheckEQ(num_inputs, 3, "");
  ------------------
  |  |  118|      4|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      4|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      4|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      3|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      3|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      3|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      3|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      3|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      3|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      3|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      3|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      3|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      3|    } \
  |  |  |  |  104|      4|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1648|      1|    Mat begins = getTensorContent(getConstBlob(layer, value_id, 1));
 1649|      1|    Mat sizes = getTensorContent(getConstBlob(layer, value_id, 2));
 1650|      1|    CV_Assert_N(!begins.empty(), !sizes.empty());
  ------------------
  |  |  449|      1|#define CV_Assert_N(...) do { __CV_EXPAND(__CV_CAT(CV_Assert_, __CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__)); } while(0)
  |  |  ------------------
  |  |  |  |   79|      3|#define __CV_EXPAND(x) x
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (79:24): [True: 0, False: 1]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  |  Branch (79:24): [True: 0, False: 0]
  |  |  |  |  |  Branch (79:24): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (449:119): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1651|      0|    CV_CheckTypeEQ(begins.type(), CV_32SC1, "");
  ------------------
  |  |  126|      0|#define CV_CheckTypeEQ(t1, t2, msg)  CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1652|      0|    CV_CheckTypeEQ(sizes.type(), CV_32SC1, "");
  ------------------
  |  |  126|      0|#define CV_CheckTypeEQ(t1, t2, msg)  CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1653|       |
 1654|      0|    if (begins.total() == 4 && getDataLayout(name, data_layouts) == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (1654:9): [True: 0, False: 0]
  |  Branch (1654:32): [True: 0, False: 0]
  ------------------
 1655|      0|    {
 1656|       |        // Swap NHWC parameters' order to NCHW.
 1657|      0|        std::swap(*begins.ptr<int32_t>(0, 2), *begins.ptr<int32_t>(0, 3));
 1658|      0|        std::swap(*begins.ptr<int32_t>(0, 1), *begins.ptr<int32_t>(0, 2));
 1659|      0|        std::swap(*sizes.ptr<int32_t>(0, 2), *sizes.ptr<int32_t>(0, 3));
 1660|      0|        std::swap(*sizes.ptr<int32_t>(0, 1), *sizes.ptr<int32_t>(0, 2));
 1661|      0|    }
 1662|      0|    layerParams.set("begin", DictValue::arrayInt((int*)begins.data, begins.total()));
 1663|      0|    layerParams.set("size", DictValue::arrayInt((int*)sizes.data, sizes.total()));
 1664|       |
 1665|      0|    int id = dstNet.addLayer(name, "Slice", layerParams);
 1666|      0|    layer_id[name] = id;
 1667|       |
 1668|      0|    connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 1669|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter8parseMulERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1727|     59|{
 1728|     59|    const std::string& name = layer.name();
 1729|     59|    const std::string& type = layer.op();
 1730|     59|    const int num_inputs = layer.input_size();
 1731|       |
 1732|     59|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     59|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     59|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     59|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|     13|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|     13|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|     13|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|     13|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|     13|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|     13|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|     13|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|     13|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|     13|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|     13|    } \
  |  |  |  |  104|     59|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1733|     46|    int constId = -1;
 1734|    847|    for(int ii = 0; ii < num_inputs; ++ii)
  ------------------
  |  Branch (1734:21): [True: 801, False: 46]
  ------------------
 1735|    801|    {
 1736|    801|        Pin input = parsePin(layer.input(ii));
 1737|    801|        if (value_id.find(input.name) != value_id.end())
  ------------------
  |  Branch (1737:13): [True: 0, False: 801]
  ------------------
 1738|      0|        {
 1739|      0|            constId = ii;
 1740|      0|            break;
 1741|      0|        }
 1742|    801|    }
 1743|     46|    CV_Assert((constId != -1) || (num_inputs == 2));
  ------------------
  |  |  423|     92|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|     19|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 0, False: 46]
  |  |  |  Branch (423:38): [True: 27, False: 19]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1744|       |
 1745|     27|    if (constId != -1)
  ------------------
  |  Branch (1745:9): [True: 0, False: 27]
  ------------------
 1746|      0|    {
 1747|       |        // Multiplication by constant.
 1748|      0|        CV_CheckEQ(num_inputs, 2, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1749|      0|        Mat scaleMat = getTensorContent(getConstBlob(layer, value_id));
 1750|      0|        CV_Assert(scaleMat.type() == CV_32FC1);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1751|      0|        if (type == "RealDiv")
  ------------------
  |  Branch (1751:13): [True: 0, False: 0]
  ------------------
 1752|      0|        {
 1753|      0|            if (constId == 0)
  ------------------
  |  Branch (1753:17): [True: 0, False: 0]
  ------------------
 1754|      0|                CV_Error(Error::StsNotImplemented, "Division of constant over variable");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1755|      0|            scaleMat = 1.0f / scaleMat;
 1756|      0|        }
 1757|       |
 1758|      0|        int id;
 1759|      0|        if (scaleMat.total() == 1)  // is a scalar.
  ------------------
  |  Branch (1759:13): [True: 0, False: 0]
  ------------------
 1760|      0|        {
 1761|       |            // Try to match with a LeakyRelu:
 1762|       |            // node {
 1763|       |            //   name: "LeakyRelu/mul"
 1764|       |            //   op: "Mul"
 1765|       |            //   input: "LeakyRelu/alpha"
 1766|       |            //   input: "input"
 1767|       |            // }
 1768|       |            // node {
 1769|       |            //   name: "LeakyRelu/Maximum"
 1770|       |            //   op: "Maximum"
 1771|       |            //   input: "LeakyRelu/mul"
 1772|       |            //   input: "input"
 1773|       |            // }
 1774|      0|            StrIntVector next_layers = getNextLayers(net, name, "Maximum");
 1775|      0|            if (!next_layers.empty())
  ------------------
  |  Branch (1775:17): [True: 0, False: 0]
  ------------------
 1776|      0|            {
 1777|      0|                int maximumLayerIdx = next_layers[0].second;
 1778|       |
 1779|      0|                CV_Assert(net.node(maximumLayerIdx).input_size() == 2);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1780|       |
 1781|       |                // The input from the Mul layer can also be at index 1.
 1782|      0|                int mulInputIdx = (net.node(maximumLayerIdx).input(0) == name) ? 0 : 1;
  ------------------
  |  Branch (1782:35): [True: 0, False: 0]
  ------------------
 1783|       |
 1784|      0|                ExcludeLayer(net, maximumLayerIdx, mulInputIdx, false);
 1785|      0|                layers_to_ignore.insert(next_layers[0].first);
 1786|       |
 1787|      0|                layerParams.set("negative_slope", scaleMat.at<float>(0));
 1788|      0|                id = dstNet.addLayer(name, "ReLU", layerParams);
 1789|      0|            }
 1790|      0|            else
 1791|      0|            {
 1792|       |                // Just a multiplication.
 1793|      0|                layerParams.set("scale", scaleMat.at<float>(0));
 1794|      0|                id = dstNet.addLayer(name, "Power", layerParams);
 1795|      0|            }
 1796|      0|        }
 1797|      0|        else  // is a vector
 1798|      0|        {
 1799|      0|            layerParams.blobs.resize(1, scaleMat);
 1800|       |
 1801|      0|            StrIntVector next_layers = getNextLayers(net, name, "Add");
 1802|      0|            if (!next_layers.empty())
  ------------------
  |  Branch (1802:17): [True: 0, False: 0]
  ------------------
 1803|      0|            {
 1804|      0|                layerParams.set("bias_term", true);
 1805|      0|                layerParams.blobs.resize(2);
 1806|       |
 1807|      0|                int weights_layer_index = next_layers[0].second;
 1808|      0|                blobFromTensor(getConstBlob(net.node(weights_layer_index), value_id), layerParams.blobs.back());
 1809|      0|                ExcludeLayer(net, weights_layer_index, 0, false);
 1810|      0|                layers_to_ignore.insert(next_layers[0].first);
 1811|      0|            }
 1812|       |
 1813|      0|            if (hasLayerAttr(layer, "axis"))
  ------------------
  |  Branch (1813:17): [True: 0, False: 0]
  ------------------
 1814|      0|                layerParams.set("axis", getLayerAttr(layer, "axis").i());
 1815|       |
 1816|      0|            id = dstNet.addLayer(name, "Scale", layerParams);
 1817|      0|        }
 1818|      0|        layer_id[name] = id;
 1819|       |
 1820|      0|        Pin inp0 = parsePin(layer.input(0));
 1821|      0|        if (layer_id.find(inp0.name) != layer_id.end())
  ------------------
  |  Branch (1821:13): [True: 0, False: 0]
  ------------------
 1822|       |            // First operand is a constant.
 1823|      0|            connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 1824|      0|        else
 1825|      0|            connect(layer_id, dstNet, parsePin(layer.input(1)), id, 0);
 1826|      0|    }
 1827|     27|    else
 1828|     27|    {
 1829|       |        // Check if all the inputs have the same shape.
 1830|     27|        bool equalInpShapes = true;
 1831|     27|        bool isShapeOnes = false;
 1832|     27|        MatShape outShape0;
 1833|     27|        for (int ii = 0; ii < num_inputs && !netInputShapes.empty(); ii++)
  ------------------
  |  Branch (1833:26): [True: 27, False: 0]
  |  Branch (1833:45): [True: 0, False: 27]
  ------------------
 1834|      0|        {
 1835|      0|            Pin pin = parsePin(layer.input(ii));
 1836|      0|            int inpId = layer_id.find(pin.name)->second;
 1837|       |
 1838|       |            // Get input shape
 1839|      0|            MatShape outShape;
 1840|      0|            std::vector<MatShape> inpShapes, outShapes;
 1841|      0|            dstNet.getLayerShapes(netInputShapes, inpId, inpShapes, outShapes);
 1842|      0|            CV_CheckGT(static_cast<int>(outShapes.size()), pin.blobIndex, "");
  ------------------
  |  |  123|      0|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1843|      0|            outShape = outShapes[pin.blobIndex];
 1844|       |
 1845|      0|            if (ii == 0)
  ------------------
  |  Branch (1845:17): [True: 0, False: 0]
  ------------------
 1846|      0|            {
 1847|      0|                outShape0 = outShape;
 1848|      0|            }
 1849|      0|            else if (outShape != outShape0)
  ------------------
  |  Branch (1849:22): [True: 0, False: 0]
  ------------------
 1850|      0|            {
 1851|      0|                equalInpShapes = false;
 1852|      0|                isShapeOnes = isAllOnes(outShape, 2, outShape.size()) ||
  ------------------
  |  Branch (1852:31): [True: 0, False: 0]
  ------------------
 1853|      0|                              isAllOnes(outShape0, 2, outShape0.size());
  ------------------
  |  Branch (1853:31): [True: 0, False: 0]
  ------------------
 1854|      0|                break;
 1855|      0|            }
 1856|      0|        }
 1857|       |
 1858|     27|        int id;
 1859|     27|        if (equalInpShapes || netInputShapes.empty() || (!equalInpShapes && isShapeOnes))
  ------------------
  |  Branch (1859:13): [True: 27, False: 0]
  |  Branch (1859:31): [True: 0, False: 0]
  |  Branch (1859:58): [True: 0, False: 0]
  |  Branch (1859:77): [True: 0, False: 0]
  ------------------
 1860|     27|        {
 1861|     27|            layerParams.set("operation", type == "RealDiv" ? "div" : "prod");
  ------------------
  |  Branch (1861:42): [True: 3, False: 24]
  ------------------
 1862|     27|            id = dstNet.addLayer(name, "Eltwise", layerParams);
 1863|     27|        }
 1864|      0|        else
 1865|      0|        {
 1866|      0|            if (type == "RealDiv")
  ------------------
  |  Branch (1866:17): [True: 0, False: 0]
  ------------------
 1867|      0|                CV_Error(Error::StsNotImplemented, "Division of non equal tensors");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1868|      0|            id = dstNet.addLayer(name, "Scale", layerParams);
 1869|      0|        }
 1870|       |
 1871|     27|        layer_id[name] = id;
 1872|       |
 1873|     77|        for (int ii = 0; ii < num_inputs; ii++)
  ------------------
  |  Branch (1873:26): [True: 51, False: 26]
  ------------------
 1874|     51|        {
 1875|     51|            Pin inp = parsePin(layer.input(ii));
 1876|     51|            if (layer_id.find(inp.name) == layer_id.end())
  ------------------
  |  Branch (1876:17): [True: 1, False: 50]
  ------------------
 1877|      1|                CV_Error(Error::StsError, "Input layer not found: " + inp.name);
  ------------------
  |  |  399|      1|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1878|     50|            connect(layer_id, dstNet, inp, id, ii);
 1879|     50|        }
 1880|     27|    }
 1881|     27|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter19parseFusedBatchNormERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1885|      1|{
 1886|       |    // op: "FusedBatchNorm"
 1887|       |    // input: "input"
 1888|       |    // input: "BatchNorm/gamma"
 1889|       |    // input: "BatchNorm/beta"
 1890|       |    // input: "BatchNorm/moving_mean"
 1891|       |    // input: "BatchNorm/moving_variance"
 1892|       |
 1893|      1|    const std::string& name = layer.name();
 1894|      1|    const int num_inputs = layer.input_size();
 1895|       |
 1896|      1|    CV_CheckEQ(num_inputs, 5, "Expected gamma, beta, mean and std");
  ------------------
  |  |  118|      1|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      1|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      1|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|      1|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1897|      0|    Pin inpId = parsePin(layer.input(0));
 1898|       |
 1899|      0|    bool isTraining = hasLayerAttr(layer, "is_training") && getLayerAttr(layer, "is_training").b();
  ------------------
  |  Branch (1899:23): [True: 0, False: 0]
  |  Branch (1899:61): [True: 0, False: 0]
  ------------------
 1900|       |
 1901|      0|    layerParams.blobs.resize(2);
 1902|       |
 1903|      0|    const tensorflow::TensorProto& gammaTensor = getConstBlob(layer, value_id, 1);
 1904|      0|    if (!gammaTensor.tensor_content().empty())
  ------------------
  |  Branch (1904:9): [True: 0, False: 0]
  ------------------
 1905|      0|    {
 1906|      0|        layerParams.blobs.resize(layerParams.blobs.size() + 1);
 1907|      0|        layerParams.set("has_weight", true);
 1908|      0|        blobFromTensor(gammaTensor, layerParams.blobs.back());
 1909|      0|    }
 1910|      0|    else
 1911|      0|        layerParams.set("has_weight", false);
 1912|       |
 1913|      0|    const tensorflow::TensorProto& betaTensor = getConstBlob(layer, value_id, 2);
 1914|      0|    if (!betaTensor.tensor_content().empty())
  ------------------
  |  Branch (1914:9): [True: 0, False: 0]
  ------------------
 1915|      0|    {
 1916|      0|        layerParams.blobs.resize(layerParams.blobs.size() + 1);
 1917|      0|        layerParams.set("has_bias", true);
 1918|      0|        blobFromTensor(betaTensor, layerParams.blobs.back());
 1919|      0|    }
 1920|      0|    else
 1921|      0|        layerParams.set("has_bias", false);
 1922|       |
 1923|      0|    Mat mean, std;
 1924|      0|    if (isTraining)
  ------------------
  |  Branch (1924:9): [True: 0, False: 0]
  ------------------
 1925|      0|    {
 1926|      0|        if (layerParams.blobs.size() == 2)
  ------------------
  |  Branch (1926:13): [True: 0, False: 0]
  ------------------
 1927|      0|            CV_Error(Error::StsNotImplemented, "Cannot determine number "
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 1928|      0|                                               "of parameters for batch normalization layer.");
 1929|      0|        mean = Mat::zeros(1, layerParams.blobs[2].total(), CV_32F);
  ------------------
  |  |   78|      0|#define CV_32F  5
  ------------------
 1930|      0|        std = Mat::ones(1, layerParams.blobs[2].total(), CV_32F);
  ------------------
  |  |   78|      0|#define CV_32F  5
  ------------------
 1931|       |
 1932|       |        // Add an extra layer: Mean-Variance normalization
 1933|      0|        LayerParams mvnParams;
 1934|      0|        std::string mvnName = name + "/MVN";
 1935|      0|        CV_Assert(layer_id.find(mvnName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1936|      0|        int mvnId = dstNet.addLayer(mvnName, "MVN", mvnParams);
 1937|      0|        layer_id[mvnName] = mvnId;
 1938|      0|        connect(layer_id, dstNet, inpId, mvnId, 0);
 1939|      0|        inpId = Pin(mvnName);
 1940|      0|    }
 1941|      0|    else
 1942|      0|    {
 1943|      0|        blobFromTensor(getConstBlob(layer, value_id, 3), mean);
 1944|      0|        blobFromTensor(getConstBlob(layer, value_id, 4), std);
 1945|      0|    }
 1946|      0|    layerParams.blobs[0] = mean;
 1947|      0|    layerParams.blobs[1] = std;
 1948|       |
 1949|      0|    if (hasLayerAttr(layer, "epsilon"))
  ------------------
  |  Branch (1949:9): [True: 0, False: 0]
  ------------------
 1950|      0|        layerParams.set("eps", getLayerAttr(layer, "epsilon").f());
 1951|       |
 1952|      0|    int id = dstNet.addLayer(name, "BatchNorm", layerParams);
 1953|      0|    layer_id[name] = id;
 1954|       |
 1955|       |    // one input only
 1956|      0|    connect(layer_id, dstNet, inpId, id, 0);
 1957|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter14parseBlockLSTMERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2060|      1|{
 2061|       |    // op: "BlockLSTM"
 2062|       |    // input: "lstm_block_wrapper/ToInt64/x"  (ignore, number of time stamps)
 2063|       |    // input: "input"
 2064|       |    // input: "lstm_block_wrapper/zeros"
 2065|       |    // input: "lstm_block_wrapper/zeros"
 2066|       |    // input: "lstm_block_wrapper/kernel"
 2067|       |    // input: "lstm_block_wrapper/w_i_diag"
 2068|       |    // input: "lstm_block_wrapper/w_f_diag"
 2069|       |    // input: "lstm_block_wrapper/w_o_diag"
 2070|       |    // input: "lstm_block_wrapper/bias"
 2071|       |
 2072|      1|    const std::string& name = layer.name();
 2073|      1|    const int num_inputs = layer.input_size();
 2074|       |
 2075|      1|    CV_CheckEQ(num_inputs, 9, "Unexpected number of input nodes");
  ------------------
  |  |  118|      1|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      1|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      1|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|      1|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2076|       |
 2077|      0|    if (hasLayerAttr(layer, "forget_bias"))
  ------------------
  |  Branch (2077:9): [True: 0, False: 0]
  ------------------
 2078|      0|        layerParams.set("forget_bias", getLayerAttr(layer, "forget_bias").f());
 2079|       |
 2080|      0|    if (hasLayerAttr(layer, "forget_bias"))
  ------------------
  |  Branch (2080:9): [True: 0, False: 0]
  ------------------
 2081|      0|    {
 2082|      0|        float cellClip = getLayerAttr(layer, "cell_clip").f();
 2083|       |        // Cell clip disabled if it's negative.
 2084|      0|        if (cellClip >= 0)
  ------------------
  |  Branch (2084:13): [True: 0, False: 0]
  ------------------
 2085|      0|        {
 2086|      0|            layerParams.set("use_cell_clip", true);
 2087|      0|            layerParams.set("cell_clip", cellClip);
 2088|      0|        }
 2089|      0|    }
 2090|       |
 2091|      0|    Mat W, Wh, Wx, b, cs_prev, h_prev;
 2092|      0|    blobFromTensor(getConstBlob(layer, value_id, 4), W);
 2093|      0|    blobFromTensor(getConstBlob(layer, value_id, 8), b);
 2094|      0|    blobFromTensor(getConstBlob(layer, value_id, 2), cs_prev);
 2095|      0|    blobFromTensor(getConstBlob(layer, value_id, 3), h_prev);
 2096|      0|    const int outSize = W.cols / 4;
 2097|       |
 2098|       |    // IGFO->IFOG
 2099|      0|    float* weightData = (float*)W.data;
 2100|      0|    for (int i = 0; i < W.rows; ++i)
  ------------------
  |  Branch (2100:21): [True: 0, False: 0]
  ------------------
 2101|      0|        for (int j = 0; j < outSize; ++j)
  ------------------
  |  Branch (2101:25): [True: 0, False: 0]
  ------------------
 2102|      0|        {
 2103|      0|            std::swap(weightData[i * W.cols + 1 * outSize + j],
 2104|      0|                      weightData[i * W.cols + 2 * outSize + j]);
 2105|      0|            std::swap(weightData[i * W.cols + 2 * outSize + j],
 2106|      0|                      weightData[i * W.cols + 3 * outSize + j]);
 2107|      0|        }
 2108|      0|    Wx = W.rowRange(0, W.rows - outSize).t();
 2109|      0|    Wh = W.rowRange(W.rows - outSize, W.rows).t();
 2110|       |
 2111|      0|    layerParams.blobs.resize(5);
 2112|      0|    layerParams.blobs[0] = Wh;
 2113|      0|    layerParams.blobs[1] = Wx;
 2114|      0|    layerParams.blobs[2] = b;
 2115|      0|    layerParams.blobs[3] = h_prev;
 2116|      0|    layerParams.blobs[4] = cs_prev;
 2117|       |
 2118|      0|    if (hasLayerAttr(layer, "use_peephole"))
  ------------------
  |  Branch (2118:9): [True: 0, False: 0]
  ------------------
 2119|      0|    {
 2120|      0|        bool usePeephole = getLayerAttr(layer, "use_peephole").b();
 2121|      0|        if (usePeephole)
  ------------------
  |  Branch (2121:13): [True: 0, False: 0]
  ------------------
 2122|      0|        {
 2123|      0|            layerParams.set("use_peephole", true);
 2124|      0|            layerParams.blobs.resize(8);
 2125|      0|            for (int i = 0; i < 3; ++i)
  ------------------
  |  Branch (2125:29): [True: 0, False: 0]
  ------------------
 2126|      0|            {
 2127|      0|                Mat w;
 2128|      0|                blobFromTensor(getConstBlob(layer, value_id, 5 + i), w);
 2129|      0|                w = w.reshape(1, w.total());  // Single column.
 2130|      0|                w = Mat::diag(w);  // Make a diagonal matrix.
 2131|      0|                layerParams.blobs[5 + i] = w;
 2132|      0|            }
 2133|      0|        }
 2134|      0|    }
 2135|       |
 2136|      0|    int id = dstNet.addLayer(name, "LSTM", layerParams);
 2137|      0|    layer_id[name] = id;
 2138|       |
 2139|       |    // one input only
 2140|      0|    connect(layer_id, dstNet, parsePin(layer.input(1)), id, 0);
 2141|      0|    data_layouts[name] = DNN_LAYOUT_UNKNOWN;
 2142|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter11parseResizeERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2146|     12|{
 2147|     12|    tensorflow::NodeDef layer = layer_;
 2148|     12|    std::string name = layer.name();
 2149|     12|    const std::string& type = layer.op();
 2150|     12|    int num_inputs = layer.input_size();
 2151|       |
 2152|     12|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     12|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     12|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     12|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     12|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2153|     11|    std::string convWeights = "";
 2154|     11|    if (type == "FusedResizeAndPadConv2D")
  ------------------
  |  Branch (2154:9): [True: 0, False: 11]
  ------------------
 2155|      0|    {
 2156|       |        // input: "mul_1"
 2157|       |        // input: "decoder/ResizeBilinear/size"
 2158|       |        // input: "decoder/decoder_conv0/Conv2D_dummy_paddings"
 2159|       |        // input: "decoder/decoder_conv0/weights"
 2160|      0|        CV_CheckEQ(num_inputs, 4, "Number of input for FusedResizeAndPadConv2D");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2161|       |
 2162|      0|        Mat paddings = getTensorContent(getConstBlob(layer, value_id, 2));
 2163|      0|        CV_CheckEQ(countNonZero(paddings), 0, "Unsupported mode");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2164|       |
 2165|      0|        convWeights = layer.input(3);
 2166|      0|        layer.mutable_input()->DeleteSubrange(2, 2);  // FIXIT do NOT modify input model
 2167|      0|        num_inputs = layer.input_size();
 2168|      0|        name = name + "/resize";
 2169|       |
 2170|      0|        if (hasLayerAttr(layer, "resize_align_corners"))
  ------------------
  |  Branch (2170:13): [True: 0, False: 0]
  ------------------
 2171|      0|        {
 2172|       |            // FIXIT do NOT modify input model
 2173|      0|            layer.mutable_attr()->insert(
 2174|      0|                    ::google::protobuf::MapPair<std::string, tensorflow::AttrValue>("align_corners",
 2175|      0|                                                                                    getLayerAttr(layer, "resize_align_corners")));
 2176|      0|        }
 2177|      0|    }
 2178|     11|    if (num_inputs == 2)
  ------------------
  |  Branch (2178:9): [True: 5, False: 6]
  ------------------
 2179|      5|    {
 2180|      5|        Mat outSize = getTensorContent(getConstBlob(layer, value_id, 1));
 2181|      5|        CV_CheckTypeEQ(outSize.type(), CV_32SC1, ""); CV_CheckEQ(outSize.total(), (size_t)2, "");
  ------------------
  |  |  126|      5|#define CV_CheckTypeEQ(t1, t2, msg)  CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
  |  |  ------------------
  |  |  |  |   99|      5|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      5|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      5|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      5|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      5|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      5|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      5|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      5|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      5|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      5|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      5|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      5|    } \
  |  |  |  |  104|      5|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                      CV_CheckTypeEQ(outSize.type(), CV_32SC1, ""); CV_CheckEQ(outSize.total(), (size_t)2, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2182|      0|        layerParams.set("height", outSize.at<int>(0, 0));
 2183|      0|        layerParams.set("width", outSize.at<int>(0, 1));
 2184|      0|    }
 2185|      6|    else if (num_inputs == 3)
  ------------------
  |  Branch (2185:14): [True: 4, False: 2]
  ------------------
 2186|      4|    {
 2187|      4|        Mat factorHeight = getTensorContent(getConstBlob(layer, value_id, 1));
 2188|      4|        Mat factorWidth = getTensorContent(getConstBlob(layer, value_id, 2));
 2189|      4|        factorHeight.convertTo(factorHeight, CV_32F);
  ------------------
  |  |   78|      4|#define CV_32F  5
  ------------------
 2190|      4|        factorWidth.convertTo(factorWidth, CV_32F);
  ------------------
  |  |   78|      4|#define CV_32F  5
  ------------------
 2191|      4|        layerParams.set("zoom_factor_x", factorWidth.at<float>(0));
 2192|      4|        layerParams.set("zoom_factor_y", factorHeight.at<float>(0));
 2193|      4|    }
 2194|      2|    else
 2195|      2|        CV_Check(num_inputs, num_inputs == 2 || num_inputs == 3, "");
  ------------------
  |  |  142|      2|#define CV_Check(v, test_expr, msg)  CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg)
  |  |  ------------------
  |  |  |  |  106|      2|#define CV__CHECK_CUSTOM_TEST(id, type, v, test_expr, v_str, test_expr_str, msg_str) do { \
  |  |  |  |  107|      4|    if(!!(test_expr)) ; else { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (107:11): [True: 0, False: 2]
  |  |  |  |  |  Branch (107:11): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  108|      2|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_CUSTOM, v_str, test_expr_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      2|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      2|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      2|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      2|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  109|      2|        cv::detail::check_failed_ ## type((v), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      2|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      2|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      2|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  110|      2|    } \
  |  |  |  |  111|      2|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (111:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2196|       |
 2197|      4|    if (type == "ResizeNearestNeighbor")
  ------------------
  |  Branch (2197:9): [True: 0, False: 4]
  ------------------
 2198|      0|        layerParams.set("interpolation", "nearest");
 2199|      4|    else
 2200|      4|        layerParams.set("interpolation", "bilinear");
 2201|       |
 2202|      4|    if (hasLayerAttr(layer, "align_corners"))
  ------------------
  |  Branch (2202:9): [True: 0, False: 4]
  ------------------
 2203|      0|        layerParams.set("align_corners", getLayerAttr(layer, "align_corners").b());
 2204|       |
 2205|      4|    if (hasLayerAttr(layer, "half_pixel_centers"))
  ------------------
  |  Branch (2205:9): [True: 0, False: 4]
  ------------------
 2206|      0|        layerParams.set("half_pixel_centers", getLayerAttr(layer, "half_pixel_centers").b());
 2207|       |
 2208|      4|    int id = dstNet.addLayer(name, "Resize", layerParams);
 2209|      4|    layer_id[name] = id;
 2210|       |
 2211|      4|    connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2212|       |
 2213|       |    // Step back to add convolution
 2214|      4|    if (type == "FusedResizeAndPadConv2D")
  ------------------
  |  Branch (2214:9): [True: 0, False: 4]
  ------------------
 2215|      0|    {
 2216|      0|        tensorflow::NodeDef conv = layer_;
 2217|      0|        conv.clear_input();
 2218|      0|        conv.add_input(name);
 2219|      0|        conv.add_input(convWeights);
 2220|      0|        conv.set_op("Conv2D");
 2221|      0|        parseNode(conv);
 2222|      0|    }
 2223|      4|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter9parseNodeERKN17opencv_tensorflow7NodeDefE:
 3180|  12.3k|{
 3181|       |#if GOOGLE_PROTOBUF_VERSION < 3005000
 3182|       |    size_t netTxtSize = saturate_cast<size_t>(netTxt.ByteSize());
 3183|       |#else
 3184|  12.3k|    size_t netTxtSize = netTxt.ByteSizeLong();
 3185|  12.3k|#endif
 3186|  12.3k|    tensorflow::GraphDef& net = netTxtSize != 0 ? netTxt : netBin;
  ------------------
  |  Branch (3186:33): [True: 0, False: 12.3k]
  ------------------
 3187|       |
 3188|  12.3k|    const std::string& name = layer.name();
 3189|  12.3k|    const std::string& type = layer.op();
 3190|       |
 3191|  12.3k|    LayerParams layerParams;
 3192|  12.3k|    try
 3193|  12.3k|    {
 3194|       |
 3195|  12.3k|        if (layers_to_ignore.find(name) != layers_to_ignore.end())
  ------------------
  |  Branch (3195:13): [True: 888, False: 11.5k]
  ------------------
 3196|    888|        {
 3197|    888|            CV_LOG_DEBUG(NULL, "DNN/TF:     ignored");
  ------------------
  |  |  171|    888|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|    888|    for(;;) { \
  |  |  |  |  147|    888|        extra_check0; \
  |  |  |  |  148|    888|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|    888|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|    888|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|    888|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|    888|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    888|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|    888|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    888|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 888, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|    888|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    888|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 888, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|    888|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 888, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 888, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|    888|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|    888|    }
  |  |  ------------------
  ------------------
 3198|    888|            return;
 3199|    888|        }
 3200|       |
 3201|  11.5k|        DataLayout predictedLayout = predictOutputDataLayout(layer);
 3202|  11.5k|        data_layouts[name] = predictedLayout;
 3203|       |
 3204|  11.5k|        DispatchMap::const_iterator iter = dispatch.find(type);
 3205|  11.5k|        if (iter != dispatch.end())
  ------------------
  |  Branch (3205:13): [True: 870, False: 10.6k]
  ------------------
 3206|    870|        {
 3207|    870|            CALL_MEMBER_FN(*this, iter->second)(net, layer, layerParams);
  ------------------
  |  |   62|    870|#define CALL_MEMBER_FN(object, ptrToMemFn)  ((object).*(ptrToMemFn))
  ------------------
 3208|    870|        }
 3209|  10.6k|        else if (!DNN_DIAGNOSTICS_RUN || !layerHandler->handleMissing(layer))
  ------------------
  |  Branch (3209:18): [True: 10.6k, False: 0]
  |  Branch (3209:42): [True: 0, False: 0]
  ------------------
 3210|  10.6k|        {
 3211|  10.6k|            parseCustomLayer(net, layer, layerParams);
 3212|  10.6k|        }
 3213|  11.5k|    }
 3214|  12.3k|    catch (const std::exception& e)
 3215|  12.3k|    {
 3216|    942|        CV_LOG_ERROR(NULL, "DNN/TF: Can't parse layer for node='" << name << "' of type='" << type
  ------------------
  |  |  168|    942|#define CV_LOG_ERROR(tag, ...)   CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_ERROR, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|    942|    for(;;) { \
  |  |  |  |  147|    942|        extra_check0; \
  |  |  |  |  148|    942|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|    942|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|    942|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|    942|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|    942|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    942|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|    942|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    942|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 942, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|    942|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|    942|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 942, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|    942|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 942, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 942]
  |  |  |  |  ------------------
  |  |  |  |  154|    942|        extra_check1; \
  |  |  |  |  155|    942|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|    942|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|    942|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|    942|            cv_temp_msglevel, \
  |  |  |  |  159|    942|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 942, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|    942|            __FILE__, \
  |  |  |  |  161|    942|            __LINE__, \
  |  |  |  |  162|    942|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    942|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|    942|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|    942|        break; \
  |  |  |  |  165|    942|    }
  |  |  ------------------
  ------------------
 3217|    942|                                                                  << "'. Exception: " << e.what());
 3218|       |
 3219|    942|        if (DNN_DIAGNOSTICS_RUN)
  ------------------
  |  Branch (3219:13): [True: 0, False: 942]
  ------------------
 3220|      0|        {
 3221|      0|            layerHandler->handleFailed(layer);
 3222|      0|        }
 3223|    942|        else
 3224|    942|        {
 3225|    942|            throw;
 3226|    942|        }
 3227|    942|    }
 3228|  12.3k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter23predictOutputDataLayoutERKN17opencv_tensorflow7NodeDefE:
 2999|  11.5k|{
 3000|  11.5k|    DataLayout layout = getDataLayout(layer);
 3001|  11.5k|    if (layout != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3001:9): [True: 0, False: 11.5k]
  ------------------
 3002|      0|    {
 3003|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: predictOutputDataLayout(" << layer.name() << " @ " << layer.op() << ") => " << (int)layout << " (from attrs)");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3004|      0|        return layout;
 3005|      0|    }
 3006|       |
 3007|       |    // Determine layout by layer's inputs
 3008|  27.6k|    for (int i = 0, n = layer.input_size(); i < n; ++i)
  ------------------
  |  Branch (3008:45): [True: 16.1k, False: 11.5k]
  ------------------
 3009|  16.1k|    {
 3010|  16.1k|        std::map<String, DataLayout>::const_iterator it = data_layouts.find(getNodeName(layer.input(i)));
 3011|  16.1k|        if (it != data_layouts.end())
  ------------------
  |  Branch (3011:13): [True: 16.1k, False: 0]
  ------------------
 3012|  16.1k|        {
 3013|  16.1k|            if (layout != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3013:17): [True: 401, False: 15.7k]
  ------------------
 3014|    401|            {
 3015|    401|                if (it->second != layout && it->second != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3015:21): [True: 6, False: 395]
  |  Branch (3015:45): [True: 0, False: 6]
  ------------------
 3016|      0|                    return DNN_LAYOUT_UNKNOWN;
 3017|    401|            }
 3018|  15.7k|            else
 3019|  15.7k|                layout = it->second;
 3020|  16.1k|        }
 3021|  16.1k|    }
 3022|       |
 3023|  11.5k|    if (layout != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3023:9): [True: 33, False: 11.4k]
  ------------------
 3024|     33|    {
 3025|     33|        CV_LOG_DEBUG(NULL, "DNN/TF: predictOutputDataLayout(" << layer.name() << " @ " << layer.op() << ") => " << (int)layout << " (from inputs)");
  ------------------
  |  |  171|     33|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|     33|    for(;;) { \
  |  |  |  |  147|     33|        extra_check0; \
  |  |  |  |  148|     33|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|     33|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|     33|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|     33|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|     33|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|     33|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|     33|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|     33|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 33, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|     33|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|     33|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 33, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|     33|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 33, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 33, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|     33|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|     33|    }
  |  |  ------------------
  ------------------
 3026|     33|        return layout;
 3027|     33|    }
 3028|       |
 3029|       |    // Determine layout by layer's consumers recursively.
 3030|  11.4k|    std::map<String, DataLayout>::const_iterator it = data_layouts.find(layer.name());
 3031|  11.4k|    CV_Assert(it != data_layouts.end());
  ------------------
  |  |  423|  11.4k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 11.4k, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3032|  11.4k|    return it->second;
 3033|  11.4k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter16parseCustomLayerERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2702|  10.6k|{
 2703|       |    // Importer does not know how to map this TensorFlow's operation onto OpenCV's layer.
 2704|       |    // However we create a layer with the same type and rely that user defined a custom layer.
 2705|       |
 2706|  10.6k|    const std::string& name = layer.name();
 2707|  10.6k|    const std::string& type = layer.op();
 2708|  10.6k|    const int num_inputs = layer.input_size();
 2709|       |
 2710|       |    // All the attributes are added to LayerParams.
 2711|  10.6k|    google::protobuf::Map<std::string, tensorflow::AttrValue> attr = layer.attr();
 2712|  10.6k|    for (google::protobuf::Map<std::string, tensorflow::AttrValue>::const_iterator ai = attr.begin();
 2713|  20.1k|         ai != attr.end(); ++ai)
  ------------------
  |  Branch (2713:10): [True: 9.49k, False: 10.6k]
  ------------------
 2714|  9.49k|    {
 2715|  9.49k|        if (ai->second.value_case() == tensorflow::AttrValue::kS)  // string
  ------------------
  |  Branch (2715:13): [True: 1.88k, False: 7.61k]
  ------------------
 2716|  1.88k|            layerParams.set(ai->first, ai->second.s());
 2717|  9.49k|        if (ai->second.value_case() == tensorflow::AttrValue::kI)  // int64
  ------------------
  |  Branch (2717:13): [True: 3.33k, False: 6.15k]
  ------------------
 2718|  3.33k|            layerParams.set(ai->first, ai->second.i());
 2719|  9.49k|        if (ai->second.value_case() == tensorflow::AttrValue::kF)  // float
  ------------------
  |  Branch (2719:13): [True: 178, False: 9.31k]
  ------------------
 2720|    178|            layerParams.set(ai->first, ai->second.f());
 2721|  9.49k|        if (ai->second.value_case() == tensorflow::AttrValue::kB)  // bool
  ------------------
  |  Branch (2721:13): [True: 1.07k, False: 8.42k]
  ------------------
 2722|  1.07k|            layerParams.set(ai->first, ai->second.b());
 2723|  9.49k|    }
 2724|       |
 2725|       |    // All the Const input nodes are added to layer's blobs.
 2726|  10.6k|    std::vector<std::string> inputsNames;
 2727|  21.2k|    for (int i = 0; i < num_inputs; ++i)
  ------------------
  |  Branch (2727:21): [True: 10.6k, False: 10.6k]
  ------------------
 2728|  10.6k|    {
 2729|       |        // Check if input is a Const node.
 2730|  10.6k|        if (value_id.find(layer.input(i)) != value_id.end())
  ------------------
  |  Branch (2730:13): [True: 0, False: 10.6k]
  ------------------
 2731|      0|        {
 2732|      0|            Mat blob = getTensorContent(getConstBlob(layer, value_id, i));
 2733|      0|            layerParams.blobs.push_back(blob);
 2734|      0|        }
 2735|  10.6k|        else
 2736|  10.6k|            inputsNames.push_back(layer.input(i));
 2737|  10.6k|    }
 2738|  10.6k|    int id = dstNet.addLayer(name, type, layerParams);
 2739|  10.6k|    layer_id[name] = id;
 2740|       |
 2741|  19.3k|    for (int i = 0; i < inputsNames.size(); ++i)
  ------------------
  |  Branch (2741:21): [True: 8.67k, False: 10.6k]
  ------------------
 2742|  8.67k|    {
 2743|  8.67k|        connect(layer_id, dstNet, parsePin(inputsNames[i]), id, i);
 2744|  8.67k|    }
 2745|  10.6k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter13parsePriorBoxERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2259|     53|{
 2260|     53|    const std::string& name = layer.name();
 2261|     53|    const int num_inputs = layer.input_size();
 2262|       |
 2263|     53|    CV_CheckEQ(num_inputs, 2, "");
  ------------------
  |  |  118|     53|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     53|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     53|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     53|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2264|     52|    if (hasLayerAttr(layer, "min_size"))
  ------------------
  |  Branch (2264:9): [True: 0, False: 52]
  ------------------
 2265|      0|        layerParams.set("min_size", getLayerAttr(layer, "min_size").i());
 2266|     52|    if (hasLayerAttr(layer, "max_size"))
  ------------------
  |  Branch (2266:9): [True: 0, False: 52]
  ------------------
 2267|      0|        layerParams.set("max_size", getLayerAttr(layer, "max_size").i());
 2268|     52|    if (hasLayerAttr(layer, "flip"))
  ------------------
  |  Branch (2268:9): [True: 0, False: 52]
  ------------------
 2269|      0|        layerParams.set("flip", getLayerAttr(layer, "flip").b());
 2270|     52|    if (hasLayerAttr(layer, "clip"))
  ------------------
  |  Branch (2270:9): [True: 0, False: 52]
  ------------------
 2271|      0|        layerParams.set("clip", getLayerAttr(layer, "clip").b());
 2272|     52|    if (hasLayerAttr(layer, "offset"))
  ------------------
  |  Branch (2272:9): [True: 0, False: 52]
  ------------------
 2273|      0|        layerParams.set("offset", getLayerAttr(layer, "offset").f());
 2274|     52|    if (hasLayerAttr(layer, "step"))
  ------------------
  |  Branch (2274:9): [True: 0, False: 52]
  ------------------
 2275|      0|        layerParams.set("step", getLayerAttr(layer, "step").f());
 2276|       |
 2277|     52|    const std::string paramNames[] = {"variance", "aspect_ratio", "scales",
 2278|     52|                                      "width", "height"};
 2279|    312|    for (int i = 0; i < 5; ++i)
  ------------------
  |  Branch (2279:21): [True: 260, False: 52]
  ------------------
 2280|    260|    {
 2281|    260|        if (hasLayerAttr(layer, paramNames[i]))
  ------------------
  |  Branch (2281:13): [True: 0, False: 260]
  ------------------
 2282|      0|        {
 2283|      0|            Mat values = getTensorContent(getLayerAttr(layer, paramNames[i]).tensor());
 2284|      0|            layerParams.set(paramNames[i],
 2285|      0|                            DictValue::arrayReal<float*>((float*)values.data, values.total()));
 2286|      0|        }
 2287|    260|    }
 2288|     52|    int id = dstNet.addLayer(name, "PriorBox", layerParams);
 2289|     52|    layer_id[name] = id;
 2290|     52|    connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2291|     52|    connect(layer_id, dstNet, parsePin(layer.input(1)), id, 1);
 2292|     52|    data_layouts[name] = DNN_LAYOUT_UNKNOWN;
 2293|     52|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter12parseSoftmaxERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2296|     55|{
 2297|     55|    const std::string& name = layer.name();
 2298|     55|    const int num_inputs = layer.input_size();
 2299|       |
 2300|     55|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     55|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     55|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     55|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|     55|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2301|     54|    if (hasLayerAttr(layer, "axis"))
  ------------------
  |  Branch (2301:9): [True: 0, False: 54]
  ------------------
 2302|      0|        layerParams.set("axis", getLayerAttr(layer, "axis").i());
 2303|       |    // if tf version is 2.x, use axis -1 as default
 2304|     54|    else if(netBin.has_versions() && (int)netBin.versions().producer() >= 2)
  ------------------
  |  Branch (2304:13): [True: 25, False: 29]
  |  Branch (2304:38): [True: 10, False: 15]
  ------------------
 2305|     10|        layerParams.set("axis", -1);
 2306|       |    // else use axis 1 as default
 2307|     44|    else
 2308|     44|        layerParams.set("axis", 1);
 2309|       |
 2310|     54|    int id = dstNet.addLayer(name, "Softmax", layerParams);
 2311|     54|    layer_id[name] = id;
 2312|     54|    connectToAllBlobs(layer_id, dstNet, parsePin(layer.input(0)), id, num_inputs);
 2313|     54|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter9parseMeanERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2341|     83|{
 2342|       |    // Computes the mean of elements across dimensions of a tensor.
 2343|       |    // If keepdims is false (default) reduces input_tensor along the dimensions given in axis,
 2344|       |    // else the reduced dimensions are retained with length 1.
 2345|       |    // if indices = [1, 2] in NHWC layout we use global pooling: NxCxHxW --Pooling--> NxCx1x1
 2346|       |    // if keepdims is false we use Flatten after Pooling: out_shape = NxC
 2347|       |    // if indices = [0] we use a global pooling by indices.
 2348|       |    // To return correct shape, we use Reshape after Pooling. To determine input shape use Slice for input,
 2349|       |    // if keepdims is false we use Flatten after Slice.
 2350|       |    // Example: input_shape = NxCxHxW
 2351|       |    // determine out shape: NxCxHxW --Slice--> 1xCxHxW
 2352|       |    //                      out_shape = 1xCxHxW if keepDims else (1xCxHxW --Flatten--> CxHxW)
 2353|       |    // global pool: NxCxHxW --Flatten--> Nx(C*H*W) --Reshape--> 1x1xNx(C*H*W) --Pooling--> 1x1x1x(C*H*W) --Reshape--> out_shape
 2354|       |
 2355|     83|    const std::string& name = layer.name();
 2356|     83|    const std::string& type = layer.op();
 2357|     83|    const int num_inputs = layer.input_size();
 2358|     83|    std::string pool_type = cv::toLowerCase(type);
 2359|     83|    DataLayout layout = getDataLayout(name, data_layouts);
 2360|       |
 2361|     83|    if (pool_type == "mean")
  ------------------
  |  Branch (2361:9): [True: 25, False: 58]
  ------------------
 2362|     25|    {
 2363|     25|        pool_type = "ave";
 2364|     25|    }
 2365|     83|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     83|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     83|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     83|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|     79|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|     79|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|     79|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|     79|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|     79|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|     79|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|     79|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|     79|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|     79|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|     79|    } \
  |  |  |  |  104|     83|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2366|       |
 2367|      4|    Mat indices = getTensorContent(getConstBlob(layer, value_id, 1));
 2368|      4|    CV_Assert(indices.type() == CV_32SC1);
  ------------------
  |  |  423|      4|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      4|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 4]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2369|       |
 2370|       |    // There are two attributes, "keepdims" and a deprecated "keep_dims".
 2371|      0|    bool keepDims = false;
 2372|      0|    if (hasLayerAttr(layer, "keepdims"))
  ------------------
  |  Branch (2372:9): [True: 0, False: 0]
  ------------------
 2373|      0|        keepDims = getLayerAttr(layer, "keepdims").b();
 2374|      0|    else if (hasLayerAttr(layer, "keep_dims"))
  ------------------
  |  Branch (2374:14): [True: 0, False: 0]
  ------------------
 2375|      0|        keepDims = getLayerAttr(layer, "keep_dims").b();
 2376|       |
 2377|      0|    if (indices.total() == 1 && indices.at<int>(0) == 0)
  ------------------
  |  Branch (2377:9): [True: 0, False: 0]
  |  Branch (2377:33): [True: 0, False: 0]
  ------------------
 2378|      0|    {
 2379|      0|        LayerParams flattenLp;
 2380|      0|        std::string flattenName = name + "/flatten";
 2381|      0|        CV_Assert(layer_id.find(flattenName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2382|      0|        int flattenId = dstNet.addLayer(flattenName, "Flatten", flattenLp);
 2383|      0|        layer_id[flattenName] = flattenId;
 2384|      0|        connect(layer_id, dstNet, parsePin(layer.input(0)), flattenId, 0);
 2385|       |
 2386|      0|        LayerParams reshapeLp;
 2387|      0|        std::string reshapeName = name + "/reshape";
 2388|      0|        CV_Assert(layer_id.find(reshapeName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2389|      0|        reshapeLp.set("axis", 0);
 2390|      0|        reshapeLp.set("num_axes", 1);
 2391|      0|        int newShape[] = {1, 1, -1};
 2392|      0|        reshapeLp.set("dim", DictValue::arrayInt(&newShape[0], 3));
 2393|       |
 2394|      0|        int reshapeId = dstNet.addLayer(reshapeName, "Reshape", reshapeLp);
 2395|      0|        layer_id[reshapeName] = reshapeId;
 2396|      0|        connect(layer_id, dstNet, Pin(flattenName), reshapeId, 0);
 2397|       |
 2398|      0|        LayerParams avgLp;
 2399|      0|        std::string avgName = name + "/avg";
 2400|      0|        CV_Assert(layer_id.find(avgName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2401|      0|        avgLp.set("pool", pool_type);
 2402|       |        // pooling kernel H x 1
 2403|      0|        avgLp.set("global_pooling_h", true);
 2404|      0|        avgLp.set("kernel_w", 1);
 2405|      0|        int avgId = dstNet.addLayer(avgName, "Pooling", avgLp);
 2406|      0|        layer_id[avgName] = avgId;
 2407|      0|        connect(layer_id, dstNet, Pin(reshapeName), avgId, 0);
 2408|       |
 2409|      0|        LayerParams sliceLp;
 2410|      0|        std::string layerShapeName = name + "/slice";
 2411|      0|        CV_Assert(layer_id.find(layerShapeName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2412|      0|        sliceLp.set("axis", 0);
 2413|      0|        int begin[] = {0};
 2414|      0|        int size[] = {1};
 2415|      0|        sliceLp.set("begin", DictValue::arrayInt(&begin[0], 1));
 2416|      0|        sliceLp.set("size", DictValue::arrayInt(&size[0], 1));
 2417|      0|        int sliceId = dstNet.addLayer(layerShapeName, "Slice", sliceLp);
 2418|      0|        layer_id[layerShapeName] = sliceId;
 2419|      0|        connect(layer_id, dstNet, Pin(layer.input(0)), sliceId, 0);
 2420|       |
 2421|      0|        if (!keepDims)
  ------------------
  |  Branch (2421:13): [True: 0, False: 0]
  ------------------
 2422|      0|        {
 2423|      0|            if (layout == DNN_LAYOUT_NHWC)
  ------------------
  |  Branch (2423:17): [True: 0, False: 0]
  ------------------
 2424|      0|            {
 2425|      0|                LayerParams permLP;
 2426|      0|                int order[] = {0, 2, 3, 1};  // From OpenCV's NCHW to NHWC.
 2427|      0|                std::string permName = name + "/nhwc";
 2428|      0|                Pin inpId = Pin(layerShapeName);
 2429|      0|                addPermuteLayer(order, permName, inpId);
 2430|      0|                layerShapeName = permName;
 2431|      0|            }
 2432|       |
 2433|      0|            LayerParams squeezeLp;
 2434|      0|            std::string squeezeName = name + "/squeeze";
 2435|      0|            CV_Assert(layer_id.find(squeezeName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2436|      0|            squeezeLp.set("axis", 0);
 2437|      0|            squeezeLp.set("end_axis", 1);
 2438|      0|            int squeezeId = dstNet.addLayer(squeezeName, "Flatten", squeezeLp);
 2439|      0|            layer_id[squeezeName] = squeezeId;
 2440|      0|            connect(layer_id, dstNet, Pin(layerShapeName), squeezeId, 0);
 2441|      0|            layerShapeName = squeezeName;
 2442|      0|        }
 2443|       |
 2444|      0|        int id = dstNet.addLayer(name, "Reshape", layerParams);
 2445|      0|        layer_id[name] = id;
 2446|      0|        connect(layer_id, dstNet, Pin(avgName), id, 0);
 2447|      0|        connect(layer_id, dstNet, Pin(layerShapeName), id, 1);
 2448|      0|    } else if (indices.total() == 1) {
  ------------------
  |  Branch (2448:16): [True: 0, False: 0]
  ------------------
 2449|      0|        int axis = toNCHW(indices.at<int>(0));
 2450|      0|        if (axis == 2 || axis == 3)
  ------------------
  |  Branch (2450:13): [True: 0, False: 0]
  |  Branch (2450:26): [True: 0, False: 0]
  ------------------
 2451|      0|        {
 2452|      0|            layerParams.set("pool", pool_type);
 2453|      0|            layerParams.set(axis == 2 ? "kernel_w" : "kernel_h", 1);
  ------------------
  |  Branch (2453:29): [True: 0, False: 0]
  ------------------
 2454|      0|            layerParams.set(axis == 2 ? "global_pooling_h" : "global_pooling_w", true);
  ------------------
  |  Branch (2454:29): [True: 0, False: 0]
  ------------------
 2455|       |
 2456|      0|            if (keepDims)
  ------------------
  |  Branch (2456:17): [True: 0, False: 0]
  ------------------
 2457|      0|            {
 2458|      0|                int id = dstNet.addLayer(name, "Pooling", layerParams);
 2459|      0|                layer_id[name] = id;
 2460|      0|                connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2461|      0|            }
 2462|      0|            else
 2463|      0|            {
 2464|       |                // To keep correct order after squeeze dims we first need to change layout from NCHW to NHWC
 2465|      0|                std::string poolingName = name + "/Pooling";
 2466|      0|                CV_Assert(layer_id.find(poolingName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2467|      0|                int id = dstNet.addLayer(poolingName, "Pooling", layerParams);
 2468|      0|                layer_id[poolingName] = id;
 2469|      0|                connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2470|       |
 2471|      0|                LayerParams permLP;
 2472|      0|                int order[] = {0, 2, 3, 1};  // From OpenCV's NCHW to NHWC.
 2473|      0|                std::string permName = name + "/nhwc";
 2474|      0|                Pin inpId = Pin(poolingName);
 2475|      0|                addPermuteLayer(order, permName, inpId);
 2476|       |
 2477|      0|                LayerParams squeezeLp;
 2478|      0|                const std::string& squeezeName = name;
 2479|      0|                squeezeLp.set("axis", indices.at<int>(0));
 2480|      0|                squeezeLp.set("end_axis", indices.at<int>(0) + 1);
 2481|      0|                int squeezeId = dstNet.addLayer(squeezeName, "Flatten", squeezeLp);
 2482|      0|                layer_id[squeezeName] = squeezeId;
 2483|      0|                connect(layer_id, dstNet, Pin(permName), squeezeId, 0);
 2484|      0|            }
 2485|      0|        }
 2486|      0|        else if (axis == 1)
  ------------------
  |  Branch (2486:18): [True: 0, False: 0]
  ------------------
 2487|      0|        {
 2488|      0|            int order[] = {0, 2, 3, 1};  // From OpenCV's NCHW to NHWC.
 2489|      0|            Pin inpId = parsePin(layer.input(0));
 2490|      0|            std::string permName = name + "/nhwc";
 2491|      0|            addPermuteLayer(order, permName, inpId);
 2492|       |
 2493|      0|            layerParams.set("pool", pool_type);
 2494|      0|            layerParams.set("kernel_h", 1);
 2495|      0|            layerParams.set("global_pooling_w", true);
 2496|      0|            std::string poolingName = name + "/Pooling";
 2497|      0|            CV_Assert(layer_id.find(poolingName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2498|      0|            int id = dstNet.addLayer(poolingName, "Pooling", layerParams);
 2499|      0|            layer_id[poolingName] = id;
 2500|      0|            connect(layer_id, dstNet, Pin(permName), id, 0);
 2501|       |
 2502|      0|            if (!keepDims)
  ------------------
  |  Branch (2502:17): [True: 0, False: 0]
  ------------------
 2503|      0|            {
 2504|      0|                LayerParams squeezeLp;
 2505|      0|                const std::string& squeezeName = name;
 2506|      0|                int channel_id = 3; // TF NHWC layout
 2507|      0|                squeezeLp.set("axis", channel_id - 1);
 2508|      0|                squeezeLp.set("end_axis", channel_id);
 2509|      0|                int squeezeId = dstNet.addLayer(squeezeName, "Flatten", squeezeLp);
 2510|      0|                layer_id[squeezeName] = squeezeId;
 2511|      0|                connect(layer_id, dstNet, Pin(poolingName), squeezeId, 0);
 2512|      0|            }
 2513|      0|            else
 2514|      0|            {
 2515|      0|                int order[] = {0, 3, 1, 2};  // From NHWC to OpenCV's NCHW.
 2516|      0|                Pin inpId = parsePin(poolingName);
 2517|      0|                addPermuteLayer(order, name, inpId);
 2518|      0|            }
 2519|      0|        }
 2520|      0|    } else {
 2521|      0|        if (indices.total() != 2 || indices.at<int>(0) != 1 || indices.at<int>(1) != 2)
  ------------------
  |  Branch (2521:13): [True: 0, False: 0]
  |  Branch (2521:37): [True: 0, False: 0]
  |  Branch (2521:64): [True: 0, False: 0]
  ------------------
 2522|      0|            CV_Error(Error::StsNotImplemented, "Unsupported mode of reduce_mean or reduce_sum operation.");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2523|       |
 2524|      0|        layerParams.set("pool", pool_type);
 2525|      0|        layerParams.set("global_pooling", true);
 2526|       |
 2527|      0|        if (keepDims)
  ------------------
  |  Branch (2527:13): [True: 0, False: 0]
  ------------------
 2528|      0|        {
 2529|      0|            int id = dstNet.addLayer(name, "Pooling", layerParams);
 2530|      0|            layer_id[name] = id;
 2531|      0|            connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2532|      0|        }
 2533|      0|        else
 2534|      0|        {
 2535|      0|            std::string poolingName = name + "/Pooling";
 2536|      0|            CV_Assert(layer_id.find(poolingName) == layer_id.end());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2537|      0|            int id = dstNet.addLayer(poolingName, "Pooling", layerParams);
 2538|      0|            layer_id[poolingName] = id;
 2539|      0|            connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2540|      0|            LayerParams flattenLp;
 2541|      0|            const std::string& flattenName = name;
 2542|      0|            int flattenId = dstNet.addLayer(flattenName, "Flatten", flattenLp);
 2543|      0|            layer_id[flattenName] = flattenId;
 2544|      0|            connect(layer_id, dstNet, Pin(poolingName), flattenId, 0);
 2545|      0|            data_layouts[name] = DNN_LAYOUT_PLANAR;
 2546|      0|        }
 2547|      0|    }
 2548|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter9parsePackERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2551|      2|{
 2552|       |    // op: tf.stack(list of tensors, axis=0)
 2553|       |    // Join a list of inputs along a new axis.
 2554|       |    // The "axis" specifies the index of the new axis in the dimensions of the output.
 2555|       |    // Example: given a list with "N" tensors of shape (C, H, W):
 2556|       |    // if axis == 0 then the output tensor will have the shape (N, C, H, W),
 2557|       |    // if axis == 1 then the output tensor will have the shape (C, N, H, W).
 2558|       |
 2559|      2|    const std::string& name = layer.name();
 2560|      2|    const int num_inputs = layer.input_size();
 2561|       |
 2562|      2|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|      2|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      2|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      2|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      1|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      1|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      1|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      1|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      1|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      1|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      1|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      1|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      1|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      1|    } \
  |  |  |  |  104|      2|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2563|      1|    CV_Assert(hasLayerAttr(layer, "axis"));
  ------------------
  |  |  423|      1|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 1]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2564|      0|    int dim = (int)getLayerAttr(layer, "axis").i();
 2565|      0|    if (dim != 0)
  ------------------
  |  Branch (2565:9): [True: 0, False: 0]
  ------------------
 2566|      0|        CV_Error(Error::StsNotImplemented, "Unsupported mode of pack operation.");
  ------------------
  |  |  399|      0|#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ )
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  ------------------
 2567|       |
 2568|      0|    data_layouts[name] = DNN_LAYOUT_UNKNOWN;
 2569|       |
 2570|      0|    CV_Assert(hasLayerAttr(layer, "N"));
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2571|      0|    int num = (int)getLayerAttr(layer, "N").i();
 2572|      0|    CV_CheckEQ(num_inputs, num, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2573|      0|    std::string base_name = name + "/reshape_";
 2574|      0|    std::vector<int> reshape_ids;
 2575|      0|    for (int i = 0; i < num; i++) {
  ------------------
  |  Branch (2575:21): [True: 0, False: 0]
  ------------------
 2576|      0|        std::ostringstream ss;
 2577|      0|        ss << i;
 2578|      0|        std::string reshape_name = base_name + ss.str();
 2579|      0|        LayerParams reshapeLP;
 2580|      0|        reshapeLP.set("axis", dim);
 2581|      0|        reshapeLP.set("num_axes", 1);
 2582|      0|        int outShape[] = {1, -1};
 2583|      0|        reshapeLP.set("dim", DictValue::arrayInt(&outShape[0], 2));
 2584|      0|        int id = dstNet.addLayer(reshape_name, "Reshape", reshapeLP);
 2585|      0|        layer_id[reshape_name] = id;
 2586|      0|        reshape_ids.push_back(id);
 2587|      0|        connect(layer_id, dstNet, parsePin(layer.input(i)), id, 0);
 2588|      0|    }
 2589|       |
 2590|      0|    layerParams.set("axis", dim);
 2591|      0|    int id = dstNet.addLayer(name, "Concat", layerParams);
 2592|      0|    layer_id[name] = id;
 2593|       |
 2594|      0|    for (int li = 0; li < num; li++)
  ------------------
  |  Branch (2594:22): [True: 0, False: 0]
  ------------------
 2595|      0|        dstNet.connect(reshape_ids[li], 0, id, li);
 2596|      0|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter10parsePReLUERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2639|      4|{
 2640|      4|    const std::string& name = layer.name();
 2641|       |
 2642|      4|    Mat scales;
 2643|      4|    blobFromTensor(getConstBlob(layer, value_id, 1), scales);
 2644|       |
 2645|      4|    layerParams.blobs.resize(1);
 2646|       |
 2647|      4|    if (scales.dims == 3) {
  ------------------
  |  Branch (2647:9): [True: 0, False: 4]
  ------------------
 2648|       |        // Considering scales from Keras with HWC layout;
 2649|      0|        transposeND(scales, {2, 0, 1}, layerParams.blobs[0]);
 2650|      4|    } else {
 2651|      4|        layerParams.blobs[0] = scales;
 2652|      4|    }
 2653|       |
 2654|      4|    int id = dstNet.addLayer(name, "PReLU", layerParams);
 2655|      4|    layer_id[name] = id;
 2656|      4|    connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2657|      4|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter15parseActivationERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2661|     61|{
 2662|     61|    const std::string& name = layer.name();
 2663|     61|    const std::string& type = layer.op();
 2664|     61|    const int num_inputs = layer.input_size();
 2665|       |
 2666|     61|    CV_CheckGT(num_inputs, 0, "");
  ------------------
  |  |  123|     61|#define CV_CheckGT(v1, v2, msg)  CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     61|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     61|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|     11|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|     11|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|     11|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|     11|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|     11|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|     11|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|     11|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|     11|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|     11|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|     11|    } \
  |  |  |  |  104|     61|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2667|     50|    std::string dnnType = type;
 2668|     50|    if (type == "Abs") dnnType = "AbsVal";
  ------------------
  |  Branch (2668:9): [True: 3, False: 47]
  ------------------
 2669|     47|    else if (type == "Tanh") dnnType = "TanH";
  ------------------
  |  Branch (2669:14): [True: 23, False: 24]
  ------------------
 2670|     24|    else if (type == "Relu") dnnType = "ReLU";
  ------------------
  |  Branch (2670:14): [True: 2, False: 22]
  ------------------
 2671|     22|    else if (type == "Relu6") dnnType = "ReLU6";
  ------------------
  |  Branch (2671:14): [True: 4, False: 18]
  ------------------
 2672|     18|    else if (type == "Elu") dnnType = "ELU";
  ------------------
  |  Branch (2672:14): [True: 5, False: 13]
  ------------------
 2673|       |
 2674|     50|    int id = dstNet.addLayer(name, dnnType, layerParams);
 2675|     50|    layer_id[name] = id;
 2676|     50|    connectToAllBlobs(layer_id, dstNet, parsePin(layer.input(0)), id, num_inputs);
 2677|     50|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter11parseSquareERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 1269|     12|{
 1270|     12|    const std::string& name = layer.name();
 1271|     12|    const int num_inputs = layer.input_size();
 1272|       |
 1273|     12|    CV_CheckEQ(num_inputs, 1, "");
  ------------------
  |  |  118|     12|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|     12|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|     12|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      3|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      3|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      3|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      3|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      3|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      3|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      3|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      3|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      3|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      3|    } \
  |  |  |  |  104|     12|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1274|       |
 1275|      9|    int id;
 1276|      9|    layerParams.set("operation", "prod");
 1277|      9|    id = dstNet.addLayer(name, "Eltwise", layerParams);
 1278|       |
 1279|      9|    layer_id[name] = id;
 1280|       |
 1281|      9|    Pin inp = parsePin(layer.input(0));
 1282|      9|    connect(layer_id, dstNet, inp, id, 0);
 1283|      9|    connect(layer_id, dstNet, inp, id, 1);
 1284|      9|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter8parseArgERN17opencv_tensorflow8GraphDefERKNS4_7NodeDefERNS1_11LayerParamsE:
 2681|     23|{
 2682|     23|    const std::string& name = layer.name();
 2683|     23|    const std::string& type = layer.op();
 2684|       |
 2685|     23|    if (layer.input_size() < 2)
  ------------------
  |  Branch (2685:9): [True: 22, False: 1]
  ------------------
 2686|     22|        layerParams.set("axis", 0); // default dimension is 0
 2687|      1|    else
 2688|      1|    {
 2689|      1|        Mat dimension = getTensorContent(getConstBlob(layer, value_id, 1));
 2690|      1|        CV_Assert(dimension.total() == 1 && dimension.type() == CV_32SC1);
  ------------------
  |  |  423|      1|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 0, False: 1]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2691|      0|        layerParams.set("axis", dimension.at<int>(0));
 2692|      0|    }
 2693|     22|    layerParams.set("op", type == "ArgMax" ? "max" : "min");
  ------------------
  |  Branch (2693:27): [True: 13, False: 9]
  ------------------
 2694|     22|    layerParams.set("keepdims", false); //tensorflow doesn't have this atrr, the output's dims minus one(default);
 2695|       |
 2696|     22|    int id = dstNet.addLayer(name, "Arg", layerParams);
 2697|     22|    layer_id[name] = id;
 2698|     22|    connect(layer_id, dstNet, parsePin(layer.input(0)), id, 0);
 2699|     22|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporter11populateNetEv:
 3036|  6.18k|{
 3037|       |#if GOOGLE_PROTOBUF_VERSION < 3005000
 3038|       |    size_t netBinSize = saturate_cast<size_t>(netBin.ByteSize());
 3039|       |    size_t netTxtSize = saturate_cast<size_t>(netTxt.ByteSize());
 3040|       |#else
 3041|  6.18k|    size_t netBinSize = netBin.ByteSizeLong();
 3042|  6.18k|    size_t netTxtSize = netTxt.ByteSizeLong();
 3043|  6.18k|#endif
 3044|  6.18k|    CV_Assert(netBinSize || netTxtSize);
  ------------------
  |  |  423|  6.26k|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|     73|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:38): [True: 6.11k, False: 73]
  |  |  |  Branch (423:38): [True: 0, False: 73]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3045|       |
 3046|  6.11k|    CV_LOG_INFO(NULL, "DNN/TF: parsing model"
  ------------------
  |  |  170|  6.11k|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  6.11k|        extra_check0; \
  |  |  |  |  148|  6.11k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  6.11k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  6.11k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  6.11k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  6.11k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  6.11k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  6.11k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  6.11k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 6.11k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  6.11k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  6.11k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 6.11k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  6.11k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 6.11k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 6.11k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  6.11k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (156:30): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  6.11k|    }
  |  |  ------------------
  ------------------
 3047|  6.11k|        << (netBin.has_versions() ? cv::format(" produced by TF v%d (min_consumer=%d)", (int)netBin.versions().producer(), (int)netBin.versions().min_consumer()) : cv::String(" (N/A version info)"))
 3048|  6.11k|        << ". Number of nodes = " << netBin.node_size()
 3049|  6.11k|    );
 3050|       |
 3051|  6.11k|    if (netTxtSize)
  ------------------
  |  Branch (3051:9): [True: 0, False: 6.11k]
  ------------------
 3052|      0|    {
 3053|      0|        CV_LOG_INFO(NULL, "DNN/TF: parsing config"
  ------------------
  |  |  170|      0|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (156:30): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3054|      0|            << (netTxt.has_versions() ? cv::format(" produced by TF v%d (min_consumer=%d)", (int)netTxt.versions().producer(), (int)netTxt.versions().min_consumer()) : cv::String(" (N/A version info)"))
 3055|      0|            << ". Number of nodes = " << netTxt.node_size()
 3056|      0|        );
 3057|       |
 3058|      0|        RemoveIdentityOps(netBin);
 3059|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: RemoveIdentityOps(model) => " << netBin.node_size() << " nodes");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3060|      0|        RemoveIdentityOps(netTxt);
 3061|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: RemoveIdentityOps(config) => " << netTxt.node_size() << " nodes");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3062|       |
 3063|      0|        sortByExecutionOrder(netTxt);
 3064|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: sortByExecutionOrder(config) => " << netTxt.node_size() << " nodes");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3065|      0|    }
 3066|  6.11k|    else
 3067|  6.11k|    {
 3068|  6.11k|        removePhaseSwitches(netBin);
 3069|  6.11k|        CV_LOG_DEBUG(NULL, "DNN/TF: removePhaseSwitches(model) => " << netBin.node_size() << " nodes");
  ------------------
  |  |  171|  6.11k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  5.72k|        extra_check0; \
  |  |  |  |  148|  5.72k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  5.72k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  5.72k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  5.72k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  5.72k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.72k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  5.72k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.72k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 5.72k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  5.72k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.72k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 5.72k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  5.72k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 5.72k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 5.72k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  5.72k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  5.72k|    }
  |  |  ------------------
  ------------------
 3070|       |
 3071|  6.11k|        RemoveIdentityOps(netBin);
 3072|  6.11k|        CV_LOG_DEBUG(NULL, "DNN/TF: RemoveIdentityOps(model) => " << netBin.node_size() << " nodes");
  ------------------
  |  |  171|  6.11k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  5.66k|        extra_check0; \
  |  |  |  |  148|  5.66k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  5.66k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  5.66k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  5.66k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  5.66k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.66k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  5.66k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.66k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 5.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  5.66k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.66k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 5.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  5.66k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 5.66k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 5.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  5.66k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  5.66k|    }
  |  |  ------------------
  ------------------
 3073|       |
 3074|  6.11k|        simplifySubgraphs(netBin);
 3075|  6.11k|        CV_LOG_DEBUG(NULL, "DNN/TF: simplifySubgraphs(model) => " << netBin.node_size() << " nodes");
  ------------------
  |  |  171|  6.11k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  5.57k|        extra_check0; \
  |  |  |  |  148|  5.57k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  5.57k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  5.57k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  5.57k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  5.57k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.57k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  5.57k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.57k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 5.57k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  5.57k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  5.57k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 5.57k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  5.57k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 5.57k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 5.57k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  5.57k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  5.57k|    }
  |  |  ------------------
  ------------------
 3076|  6.11k|        sortByExecutionOrder(netBin);
 3077|  6.11k|        CV_LOG_DEBUG(NULL, "DNN/TF: sortByExecutionOrder(model) => " << netBin.node_size() << " nodes");
  ------------------
  |  |  171|  6.11k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  4.25k|        extra_check0; \
  |  |  |  |  148|  4.25k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  4.25k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  4.25k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  4.25k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  4.25k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  4.25k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  4.25k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  4.25k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 4.25k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  4.25k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  4.25k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 4.25k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  4.25k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 4.25k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 4.25k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  4.25k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  4.25k|    }
  |  |  ------------------
  ------------------
 3078|  6.11k|    }
 3079|       |
 3080|  6.11k|    tensorflow::GraphDef& net = netTxtSize != 0 ? netTxt : netBin;
  ------------------
  |  Branch (3080:33): [True: 0, False: 6.11k]
  ------------------
 3081|       |
 3082|  6.11k|    int layersSize = net.node_size();
 3083|       |
 3084|       |    // Pre-fill data layouts where they are set explicitly.
 3085|       |    // Assuming that nodes are in topological order
 3086|  19.9k|    for (int i = layersSize - 1; i >= 0; --i)
  ------------------
  |  Branch (3086:34): [True: 13.7k, False: 6.11k]
  ------------------
 3087|  13.7k|    {
 3088|  13.7k|        const tensorflow::NodeDef& layer = net.node(i);
 3089|  13.7k|        std::string name = layer.name();
 3090|       |
 3091|  13.7k|        CV_LOG_DEBUG(NULL, "DNN/TF: node(" << i << " - '" << name << "') propagating layout...");
  ------------------
  |  |  171|  13.7k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  13.7k|    for(;;) { \
  |  |  |  |  147|  13.7k|        extra_check0; \
  |  |  |  |  148|  13.7k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  13.7k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  13.7k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  13.7k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  13.7k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  13.7k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  13.7k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  13.7k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 13.7k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  13.7k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  13.7k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 13.7k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  13.7k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 13.7k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 13.7k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  13.7k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  13.7k|    }
  |  |  ------------------
  ------------------
 3092|       |
 3093|  13.7k|        try
 3094|  13.7k|        {
 3095|  13.7k|            DataLayout layout = getDataLayout(layer);
 3096|  13.7k|            std::map<String, DataLayout>::iterator it = data_layouts.find(name);
 3097|  13.7k|            if (it != data_layouts.end())
  ------------------
  |  Branch (3097:17): [True: 916, False: 12.8k]
  ------------------
 3098|    916|            {
 3099|    916|                if (layout != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3099:21): [True: 0, False: 916]
  ------------------
 3100|      0|                {
 3101|      0|                    if (it->second == DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3101:25): [True: 0, False: 0]
  ------------------
 3102|      0|                        it->second = layout;
 3103|      0|                    else if (it->second != layout)
  ------------------
  |  Branch (3103:30): [True: 0, False: 0]
  ------------------
 3104|      0|                    {
 3105|      0|                        it->second = DNN_LAYOUT_UNKNOWN;
 3106|      0|                        layout = DNN_LAYOUT_UNKNOWN;
 3107|      0|                    }
 3108|      0|                }
 3109|    916|                else
 3110|    916|                    layout = it->second;
 3111|    916|            }
 3112|  12.8k|            else
 3113|  12.8k|                data_layouts[name] = layout;
 3114|       |
 3115|       |            // Specify input layers to have the same data layout.
 3116|  32.0k|            for (int j = 0; j < layer.input_size(); ++j)
  ------------------
  |  Branch (3116:29): [True: 18.2k, False: 13.7k]
  ------------------
 3117|  18.2k|            {
 3118|  18.2k|                name = getNodeName(layer.input(j));
 3119|  18.2k|                it = data_layouts.find(name);
 3120|  18.2k|                if (it != data_layouts.end())
  ------------------
  |  Branch (3120:21): [True: 16.1k, False: 2.08k]
  ------------------
 3121|  16.1k|                {
 3122|  16.1k|                    if (layout != DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3122:25): [True: 0, False: 16.1k]
  ------------------
 3123|      0|                    {
 3124|      0|                        if (it->second == DNN_LAYOUT_UNKNOWN)
  ------------------
  |  Branch (3124:29): [True: 0, False: 0]
  ------------------
 3125|      0|                            it->second = layout;
 3126|      0|                        else if (it->second != layout)
  ------------------
  |  Branch (3126:34): [True: 0, False: 0]
  ------------------
 3127|      0|                            it->second = DNN_LAYOUT_UNKNOWN;
 3128|      0|                    }
 3129|  16.1k|                }
 3130|  2.08k|                else
 3131|  2.08k|                    data_layouts[name] = layout;
 3132|  18.2k|            }
 3133|  13.7k|        }
 3134|  13.7k|        catch (const std::exception& e)
 3135|  13.7k|        {
 3136|      0|            CV_LOG_ERROR(NULL, "DNN/TF: Can't propagate layout for node='" << name << "'. Exception: " << e.what());
  ------------------
  |  |  168|      0|#define CV_LOG_ERROR(tag, ...)   CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_ERROR, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3137|      0|            throw;
 3138|      0|        }
 3139|  13.7k|    }
 3140|       |
 3141|  6.11k|    addConstNodes(netBin, value_id, layers_to_ignore);
 3142|  6.11k|    addConstNodes(netTxt, value_id, layers_to_ignore);
 3143|       |
 3144|  6.11k|    if (DNN_DIAGNOSTICS_RUN) {
  ------------------
  |  Branch (3144:9): [True: 0, False: 6.11k]
  ------------------
 3145|      0|        CV_LOG_INFO(NULL, "DNN/TF: start diagnostic run!");
  ------------------
  |  |  170|      0|#define CV_LOG_INFO(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_INFO, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3146|      0|        layerHandler->fillRegistry(net);
 3147|      0|    }
 3148|       |
 3149|  18.5k|    for (int li = 0; li < layersSize; li++)
  ------------------
  |  Branch (3149:22): [True: 12.3k, False: 6.11k]
  ------------------
 3150|  12.3k|    {
 3151|  12.3k|        const tensorflow::NodeDef& layer = net.node(li);
 3152|       |
 3153|  12.3k|        CV_LOG_DEBUG(NULL, "DNN/TF: processing node (" << li << "/" << layersSize << ") with " << layer.input_size() << " inputs: "
  ------------------
  |  |  171|  12.3k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  12.3k|    for(;;) { \
  |  |  |  |  147|  12.3k|        extra_check0; \
  |  |  |  |  148|  12.3k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  12.3k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  12.3k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  12.3k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  12.3k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  12.3k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  12.3k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  12.3k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 12.3k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  12.3k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  12.3k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 12.3k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  12.3k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 12.3k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 12.3k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  12.3k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  12.3k|    }
  |  |  ------------------
  ------------------
 3154|  12.3k|                                                           << cv::format("[%s]:(%s)", layer.op().c_str(), layer.name().c_str()));
 3155|       |
 3156|  12.3k|        parseNode(layer);
 3157|  12.3k|    }
 3158|       |
 3159|  6.11k|    for (size_t i = 0; i < netInputsNames.size(); i++)
  ------------------
  |  Branch (3159:24): [True: 0, False: 6.11k]
  ------------------
 3160|      0|    {
 3161|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: Model input: " << i << " - '" << netInputsNames[i] << "'");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 3162|      0|        CV_Assert(!netInputsNames[i].empty());
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3163|      0|    }
 3164|  6.11k|    dstNet.setInputsNames(netInputsNames);
 3165|  6.11k|    CV_LOG_DEBUG(NULL, (DNN_DIAGNOSTICS_RUN? "DNN/TF: diagnostic run completed!" : "DNN/TF: import completed!"));
  ------------------
  |  |  171|  6.11k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  6.11k|    for(;;) { \
  |  |  |  |  147|  3.30k|        extra_check0; \
  |  |  |  |  148|  3.30k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  3.30k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  3.30k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  3.30k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  3.30k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  3.30k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  3.30k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  3.30k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 3.30k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  3.30k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  3.30k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 3.30k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  3.30k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 3.30k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 3.30k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  3.30k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (156:30): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  3.30k|    }
  |  |  ------------------
  ------------------
 3166|  6.11k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_113addConstNodesERN17opencv_tensorflow8GraphDefERNSt3__13mapINS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEiNS6_4lessISD_EENSB_INS6_4pairIKSD_iEEEEEERNS6_3setISD_SF_NSB_ISD_EEEE:
 2914|  8.49k|{
 2915|  8.49k|    CV_LOG_DEBUG(NULL, "DNN/TF: addConstNodes(): handling " << net.node_size() << " nodes...");
  ------------------
  |  |  171|  8.49k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  8.49k|    for(;;) { \
  |  |  |  |  147|  8.49k|        extra_check0; \
  |  |  |  |  148|  8.49k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  8.49k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  8.49k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  8.49k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  8.49k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  8.49k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  8.49k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  8.49k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 8.49k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  8.49k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  8.49k|    }
  |  |  ------------------
  ------------------
 2916|  22.2k|    for (int li = 0; li < net.node_size(); li++)
  ------------------
  |  Branch (2916:22): [True: 13.7k, False: 8.49k]
  ------------------
 2917|  13.7k|    {
 2918|  13.7k|        const tensorflow::NodeDef &layer = net.node(li);
 2919|  13.7k|        String name = layer.name();
 2920|  13.7k|        String type = layer.op();
 2921|       |
 2922|       |        //CV_LOG_DEBUG(NULL, "DNN/TF: layer_id=" << li << " - '" << name << "' @ " << type);
 2923|       |
 2924|  13.7k|        try
 2925|  13.7k|        {
 2926|  13.7k|            if (type == "Dequantize")
  ------------------
  |  Branch (2926:17): [True: 5, False: 13.7k]
  ------------------
 2927|      5|            {
 2928|       |                // Example of Dequantize node:
 2929|       |                //   name: "conv2d_1/bias"
 2930|       |                //   op: "Dequantize"
 2931|       |                //   input: "conv2d_1/bias_quantized_const" (tensor of dtype DT_QUINT8)
 2932|       |                //   input: "conv2d_1/bias_quantized_min"
 2933|       |                //   input: "conv2d_1/bias_quantized_max"
 2934|       |                //   attr { key: "T" value { type: DT_QUINT8 } }   (quantized type)
 2935|       |                //   attr { key: "mode" value { s: "MIN_FIRST" } } (quantization technique)
 2936|      5|                CV_CheckEQ(layer.input_size(), 3, "Dequantize: 3 inputs is supported only");
  ------------------
  |  |  118|      5|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      5|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      5|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      4|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      4|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      4|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      4|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      4|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      4|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      4|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      4|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      4|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      4|    } \
  |  |  |  |  104|      5|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2937|      1|                for (int i = 0; i < 3; ++i)
  ------------------
  |  Branch (2937:33): [True: 1, False: 0]
  ------------------
 2938|      1|                    CV_Assert(const_layers.find(layer.input(i)) != const_layers.end());
  ------------------
  |  |  423|      2|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      1|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 1]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2939|      0|                CV_Assert(hasLayerAttr(layer, "mode") &&
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:38): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2940|      0|                          getLayerAttr(layer, "mode").s() == "MIN_FIRST");
 2941|       |
 2942|      0|                int tensorId = const_layers[layer.input(0)];
 2943|      0|                int minId = const_layers[layer.input(1)];
 2944|      0|                int maxId = const_layers[layer.input(2)];
 2945|       |
 2946|      0|                tensorflow::TensorProto* tensor = net.mutable_node(tensorId)
 2947|      0|                                                    ->mutable_attr()->at("value")
 2948|      0|                                                     .mutable_tensor();
 2949|      0|                CV_CheckEQ((int)tensor->dtype(), (int)tensorflow::DT_QUINT8, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2950|       |
 2951|      0|                Mat qMin = getTensorContent(net.node(minId).attr().at("value").tensor());
 2952|      0|                Mat qMax = getTensorContent(net.node(maxId).attr().at("value").tensor());
 2953|      0|                CV_CheckEQ(qMin.total(), (size_t)1, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2954|      0|                CV_CheckTypeEQ(qMin.type(), CV_32FC1, "");
  ------------------
  |  |  126|      0|#define CV_CheckTypeEQ(t1, t2, msg)  CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2955|      0|                CV_CheckEQ(qMax.total(), (size_t)1, "");
  ------------------
  |  |  118|      0|#define CV_CheckEQ(v1, v2, msg)  CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2956|      0|                CV_CheckTypeEQ(qMax.type(), CV_32FC1, "");
  ------------------
  |  |  126|      0|#define CV_CheckTypeEQ(t1, t2, msg)  CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
  |  |  ------------------
  |  |  |  |   99|      0|#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
  |  |  |  |  100|      0|    if(CV__TEST_##op((v1), (v2))) ; else { \
  |  |  |  |  101|      0|        CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   65|      0|    static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
  |  |  |  |  |  |   66|      0|            { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   57|      0|#   define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                           { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|# define CV__CHECK_FILENAME __FILE__
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  102|      0|        cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   63|      0|#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|#define CVAUX_CONCAT_EXP(a, b) a##b
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  103|      0|    } \
  |  |  |  |  104|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (104:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2957|       |
 2958|      0|                Mat content = getTensorContent(*tensor);
 2959|       |
 2960|      0|                float minVal = qMin.at<float>(0);
 2961|      0|                float rangeScale = (qMax.at<float>(0) - minVal) / 255;
 2962|      0|                CV_Assert(rangeScale >= 0);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2963|      0|                content.convertTo(content, CV_32FC1, rangeScale,
  ------------------
  |  |  118|      0|#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
  |  |  ------------------
  |  |  |  |   85|      0|#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   83|      0|#define CV_MAT_DEPTH(flags)     ((flags) & CV_MAT_DEPTH_MASK)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   82|      0|#define CV_MAT_DEPTH_MASK       (CV_DEPTH_MAX - 1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   71|      0|#define CV_DEPTH_MAX  (1 << CV_CN_SHIFT)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   70|      0|#define CV_CN_SHIFT   3
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |               #define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   70|      0|#define CV_CN_SHIFT   3
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2964|      0|                                  rangeScale * cvRound(minVal / rangeScale));
 2965|       |
 2966|      0|                tensor->set_dtype(tensorflow::DT_FLOAT);
 2967|      0|                tensor->set_tensor_content(content.data, content.total() * content.elemSize1());
 2968|       |
 2969|      0|                net.mutable_node(tensorId)->set_name(name);
 2970|      0|                CV_Assert(const_layers.insert(std::make_pair(name, tensorId)).second);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2971|      0|                layers_to_ignore.insert(name);
 2972|      0|                continue;
 2973|      0|            }
 2974|  13.7k|            else if (type != "Const")
  ------------------
  |  Branch (2974:22): [True: 12.8k, False: 905]
  ------------------
 2975|  12.8k|                continue;  // only Const parameters are supported
 2976|       |
 2977|    905|            if (layer.attr().find("value") != layer.attr().end())
  ------------------
  |  Branch (2977:17): [True: 0, False: 905]
  ------------------
 2978|      0|            {
 2979|      0|                CV_Assert(const_layers.insert(std::make_pair(name, li)).second);
  ------------------
  |  |  423|      0|#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
  |  |  ------------------
  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (423:35): [True: 0, False: 0]
  |  |  |  Branch (423:131): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2980|      0|            }
 2981|    905|            layers_to_ignore.insert(name);
 2982|    905|        }
 2983|  13.7k|        catch (const std::exception& e)
 2984|  13.7k|        {
 2985|      5|            CV_LOG_ERROR(NULL, "DNN/TF: Can't handle node='" << name << "'. Exception: " << e.what());
  ------------------
  |  |  168|      5|#define CV_LOG_ERROR(tag, ...)   CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_ERROR, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      5|    for(;;) { \
  |  |  |  |  147|      5|        extra_check0; \
  |  |  |  |  148|      5|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      5|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      5|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      5|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      5|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      5|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      5|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      5|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      5|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      5|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      5|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 5, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 5]
  |  |  |  |  ------------------
  |  |  |  |  154|      5|        extra_check1; \
  |  |  |  |  155|      5|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      5|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      5|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      5|            cv_temp_msglevel, \
  |  |  |  |  159|      5|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      5|            __FILE__, \
  |  |  |  |  161|      5|            __LINE__, \
  |  |  |  |  162|      5|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      5|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      5|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      5|        break; \
  |  |  |  |  165|      5|    }
  |  |  ------------------
  ------------------
 2986|      5|            throw;
 2987|      5|        }
 2988|  13.7k|    }
 2989|  8.49k|    CV_LOG_DEBUG(NULL, "DNN/TF: layers_to_ignore.size() = " << layers_to_ignore.size());
  ------------------
  |  |  171|  8.49k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  8.49k|    for(;;) { \
  |  |  |  |  147|  8.49k|        extra_check0; \
  |  |  |  |  148|  8.49k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  8.49k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  8.49k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  8.49k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  8.49k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  8.49k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  8.49k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  8.49k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  8.49k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 8.49k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 8.49k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  8.49k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  8.49k|    }
  |  |  ------------------
  ------------------
 2990|  8.49k|}
tf_importer.cpp:_ZN2cv3dnn14dnn4_v2024122312_GLOBAL__N_110TFImporterC2ERNS1_3NetEPKcmS7_m:
 2770|  17.9k|    :  layerHandler(DNN_DIAGNOSTICS_RUN ?  new TFLayerHandler(this) : nullptr),
  ------------------
  |  Branch (2770:21): [True: 0, False: 17.9k]
  ------------------
 2771|  17.9k|       dstNet(net), dispatch(buildDispatchMap())
 2772|  17.9k|{
 2773|  17.9k|    if (dataModel != NULL && lenModel > 0)
  ------------------
  |  Branch (2773:9): [True: 17.9k, False: 0]
  |  Branch (2773:30): [True: 17.9k, False: 0]
  ------------------
 2774|  17.9k|    {
 2775|  17.9k|        CV_LOG_DEBUG(NULL, "DNN/TF: processing TensorFlow model from memory (" << lenModel << " bytes)");
  ------------------
  |  |  171|  17.9k|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|  17.9k|    for(;;) { \
  |  |  |  |  147|  17.9k|        extra_check0; \
  |  |  |  |  148|  17.9k|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|  17.9k|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|  17.9k|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|  17.9k|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|  17.9k|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  17.9k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|  17.9k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  17.9k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 17.9k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|  17.9k|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|  17.9k|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 17.9k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|  17.9k|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 17.9k, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 17.9k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|  17.9k|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|  17.9k|    }
  |  |  ------------------
  ------------------
 2776|  17.9k|        ReadTFNetParamsFromBinaryBufferOrDie(dataModel, lenModel, &netBin);
 2777|  17.9k|    }
 2778|  17.9k|    if (dataConfig != NULL && lenConfig > 0)
  ------------------
  |  Branch (2778:9): [True: 0, False: 17.9k]
  |  Branch (2778:31): [True: 0, False: 0]
  ------------------
 2779|      0|    {
 2780|      0|        CV_LOG_DEBUG(NULL, "DNN/TF: processing TensorFlow config from memory (" << lenConfig << " bytes)");
  ------------------
  |  |  171|      0|#define CV_LOG_DEBUG(tag, ...) CV_LOG_WITH_TAG(tag, cv::utils::logging::LOG_LEVEL_DEBUG, , , __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  146|      0|    for(;;) { \
  |  |  |  |  147|      0|        extra_check0; \
  |  |  |  |  148|      0|        const auto cv_temp_msglevel = (cv::utils::logging::LogLevel)(msgLevel); \
  |  |  |  |  149|      0|        if (cv_temp_msglevel >= (CV_LOG_STRIP_LEVEL)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   19|      0|#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   17|      0|#define CV_LOG_LEVEL_DEBUG 5           //!< Debug message. Disabled in the "Release" build.
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (149:13): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  150|      0|        auto cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_EXPAND_NAME(tag)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  151|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_FALLBACK); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (151:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  152|      0|        if (!cv_temp_logtagptr) cv_temp_logtagptr = CV_LOGTAG_PTR_CAST(CV_LOGTAG_GLOBAL); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  109|      0|#define CV_LOGTAG_PTR_CAST(expr) static_cast<const cv::utils::logging::LogTag*>(expr)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (152:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  153|      0|        if (cv_temp_logtagptr && (cv_temp_msglevel > cv_temp_logtagptr->level)) break; \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  |  |  |  Branch (153:34): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  154|      0|        extra_check1; \
  |  |  |  |  155|      0|        std::stringstream cv_temp_logstream; \
  |  |  |  |  156|      0|        cv_temp_logstream << __VA_ARGS__; \
  |  |  |  |  157|      0|        cv::utils::logging::internal::writeLogMessageEx( \
  |  |  |  |  158|      0|            cv_temp_msglevel, \
  |  |  |  |  159|      0|            (cv_temp_logtagptr ? cv_temp_logtagptr->name : nullptr), \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (159:14): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  160|      0|            __FILE__, \
  |  |  |  |  161|      0|            __LINE__, \
  |  |  |  |  162|      0|            CV_Func, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define CV_Func __func__
  |  |  |  |  ------------------
  |  |  |  |  163|      0|            cv_temp_logstream.str().c_str()); \
  |  |  |  |  164|      0|        break; \
  |  |  |  |  165|      0|    }
  |  |  ------------------
  ------------------
 2781|      0|        ReadTFNetParamsFromTextBufferOrDie(dataConfig, lenConfig, &netTxt);
 2782|      0|    }
 2783|  17.9k|    populateNet();
 2784|  17.9k|}

_ZN2cv3dnn36ReadTFNetParamsFromBinaryBufferOrDieEPKcmPN17opencv_tensorflow8GraphDefE:
   47|  17.9k|                                          tensorflow::GraphDef* param) {
   48|  17.9k|    CHECK(ReadProtoFromBinaryBuffer(data, len, param))
  ------------------
  |  |   49|  35.8k|#define CHECK(cond)     for(cv::dnn::GLogWrapper _logger(__FILE__, CV_Func, __LINE__, "CHECK", #cond, cond); _logger.exit(); _logger.check()) _logger.stream()
  |  |  ------------------
  |  |  |  |   94|  17.9k|#define CV_Func __func__
  |  |  ------------------
  |  |  |  Branch (49:110): [True: 17.9k, False: 17.9k]
  |  |  ------------------
  ------------------
   49|  17.9k|        << "Failed to parse GraphDef buffer";
   50|  17.9k|}

LLVMFuzzerTestOneInput:
   22|  17.9k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   23|  17.9k|  try {
   24|  17.9k|    readNetFromTensorflow((const char*)data, size);
   25|  17.9k|  } catch (std::exception &e) {}
   26|  17.9k|  return 0;
   27|  17.9k|}

