// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: caffe_protos.proto
// Protobuf C++ Version: 7.34.1

#include "caffe_protos.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace caffe_protos {

inline constexpr NormalizedBBox::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        xmin_{0},
        ymin_{0},
        xmax_{0},
        ymax_{0},
        label_{0},
        difficult_{false},
        score_{0},
        size_{0} {}

template <typename>
constexpr NormalizedBBox::NormalizedBBox(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NormalizedBBox_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct NormalizedBBoxDefaultTypeInternal {
  constexpr NormalizedBBoxDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NormalizedBBoxDefaultTypeInternal() {}
  union {
    NormalizedBBox _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NormalizedBBoxDefaultTypeInternal _NormalizedBBox_default_instance_;

inline constexpr Datum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        float_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.float_data_)>()
        }
        #else
        float_data_ {}
        #endif
        ,
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        labels_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.labels_)>()
        }
        #else
        labels_ {}
        #endif
        ,
        data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        channels_{0},
        height_{0},
        width_{0},
        label_{0},
        encoded_{false} {}

template <typename>
constexpr Datum::Datum(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(Datum_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct DatumDefaultTypeInternal {
  constexpr DatumDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DatumDefaultTypeInternal() {}
  union {
    Datum _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DatumDefaultTypeInternal _Datum_default_instance_;

inline constexpr Annotation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bbox_{nullptr},
        instance_id_{0} {}

template <typename>
constexpr Annotation::Annotation(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(Annotation_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct AnnotationDefaultTypeInternal {
  constexpr AnnotationDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnnotationDefaultTypeInternal() {}
  union {
    Annotation _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnnotationDefaultTypeInternal _Annotation_default_instance_;

inline constexpr AnnotationGroup::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotationGroup,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_.annotation_)>()
        }
        #else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_ {}
        #endif
        ,
        group_label_{0} {}

template <typename>
constexpr AnnotationGroup::AnnotationGroup(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(AnnotationGroup_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct AnnotationGroupDefaultTypeInternal {
  constexpr AnnotationGroupDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnnotationGroupDefaultTypeInternal() {}
  union {
    AnnotationGroup _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnnotationGroupDefaultTypeInternal _AnnotationGroup_default_instance_;

inline constexpr AnnotatedDatum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_group_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotatedDatum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.annotation_group_)>()
        }
        #else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_group_ {}
        #endif
        ,
        datum_{nullptr},
        type_{static_cast< ::caffe_protos::AnnotatedDatum_AnnotationType >(0)} {}

template <typename>
constexpr AnnotatedDatum::AnnotatedDatum(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(AnnotatedDatum_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct AnnotatedDatumDefaultTypeInternal {
  constexpr AnnotatedDatumDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnnotatedDatumDefaultTypeInternal() {}
  union {
    AnnotatedDatum _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnnotatedDatumDefaultTypeInternal _AnnotatedDatum_default_instance_;
}  // namespace caffe_protos
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_caffe_5fprotos_2eproto[1];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_caffe_5fprotos_2eproto = nullptr;
const ::uint32_t
    TableStruct_caffe_5fprotos_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.channels_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.height_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.width_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.label_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.float_data_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.encoded_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.labels_),
        3,
        4,
        5,
        2,
        6,
        0,
        7,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.xmin_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.ymin_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.xmax_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.ymax_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.label_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.difficult_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.score_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::NormalizedBBox, _impl_.size_),
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Annotation, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Annotation, _impl_.instance_id_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::Annotation, _impl_.bbox_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_.group_label_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_.annotation_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.datum_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.annotation_group_),
        1,
        2,
        0,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::caffe_protos::Datum)},
        {19, sizeof(::caffe_protos::NormalizedBBox)},
        {38, sizeof(::caffe_protos::Annotation)},
        {45, sizeof(::caffe_protos::AnnotationGroup)},
        {52, sizeof(::caffe_protos::AnnotatedDatum)},
};
static const ::_pb::Message* PROTOBUF_NONNULL const file_default_instances[] = {
    &::caffe_protos::_Datum_default_instance_._instance,
    &::caffe_protos::_NormalizedBBox_default_instance_._instance,
    &::caffe_protos::_Annotation_default_instance_._instance,
    &::caffe_protos::_AnnotationGroup_default_instance_._instance,
    &::caffe_protos::_AnnotatedDatum_default_instance_._instance,
};
const char descriptor_table_protodef_caffe_5fprotos_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\022caffe_protos.proto\022\014caffe_protos\"\221\001\n\005D"
    "atum\022\020\n\010channels\030\001 \001(\005\022\016\n\006height\030\002 \001(\005\022\r"
    "\n\005width\030\003 \001(\005\022\014\n\004data\030\004 \001(\014\022\r\n\005label\030\005 \001"
    "(\005\022\022\n\nfloat_data\030\006 \003(\002\022\026\n\007encoded\030\007 \001(\010:"
    "\005false\022\016\n\006labels\030\010 \003(\002\"\207\001\n\016NormalizedBBo"
    "x\022\014\n\004xmin\030\001 \001(\002\022\014\n\004ymin\030\002 \001(\002\022\014\n\004xmax\030\003 "
    "\001(\002\022\014\n\004ymax\030\004 \001(\002\022\r\n\005label\030\005 \001(\005\022\021\n\tdiff"
    "icult\030\006 \001(\010\022\r\n\005score\030\007 \001(\002\022\014\n\004size\030\010 \001(\002"
    "\"P\n\nAnnotation\022\026\n\013instance_id\030\001 \001(\005:\0010\022*"
    "\n\004bbox\030\002 \001(\0132\034.caffe_protos.NormalizedBB"
    "ox\"T\n\017AnnotationGroup\022\023\n\013group_label\030\001 \001"
    "(\005\022,\n\nannotation\030\002 \003(\0132\030.caffe_protos.An"
    "notation\"\304\001\n\016AnnotatedDatum\022\"\n\005datum\030\001 \001"
    "(\0132\023.caffe_protos.Datum\0229\n\004type\030\002 \001(\0162+."
    "caffe_protos.AnnotatedDatum.AnnotationTy"
    "pe\0227\n\020annotation_group\030\003 \003(\0132\035.caffe_pro"
    "tos.AnnotationGroup\"\032\n\016AnnotationType\022\010\n"
    "\004BBOX\020\000"
};
static ::absl::once_flag descriptor_table_caffe_5fprotos_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_caffe_5fprotos_2eproto = {
    false,
    false,
    687,
    descriptor_table_protodef_caffe_5fprotos_2eproto,
    "caffe_protos.proto",
    &descriptor_table_caffe_5fprotos_2eproto_once,
    nullptr,
    0,
    5,
    schemas,
    file_default_instances,
    TableStruct_caffe_5fprotos_2eproto::offsets,
    file_level_enum_descriptors_caffe_5fprotos_2eproto,
    file_level_service_descriptors_caffe_5fprotos_2eproto,
};
namespace caffe_protos {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AnnotatedDatum_AnnotationType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_caffe_5fprotos_2eproto);
  return file_level_enum_descriptors_caffe_5fprotos_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t AnnotatedDatum_AnnotationType_internal_data_[] = {
    65536u, 0u, };
// ===================================================================

class Datum::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<Datum>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Datum, _impl_._has_bits_);
};

Datum::Datum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Datum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:caffe_protos.Datum)
}
PROTOBUF_NDEBUG_INLINE Datum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::caffe_protos::Datum& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        float_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.float_data_)>()
        , from.float_data_}
        #else
        float_data_ { visibility, arena, from.float_data_ }
        #endif
        ,
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        labels_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.labels_)>()
        , from.labels_}
        #else
        labels_ { visibility, arena, from.labels_ }
        #endif
        ,
        data_(arena, from.data_) {}

