// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: second/protos/anchors.proto

#include "second/protos/anchors.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.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)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace second {
namespace protos {
PROTOBUF_CONSTEXPR AnchorGeneratorOld::AnchorGeneratorOld(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.bev_range_)*/{}
  , /*decltype(_impl_.anchor_sizes_)*/{}
  , /*decltype(_impl_.class_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.anchor_center_z_)*/0
  , /*decltype(_impl_.matched_threshold_)*/0
  , /*decltype(_impl_.unmatched_threshold_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AnchorGeneratorOldDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGeneratorOldDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGeneratorOldDefaultTypeInternal() {}
  union {
    AnchorGeneratorOld _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGeneratorOldDefaultTypeInternal _AnchorGeneratorOld_default_instance_;
PROTOBUF_CONSTEXPR AnchorGeneratorStride::AnchorGeneratorStride(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.sizes_)*/{}
  , /*decltype(_impl_.strides_)*/{}
  , /*decltype(_impl_.offsets_)*/{}
  , /*decltype(_impl_.rotations_)*/{}
  , /*decltype(_impl_.class_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.matched_threshold_)*/0
  , /*decltype(_impl_.unmatched_threshold_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AnchorGeneratorStrideDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGeneratorStrideDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGeneratorStrideDefaultTypeInternal() {}
  union {
    AnchorGeneratorStride _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGeneratorStrideDefaultTypeInternal _AnchorGeneratorStride_default_instance_;
PROTOBUF_CONSTEXPR AnchorGeneratorRange::AnchorGeneratorRange(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.sizes_)*/{}
  , /*decltype(_impl_.anchor_ranges_)*/{}
  , /*decltype(_impl_.rotations_)*/{}
  , /*decltype(_impl_.class_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.matched_threshold_)*/0
  , /*decltype(_impl_.unmatched_threshold_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AnchorGeneratorRangeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGeneratorRangeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGeneratorRangeDefaultTypeInternal() {}
  union {
    AnchorGeneratorRange _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGeneratorRangeDefaultTypeInternal _AnchorGeneratorRange_default_instance_;
PROTOBUF_CONSTEXPR AnchorGeneratorCollection::AnchorGeneratorCollection(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.anchor_generator_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct AnchorGeneratorCollectionDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGeneratorCollectionDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGeneratorCollectionDefaultTypeInternal() {}
  union {
    AnchorGeneratorCollection _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGeneratorCollectionDefaultTypeInternal _AnchorGeneratorCollection_default_instance_;
PROTOBUF_CONSTEXPR AnchorGenerator_depara::AnchorGenerator_depara(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.sizes_)*/{}
  , /*decltype(_impl_.strides_)*/{}
  , /*decltype(_impl_.offsets_)*/{}
  , /*decltype(_impl_.rotations_)*/{}
  , /*decltype(_impl_.class_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.matched_threshold_)*/0
  , /*decltype(_impl_.unmatched_threshold_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AnchorGenerator_deparaDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGenerator_deparaDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGenerator_deparaDefaultTypeInternal() {}
  union {
    AnchorGenerator_depara _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGenerator_deparaDefaultTypeInternal _AnchorGenerator_depara_default_instance_;
PROTOBUF_CONSTEXPR AnchorGeneratorV1::AnchorGeneratorV1(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.anchor_sizes_)*/{}
  , /*decltype(_impl_.anchor_center_z_)*/0
  , /*decltype(_impl_.matched_threshold_)*/0
  , /*decltype(_impl_.unmatched_threshold_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AnchorGeneratorV1DefaultTypeInternal {
  PROTOBUF_CONSTEXPR AnchorGeneratorV1DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AnchorGeneratorV1DefaultTypeInternal() {}
  union {
    AnchorGeneratorV1 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AnchorGeneratorV1DefaultTypeInternal _AnchorGeneratorV1_default_instance_;
}  // namespace protos
}  // namespace second
static ::_pb::Metadata file_level_metadata_second_2fprotos_2fanchors_2eproto[6];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_second_2fprotos_2fanchors_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_second_2fprotos_2fanchors_2eproto = nullptr;

const uint32_t TableStruct_second_2fprotos_2fanchors_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.class_name_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.bev_range_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.anchor_center_z_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.anchor_sizes_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.matched_threshold_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorOld, _impl_.unmatched_threshold_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.class_name_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.sizes_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.strides_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.offsets_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.rotations_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.matched_threshold_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorStride, _impl_.unmatched_threshold_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.class_name_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.sizes_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.anchor_ranges_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.rotations_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.matched_threshold_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorRange, _impl_.unmatched_threshold_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorCollection, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorCollection, _impl_._oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorCollection, _impl_.anchor_generator_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.class_name_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.sizes_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.strides_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.offsets_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.rotations_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.matched_threshold_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGenerator_depara, _impl_.unmatched_threshold_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorV1, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorV1, _impl_.anchor_center_z_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorV1, _impl_.anchor_sizes_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorV1, _impl_.matched_threshold_),
  PROTOBUF_FIELD_OFFSET(::second::protos::AnchorGeneratorV1, _impl_.unmatched_threshold_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::second::protos::AnchorGeneratorOld)},
  { 12, -1, -1, sizeof(::second::protos::AnchorGeneratorStride)},
  { 25, -1, -1, sizeof(::second::protos::AnchorGeneratorRange)},
  { 37, -1, -1, sizeof(::second::protos::AnchorGeneratorCollection)},
  { 47, -1, -1, sizeof(::second::protos::AnchorGenerator_depara)},
  { 60, -1, -1, sizeof(::second::protos::AnchorGeneratorV1)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::second::protos::_AnchorGeneratorOld_default_instance_._instance,
  &::second::protos::_AnchorGeneratorStride_default_instance_._instance,
  &::second::protos::_AnchorGeneratorRange_default_instance_._instance,
  &::second::protos::_AnchorGeneratorCollection_default_instance_._instance,
  &::second::protos::_AnchorGenerator_depara_default_instance_._instance,
  &::second::protos::_AnchorGeneratorV1_default_instance_._instance,
};

const char descriptor_table_protodef_second_2fprotos_2fanchors_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\033second/protos/anchors.proto\022\rsecond.pr"
  "otos\"\242\001\n\022AnchorGeneratorOld\022\022\n\nclass_nam"
  "e\030\001 \001(\t\022\021\n\tbev_range\030\002 \003(\002\022\027\n\017anchor_cen"
  "ter_z\030\003 \001(\002\022\024\n\014anchor_sizes\030\004 \003(\002\022\031\n\021mat"
  "ched_threshold\030\005 \001(\002\022\033\n\023unmatched_thresh"
  "old\030\006 \001(\002\"\247\001\n\025AnchorGeneratorStride\022\022\n\nc"
  "lass_name\030\001 \001(\t\022\r\n\005sizes\030\002 \003(\002\022\017\n\007stride"
  "s\030\003 \003(\002\022\017\n\007offsets\030\004 \003(\002\022\021\n\trotations\030\005 "
  "\003(\002\022\031\n\021matched_threshold\030\006 \001(\002\022\033\n\023unmatc"
  "hed_threshold\030\007 \001(\002\"\233\001\n\024AnchorGeneratorR"
  "ange\022\022\n\nclass_name\030\001 \001(\t\022\r\n\005sizes\030\002 \003(\002\022"
  "\025\n\ranchor_ranges\030\003 \003(\002\022\021\n\trotations\030\004 \003("
  "\002\022\031\n\021matched_threshold\030\005 \001(\002\022\033\n\023unmatche"
  "d_threshold\030\006 \001(\002\"\202\002\n\031AnchorGeneratorCol"
  "lection\022G\n\027anchor_generator_stride\030\001 \001(\013"
  "2$.second.protos.AnchorGeneratorStrideH\000"
  "\022E\n\026anchor_generator_range\030\002 \001(\0132#.secon"
  "d.protos.AnchorGeneratorRangeH\000\022A\n\024ancho"
  "r_generator_old\030\003 \001(\0132!.second.protos.An"
  "chorGeneratorOldH\000B\022\n\020anchor_generator\"\250"
  "\001\n\026AnchorGenerator_depara\022\022\n\nclass_name\030"
  "\001 \001(\t\022\r\n\005sizes\030\002 \003(\002\022\017\n\007strides\030\003 \003(\002\022\017\n"
  "\007offsets\030\004 \003(\002\022\021\n\trotations\030\005 \003(\002\022\031\n\021mat"
  "ched_threshold\030\006 \001(\002\022\033\n\023unmatched_thresh"
  "old\030\007 \001(\002\"z\n\021AnchorGeneratorV1\022\027\n\017anchor"
  "_center_z\030\001 \001(\002\022\024\n\014anchor_sizes\030\002 \003(\002\022\031\n"
  "\021matched_threshold\030\003 \001(\002\022\033\n\023unmatched_th"
  "reshold\030\004 \001(\002b\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_second_2fprotos_2fanchors_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_second_2fprotos_2fanchors_2eproto = {
    false, false, 1101, descriptor_table_protodef_second_2fprotos_2fanchors_2eproto,
    "second/protos/anchors.proto",
    &descriptor_table_second_2fprotos_2fanchors_2eproto_once, nullptr, 0, 6,
    schemas, file_default_instances, TableStruct_second_2fprotos_2fanchors_2eproto::offsets,
    file_level_metadata_second_2fprotos_2fanchors_2eproto, file_level_enum_descriptors_second_2fprotos_2fanchors_2eproto,
    file_level_service_descriptors_second_2fprotos_2fanchors_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_second_2fprotos_2fanchors_2eproto_getter() {
  return &descriptor_table_second_2fprotos_2fanchors_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_second_2fprotos_2fanchors_2eproto(&descriptor_table_second_2fprotos_2fanchors_2eproto);
namespace second {
namespace protos {

// ===================================================================

class AnchorGeneratorOld::_Internal {
 public:
};

AnchorGeneratorOld::AnchorGeneratorOld(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGeneratorOld)
}
AnchorGeneratorOld::AnchorGeneratorOld(const AnchorGeneratorOld& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGeneratorOld* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.bev_range_){from._impl_.bev_range_}
    , decltype(_impl_.anchor_sizes_){from._impl_.anchor_sizes_}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.anchor_center_z_){}
    , decltype(_impl_.matched_threshold_){}
    , decltype(_impl_.unmatched_threshold_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_class_name().empty()) {
    _this->_impl_.class_name_.Set(from._internal_class_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.anchor_center_z_, &from._impl_.anchor_center_z_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
    reinterpret_cast<char*>(&_impl_.anchor_center_z_)) + sizeof(_impl_.unmatched_threshold_));
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGeneratorOld)
}

inline void AnchorGeneratorOld::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.bev_range_){arena}
    , decltype(_impl_.anchor_sizes_){arena}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.anchor_center_z_){0}
    , decltype(_impl_.matched_threshold_){0}
    , decltype(_impl_.unmatched_threshold_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AnchorGeneratorOld::~AnchorGeneratorOld() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGeneratorOld)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGeneratorOld::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.bev_range_.~RepeatedField();
  _impl_.anchor_sizes_.~RepeatedField();
  _impl_.class_name_.Destroy();
}

void AnchorGeneratorOld::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGeneratorOld::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGeneratorOld)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.bev_range_.Clear();
  _impl_.anchor_sizes_.Clear();
  _impl_.class_name_.ClearToEmpty();
  ::memset(&_impl_.anchor_center_z_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
      reinterpret_cast<char*>(&_impl_.anchor_center_z_)) + sizeof(_impl_.unmatched_threshold_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGeneratorOld::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string class_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_class_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "second.protos.AnchorGeneratorOld.class_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated float bev_range = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_bev_range(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_bev_range(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float anchor_center_z = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _impl_.anchor_center_z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float anchor_sizes = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_anchor_sizes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_anchor_sizes(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float matched_threshold = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _impl_.matched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float unmatched_threshold = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _impl_.unmatched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGeneratorOld::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGeneratorOld)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_class_name().data(), static_cast<int>(this->_internal_class_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "second.protos.AnchorGeneratorOld.class_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_class_name(), target);
  }

  // repeated float bev_range = 2;
  if (this->_internal_bev_range_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_bev_range(), target);
  }

  // float anchor_center_z = 3;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = this->_internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_anchor_center_z(), target);
  }

  // repeated float anchor_sizes = 4;
  if (this->_internal_anchor_sizes_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_anchor_sizes(), target);
  }

  // float matched_threshold = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_matched_threshold(), target);
  }

  // float unmatched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_unmatched_threshold(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGeneratorOld)
  return target;
}

size_t AnchorGeneratorOld::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGeneratorOld)
  size_t total_size = 0;

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

  // repeated float bev_range = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_bev_range_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float anchor_sizes = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_anchor_sizes_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_class_name());
  }

  // float anchor_center_z = 3;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = this->_internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    total_size += 1 + 4;
  }

  // float matched_threshold = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    total_size += 1 + 4;
  }

  // float unmatched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGeneratorOld::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGeneratorOld::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGeneratorOld::GetClassData() const { return &_class_data_; }


void AnchorGeneratorOld::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGeneratorOld*>(&to_msg);
  auto& from = static_cast<const AnchorGeneratorOld&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGeneratorOld)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.bev_range_.MergeFrom(from._impl_.bev_range_);
  _this->_impl_.anchor_sizes_.MergeFrom(from._impl_.anchor_sizes_);
  if (!from._internal_class_name().empty()) {
    _this->_internal_set_class_name(from._internal_class_name());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = from._internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    _this->_internal_set_anchor_center_z(from._internal_anchor_center_z());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = from._internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    _this->_internal_set_matched_threshold(from._internal_matched_threshold());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = from._internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    _this->_internal_set_unmatched_threshold(from._internal_unmatched_threshold());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGeneratorOld::IsInitialized() const {
  return true;
}

void AnchorGeneratorOld::InternalSwap(AnchorGeneratorOld* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.bev_range_.InternalSwap(&other->_impl_.bev_range_);
  _impl_.anchor_sizes_.InternalSwap(&other->_impl_.anchor_sizes_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.class_name_, lhs_arena,
      &other->_impl_.class_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnchorGeneratorOld, _impl_.unmatched_threshold_)
      + sizeof(AnchorGeneratorOld::_impl_.unmatched_threshold_)
      - PROTOBUF_FIELD_OFFSET(AnchorGeneratorOld, _impl_.anchor_center_z_)>(
          reinterpret_cast<char*>(&_impl_.anchor_center_z_),
          reinterpret_cast<char*>(&other->_impl_.anchor_center_z_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGeneratorOld::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[0]);
}

// ===================================================================

class AnchorGeneratorStride::_Internal {
 public:
};

AnchorGeneratorStride::AnchorGeneratorStride(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGeneratorStride)
}
AnchorGeneratorStride::AnchorGeneratorStride(const AnchorGeneratorStride& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGeneratorStride* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){from._impl_.sizes_}
    , decltype(_impl_.strides_){from._impl_.strides_}
    , decltype(_impl_.offsets_){from._impl_.offsets_}
    , decltype(_impl_.rotations_){from._impl_.rotations_}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){}
    , decltype(_impl_.unmatched_threshold_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_class_name().empty()) {
    _this->_impl_.class_name_.Set(from._internal_class_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.matched_threshold_, &from._impl_.matched_threshold_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
    reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGeneratorStride)
}

inline void AnchorGeneratorStride::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){arena}
    , decltype(_impl_.strides_){arena}
    , decltype(_impl_.offsets_){arena}
    , decltype(_impl_.rotations_){arena}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){0}
    , decltype(_impl_.unmatched_threshold_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AnchorGeneratorStride::~AnchorGeneratorStride() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGeneratorStride)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGeneratorStride::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.sizes_.~RepeatedField();
  _impl_.strides_.~RepeatedField();
  _impl_.offsets_.~RepeatedField();
  _impl_.rotations_.~RepeatedField();
  _impl_.class_name_.Destroy();
}

void AnchorGeneratorStride::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGeneratorStride::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGeneratorStride)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.sizes_.Clear();
  _impl_.strides_.Clear();
  _impl_.offsets_.Clear();
  _impl_.rotations_.Clear();
  _impl_.class_name_.ClearToEmpty();
  ::memset(&_impl_.matched_threshold_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
      reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGeneratorStride::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string class_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_class_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "second.protos.AnchorGeneratorStride.class_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated float sizes = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_sizes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_sizes(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float strides = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_strides(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 29) {
          _internal_add_strides(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float offsets = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_offsets(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_offsets(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float rotations = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_rotations(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 45) {
          _internal_add_rotations(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float matched_threshold = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _impl_.matched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float unmatched_threshold = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _impl_.unmatched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGeneratorStride::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGeneratorStride)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_class_name().data(), static_cast<int>(this->_internal_class_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "second.protos.AnchorGeneratorStride.class_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_class_name(), target);
  }

  // repeated float sizes = 2;
  if (this->_internal_sizes_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_sizes(), target);
  }

  // repeated float strides = 3;
  if (this->_internal_strides_size() > 0) {
    target = stream->WriteFixedPacked(3, _internal_strides(), target);
  }

  // repeated float offsets = 4;
  if (this->_internal_offsets_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_offsets(), target);
  }

  // repeated float rotations = 5;
  if (this->_internal_rotations_size() > 0) {
    target = stream->WriteFixedPacked(5, _internal_rotations(), target);
  }

  // float matched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_matched_threshold(), target);
  }

  // float unmatched_threshold = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_unmatched_threshold(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGeneratorStride)
  return target;
}

size_t AnchorGeneratorStride::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGeneratorStride)
  size_t total_size = 0;

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

  // repeated float sizes = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_sizes_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float strides = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_strides_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float offsets = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_offsets_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float rotations = 5;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_rotations_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_class_name());
  }

  // float matched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    total_size += 1 + 4;
  }

  // float unmatched_threshold = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGeneratorStride::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGeneratorStride::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGeneratorStride::GetClassData() const { return &_class_data_; }


void AnchorGeneratorStride::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGeneratorStride*>(&to_msg);
  auto& from = static_cast<const AnchorGeneratorStride&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGeneratorStride)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.sizes_.MergeFrom(from._impl_.sizes_);
  _this->_impl_.strides_.MergeFrom(from._impl_.strides_);
  _this->_impl_.offsets_.MergeFrom(from._impl_.offsets_);
  _this->_impl_.rotations_.MergeFrom(from._impl_.rotations_);
  if (!from._internal_class_name().empty()) {
    _this->_internal_set_class_name(from._internal_class_name());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = from._internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    _this->_internal_set_matched_threshold(from._internal_matched_threshold());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = from._internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    _this->_internal_set_unmatched_threshold(from._internal_unmatched_threshold());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGeneratorStride::IsInitialized() const {
  return true;
}

void AnchorGeneratorStride::InternalSwap(AnchorGeneratorStride* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.sizes_.InternalSwap(&other->_impl_.sizes_);
  _impl_.strides_.InternalSwap(&other->_impl_.strides_);
  _impl_.offsets_.InternalSwap(&other->_impl_.offsets_);
  _impl_.rotations_.InternalSwap(&other->_impl_.rotations_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.class_name_, lhs_arena,
      &other->_impl_.class_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnchorGeneratorStride, _impl_.unmatched_threshold_)
      + sizeof(AnchorGeneratorStride::_impl_.unmatched_threshold_)
      - PROTOBUF_FIELD_OFFSET(AnchorGeneratorStride, _impl_.matched_threshold_)>(
          reinterpret_cast<char*>(&_impl_.matched_threshold_),
          reinterpret_cast<char*>(&other->_impl_.matched_threshold_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGeneratorStride::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[1]);
}

// ===================================================================

class AnchorGeneratorRange::_Internal {
 public:
};

AnchorGeneratorRange::AnchorGeneratorRange(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGeneratorRange)
}
AnchorGeneratorRange::AnchorGeneratorRange(const AnchorGeneratorRange& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGeneratorRange* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){from._impl_.sizes_}
    , decltype(_impl_.anchor_ranges_){from._impl_.anchor_ranges_}
    , decltype(_impl_.rotations_){from._impl_.rotations_}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){}
    , decltype(_impl_.unmatched_threshold_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_class_name().empty()) {
    _this->_impl_.class_name_.Set(from._internal_class_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.matched_threshold_, &from._impl_.matched_threshold_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
    reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGeneratorRange)
}

inline void AnchorGeneratorRange::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){arena}
    , decltype(_impl_.anchor_ranges_){arena}
    , decltype(_impl_.rotations_){arena}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){0}
    , decltype(_impl_.unmatched_threshold_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AnchorGeneratorRange::~AnchorGeneratorRange() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGeneratorRange)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGeneratorRange::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.sizes_.~RepeatedField();
  _impl_.anchor_ranges_.~RepeatedField();
  _impl_.rotations_.~RepeatedField();
  _impl_.class_name_.Destroy();
}

void AnchorGeneratorRange::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGeneratorRange::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGeneratorRange)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.sizes_.Clear();
  _impl_.anchor_ranges_.Clear();
  _impl_.rotations_.Clear();
  _impl_.class_name_.ClearToEmpty();
  ::memset(&_impl_.matched_threshold_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
      reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGeneratorRange::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string class_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_class_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "second.protos.AnchorGeneratorRange.class_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated float sizes = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_sizes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_sizes(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float anchor_ranges = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_anchor_ranges(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 29) {
          _internal_add_anchor_ranges(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float rotations = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_rotations(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_rotations(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float matched_threshold = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _impl_.matched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float unmatched_threshold = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _impl_.unmatched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGeneratorRange::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGeneratorRange)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_class_name().data(), static_cast<int>(this->_internal_class_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "second.protos.AnchorGeneratorRange.class_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_class_name(), target);
  }

  // repeated float sizes = 2;
  if (this->_internal_sizes_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_sizes(), target);
  }

  // repeated float anchor_ranges = 3;
  if (this->_internal_anchor_ranges_size() > 0) {
    target = stream->WriteFixedPacked(3, _internal_anchor_ranges(), target);
  }

  // repeated float rotations = 4;
  if (this->_internal_rotations_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_rotations(), target);
  }

  // float matched_threshold = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_matched_threshold(), target);
  }

  // float unmatched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_unmatched_threshold(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGeneratorRange)
  return target;
}

size_t AnchorGeneratorRange::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGeneratorRange)
  size_t total_size = 0;

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

  // repeated float sizes = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_sizes_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float anchor_ranges = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_anchor_ranges_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float rotations = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_rotations_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_class_name());
  }

  // float matched_threshold = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    total_size += 1 + 4;
  }

  // float unmatched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGeneratorRange::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGeneratorRange::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGeneratorRange::GetClassData() const { return &_class_data_; }


void AnchorGeneratorRange::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGeneratorRange*>(&to_msg);
  auto& from = static_cast<const AnchorGeneratorRange&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGeneratorRange)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.sizes_.MergeFrom(from._impl_.sizes_);
  _this->_impl_.anchor_ranges_.MergeFrom(from._impl_.anchor_ranges_);
  _this->_impl_.rotations_.MergeFrom(from._impl_.rotations_);
  if (!from._internal_class_name().empty()) {
    _this->_internal_set_class_name(from._internal_class_name());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = from._internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    _this->_internal_set_matched_threshold(from._internal_matched_threshold());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = from._internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    _this->_internal_set_unmatched_threshold(from._internal_unmatched_threshold());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGeneratorRange::IsInitialized() const {
  return true;
}

void AnchorGeneratorRange::InternalSwap(AnchorGeneratorRange* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.sizes_.InternalSwap(&other->_impl_.sizes_);
  _impl_.anchor_ranges_.InternalSwap(&other->_impl_.anchor_ranges_);
  _impl_.rotations_.InternalSwap(&other->_impl_.rotations_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.class_name_, lhs_arena,
      &other->_impl_.class_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnchorGeneratorRange, _impl_.unmatched_threshold_)
      + sizeof(AnchorGeneratorRange::_impl_.unmatched_threshold_)
      - PROTOBUF_FIELD_OFFSET(AnchorGeneratorRange, _impl_.matched_threshold_)>(
          reinterpret_cast<char*>(&_impl_.matched_threshold_),
          reinterpret_cast<char*>(&other->_impl_.matched_threshold_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGeneratorRange::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[2]);
}

// ===================================================================

class AnchorGeneratorCollection::_Internal {
 public:
  static const ::second::protos::AnchorGeneratorStride& anchor_generator_stride(const AnchorGeneratorCollection* msg);
  static const ::second::protos::AnchorGeneratorRange& anchor_generator_range(const AnchorGeneratorCollection* msg);
  static const ::second::protos::AnchorGeneratorOld& anchor_generator_old(const AnchorGeneratorCollection* msg);
};

const ::second::protos::AnchorGeneratorStride&
AnchorGeneratorCollection::_Internal::anchor_generator_stride(const AnchorGeneratorCollection* msg) {
  return *msg->_impl_.anchor_generator_.anchor_generator_stride_;
}
const ::second::protos::AnchorGeneratorRange&
AnchorGeneratorCollection::_Internal::anchor_generator_range(const AnchorGeneratorCollection* msg) {
  return *msg->_impl_.anchor_generator_.anchor_generator_range_;
}
const ::second::protos::AnchorGeneratorOld&
AnchorGeneratorCollection::_Internal::anchor_generator_old(const AnchorGeneratorCollection* msg) {
  return *msg->_impl_.anchor_generator_.anchor_generator_old_;
}
void AnchorGeneratorCollection::set_allocated_anchor_generator_stride(::second::protos::AnchorGeneratorStride* anchor_generator_stride) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_anchor_generator();
  if (anchor_generator_stride) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(anchor_generator_stride);
    if (message_arena != submessage_arena) {
      anchor_generator_stride = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, anchor_generator_stride, submessage_arena);
    }
    set_has_anchor_generator_stride();
    _impl_.anchor_generator_.anchor_generator_stride_ = anchor_generator_stride;
  }
  // @@protoc_insertion_point(field_set_allocated:second.protos.AnchorGeneratorCollection.anchor_generator_stride)
}
void AnchorGeneratorCollection::set_allocated_anchor_generator_range(::second::protos::AnchorGeneratorRange* anchor_generator_range) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_anchor_generator();
  if (anchor_generator_range) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(anchor_generator_range);
    if (message_arena != submessage_arena) {
      anchor_generator_range = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, anchor_generator_range, submessage_arena);
    }
    set_has_anchor_generator_range();
    _impl_.anchor_generator_.anchor_generator_range_ = anchor_generator_range;
  }
  // @@protoc_insertion_point(field_set_allocated:second.protos.AnchorGeneratorCollection.anchor_generator_range)
}
void AnchorGeneratorCollection::set_allocated_anchor_generator_old(::second::protos::AnchorGeneratorOld* anchor_generator_old) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_anchor_generator();
  if (anchor_generator_old) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(anchor_generator_old);
    if (message_arena != submessage_arena) {
      anchor_generator_old = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, anchor_generator_old, submessage_arena);
    }
    set_has_anchor_generator_old();
    _impl_.anchor_generator_.anchor_generator_old_ = anchor_generator_old;
  }
  // @@protoc_insertion_point(field_set_allocated:second.protos.AnchorGeneratorCollection.anchor_generator_old)
}
AnchorGeneratorCollection::AnchorGeneratorCollection(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGeneratorCollection)
}
AnchorGeneratorCollection::AnchorGeneratorCollection(const AnchorGeneratorCollection& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGeneratorCollection* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.anchor_generator_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_anchor_generator();
  switch (from.anchor_generator_case()) {
    case kAnchorGeneratorStride: {
      _this->_internal_mutable_anchor_generator_stride()->::second::protos::AnchorGeneratorStride::MergeFrom(
          from._internal_anchor_generator_stride());
      break;
    }
    case kAnchorGeneratorRange: {
      _this->_internal_mutable_anchor_generator_range()->::second::protos::AnchorGeneratorRange::MergeFrom(
          from._internal_anchor_generator_range());
      break;
    }
    case kAnchorGeneratorOld: {
      _this->_internal_mutable_anchor_generator_old()->::second::protos::AnchorGeneratorOld::MergeFrom(
          from._internal_anchor_generator_old());
      break;
    }
    case ANCHOR_GENERATOR_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGeneratorCollection)
}

inline void AnchorGeneratorCollection::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.anchor_generator_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_anchor_generator();
}

AnchorGeneratorCollection::~AnchorGeneratorCollection() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGeneratorCollection)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGeneratorCollection::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_anchor_generator()) {
    clear_anchor_generator();
  }
}

void AnchorGeneratorCollection::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGeneratorCollection::clear_anchor_generator() {
// @@protoc_insertion_point(one_of_clear_start:second.protos.AnchorGeneratorCollection)
  switch (anchor_generator_case()) {
    case kAnchorGeneratorStride: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.anchor_generator_.anchor_generator_stride_;
      }
      break;
    }
    case kAnchorGeneratorRange: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.anchor_generator_.anchor_generator_range_;
      }
      break;
    }
    case kAnchorGeneratorOld: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.anchor_generator_.anchor_generator_old_;
      }
      break;
    }
    case ANCHOR_GENERATOR_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = ANCHOR_GENERATOR_NOT_SET;
}


void AnchorGeneratorCollection::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGeneratorCollection)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_anchor_generator();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGeneratorCollection::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .second.protos.AnchorGeneratorStride anchor_generator_stride = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_anchor_generator_stride(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .second.protos.AnchorGeneratorRange anchor_generator_range = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_anchor_generator_range(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .second.protos.AnchorGeneratorOld anchor_generator_old = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_anchor_generator_old(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGeneratorCollection::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGeneratorCollection)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .second.protos.AnchorGeneratorStride anchor_generator_stride = 1;
  if (_internal_has_anchor_generator_stride()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::anchor_generator_stride(this),
        _Internal::anchor_generator_stride(this).GetCachedSize(), target, stream);
  }

  // .second.protos.AnchorGeneratorRange anchor_generator_range = 2;
  if (_internal_has_anchor_generator_range()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::anchor_generator_range(this),
        _Internal::anchor_generator_range(this).GetCachedSize(), target, stream);
  }

  // .second.protos.AnchorGeneratorOld anchor_generator_old = 3;
  if (_internal_has_anchor_generator_old()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, _Internal::anchor_generator_old(this),
        _Internal::anchor_generator_old(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGeneratorCollection)
  return target;
}

size_t AnchorGeneratorCollection::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGeneratorCollection)
  size_t total_size = 0;

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

  switch (anchor_generator_case()) {
    // .second.protos.AnchorGeneratorStride anchor_generator_stride = 1;
    case kAnchorGeneratorStride: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.anchor_generator_.anchor_generator_stride_);
      break;
    }
    // .second.protos.AnchorGeneratorRange anchor_generator_range = 2;
    case kAnchorGeneratorRange: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.anchor_generator_.anchor_generator_range_);
      break;
    }
    // .second.protos.AnchorGeneratorOld anchor_generator_old = 3;
    case kAnchorGeneratorOld: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.anchor_generator_.anchor_generator_old_);
      break;
    }
    case ANCHOR_GENERATOR_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGeneratorCollection::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGeneratorCollection::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGeneratorCollection::GetClassData() const { return &_class_data_; }


void AnchorGeneratorCollection::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGeneratorCollection*>(&to_msg);
  auto& from = static_cast<const AnchorGeneratorCollection&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGeneratorCollection)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.anchor_generator_case()) {
    case kAnchorGeneratorStride: {
      _this->_internal_mutable_anchor_generator_stride()->::second::protos::AnchorGeneratorStride::MergeFrom(
          from._internal_anchor_generator_stride());
      break;
    }
    case kAnchorGeneratorRange: {
      _this->_internal_mutable_anchor_generator_range()->::second::protos::AnchorGeneratorRange::MergeFrom(
          from._internal_anchor_generator_range());
      break;
    }
    case kAnchorGeneratorOld: {
      _this->_internal_mutable_anchor_generator_old()->::second::protos::AnchorGeneratorOld::MergeFrom(
          from._internal_anchor_generator_old());
      break;
    }
    case ANCHOR_GENERATOR_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGeneratorCollection::IsInitialized() const {
  return true;
}

void AnchorGeneratorCollection::InternalSwap(AnchorGeneratorCollection* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.anchor_generator_, other->_impl_.anchor_generator_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGeneratorCollection::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[3]);
}

// ===================================================================

class AnchorGenerator_depara::_Internal {
 public:
};

AnchorGenerator_depara::AnchorGenerator_depara(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGenerator_depara)
}
AnchorGenerator_depara::AnchorGenerator_depara(const AnchorGenerator_depara& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGenerator_depara* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){from._impl_.sizes_}
    , decltype(_impl_.strides_){from._impl_.strides_}
    , decltype(_impl_.offsets_){from._impl_.offsets_}
    , decltype(_impl_.rotations_){from._impl_.rotations_}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){}
    , decltype(_impl_.unmatched_threshold_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_class_name().empty()) {
    _this->_impl_.class_name_.Set(from._internal_class_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.matched_threshold_, &from._impl_.matched_threshold_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
    reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGenerator_depara)
}

inline void AnchorGenerator_depara::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.sizes_){arena}
    , decltype(_impl_.strides_){arena}
    , decltype(_impl_.offsets_){arena}
    , decltype(_impl_.rotations_){arena}
    , decltype(_impl_.class_name_){}
    , decltype(_impl_.matched_threshold_){0}
    , decltype(_impl_.unmatched_threshold_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.class_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.class_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AnchorGenerator_depara::~AnchorGenerator_depara() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGenerator_depara)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGenerator_depara::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.sizes_.~RepeatedField();
  _impl_.strides_.~RepeatedField();
  _impl_.offsets_.~RepeatedField();
  _impl_.rotations_.~RepeatedField();
  _impl_.class_name_.Destroy();
}

void AnchorGenerator_depara::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGenerator_depara::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGenerator_depara)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.sizes_.Clear();
  _impl_.strides_.Clear();
  _impl_.offsets_.Clear();
  _impl_.rotations_.Clear();
  _impl_.class_name_.ClearToEmpty();
  ::memset(&_impl_.matched_threshold_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
      reinterpret_cast<char*>(&_impl_.matched_threshold_)) + sizeof(_impl_.unmatched_threshold_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGenerator_depara::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string class_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_class_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "second.protos.AnchorGenerator_depara.class_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated float sizes = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_sizes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_sizes(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float strides = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_strides(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 29) {
          _internal_add_strides(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float offsets = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_offsets(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_offsets(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float rotations = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_rotations(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 45) {
          _internal_add_rotations(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float matched_threshold = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _impl_.matched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float unmatched_threshold = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _impl_.unmatched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGenerator_depara::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGenerator_depara)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_class_name().data(), static_cast<int>(this->_internal_class_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "second.protos.AnchorGenerator_depara.class_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_class_name(), target);
  }

  // repeated float sizes = 2;
  if (this->_internal_sizes_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_sizes(), target);
  }

  // repeated float strides = 3;
  if (this->_internal_strides_size() > 0) {
    target = stream->WriteFixedPacked(3, _internal_strides(), target);
  }

  // repeated float offsets = 4;
  if (this->_internal_offsets_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_offsets(), target);
  }

  // repeated float rotations = 5;
  if (this->_internal_rotations_size() > 0) {
    target = stream->WriteFixedPacked(5, _internal_rotations(), target);
  }

  // float matched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_matched_threshold(), target);
  }

  // float unmatched_threshold = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_unmatched_threshold(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGenerator_depara)
  return target;
}

size_t AnchorGenerator_depara::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGenerator_depara)
  size_t total_size = 0;

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

  // repeated float sizes = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_sizes_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float strides = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_strides_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float offsets = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_offsets_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float rotations = 5;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_rotations_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string class_name = 1;
  if (!this->_internal_class_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_class_name());
  }

  // float matched_threshold = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    total_size += 1 + 4;
  }

  // float unmatched_threshold = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGenerator_depara::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGenerator_depara::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGenerator_depara::GetClassData() const { return &_class_data_; }


void AnchorGenerator_depara::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGenerator_depara*>(&to_msg);
  auto& from = static_cast<const AnchorGenerator_depara&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGenerator_depara)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.sizes_.MergeFrom(from._impl_.sizes_);
  _this->_impl_.strides_.MergeFrom(from._impl_.strides_);
  _this->_impl_.offsets_.MergeFrom(from._impl_.offsets_);
  _this->_impl_.rotations_.MergeFrom(from._impl_.rotations_);
  if (!from._internal_class_name().empty()) {
    _this->_internal_set_class_name(from._internal_class_name());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = from._internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    _this->_internal_set_matched_threshold(from._internal_matched_threshold());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = from._internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    _this->_internal_set_unmatched_threshold(from._internal_unmatched_threshold());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGenerator_depara::IsInitialized() const {
  return true;
}

void AnchorGenerator_depara::InternalSwap(AnchorGenerator_depara* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.sizes_.InternalSwap(&other->_impl_.sizes_);
  _impl_.strides_.InternalSwap(&other->_impl_.strides_);
  _impl_.offsets_.InternalSwap(&other->_impl_.offsets_);
  _impl_.rotations_.InternalSwap(&other->_impl_.rotations_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.class_name_, lhs_arena,
      &other->_impl_.class_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnchorGenerator_depara, _impl_.unmatched_threshold_)
      + sizeof(AnchorGenerator_depara::_impl_.unmatched_threshold_)
      - PROTOBUF_FIELD_OFFSET(AnchorGenerator_depara, _impl_.matched_threshold_)>(
          reinterpret_cast<char*>(&_impl_.matched_threshold_),
          reinterpret_cast<char*>(&other->_impl_.matched_threshold_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGenerator_depara::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[4]);
}

// ===================================================================

class AnchorGeneratorV1::_Internal {
 public:
};

AnchorGeneratorV1::AnchorGeneratorV1(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:second.protos.AnchorGeneratorV1)
}
AnchorGeneratorV1::AnchorGeneratorV1(const AnchorGeneratorV1& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AnchorGeneratorV1* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.anchor_sizes_){from._impl_.anchor_sizes_}
    , decltype(_impl_.anchor_center_z_){}
    , decltype(_impl_.matched_threshold_){}
    , decltype(_impl_.unmatched_threshold_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.anchor_center_z_, &from._impl_.anchor_center_z_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
    reinterpret_cast<char*>(&_impl_.anchor_center_z_)) + sizeof(_impl_.unmatched_threshold_));
  // @@protoc_insertion_point(copy_constructor:second.protos.AnchorGeneratorV1)
}

inline void AnchorGeneratorV1::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.anchor_sizes_){arena}
    , decltype(_impl_.anchor_center_z_){0}
    , decltype(_impl_.matched_threshold_){0}
    , decltype(_impl_.unmatched_threshold_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

AnchorGeneratorV1::~AnchorGeneratorV1() {
  // @@protoc_insertion_point(destructor:second.protos.AnchorGeneratorV1)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AnchorGeneratorV1::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.anchor_sizes_.~RepeatedField();
}

void AnchorGeneratorV1::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AnchorGeneratorV1::Clear() {
// @@protoc_insertion_point(message_clear_start:second.protos.AnchorGeneratorV1)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.anchor_sizes_.Clear();
  ::memset(&_impl_.anchor_center_z_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.unmatched_threshold_) -
      reinterpret_cast<char*>(&_impl_.anchor_center_z_)) + sizeof(_impl_.unmatched_threshold_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnchorGeneratorV1::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // float anchor_center_z = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _impl_.anchor_center_z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float anchor_sizes = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_anchor_sizes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_anchor_sizes(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float matched_threshold = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _impl_.matched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float unmatched_threshold = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _impl_.unmatched_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AnchorGeneratorV1::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:second.protos.AnchorGeneratorV1)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // float anchor_center_z = 1;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = this->_internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_anchor_center_z(), target);
  }

  // repeated float anchor_sizes = 2;
  if (this->_internal_anchor_sizes_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_anchor_sizes(), target);
  }

  // float matched_threshold = 3;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_matched_threshold(), target);
  }

  // float unmatched_threshold = 4;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_unmatched_threshold(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:second.protos.AnchorGeneratorV1)
  return target;
}

size_t AnchorGeneratorV1::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:second.protos.AnchorGeneratorV1)
  size_t total_size = 0;

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

  // repeated float anchor_sizes = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_anchor_sizes_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // float anchor_center_z = 1;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = this->_internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    total_size += 1 + 4;
  }

  // float matched_threshold = 3;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = this->_internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    total_size += 1 + 4;
  }

  // float unmatched_threshold = 4;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = this->_internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AnchorGeneratorV1::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AnchorGeneratorV1::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AnchorGeneratorV1::GetClassData() const { return &_class_data_; }


void AnchorGeneratorV1::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AnchorGeneratorV1*>(&to_msg);
  auto& from = static_cast<const AnchorGeneratorV1&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:second.protos.AnchorGeneratorV1)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.anchor_sizes_.MergeFrom(from._impl_.anchor_sizes_);
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_anchor_center_z = from._internal_anchor_center_z();
  uint32_t raw_anchor_center_z;
  memcpy(&raw_anchor_center_z, &tmp_anchor_center_z, sizeof(tmp_anchor_center_z));
  if (raw_anchor_center_z != 0) {
    _this->_internal_set_anchor_center_z(from._internal_anchor_center_z());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_matched_threshold = from._internal_matched_threshold();
  uint32_t raw_matched_threshold;
  memcpy(&raw_matched_threshold, &tmp_matched_threshold, sizeof(tmp_matched_threshold));
  if (raw_matched_threshold != 0) {
    _this->_internal_set_matched_threshold(from._internal_matched_threshold());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_unmatched_threshold = from._internal_unmatched_threshold();
  uint32_t raw_unmatched_threshold;
  memcpy(&raw_unmatched_threshold, &tmp_unmatched_threshold, sizeof(tmp_unmatched_threshold));
  if (raw_unmatched_threshold != 0) {
    _this->_internal_set_unmatched_threshold(from._internal_unmatched_threshold());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool AnchorGeneratorV1::IsInitialized() const {
  return true;
}

void AnchorGeneratorV1::InternalSwap(AnchorGeneratorV1* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.anchor_sizes_.InternalSwap(&other->_impl_.anchor_sizes_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AnchorGeneratorV1, _impl_.unmatched_threshold_)
      + sizeof(AnchorGeneratorV1::_impl_.unmatched_threshold_)
      - PROTOBUF_FIELD_OFFSET(AnchorGeneratorV1, _impl_.anchor_center_z_)>(
          reinterpret_cast<char*>(&_impl_.anchor_center_z_),
          reinterpret_cast<char*>(&other->_impl_.anchor_center_z_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AnchorGeneratorV1::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_second_2fprotos_2fanchors_2eproto_getter, &descriptor_table_second_2fprotos_2fanchors_2eproto_once,
      file_level_metadata_second_2fprotos_2fanchors_2eproto[5]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace protos
}  // namespace second
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGeneratorOld*
Arena::CreateMaybeMessage< ::second::protos::AnchorGeneratorOld >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGeneratorOld >(arena);
}
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGeneratorStride*
Arena::CreateMaybeMessage< ::second::protos::AnchorGeneratorStride >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGeneratorStride >(arena);
}
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGeneratorRange*
Arena::CreateMaybeMessage< ::second::protos::AnchorGeneratorRange >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGeneratorRange >(arena);
}
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGeneratorCollection*
Arena::CreateMaybeMessage< ::second::protos::AnchorGeneratorCollection >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGeneratorCollection >(arena);
}
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGenerator_depara*
Arena::CreateMaybeMessage< ::second::protos::AnchorGenerator_depara >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGenerator_depara >(arena);
}
template<> PROTOBUF_NOINLINE ::second::protos::AnchorGeneratorV1*
Arena::CreateMaybeMessage< ::second::protos::AnchorGeneratorV1 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::second::protos::AnchorGeneratorV1 >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