Datum::Datum(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Datum& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Datum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Datum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, channels_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, channels_),
           offsetof(Impl_, encoded_) -
               offsetof(Impl_, channels_) +
               sizeof(Impl_::encoded_));

  // @@protoc_insertion_point(copy_constructor:caffe_protos.Datum)
}
PROTOBUF_NDEBUG_INLINE Datum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        float_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.float_data_)>()
        }
        #else
        float_data_ { visibility, arena }
        #endif
        ,
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        labels_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::Datum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::Datum, _impl_.labels_)>()
        }
        #else
        labels_ { visibility, arena }
        #endif
        ,
        data_(arena) {}

inline void Datum::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, channels_),
           0,
           offsetof(Impl_, encoded_) -
               offsetof(Impl_, channels_) +
               sizeof(Impl_::encoded_));
}
Datum::~Datum() {
  // @@protoc_insertion_point(destructor:caffe_protos.Datum)
  SharedDtor(*this);
}
inline void Datum::SharedDtor(MessageLite& self) {
  Datum& this_ = static_cast<Datum&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.data_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL Datum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Datum(arena);
}
#ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto Datum::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Datum),
                                            alignof(Datum));
}
#else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto Datum::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_) +
          decltype(Datum::_impl_.float_data_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.labels_) +
          decltype(Datum::_impl_.labels_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(Datum), alignof(Datum), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&Datum::PlacementNew_,
                                 sizeof(Datum),
                                 alignof(Datum));
  }
}
#endif
constexpr auto Datum::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_Datum_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &Datum::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Datum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Datum::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Datum>(), &Datum::ByteSizeLong,
              &Datum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Datum, _impl_._cached_size_),
          false,
      },
      &Datum::kDescriptorMethods,
      &descriptor_table_caffe_5fprotos_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Datum_class_data_ =
        Datum::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Datum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Datum_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Datum_class_data_.tc_table);
  return Datum_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 0, 0, 2>
Datum::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(Datum, _impl_._has_bits_),
    0, // no _extensions_
    8, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    Datum_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::caffe_protos::Datum>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated float labels = 8;
    {::_pbi::TcParser::FastF32R1,
     {69, 1, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.labels_)}},
    // optional int32 channels = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.channels_), 3>(),
     {8, 3, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_)}},
    // optional int32 height = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.height_), 4>(),
     {16, 4, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.height_)}},
    // optional int32 width = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.width_), 5>(),
     {24, 5, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.width_)}},
    // optional bytes data = 4;
    {::_pbi::TcParser::FastBS1,
     {34, 2, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.data_)}},
    // optional int32 label = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.label_), 6>(),
     {40, 6, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.label_)}},
    // repeated float float_data = 6;
    {::_pbi::TcParser::FastF32R1,
     {53, 0, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_)}},
    // optional bool encoded = 7 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Datum, _impl_.encoded_), 7>(),
     {56, 7, 0,
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 channels = 1;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 height = 2;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.height_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 width = 3;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.width_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bytes data = 4;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.data_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    // optional int32 label = 5;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.label_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated float float_data = 6;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional bool encoded = 7 [default = false];
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // repeated float labels = 8;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.labels_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void Datum::Clear() {
// @@protoc_insertion_point(message_clear_start:caffe_protos.Datum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _impl_.float_data_.Clear();
    }
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000002U)) {
      _impl_.labels_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.data_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f8U)) {
    ::memset(&_impl_.channels_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.encoded_) -
        reinterpret_cast<char*>(&_impl_.channels_)) + sizeof(_impl_.encoded_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Datum::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Datum& this_ = static_cast<const Datum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Datum::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Datum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:caffe_protos.Datum)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 channels = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_channels(), target);
  }

  // optional int32 height = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_height(), target);
  }

  // optional int32 width = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_width(), target);
  }

  // optional bytes data = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_data();
    target = stream->WriteBytesMaybeAliased(4, _s, target);
  }

  // optional int32 label = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_label(), target);
  }

  // repeated float float_data = 6;
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_float_data_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          6, this_._internal_float_data().Get(i), target);
    }
  }

  // optional bool encoded = 7 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        7, this_._internal_encoded(), target);
  }

  // repeated float labels = 8;
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_labels_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          8, this_._internal_labels().Get(i), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:caffe_protos.Datum)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Datum::ByteSizeLong(const MessageLite& base) {
  const Datum& this_ = static_cast<const Datum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Datum::ByteSizeLong() const {
  const Datum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:caffe_protos.Datum)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000080U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated float float_data = 6;
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_float_data_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_float_data_size());
      total_size += tag_size + data_size;
    }
    // repeated float labels = 8;
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000002U)) {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_labels_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_labels_size());
      total_size += tag_size + data_size;
    }
    // optional bytes data = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_data());
    }
    // optional int32 channels = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_channels());
    }
    // optional int32 height = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_height());
    }
    // optional int32 width = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_width());
    }
    // optional int32 label = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_label());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Datum::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<Datum*>(&to_msg);
  auto& from = static_cast<const Datum&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:caffe_protos.Datum)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_float_data()->MergeFrom(from._internal_float_data());
    }
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_labels()->MergeFrom(from._internal_labels());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_data(from._internal_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.channels_ = from._impl_.channels_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.height_ = from._impl_.height_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.width_ = from._impl_.width_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.label_ = from._impl_.label_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.encoded_ = from._impl_.encoded_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Datum::CopyFrom(const Datum& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:caffe_protos.Datum)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Datum::InternalSwap(Datum* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.float_data_.InternalSwap(&other->_impl_.float_data_);
  _impl_.labels_.InternalSwap(&other->_impl_.labels_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.data_, &other->_impl_.data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_)
      + sizeof(Datum::_impl_.encoded_)
      - PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_)>(
          reinterpret_cast<char*>(&_impl_.channels_),
          reinterpret_cast<char*>(&other->_impl_.channels_));
}

::google::protobuf::Metadata Datum::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NormalizedBBox::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NormalizedBBox>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._has_bits_);
};

NormalizedBBox::NormalizedBBox(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizedBBox_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:caffe_protos.NormalizedBBox)
}
NormalizedBBox::NormalizedBBox(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NormalizedBBox& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizedBBox_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE NormalizedBBox::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void NormalizedBBox::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, xmin_),
           0,
           offsetof(Impl_, size_) -
               offsetof(Impl_, xmin_) +
               sizeof(Impl_::size_));
}
NormalizedBBox::~NormalizedBBox() {
  // @@protoc_insertion_point(destructor:caffe_protos.NormalizedBBox)
  SharedDtor(*this);
}
inline void NormalizedBBox::SharedDtor(MessageLite& self) {
  NormalizedBBox& this_ = static_cast<NormalizedBBox&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NormalizedBBox::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NormalizedBBox(arena);
}
constexpr auto NormalizedBBox::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(NormalizedBBox),
                                            alignof(NormalizedBBox));
}
constexpr auto NormalizedBBox::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NormalizedBBox_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &NormalizedBBox::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NormalizedBBox>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NormalizedBBox::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NormalizedBBox>(), &NormalizedBBox::ByteSizeLong,
              &NormalizedBBox::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._cached_size_),
          false,
      },
      &NormalizedBBox::kDescriptorMethods,
      &descriptor_table_caffe_5fprotos_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NormalizedBBox_class_data_ =
        NormalizedBBox::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NormalizedBBox::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NormalizedBBox_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NormalizedBBox_class_data_.tc_table);
  return NormalizedBBox_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 0, 0, 2>
NormalizedBBox::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._has_bits_),
    0, // no _extensions_
    8, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    NormalizedBBox_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::caffe_protos::NormalizedBBox>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float size = 8;
    {::_pbi::TcParser::FastF32S1,
     {69, 7, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_)}},
    // optional float xmin = 1;
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_)}},
    // optional float ymin = 2;
    {::_pbi::TcParser::FastF32S1,
     {21, 1, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymin_)}},
    // optional float xmax = 3;
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmax_)}},
    // optional float ymax = 4;
    {::_pbi::TcParser::FastF32S1,
     {37, 3, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymax_)}},
    // optional int32 label = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NormalizedBBox, _impl_.label_), 4>(),
     {40, 4, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.label_)}},
    // optional bool difficult = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NormalizedBBox, _impl_.difficult_), 5>(),
     {48, 5, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.difficult_)}},
    // optional float score = 7;
    {::_pbi::TcParser::FastF32S1,
     {61, 6, 0,
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.score_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float xmin = 1;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float ymin = 2;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float xmax = 3;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmax_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float ymax = 4;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymax_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 label = 5;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.label_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool difficult = 6;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.difficult_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float score = 7;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.score_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float size = 8;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void NormalizedBBox::Clear() {
// @@protoc_insertion_point(message_clear_start:caffe_protos.NormalizedBBox)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    ::memset(&_impl_.xmin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.size_) -
        reinterpret_cast<char*>(&_impl_.xmin_)) + sizeof(_impl_.size_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NormalizedBBox::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NormalizedBBox& this_ = static_cast<const NormalizedBBox&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NormalizedBBox::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NormalizedBBox& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:caffe_protos.NormalizedBBox)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float xmin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_xmin(), target);
  }

  // optional float ymin = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_ymin(), target);
  }

  // optional float xmax = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_xmax(), target);
  }

  // optional float ymax = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_ymax(), target);
  }

  // optional int32 label = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_label(), target);
  }

  // optional bool difficult = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_difficult(), target);
  }

  // optional float score = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        7, this_._internal_score(), target);
  }

  // optional float size = 8;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        8, this_._internal_size(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:caffe_protos.NormalizedBBox)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NormalizedBBox::ByteSizeLong(const MessageLite& base) {
  const NormalizedBBox& this_ = static_cast<const NormalizedBBox&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NormalizedBBox::ByteSizeLong() const {
  const NormalizedBBox& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:caffe_protos.NormalizedBBox)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x000000cfU & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
   {
    // optional int32 label = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_label());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NormalizedBBox::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<NormalizedBBox*>(&to_msg);
  auto& from = static_cast<const NormalizedBBox&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:caffe_protos.NormalizedBBox)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.xmin_ = from._impl_.xmin_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.ymin_ = from._impl_.ymin_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.xmax_ = from._impl_.xmax_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.ymax_ = from._impl_.ymax_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.label_ = from._impl_.label_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.difficult_ = from._impl_.difficult_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.score_ = from._impl_.score_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.size_ = from._impl_.size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void NormalizedBBox::CopyFrom(const NormalizedBBox& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:caffe_protos.NormalizedBBox)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NormalizedBBox::InternalSwap(NormalizedBBox* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_)
      + sizeof(NormalizedBBox::_impl_.size_)
      - PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_)>(
          reinterpret_cast<char*>(&_impl_.xmin_),
          reinterpret_cast<char*>(&other->_impl_.xmin_));
}

::google::protobuf::Metadata NormalizedBBox::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class Annotation::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<Annotation>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Annotation, _impl_._has_bits_);
};

Annotation::Annotation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Annotation_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:caffe_protos.Annotation)
}
PROTOBUF_NDEBUG_INLINE Annotation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::caffe_protos::Annotation& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Annotation::Annotation(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Annotation& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Annotation_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Annotation* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.bbox_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bbox_)
                : nullptr;
  _impl_.instance_id_ = from._impl_.instance_id_;

  // @@protoc_insertion_point(copy_constructor:caffe_protos.Annotation)
}
PROTOBUF_NDEBUG_INLINE Annotation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Annotation::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, bbox_),
           0,
           offsetof(Impl_, instance_id_) -
               offsetof(Impl_, bbox_) +
               sizeof(Impl_::instance_id_));
}
Annotation::~Annotation() {
  // @@protoc_insertion_point(destructor:caffe_protos.Annotation)
  SharedDtor(*this);
}
inline void Annotation::SharedDtor(MessageLite& self) {
  Annotation& this_ = static_cast<Annotation&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.bbox_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL Annotation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Annotation(arena);
}
constexpr auto Annotation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Annotation),
                                            alignof(Annotation));
}
constexpr auto Annotation::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_Annotation_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &Annotation::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Annotation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Annotation::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Annotation>(), &Annotation::ByteSizeLong,
              &Annotation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Annotation, _impl_._cached_size_),
          false,
      },
      &Annotation::kDescriptorMethods,
      &descriptor_table_caffe_5fprotos_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Annotation_class_data_ =
        Annotation::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Annotation::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Annotation_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Annotation_class_data_.tc_table);
  return Annotation_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
Annotation::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(Annotation, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    Annotation_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::caffe_protos::Annotation>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .caffe_protos.NormalizedBBox bbox = 2;
    {::_pbi::TcParser::FastMtS1,
     {18, 0, 0,
      PROTOBUF_FIELD_OFFSET(Annotation, _impl_.bbox_)}},
    // optional int32 instance_id = 1 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Annotation, _impl_.instance_id_), 1>(),
     {8, 1, 0,
      PROTOBUF_FIELD_OFFSET(Annotation, _impl_.instance_id_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 instance_id = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(Annotation, _impl_.instance_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .caffe_protos.NormalizedBBox bbox = 2;
    {PROTOBUF_FIELD_OFFSET(Annotation, _impl_.bbox_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::caffe_protos::NormalizedBBox>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void Annotation::Clear() {
// @@protoc_insertion_point(message_clear_start:caffe_protos.Annotation)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.bbox_ != nullptr);
    _impl_.bbox_->Clear();
  }
  _impl_.instance_id_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Annotation::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Annotation& this_ = static_cast<const Annotation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Annotation::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Annotation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:caffe_protos.Annotation)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 instance_id = 1 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_instance_id(), target);
  }

  // optional .caffe_protos.NormalizedBBox bbox = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.bbox_, this_._impl_.bbox_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:caffe_protos.Annotation)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Annotation::ByteSizeLong(const MessageLite& base) {
  const Annotation& this_ = static_cast<const Annotation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Annotation::ByteSizeLong() const {
  const Annotation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:caffe_protos.Annotation)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional .caffe_protos.NormalizedBBox bbox = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bbox_);
    }
    // optional int32 instance_id = 1 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_instance_id());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Annotation::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<Annotation*>(&to_msg);
  auto& from = static_cast<const Annotation&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:caffe_protos.Annotation)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.bbox_ != nullptr);
      if (_this->_impl_.bbox_ == nullptr) {
        _this->_impl_.bbox_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bbox_);
      } else {
        _this->_impl_.bbox_->MergeFrom(*from._impl_.bbox_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.instance_id_ = from._impl_.instance_id_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Annotation::CopyFrom(const Annotation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:caffe_protos.Annotation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Annotation::InternalSwap(Annotation* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Annotation, _impl_.instance_id_)
      + sizeof(Annotation::_impl_.instance_id_)
      - PROTOBUF_FIELD_OFFSET(Annotation, _impl_.bbox_)>(
          reinterpret_cast<char*>(&_impl_.bbox_),
          reinterpret_cast<char*>(&other->_impl_.bbox_));
}

::google::protobuf::Metadata Annotation::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class AnnotationGroup::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<AnnotationGroup>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_._has_bits_);
};

AnnotationGroup::AnnotationGroup(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AnnotationGroup_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:caffe_protos.AnnotationGroup)
}
PROTOBUF_NDEBUG_INLINE AnnotationGroup::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::caffe_protos::AnnotationGroup& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotationGroup,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_.annotation_)>()
        , from.annotation_}
        #else
        annotation_ { visibility, arena, from.annotation_ }
        #endif
     {}

AnnotationGroup::AnnotationGroup(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AnnotationGroup& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AnnotationGroup_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AnnotationGroup* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.group_label_ = from._impl_.group_label_;

  // @@protoc_insertion_point(copy_constructor:caffe_protos.AnnotationGroup)
}
PROTOBUF_NDEBUG_INLINE AnnotationGroup::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotationGroup,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotationGroup, _impl_.annotation_)>()
        }
        #else
        annotation_ { visibility, arena }
        #endif
     {}

inline void AnnotationGroup::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.group_label_ = {};
}
AnnotationGroup::~AnnotationGroup() {
  // @@protoc_insertion_point(destructor:caffe_protos.AnnotationGroup)
  SharedDtor(*this);
}
inline void AnnotationGroup::SharedDtor(MessageLite& self) {
  AnnotationGroup& this_ = static_cast<AnnotationGroup&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL AnnotationGroup::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AnnotationGroup(arena);
}
#ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto AnnotationGroup::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AnnotationGroup),
                                            alignof(AnnotationGroup));
}
#else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto AnnotationGroup::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_.annotation_) +
          decltype(AnnotationGroup::_impl_.annotation_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(AnnotationGroup), alignof(AnnotationGroup), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&AnnotationGroup::PlacementNew_,
                                 sizeof(AnnotationGroup),
                                 alignof(AnnotationGroup));
  }
}
#endif
constexpr auto AnnotationGroup::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_AnnotationGroup_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &AnnotationGroup::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AnnotationGroup>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AnnotationGroup::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AnnotationGroup>(), &AnnotationGroup::ByteSizeLong,
              &AnnotationGroup::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_._cached_size_),
          false,
      },
      &AnnotationGroup::kDescriptorMethods,
      &descriptor_table_caffe_5fprotos_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AnnotationGroup_class_data_ =
        AnnotationGroup::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AnnotationGroup::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AnnotationGroup_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AnnotationGroup_class_data_.tc_table);
  return AnnotationGroup_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
AnnotationGroup::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    AnnotationGroup_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::caffe_protos::AnnotationGroup>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated .caffe_protos.Annotation annotation = 2;
    {::_pbi::TcParser::FastMtR1,
     {18, 0, 0,
      PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_.annotation_)}},
    // optional int32 group_label = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AnnotationGroup, _impl_.group_label_), 1>(),
     {8, 1, 0,
      PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_.group_label_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 group_label = 1;
    {PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_.group_label_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated .caffe_protos.Annotation annotation = 2;
    {PROTOBUF_FIELD_OFFSET(AnnotationGroup, _impl_.annotation_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::caffe_protos::Annotation>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void AnnotationGroup::Clear() {
// @@protoc_insertion_point(message_clear_start:caffe_protos.AnnotationGroup)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
    _impl_.annotation_.Clear();
  }
  _impl_.group_label_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL AnnotationGroup::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const AnnotationGroup& this_ = static_cast<const AnnotationGroup&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL AnnotationGroup::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const AnnotationGroup& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:caffe_protos.AnnotationGroup)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 group_label = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_group_label(), target);
  }

  // repeated .caffe_protos.Annotation annotation = 2;
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_annotation_size());
         i < n; i++) {
      const auto& repfield = this_._internal_annotation().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:caffe_protos.AnnotationGroup)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AnnotationGroup::ByteSizeLong(const MessageLite& base) {
  const AnnotationGroup& this_ = static_cast<const AnnotationGroup&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AnnotationGroup::ByteSizeLong() const {
  const AnnotationGroup& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:caffe_protos.AnnotationGroup)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .caffe_protos.Annotation annotation = 2;
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_annotation_size();
      for (const auto& msg : this_._internal_annotation()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional int32 group_label = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_group_label());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AnnotationGroup::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<AnnotationGroup*>(&to_msg);
  auto& from = static_cast<const AnnotationGroup&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:caffe_protos.AnnotationGroup)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_annotation()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_annotation());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.group_label_ = from._impl_.group_label_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void AnnotationGroup::CopyFrom(const AnnotationGroup& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:caffe_protos.AnnotationGroup)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void AnnotationGroup::InternalSwap(AnnotationGroup* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.annotation_.InternalSwap(&other->_impl_.annotation_);
  swap(_impl_.group_label_, other->_impl_.group_label_);
}

::google::protobuf::Metadata AnnotationGroup::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class AnnotatedDatum::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<AnnotatedDatum>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_._has_bits_);
};

AnnotatedDatum::AnnotatedDatum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AnnotatedDatum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:caffe_protos.AnnotatedDatum)
}
PROTOBUF_NDEBUG_INLINE AnnotatedDatum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::caffe_protos::AnnotatedDatum& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_group_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotatedDatum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.annotation_group_)>()
        , from.annotation_group_}
        #else
        annotation_group_ { visibility, arena, from.annotation_group_ }
        #endif
     {}

AnnotatedDatum::AnnotatedDatum(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AnnotatedDatum& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AnnotatedDatum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AnnotatedDatum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.datum_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.datum_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:caffe_protos.AnnotatedDatum)
}
PROTOBUF_NDEBUG_INLINE AnnotatedDatum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
        annotation_group_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::caffe_protos::AnnotatedDatum,
            PROTOBUF_FIELD_OFFSET(::caffe_protos::AnnotatedDatum, _impl_.annotation_group_)>()
        }
        #else
        annotation_group_ { visibility, arena }
        #endif
     {}

inline void AnnotatedDatum::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, datum_),
           0,
           offsetof(Impl_, type_) -
               offsetof(Impl_, datum_) +
               sizeof(Impl_::type_));
}
AnnotatedDatum::~AnnotatedDatum() {
  // @@protoc_insertion_point(destructor:caffe_protos.AnnotatedDatum)
  SharedDtor(*this);
}
inline void AnnotatedDatum::SharedDtor(MessageLite& self) {
  AnnotatedDatum& this_ = static_cast<AnnotatedDatum&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.datum_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL AnnotatedDatum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AnnotatedDatum(arena);
}
#ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto AnnotatedDatum::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AnnotatedDatum),
                                            alignof(AnnotatedDatum));
}
#else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto AnnotatedDatum::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.annotation_group_) +
          decltype(AnnotatedDatum::_impl_.annotation_group_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(AnnotatedDatum), alignof(AnnotatedDatum), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&AnnotatedDatum::PlacementNew_,
                                 sizeof(AnnotatedDatum),
                                 alignof(AnnotatedDatum));
  }
}
#endif
constexpr auto AnnotatedDatum::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_AnnotatedDatum_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &AnnotatedDatum::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AnnotatedDatum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AnnotatedDatum::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AnnotatedDatum>(), &AnnotatedDatum::ByteSizeLong,
              &AnnotatedDatum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_._cached_size_),
          false,
      },
      &AnnotatedDatum::kDescriptorMethods,
      &descriptor_table_caffe_5fprotos_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AnnotatedDatum_class_data_ =
        AnnotatedDatum::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AnnotatedDatum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AnnotatedDatum_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AnnotatedDatum_class_data_.tc_table);
  return AnnotatedDatum_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 3, 0, 2>
AnnotatedDatum::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    3,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    AnnotatedDatum_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::caffe_protos::AnnotatedDatum>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .caffe_protos.Datum datum = 1;
    {::_pbi::TcParser::FastMtS1,
     {10, 1, 0,
      PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.datum_)}},
    // optional .caffe_protos.AnnotatedDatum.AnnotationType type = 2;
    {::_pbi::TcParser::FastEr0S1,
     {16, 2, 0,
      PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.type_)}},
    // repeated .caffe_protos.AnnotationGroup annotation_group = 3;
    {::_pbi::TcParser::FastMtR1,
     {26, 0, 1,
      PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.annotation_group_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .caffe_protos.Datum datum = 1;
    {PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.datum_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .caffe_protos.AnnotatedDatum.AnnotationType type = 2;
    {PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.type_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // repeated .caffe_protos.AnnotationGroup annotation_group = 3;
    {PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.annotation_group_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::caffe_protos::Datum>()},
      {::_pbi::TcParser::GetTable<::caffe_protos::AnnotationGroup>()},
      {0, 0},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void AnnotatedDatum::Clear() {
// @@protoc_insertion_point(message_clear_start:caffe_protos.AnnotatedDatum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _impl_.annotation_group_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.datum_ != nullptr);
      _impl_.datum_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL AnnotatedDatum::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const AnnotatedDatum& this_ = static_cast<const AnnotatedDatum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL AnnotatedDatum::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const AnnotatedDatum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:caffe_protos.AnnotatedDatum)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .caffe_protos.Datum datum = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.datum_, this_._impl_.datum_->GetCachedSize(), target,
        stream);
  }

  // optional .caffe_protos.AnnotatedDatum.AnnotationType type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_type(), target);
  }

  // repeated .caffe_protos.AnnotationGroup annotation_group = 3;
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_annotation_group_size());
         i < n; i++) {
      const auto& repfield = this_._internal_annotation_group().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:caffe_protos.AnnotatedDatum)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AnnotatedDatum::ByteSizeLong(const MessageLite& base) {
  const AnnotatedDatum& this_ = static_cast<const AnnotatedDatum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AnnotatedDatum::ByteSizeLong() const {
  const AnnotatedDatum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:caffe_protos.AnnotatedDatum)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .caffe_protos.AnnotationGroup annotation_group = 3;
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_annotation_group_size();
      for (const auto& msg : this_._internal_annotation_group()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .caffe_protos.Datum datum = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.datum_);
    }
    // optional .caffe_protos.AnnotatedDatum.AnnotationType type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AnnotatedDatum::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<AnnotatedDatum*>(&to_msg);
  auto& from = static_cast<const AnnotatedDatum&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:caffe_protos.AnnotatedDatum)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_annotation_group()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_annotation_group());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.datum_ != nullptr);
      if (_this->_impl_.datum_ == nullptr) {
        _this->_impl_.datum_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.datum_);
      } else {
        _this->_impl_.datum_->MergeFrom(*from._impl_.datum_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.type_ = from._impl_.type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void AnnotatedDatum::CopyFrom(const AnnotatedDatum& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:caffe_protos.AnnotatedDatum)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void AnnotatedDatum::InternalSwap(AnnotatedDatum* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.annotation_group_.InternalSwap(&other->_impl_.annotation_group_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.type_)
      + sizeof(AnnotatedDatum::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(AnnotatedDatum, _impl_.datum_)>(
          reinterpret_cast<char*>(&_impl_.datum_),
          reinterpret_cast<char*>(&other->_impl_.datum_));
}

::google::protobuf::Metadata AnnotatedDatum::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace caffe_protos
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_caffe_5fprotos_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
