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

#include "safebrowsing.pb.h"

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

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace mozilla {
namespace safebrowsing {
class ThreatListDescriptor::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatListDescriptor>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_._has_bits_);
};

constexpr ThreatListDescriptor::ParseTableT_ ThreatListDescriptor::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatListDescriptor>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.threat_type_)}},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 1, 8,
        PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.platform_type_)}},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
      {::_pbi::TcParser::FastEr0S1,
       {24, 2, 6,
        PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.threat_entry_type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.threat_type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.platform_type_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_.threat_entry_type_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 8},
        {0, 6},
    }},
    {{
    }},
  };
}


inline constexpr ThreatListDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        threat_type_{static_cast< ::mozilla::safebrowsing::ThreatType >(0)},
        platform_type_{static_cast< ::mozilla::safebrowsing::PlatformType >(0)},
        threat_entry_type_{static_cast< ::mozilla::safebrowsing::ThreatEntryType >(0)} {}

template <typename>
constexpr ThreatListDescriptor::ThreatListDescriptor(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatListDescriptor::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatListDescriptor(arena);
}
constexpr auto ThreatListDescriptor::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ThreatListDescriptor), alignof(ThreatListDescriptor));
}
constexpr auto ThreatListDescriptor::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatListDescriptor::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatListDescriptor>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatListDescriptor::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatListDescriptor>(), &ThreatListDescriptor::ByteSizeLong,
              &ThreatListDescriptor::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatListDescriptor, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatListDescriptor",
  };
}
struct ThreatListDescriptorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatListDescriptorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatListDescriptor_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatListDescriptor::InternalGenerateClassData_(
            _default, &ThreatListDescriptor_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatListDescriptor>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatListDescriptorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatListDescriptor _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatListDescriptor>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatListDescriptorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatListDescriptorGlobalsTypeInternal ThreatListDescriptor_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatListDescriptor_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatListDescriptor_globals_.GetClassData();
#else
  return ThreatListDescriptor_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatHit_UserInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatHit_UserInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_._has_bits_);
};

constexpr ThreatHit_UserInfo::ParseTableT_ ThreatHit_UserInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatHit_UserInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes user_id = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_.user_id_)}},
      // optional string region_code = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_.region_code_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string region_code = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_.region_code_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes user_id = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_.user_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ThreatHit_UserInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        region_code_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        user_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ThreatHit_UserInfo::ThreatHit_UserInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatHit_UserInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatHit_UserInfo(arena);
}
constexpr auto ThreatHit_UserInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatHit_UserInfo), alignof(ThreatHit_UserInfo));
}
constexpr auto ThreatHit_UserInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatHit_UserInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatHit_UserInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatHit_UserInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatHit_UserInfo>(), &ThreatHit_UserInfo::ByteSizeLong,
              &ThreatHit_UserInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfo, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatHit.UserInfo",
  };
}
struct ThreatHit_UserInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatHit_UserInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatHit_UserInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatHit_UserInfo::InternalGenerateClassData_(
            _default, &ThreatHit_UserInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit_UserInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatHit_UserInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatHit_UserInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit_UserInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatHit_UserInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatHit_UserInfoGlobalsTypeInternal ThreatHit_UserInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatHit_UserInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatHit_UserInfo_globals_.GetClassData();
#else
  return ThreatHit_UserInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatHit_ThreatSource::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatHit_ThreatSource>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_._has_bits_);
};

constexpr ThreatHit_ThreatSource::ParseTableT_ ThreatHit_ThreatSource::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatHit_ThreatSource>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string referrer = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.referrer_)}},
      // optional string url = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.url_)}},
      // optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 3, 4,
        PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.type_)}},
      // optional string remote_ip = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.remote_ip_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string url = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.url_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.type_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string remote_ip = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.remote_ip_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string referrer = 4;
      {PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_.referrer_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    {{
        {0, 4},
    }},
    {{
    }},
  };
}


inline constexpr ThreatHit_ThreatSource::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        remote_ip_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        referrer_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{static_cast< ::mozilla::safebrowsing::ThreatHit_ThreatSourceType >(0)} {}

template <typename>
constexpr ThreatHit_ThreatSource::ThreatHit_ThreatSource(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatHit_ThreatSource::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatHit_ThreatSource(arena);
}
constexpr auto ThreatHit_ThreatSource::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatHit_ThreatSource), alignof(ThreatHit_ThreatSource));
}
constexpr auto ThreatHit_ThreatSource::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatHit_ThreatSource::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatHit_ThreatSource>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatHit_ThreatSource::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatHit_ThreatSource>(), &ThreatHit_ThreatSource::ByteSizeLong,
              &ThreatHit_ThreatSource::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSource, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatHit.ThreatSource",
  };
}
struct ThreatHit_ThreatSourceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatHit_ThreatSourceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatHit_ThreatSource_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatHit_ThreatSource::InternalGenerateClassData_(
            _default, &ThreatHit_ThreatSource_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit_ThreatSource>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatHit_ThreatSourceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatHit_ThreatSource _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit_ThreatSource>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatHit_ThreatSourceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatHit_ThreatSourceGlobalsTypeInternal ThreatHit_ThreatSource_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatHit_ThreatSource_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatHit_ThreatSource_globals_.GetClassData();
#else
  return ThreatHit_ThreatSource_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatEntryMetadata_MetadataEntry::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatEntryMetadata_MetadataEntry>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_._has_bits_);
};

constexpr ThreatEntryMetadata_MetadataEntry::ParseTableT_ ThreatEntryMetadata_MetadataEntry::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_.value_)}},
      // optional bytes key = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes key = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ThreatEntryMetadata_MetadataEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ThreatEntryMetadata_MetadataEntry::ThreatEntryMetadata_MetadataEntry(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatEntryMetadata_MetadataEntry::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatEntryMetadata_MetadataEntry(arena);
}
constexpr auto ThreatEntryMetadata_MetadataEntry::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatEntryMetadata_MetadataEntry), alignof(ThreatEntryMetadata_MetadataEntry));
}
constexpr auto ThreatEntryMetadata_MetadataEntry::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatEntryMetadata_MetadataEntry::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatEntryMetadata_MetadataEntry>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatEntryMetadata_MetadataEntry::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatEntryMetadata_MetadataEntry>(), &ThreatEntryMetadata_MetadataEntry::ByteSizeLong,
              &ThreatEntryMetadata_MetadataEntry::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntry, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry",
  };
}
struct ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatEntryMetadata_MetadataEntry_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatEntryMetadata_MetadataEntry::InternalGenerateClassData_(
            _default, &ThreatEntryMetadata_MetadataEntry_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntryMetadata_MetadataEntry>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatEntryMetadata_MetadataEntry _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntryMetadata_MetadataEntry>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatEntryMetadata_MetadataEntryGlobalsTypeInternal ThreatEntryMetadata_MetadataEntry_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatEntryMetadata_MetadataEntry_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatEntryMetadata_MetadataEntry_globals_.GetClassData();
#else
  return ThreatEntryMetadata_MetadataEntry_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatEntry::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatEntry>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_._has_bits_);
};

constexpr ThreatEntry::ParseTableT_ ThreatEntry::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntry>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string url = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_.url_)}},
      // optional bytes hash = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_.hash_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes hash = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_.hash_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string url = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_.url_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ThreatEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        hash_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ThreatEntry::ThreatEntry(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatEntry::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatEntry(arena);
}
constexpr auto ThreatEntry::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatEntry), alignof(ThreatEntry));
}
constexpr auto ThreatEntry::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatEntry::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatEntry>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatEntry::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatEntry>(), &ThreatEntry::ByteSizeLong,
              &ThreatEntry::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatEntry, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatEntry",
  };
}
struct ThreatEntryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatEntryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatEntry_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatEntry::InternalGenerateClassData_(
            _default, &ThreatEntry_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntry>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatEntryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatEntry _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntry>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatEntryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatEntryGlobalsTypeInternal ThreatEntry_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatEntry_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatEntry_globals_.GetClassData();
#else
  return ThreatEntry_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RiceDeltaEncoding::_Internal {
 public:
  using HasBits = decltype(::std::declval<RiceDeltaEncoding>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_._has_bits_);
};

constexpr RiceDeltaEncoding::ParseTableT_ RiceDeltaEncoding::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RiceDeltaEncoding>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes encoded_data = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.encoded_data_)}},
      // optional int64 first_value = 1;
      {::_pbi::TcParser::FastV64S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.first_value_)}},
      // optional int32 rice_parameter = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.rice_parameter_)}},
      // optional int32 num_entries = 3;
      {::_pbi::TcParser::FastV32S1,
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.num_entries_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int64 first_value = 1;
      {PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.first_value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional int32 rice_parameter = 2;
      {PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.rice_parameter_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 num_entries = 3;
      {PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.num_entries_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bytes encoded_data = 4;
      {PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_.encoded_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RiceDeltaEncoding::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        encoded_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        first_value_{::int64_t{0}},
        rice_parameter_{0},
        num_entries_{0} {}

template <typename>
constexpr RiceDeltaEncoding::RiceDeltaEncoding(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RiceDeltaEncoding::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RiceDeltaEncoding(arena);
}
constexpr auto RiceDeltaEncoding::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RiceDeltaEncoding), alignof(RiceDeltaEncoding));
}
constexpr auto RiceDeltaEncoding::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RiceDeltaEncoding::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<RiceDeltaEncoding>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RiceDeltaEncoding::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<RiceDeltaEncoding>(), &RiceDeltaEncoding::ByteSizeLong,
              &RiceDeltaEncoding::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RiceDeltaEncoding, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.RiceDeltaEncoding",
  };
}
struct RiceDeltaEncodingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RiceDeltaEncodingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RiceDeltaEncoding_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RiceDeltaEncoding::InternalGenerateClassData_(
            _default, &RiceDeltaEncoding_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RiceDeltaEncoding>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RiceDeltaEncodingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RiceDeltaEncoding _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RiceDeltaEncoding>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RiceDeltaEncodingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST RiceDeltaEncodingGlobalsTypeInternal RiceDeltaEncoding_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* RiceDeltaEncoding_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return RiceDeltaEncoding_globals_.GetClassData();
#else
  return RiceDeltaEncoding_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RawIndices::_Internal {
 public:
  using HasBits = decltype(::std::declval<RawIndices>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RawIndices, _impl_._has_bits_);
};

constexpr RawIndices::ParseTableT_ RawIndices::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RawIndices, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RawIndices>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated int32 indices = 1;
      {::_pbi::TcParser::FastV32R1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(RawIndices, _impl_.indices_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated int32 indices = 1;
      {PROTOBUF_FIELD_OFFSET(RawIndices, _impl_.indices_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RawIndices::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        indices_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::RawIndices,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::RawIndices, _impl_.indices_)>()
         }
     {}

template <typename>
constexpr RawIndices::RawIndices(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RawIndices::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RawIndices(arena);
}
constexpr auto RawIndices::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RawIndices), alignof(RawIndices));
}
constexpr auto RawIndices::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RawIndices::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<RawIndices>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RawIndices::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<RawIndices>(), &RawIndices::ByteSizeLong,
              &RawIndices::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RawIndices, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.RawIndices",
  };
}
struct RawIndicesGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RawIndicesGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RawIndices_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RawIndices::InternalGenerateClassData_(
            _default, &RawIndices_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RawIndices>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RawIndicesGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RawIndices _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RawIndices>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RawIndicesGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST RawIndicesGlobalsTypeInternal RawIndices_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* RawIndices_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return RawIndices_globals_.GetClassData();
#else
  return RawIndices_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RawHashes::_Internal {
 public:
  using HasBits = decltype(::std::declval<RawHashes>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RawHashes, _impl_._has_bits_);
};

constexpr RawHashes::ParseTableT_ RawHashes::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RawHashes, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RawHashes>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes raw_hashes = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(RawHashes, _impl_.raw_hashes_)}},
      // optional int32 prefix_size = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(RawHashes, _impl_.prefix_size_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 prefix_size = 1;
      {PROTOBUF_FIELD_OFFSET(RawHashes, _impl_.prefix_size_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bytes raw_hashes = 2;
      {PROTOBUF_FIELD_OFFSET(RawHashes, _impl_.raw_hashes_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RawHashes::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        raw_hashes_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        prefix_size_{0} {}

template <typename>
constexpr RawHashes::RawHashes(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RawHashes::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RawHashes(arena);
}
constexpr auto RawHashes::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RawHashes), alignof(RawHashes));
}
constexpr auto RawHashes::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RawHashes::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<RawHashes>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RawHashes::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<RawHashes>(), &RawHashes::ByteSizeLong,
              &RawHashes::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RawHashes, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.RawHashes",
  };
}
struct RawHashesGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RawHashesGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RawHashes_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RawHashes::InternalGenerateClassData_(
            _default, &RawHashes_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RawHashes>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RawHashesGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RawHashes _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RawHashes>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RawHashesGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST RawHashesGlobalsTypeInternal RawHashes_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* RawHashes_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return RawHashes_globals_.GetClassData();
#else
  return RawHashes_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_Internal {
 public:
  using HasBits = decltype(::std::declval<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_._has_bits_);
};

constexpr FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::ParseTableT_ FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
      {::_pbi::TcParser::FastEr0R1,
       {32, 0, 2,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.supported_compressions_)}},
      // optional int32 max_update_entries = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_update_entries_)}},
      // optional int32 max_database_entries = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_database_entries_)}},
      // optional string region = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.region_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 max_update_entries = 1;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_update_entries_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 max_database_entries = 2;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_database_entries_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional string region = 3;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.region_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.supported_compressions_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
    }},
    {{
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        supported_compressions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.supported_compressions_)>()
         }
        ,
        region_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        max_update_entries_{0},
        max_database_entries_{0} {}

template <typename>
constexpr FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(arena);
}
constexpr auto FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints), alignof(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints));
}
constexpr auto FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(), &FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::ByteSizeLong,
              &FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints",
  };
}
struct FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalGenerateClassData_(
            _default, &FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FetchThreatListUpdatesRequest_ListUpdateRequest_ConstraintsGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_.GetClassData();
#else
  return FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Duration::_Internal {
 public:
  using HasBits = decltype(::std::declval<Duration>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Duration, _impl_._has_bits_);
};

constexpr Duration::ParseTableT_ Duration::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Duration, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Duration>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 nanos = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Duration, _impl_.nanos_)}},
      // optional int64 seconds = 1;
      {::_pbi::TcParser::FastV64S1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Duration, _impl_.seconds_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int64 seconds = 1;
      {PROTOBUF_FIELD_OFFSET(Duration, _impl_.seconds_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional int32 nanos = 2;
      {PROTOBUF_FIELD_OFFSET(Duration, _impl_.nanos_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Duration::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        seconds_{::int64_t{0}},
        nanos_{0} {}

template <typename>
constexpr Duration::Duration(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Duration::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Duration(arena);
}
constexpr auto Duration::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Duration), alignof(Duration));
}
constexpr auto Duration::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Duration::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Duration>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Duration::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Duration>(), &Duration::ByteSizeLong,
              &Duration::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Duration, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.Duration",
  };
}
struct DurationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr DurationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Duration_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Duration::InternalGenerateClassData_(
            _default, &Duration_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Duration>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~DurationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Duration _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Duration>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(DurationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST DurationGlobalsTypeInternal Duration_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Duration_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Duration_globals_.GetClassData();
#else
  return Duration_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ClientInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<ClientInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_._has_bits_);
};

constexpr ClientInfo::ParseTableT_ ClientInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ClientInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string client_version = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_.client_version_)}},
      // optional string client_id = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_.client_id_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string client_id = 1;
      {PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_.client_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string client_version = 2;
      {PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_.client_version_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ClientInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        client_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        client_version_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ClientInfo::ClientInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ClientInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ClientInfo(arena);
}
constexpr auto ClientInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ClientInfo), alignof(ClientInfo));
}
constexpr auto ClientInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ClientInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ClientInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ClientInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ClientInfo>(), &ClientInfo::ByteSizeLong,
              &ClientInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ClientInfo, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ClientInfo",
  };
}
struct ClientInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ClientInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ClientInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ClientInfo::InternalGenerateClassData_(
            _default, &ClientInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ClientInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ClientInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ClientInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ClientInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ClientInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ClientInfoGlobalsTypeInternal ClientInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ClientInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ClientInfo_globals_.GetClassData();
#else
  return ClientInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ChromeClientInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<ChromeClientInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ChromeClientInfo, _impl_._has_bits_);
};

constexpr ChromeClientInfo::ParseTableT_ ChromeClientInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ChromeClientInfo, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ChromeClientInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 0, 3,
        PROTOBUF_FIELD_OFFSET(ChromeClientInfo, _impl_.reporting_population_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
      {PROTOBUF_FIELD_OFFSET(ChromeClientInfo, _impl_.reporting_population_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        {0, 3},
    }},
    {{
    }},
  };
}


inline constexpr ChromeClientInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        reporting_population_{static_cast< ::mozilla::safebrowsing::ChromeClientInfo_SafeBrowsingReportingPopulation >(0)} {}

template <typename>
constexpr ChromeClientInfo::ChromeClientInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ChromeClientInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ChromeClientInfo(arena);
}
constexpr auto ChromeClientInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ChromeClientInfo), alignof(ChromeClientInfo));
}
constexpr auto ChromeClientInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ChromeClientInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ChromeClientInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ChromeClientInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ChromeClientInfo>(), &ChromeClientInfo::ByteSizeLong,
              &ChromeClientInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ChromeClientInfo, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ChromeClientInfo",
  };
}
struct ChromeClientInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ChromeClientInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ChromeClientInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ChromeClientInfo::InternalGenerateClassData_(
            _default, &ChromeClientInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ChromeClientInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ChromeClientInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ChromeClientInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ChromeClientInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ChromeClientInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ChromeClientInfoGlobalsTypeInternal ChromeClientInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ChromeClientInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ChromeClientInfo_globals_.GetClassData();
#else
  return ChromeClientInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Checksum::_Internal {
 public:
  using HasBits = decltype(::std::declval<Checksum>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Checksum, _impl_._has_bits_);
};

constexpr Checksum::ParseTableT_ Checksum::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Checksum, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Checksum>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes sha256 = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Checksum, _impl_.sha256_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes sha256 = 1;
      {PROTOBUF_FIELD_OFFSET(Checksum, _impl_.sha256_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Checksum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sha256_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr Checksum::Checksum(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Checksum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Checksum(arena);
}
constexpr auto Checksum::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Checksum), alignof(Checksum));
}
constexpr auto Checksum::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Checksum::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Checksum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Checksum::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Checksum>(), &Checksum::ByteSizeLong,
              &Checksum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Checksum, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.Checksum",
  };
}
struct ChecksumGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ChecksumGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Checksum_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Checksum::InternalGenerateClassData_(
            _default, &Checksum_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Checksum>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ChecksumGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Checksum _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Checksum>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ChecksumGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ChecksumGlobalsTypeInternal Checksum_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Checksum_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Checksum_globals_.GetClassData();
#else
  return Checksum_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_._has_bits_);
};

constexpr ThreatInfo::ParseTableT_ ThreatInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
      {::_pbi::TcParser::FastEr0R1,
       {32, 3, 6,
        PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_entry_types_)}},
      // repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
      {::_pbi::TcParser::FastEvR1,
       {8, 0, 1,
        PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_types_)}},
      // repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
      {::_pbi::TcParser::FastEr0R1,
       {16, 1, 8,
        PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.platform_types_)}},
      // repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_entries_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_types_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kEnum)},
      // repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.platform_types_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
      // repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_entries_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
      {PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_.threat_entry_types_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntry>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntry_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 8},
        {0, 6},
    }},
    {{
    }},
  };
}


inline constexpr ThreatInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        threat_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_types_)>()
         }
        ,
        platform_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.platform_types_)>()
         }
        ,
        threat_entries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entries_)>()
         }
        ,
        threat_entry_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entry_types_)>()
         }
     {}

template <typename>
constexpr ThreatInfo::ThreatInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatInfo(arena);
}
constexpr auto ThreatInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatInfo), alignof(ThreatInfo));
}
constexpr auto ThreatInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatInfo>(), &ThreatInfo::ByteSizeLong,
              &ThreatInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatInfo, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatInfo",
  };
}
struct ThreatInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatInfo::InternalGenerateClassData_(
            _default, &ThreatInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatInfoGlobalsTypeInternal ThreatInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatInfo_globals_.GetClassData();
#else
  return ThreatInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatHit::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatHit>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_._has_bits_);
};

constexpr ThreatHit::ParseTableT_ ThreatHit::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      6,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatHit>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 4, 4,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.threat_type_)}},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 5, 8,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.platform_type_)}},
      // optional .mozilla.safebrowsing.ThreatEntry entry = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.entry_)}},
      // repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 1,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.resources_)}},
      // optional .mozilla.safebrowsing.ClientInfo client_info = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 2, 2,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.client_info_)}},
      // optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 3, 3,
        PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.user_info_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.threat_type_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.platform_type_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.ThreatEntry entry = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.entry_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.resources_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ClientInfo client_info = 5;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.client_info_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
      {PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_.user_info_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntry>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntry_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatHit_ThreatSource>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatHit_ThreatSource_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ClientInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ClientInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatHit_UserInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatHit_UserInfo_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 8},
    }},
    {{
    }},
  };
}


inline constexpr ThreatHit::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        resources_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatHit,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatHit, _impl_.resources_)>()
         }
        ,
        entry_{nullptr},
        client_info_{nullptr},
        user_info_{nullptr},
        threat_type_{static_cast< ::mozilla::safebrowsing::ThreatType >(0)},
        platform_type_{static_cast< ::mozilla::safebrowsing::PlatformType >(0)} {}

template <typename>
constexpr ThreatHit::ThreatHit(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatHit::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatHit(arena);
}
constexpr auto ThreatHit::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatHit), alignof(ThreatHit));
}
constexpr auto ThreatHit::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatHit::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatHit>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatHit::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatHit>(), &ThreatHit::ByteSizeLong,
              &ThreatHit::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatHit, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatHit",
  };
}
struct ThreatHitGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatHitGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatHit_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatHit::InternalGenerateClassData_(
            _default, &ThreatHit_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatHitGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatHit _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatHit>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatHitGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatHitGlobalsTypeInternal ThreatHit_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatHit_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatHit_globals_.GetClassData();
#else
  return ThreatHit_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatEntrySet::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatEntrySet>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_._has_bits_);
};

constexpr ThreatEntrySet::ParseTableT_ ThreatEntrySet::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      5,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntrySet>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.CompressionType compression_type = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 4, 2,
        PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.compression_type_)}},
      // optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.raw_hashes_)}},
      // optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.raw_indices_)}},
      // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.rice_hashes_)}},
      // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 3, 3,
        PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.rice_indices_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.CompressionType compression_type = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.compression_type_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.raw_hashes_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.raw_indices_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
      {PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.rice_hashes_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
      {PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_.rice_indices_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RawHashes>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::RawHashes_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RawIndices>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::RawIndices_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RiceDeltaEncoding>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::RiceDeltaEncoding_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::RiceDeltaEncoding>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::RiceDeltaEncoding_globals_},
        #endif
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr ThreatEntrySet::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        raw_hashes_{nullptr},
        raw_indices_{nullptr},
        rice_hashes_{nullptr},
        rice_indices_{nullptr},
        compression_type_{static_cast< ::mozilla::safebrowsing::CompressionType >(0)} {}

template <typename>
constexpr ThreatEntrySet::ThreatEntrySet(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatEntrySet::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatEntrySet(arena);
}
constexpr auto ThreatEntrySet::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ThreatEntrySet), alignof(ThreatEntrySet));
}
constexpr auto ThreatEntrySet::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatEntrySet::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatEntrySet>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatEntrySet::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatEntrySet>(), &ThreatEntrySet::ByteSizeLong,
              &ThreatEntrySet::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatEntrySet, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatEntrySet",
  };
}
struct ThreatEntrySetGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatEntrySetGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatEntrySet_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatEntrySet::InternalGenerateClassData_(
            _default, &ThreatEntrySet_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntrySet>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatEntrySetGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatEntrySet _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntrySet>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatEntrySetGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatEntrySetGlobalsTypeInternal ThreatEntrySet_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatEntrySet_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatEntrySet_globals_.GetClassData();
#else
  return ThreatEntrySet_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatEntryMetadata::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatEntryMetadata>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata, _impl_._has_bits_);
};

constexpr ThreatEntryMetadata::ParseTableT_ ThreatEntryMetadata::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntryMetadata>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata, _impl_.entries_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata, _impl_.entries_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ThreatEntryMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        entries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatEntryMetadata,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatEntryMetadata, _impl_.entries_)>()
         }
     {}

template <typename>
constexpr ThreatEntryMetadata::ThreatEntryMetadata(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatEntryMetadata::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatEntryMetadata(arena);
}
constexpr auto ThreatEntryMetadata::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ThreatEntryMetadata), alignof(ThreatEntryMetadata));
}
constexpr auto ThreatEntryMetadata::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatEntryMetadata::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatEntryMetadata>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatEntryMetadata::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatEntryMetadata>(), &ThreatEntryMetadata::ByteSizeLong,
              &ThreatEntryMetadata::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatEntryMetadata, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatEntryMetadata",
  };
}
struct ThreatEntryMetadataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatEntryMetadataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatEntryMetadata_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatEntryMetadata::InternalGenerateClassData_(
            _default, &ThreatEntryMetadata_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntryMetadata>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatEntryMetadataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatEntryMetadata _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatEntryMetadata>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatEntryMetadataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatEntryMetadataGlobalsTypeInternal ThreatEntryMetadata_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatEntryMetadata_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatEntryMetadata_globals_.GetClassData();
#else
  return ThreatEntryMetadata_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ListThreatListsResponse::_Internal {
 public:
  using HasBits = decltype(::std::declval<ListThreatListsResponse>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ListThreatListsResponse, _impl_._has_bits_);
};

constexpr ListThreatListsResponse::ParseTableT_ ListThreatListsResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ListThreatListsResponse, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ListThreatListsResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ListThreatListsResponse, _impl_.threat_lists_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
      {PROTOBUF_FIELD_OFFSET(ListThreatListsResponse, _impl_.threat_lists_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatListDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatListDescriptor_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ListThreatListsResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        threat_lists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ListThreatListsResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ListThreatListsResponse, _impl_.threat_lists_)>()
         }
     {}

template <typename>
constexpr ListThreatListsResponse::ListThreatListsResponse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ListThreatListsResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ListThreatListsResponse(arena);
}
constexpr auto ListThreatListsResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ListThreatListsResponse), alignof(ListThreatListsResponse));
}
constexpr auto ListThreatListsResponse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ListThreatListsResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ListThreatListsResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ListThreatListsResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ListThreatListsResponse>(), &ListThreatListsResponse::ByteSizeLong,
              &ListThreatListsResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ListThreatListsResponse, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ListThreatListsResponse",
  };
}
struct ListThreatListsResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ListThreatListsResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ListThreatListsResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ListThreatListsResponse::InternalGenerateClassData_(
            _default, &ListThreatListsResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ListThreatListsResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ListThreatListsResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ListThreatListsResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ListThreatListsResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ListThreatListsResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ListThreatListsResponseGlobalsTypeInternal ListThreatListsResponse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ListThreatListsResponse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ListThreatListsResponse_globals_.GetClassData();
#else
  return ListThreatListsResponse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FetchThreatListUpdatesRequest_ListUpdateRequest::_Internal {
 public:
  using HasBits = decltype(::std::declval<FetchThreatListUpdatesRequest_ListUpdateRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_._has_bits_);
};

constexpr FetchThreatListUpdatesRequest_ListUpdateRequest::ParseTableT_ FetchThreatListUpdatesRequest_ListUpdateRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      4,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 2, 1,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.threat_type_)}},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 3, 8,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.platform_type_)}},
      // optional bytes state = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.state_)}},
      // optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.constraints_)}},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
      {::_pbi::TcParser::FastEr0S1,
       {40, 4, 6,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.threat_entry_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.threat_type_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.platform_type_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional bytes state = 3;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.state_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.constraints_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_.threat_entry_type_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 8},
        {0, 6},
    }},
    {{
    }},
  };
}


inline constexpr FetchThreatListUpdatesRequest_ListUpdateRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        state_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        constraints_{nullptr},
        threat_type_{static_cast< ::mozilla::safebrowsing::ThreatType >(0)},
        platform_type_{static_cast< ::mozilla::safebrowsing::PlatformType >(0)},
        threat_entry_type_{static_cast< ::mozilla::safebrowsing::ThreatEntryType >(0)} {}

template <typename>
constexpr FetchThreatListUpdatesRequest_ListUpdateRequest::FetchThreatListUpdatesRequest_ListUpdateRequest(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FetchThreatListUpdatesRequest_ListUpdateRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchThreatListUpdatesRequest_ListUpdateRequest(arena);
}
constexpr auto FetchThreatListUpdatesRequest_ListUpdateRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FetchThreatListUpdatesRequest_ListUpdateRequest), alignof(FetchThreatListUpdatesRequest_ListUpdateRequest));
}
constexpr auto FetchThreatListUpdatesRequest_ListUpdateRequest::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FetchThreatListUpdatesRequest_ListUpdateRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FetchThreatListUpdatesRequest_ListUpdateRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchThreatListUpdatesRequest_ListUpdateRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FetchThreatListUpdatesRequest_ListUpdateRequest>(), &FetchThreatListUpdatesRequest_ListUpdateRequest::ByteSizeLong,
              &FetchThreatListUpdatesRequest_ListUpdateRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest",
  };
}
struct FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchThreatListUpdatesRequest_ListUpdateRequest::InternalGenerateClassData_(
            _default, &FetchThreatListUpdatesRequest_ListUpdateRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest_ListUpdateRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchThreatListUpdatesRequest_ListUpdateRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest_ListUpdateRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FetchThreatListUpdatesRequest_ListUpdateRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_ListUpdateRequest_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FetchThreatListUpdatesRequest_ListUpdateRequest_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FetchThreatListUpdatesRequest_ListUpdateRequest_globals_.GetClassData();
#else
  return FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ThreatMatch::_Internal {
 public:
  using HasBits = decltype(::std::declval<ThreatMatch>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_._has_bits_);
};

constexpr ThreatMatch::ParseTableT_ ThreatMatch::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      6,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatMatch>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 3, 3,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_type_)}},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 4, 8,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.platform_type_)}},
      // optional .mozilla.safebrowsing.ThreatEntry threat = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_)}},
      // optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 1, 1,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_entry_metadata_)}},
      // optional .mozilla.safebrowsing.Duration cache_duration = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 2, 2,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.cache_duration_)}},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
      {::_pbi::TcParser::FastEr0S1,
       {48, 5, 6,
        PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_entry_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_type_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.platform_type_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.ThreatEntry threat = 3;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_entry_metadata_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.Duration cache_duration = 5;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.cache_duration_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
      {PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_.threat_entry_type_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntry>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntry_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntryMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntryMetadata_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::Duration_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 8},
        {0, 6},
    }},
    {{
    }},
  };
}


inline constexpr ThreatMatch::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        threat_{nullptr},
        threat_entry_metadata_{nullptr},
        cache_duration_{nullptr},
        threat_type_{static_cast< ::mozilla::safebrowsing::ThreatType >(0)},
        platform_type_{static_cast< ::mozilla::safebrowsing::PlatformType >(0)},
        threat_entry_type_{static_cast< ::mozilla::safebrowsing::ThreatEntryType >(0)} {}

template <typename>
constexpr ThreatMatch::ThreatMatch(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ThreatMatch::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThreatMatch(arena);
}
constexpr auto ThreatMatch::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ThreatMatch), alignof(ThreatMatch));
}
constexpr auto ThreatMatch::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ThreatMatch::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ThreatMatch>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThreatMatch::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ThreatMatch>(), &ThreatMatch::ByteSizeLong,
              &ThreatMatch::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThreatMatch, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.ThreatMatch",
  };
}
struct ThreatMatchGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ThreatMatchGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ThreatMatch_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ThreatMatch::InternalGenerateClassData_(
            _default, &ThreatMatch_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ThreatMatch>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ThreatMatchGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ThreatMatch _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ThreatMatch>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ThreatMatchGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ThreatMatchGlobalsTypeInternal ThreatMatch_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ThreatMatch_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ThreatMatch_globals_.GetClassData();
#else
  return ThreatMatch_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FindThreatMatchesRequest::_Internal {
 public:
  using HasBits = decltype(::std::declval<FindThreatMatchesRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_._has_bits_);
};

constexpr FindThreatMatchesRequest::ParseTableT_ FindThreatMatchesRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FindThreatMatchesRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_.threat_info_)}},
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_.client_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_.client_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
      {PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_.threat_info_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ClientInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ClientInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FindThreatMatchesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        client_{nullptr},
        threat_info_{nullptr} {}

template <typename>
constexpr FindThreatMatchesRequest::FindThreatMatchesRequest(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FindThreatMatchesRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FindThreatMatchesRequest(arena);
}
constexpr auto FindThreatMatchesRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FindThreatMatchesRequest), alignof(FindThreatMatchesRequest));
}
constexpr auto FindThreatMatchesRequest::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FindThreatMatchesRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FindThreatMatchesRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FindThreatMatchesRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FindThreatMatchesRequest>(), &FindThreatMatchesRequest::ByteSizeLong,
              &FindThreatMatchesRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequest, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FindThreatMatchesRequest",
  };
}
struct FindThreatMatchesRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FindThreatMatchesRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FindThreatMatchesRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FindThreatMatchesRequest::InternalGenerateClassData_(
            _default, &FindThreatMatchesRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FindThreatMatchesRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FindThreatMatchesRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FindThreatMatchesRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FindThreatMatchesRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FindThreatMatchesRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FindThreatMatchesRequestGlobalsTypeInternal FindThreatMatchesRequest_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FindThreatMatchesRequest_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FindThreatMatchesRequest_globals_.GetClassData();
#else
  return FindThreatMatchesRequest_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FindFullHashesRequest::_Internal {
 public:
  using HasBits = decltype(::std::declval<FindFullHashesRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_._has_bits_);
};

constexpr FindFullHashesRequest::ParseTableT_ FindFullHashesRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FindFullHashesRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.client_)}},
      // repeated bytes client_states = 2;
      {::_pbi::TcParser::FastBR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.client_states_)}},
      // optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 1,
        PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.threat_info_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.client_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated bytes client_states = 2;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.client_states_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_.threat_info_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ClientInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ClientInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FindFullHashesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        client_states_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindFullHashesRequest,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesRequest, _impl_.client_states_)>()
         }
        ,
        client_{nullptr},
        threat_info_{nullptr} {}

template <typename>
constexpr FindFullHashesRequest::FindFullHashesRequest(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FindFullHashesRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FindFullHashesRequest(arena);
}
constexpr auto FindFullHashesRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FindFullHashesRequest), alignof(FindFullHashesRequest));
}
constexpr auto FindFullHashesRequest::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FindFullHashesRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FindFullHashesRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FindFullHashesRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FindFullHashesRequest>(), &FindFullHashesRequest::ByteSizeLong,
              &FindFullHashesRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FindFullHashesRequest, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FindFullHashesRequest",
  };
}
struct FindFullHashesRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FindFullHashesRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FindFullHashesRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FindFullHashesRequest::InternalGenerateClassData_(
            _default, &FindFullHashesRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FindFullHashesRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FindFullHashesRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FindFullHashesRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FindFullHashesRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FindFullHashesRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FindFullHashesRequestGlobalsTypeInternal FindFullHashesRequest_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FindFullHashesRequest_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FindFullHashesRequest_globals_.GetClassData();
#else
  return FindFullHashesRequest_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FetchThreatListUpdatesResponse_ListUpdateResponse::_Internal {
 public:
  using HasBits = decltype(::std::declval<FetchThreatListUpdatesResponse_ListUpdateResponse>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_._has_bits_);
};

constexpr FetchThreatListUpdatesResponse_ListUpdateResponse::ParseTableT_ FetchThreatListUpdatesResponse_ListUpdateResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      7,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .mozilla.safebrowsing.Checksum checksum = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 3, 2,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.checksum_)}},
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 4, 3,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.threat_type_)}},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 5, 6,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.threat_entry_type_)}},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 3;
      {::_pbi::TcParser::FastEr0S1,
       {24, 6, 8,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.platform_type_)}},
      // optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
      {::_pbi::TcParser::FastEr0S1,
       {32, 7, 2,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.response_type_)}},
      // repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 0, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.additions_)}},
      // repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
      {::_pbi::TcParser::FastMtR1,
       {50, 1, 1,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.removals_)}},
      // optional bytes new_client_state = 7;
      {::_pbi::TcParser::FastBS1,
       {58, 2, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.new_client_state_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.threat_type_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.threat_entry_type_), _Internal::kHasBitsOffset + 5, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.PlatformType platform_type = 3;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.platform_type_), _Internal::kHasBitsOffset + 6, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.response_type_), _Internal::kHasBitsOffset + 7, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.additions_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.removals_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bytes new_client_state = 7;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.new_client_state_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .mozilla.safebrowsing.Checksum checksum = 8;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.checksum_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntrySet>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntrySet_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatEntrySet>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatEntrySet_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Checksum>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::Checksum_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::mozilla::safebrowsing::ThreatType_internal_data_},
        {0, 6},
        {0, 8},
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr FetchThreatListUpdatesResponse_ListUpdateResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        additions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.additions_)>()
         }
        ,
        removals_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.removals_)>()
         }
        ,
        new_client_state_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        checksum_{nullptr},
        threat_type_{static_cast< ::mozilla::safebrowsing::ThreatType >(0)},
        threat_entry_type_{static_cast< ::mozilla::safebrowsing::ThreatEntryType >(0)},
        platform_type_{static_cast< ::mozilla::safebrowsing::PlatformType >(0)},
        response_type_{static_cast< ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType >(0)} {}

template <typename>
constexpr FetchThreatListUpdatesResponse_ListUpdateResponse::FetchThreatListUpdatesResponse_ListUpdateResponse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FetchThreatListUpdatesResponse_ListUpdateResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchThreatListUpdatesResponse_ListUpdateResponse(arena);
}
constexpr auto FetchThreatListUpdatesResponse_ListUpdateResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FetchThreatListUpdatesResponse_ListUpdateResponse), alignof(FetchThreatListUpdatesResponse_ListUpdateResponse));
}
constexpr auto FetchThreatListUpdatesResponse_ListUpdateResponse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FetchThreatListUpdatesResponse_ListUpdateResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FetchThreatListUpdatesResponse_ListUpdateResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchThreatListUpdatesResponse_ListUpdateResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FetchThreatListUpdatesResponse_ListUpdateResponse>(), &FetchThreatListUpdatesResponse_ListUpdateResponse::ByteSizeLong,
              &FetchThreatListUpdatesResponse_ListUpdateResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse",
  };
}
struct FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchThreatListUpdatesResponse_ListUpdateResponse::InternalGenerateClassData_(
            _default, &FetchThreatListUpdatesResponse_ListUpdateResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesResponse_ListUpdateResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchThreatListUpdatesResponse_ListUpdateResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesResponse_ListUpdateResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FetchThreatListUpdatesResponse_ListUpdateResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_ListUpdateResponse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FetchThreatListUpdatesResponse_ListUpdateResponse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FetchThreatListUpdatesResponse_ListUpdateResponse_globals_.GetClassData();
#else
  return FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FetchThreatListUpdatesRequest::_Internal {
 public:
  using HasBits = decltype(::std::declval<FetchThreatListUpdatesRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_._has_bits_);
};

constexpr FetchThreatListUpdatesRequest::ParseTableT_ FetchThreatListUpdatesRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967282,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.chrome_client_info_)}},
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.client_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 1,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.list_update_requests_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .mozilla.safebrowsing.ClientInfo client = 1;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.client_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.list_update_requests_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_.chrome_client_info_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ClientInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ClientInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ChromeClientInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ChromeClientInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FetchThreatListUpdatesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        list_update_requests_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesRequest,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest, _impl_.list_update_requests_)>()
         }
        ,
        client_{nullptr},
        chrome_client_info_{nullptr} {}

template <typename>
constexpr FetchThreatListUpdatesRequest::FetchThreatListUpdatesRequest(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FetchThreatListUpdatesRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchThreatListUpdatesRequest(arena);
}
constexpr auto FetchThreatListUpdatesRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FetchThreatListUpdatesRequest), alignof(FetchThreatListUpdatesRequest));
}
constexpr auto FetchThreatListUpdatesRequest::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FetchThreatListUpdatesRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FetchThreatListUpdatesRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchThreatListUpdatesRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FetchThreatListUpdatesRequest>(), &FetchThreatListUpdatesRequest::ByteSizeLong,
              &FetchThreatListUpdatesRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FetchThreatListUpdatesRequest",
  };
}
struct FetchThreatListUpdatesRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchThreatListUpdatesRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchThreatListUpdatesRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchThreatListUpdatesRequest::InternalGenerateClassData_(
            _default, &FetchThreatListUpdatesRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchThreatListUpdatesRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchThreatListUpdatesRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FetchThreatListUpdatesRequestGlobalsTypeInternal FetchThreatListUpdatesRequest_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FetchThreatListUpdatesRequest_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FetchThreatListUpdatesRequest_globals_.GetClassData();
#else
  return FetchThreatListUpdatesRequest_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FindThreatMatchesResponse::_Internal {
 public:
  using HasBits = decltype(::std::declval<FindThreatMatchesResponse>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponse, _impl_._has_bits_);
};

constexpr FindThreatMatchesResponse::ParseTableT_ FindThreatMatchesResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponse, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FindThreatMatchesResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponse, _impl_.matches_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
      {PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponse, _impl_.matches_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatMatch>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatMatch_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FindThreatMatchesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        matches_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindThreatMatchesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindThreatMatchesResponse, _impl_.matches_)>()
         }
     {}

template <typename>
constexpr FindThreatMatchesResponse::FindThreatMatchesResponse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FindThreatMatchesResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FindThreatMatchesResponse(arena);
}
constexpr auto FindThreatMatchesResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FindThreatMatchesResponse), alignof(FindThreatMatchesResponse));
}
constexpr auto FindThreatMatchesResponse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FindThreatMatchesResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FindThreatMatchesResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FindThreatMatchesResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FindThreatMatchesResponse>(), &FindThreatMatchesResponse::ByteSizeLong,
              &FindThreatMatchesResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponse, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FindThreatMatchesResponse",
  };
}
struct FindThreatMatchesResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FindThreatMatchesResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FindThreatMatchesResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FindThreatMatchesResponse::InternalGenerateClassData_(
            _default, &FindThreatMatchesResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FindThreatMatchesResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FindThreatMatchesResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FindThreatMatchesResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FindThreatMatchesResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FindThreatMatchesResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FindThreatMatchesResponseGlobalsTypeInternal FindThreatMatchesResponse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FindThreatMatchesResponse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FindThreatMatchesResponse_globals_.GetClassData();
#else
  return FindThreatMatchesResponse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FindFullHashesResponse::_Internal {
 public:
  using HasBits = decltype(::std::declval<FindFullHashesResponse>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_._has_bits_);
};

constexpr FindFullHashesResponse::ParseTableT_ FindFullHashesResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FindFullHashesResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.matches_)}},
      // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.minimum_wait_duration_)}},
      // optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.negative_cache_duration_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.matches_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.minimum_wait_duration_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
      {PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_.negative_cache_duration_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::ThreatMatch>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::ThreatMatch_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::Duration_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::Duration_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FindFullHashesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        matches_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindFullHashesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesResponse, _impl_.matches_)>()
         }
        ,
        minimum_wait_duration_{nullptr},
        negative_cache_duration_{nullptr} {}

template <typename>
constexpr FindFullHashesResponse::FindFullHashesResponse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FindFullHashesResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FindFullHashesResponse(arena);
}
constexpr auto FindFullHashesResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FindFullHashesResponse), alignof(FindFullHashesResponse));
}
constexpr auto FindFullHashesResponse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FindFullHashesResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FindFullHashesResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FindFullHashesResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FindFullHashesResponse>(), &FindFullHashesResponse::ByteSizeLong,
              &FindFullHashesResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FindFullHashesResponse, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FindFullHashesResponse",
  };
}
struct FindFullHashesResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FindFullHashesResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FindFullHashesResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FindFullHashesResponse::InternalGenerateClassData_(
            _default, &FindFullHashesResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FindFullHashesResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FindFullHashesResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FindFullHashesResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FindFullHashesResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FindFullHashesResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FindFullHashesResponseGlobalsTypeInternal FindFullHashesResponse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FindFullHashesResponse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FindFullHashesResponse_globals_.GetClassData();
#else
  return FindFullHashesResponse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FetchThreatListUpdatesResponse::_Internal {
 public:
  using HasBits = decltype(::std::declval<FetchThreatListUpdatesResponse>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_._has_bits_);
};

constexpr FetchThreatListUpdatesResponse::ParseTableT_ FetchThreatListUpdatesResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_.minimum_wait_duration_)}},
      // repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_.list_update_responses_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_.list_update_responses_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
      {PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_.minimum_wait_duration_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::mozilla::safebrowsing::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::mozilla::safebrowsing::Duration_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FetchThreatListUpdatesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        list_update_responses_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse, _impl_.list_update_responses_)>()
         }
        ,
        minimum_wait_duration_{nullptr} {}

template <typename>
constexpr FetchThreatListUpdatesResponse::FetchThreatListUpdatesResponse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FetchThreatListUpdatesResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchThreatListUpdatesResponse(arena);
}
constexpr auto FetchThreatListUpdatesResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FetchThreatListUpdatesResponse), alignof(FetchThreatListUpdatesResponse));
}
constexpr auto FetchThreatListUpdatesResponse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FetchThreatListUpdatesResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FetchThreatListUpdatesResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchThreatListUpdatesResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FetchThreatListUpdatesResponse>(), &FetchThreatListUpdatesResponse::ByteSizeLong,
              &FetchThreatListUpdatesResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse, _impl_._cached_size_),
          true,
      },
      "mozilla.safebrowsing.FetchThreatListUpdatesResponse",
  };
}
struct FetchThreatListUpdatesResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchThreatListUpdatesResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchThreatListUpdatesResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchThreatListUpdatesResponse::InternalGenerateClassData_(
            _default, &FetchThreatListUpdatesResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchThreatListUpdatesResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchThreatListUpdatesResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchThreatListUpdatesResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FetchThreatListUpdatesResponseGlobalsTypeInternal FetchThreatListUpdatesResponse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FetchThreatListUpdatesResponse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FetchThreatListUpdatesResponse_globals_.GetClassData();
#else
  return FetchThreatListUpdatesResponse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace safebrowsing
}  // namespace mozilla
namespace mozilla {
namespace safebrowsing {
PROTOBUF_CONSTINIT const uint32_t FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_internal_data_[] = {
    196608u, 0u, };
static const char FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_names[] = {
    "FULL_UPDATE"
    "PARTIAL_UPDATE"
    "RESPONSE_TYPE_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries[] = {
    {{&FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_names[0], 11}, 2},
    {{&FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_names[11], 14}, 1},
    {{&FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_names[25], 25}, 0},
};

static const int FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries_by_number[] = {
    2,  // 0 -> RESPONSE_TYPE_UNSPECIFIED
    1,  // 1 -> PARTIAL_UPDATE
    0,  // 2 -> FULL_UPDATE
};

[[nodiscard]] bool FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Parse(::absl::string_view name,
                                  FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries, 3, name, &int_value);
  if (success) {
    *value = static_cast<FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_strings[3] = {};

[[nodiscard]] const ::std::string& FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_Name(FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries, FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries_by_number, 3,
      FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries,
                                  FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : FetchThreatListUpdatesResponse_ListUpdateResponse_ResponseType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ThreatHit_ThreatSourceType_internal_data_[] = {
    327680u, 0u, };
static const char ThreatHit_ThreatSourceType_names[] = {
    "MATCHING_URL"
    "TAB_REDIRECT"
    "TAB_RESOURCE"
    "TAB_URL"
    "THREAT_SOURCE_TYPE_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ThreatHit_ThreatSourceType_entries[] = {
    {{&ThreatHit_ThreatSourceType_names[0], 12}, 1},
    {{&ThreatHit_ThreatSourceType_names[12], 12}, 3},
    {{&ThreatHit_ThreatSourceType_names[24], 12}, 4},
    {{&ThreatHit_ThreatSourceType_names[36], 7}, 2},
    {{&ThreatHit_ThreatSourceType_names[43], 30}, 0},
};

static const int ThreatHit_ThreatSourceType_entries_by_number[] = {
    4,  // 0 -> THREAT_SOURCE_TYPE_UNSPECIFIED
    0,  // 1 -> MATCHING_URL
    3,  // 2 -> TAB_URL
    1,  // 3 -> TAB_REDIRECT
    2,  // 4 -> TAB_RESOURCE
};

[[nodiscard]] bool ThreatHit_ThreatSourceType_Parse(::absl::string_view name,
                                  ThreatHit_ThreatSourceType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ThreatHit_ThreatSourceType_entries, 5, name, &int_value);
  if (success) {
    *value = static_cast<ThreatHit_ThreatSourceType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ThreatHit_ThreatSourceType_strings[5] = {};

[[nodiscard]] const ::std::string& ThreatHit_ThreatSourceType_Name(ThreatHit_ThreatSourceType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ThreatHit_ThreatSourceType_entries, ThreatHit_ThreatSourceType_entries_by_number, 5,
      ThreatHit_ThreatSourceType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ThreatHit_ThreatSourceType_entries,
                                  ThreatHit_ThreatSourceType_entries_by_number,
                                  5, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ThreatHit_ThreatSourceType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ChromeClientInfo_SafeBrowsingReportingPopulation_internal_data_[] = {
    262144u, 0u, };
static const char ChromeClientInfo_SafeBrowsingReportingPopulation_names[] = {
    "EXTENDED"
    "OPT_OUT"
    "SCOUT"
    "UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ChromeClientInfo_SafeBrowsingReportingPopulation_entries[] = {
    {{&ChromeClientInfo_SafeBrowsingReportingPopulation_names[0], 8}, 2},
    {{&ChromeClientInfo_SafeBrowsingReportingPopulation_names[8], 7}, 1},
    {{&ChromeClientInfo_SafeBrowsingReportingPopulation_names[15], 5}, 3},
    {{&ChromeClientInfo_SafeBrowsingReportingPopulation_names[20], 11}, 0},
};

static const int ChromeClientInfo_SafeBrowsingReportingPopulation_entries_by_number[] = {
    3,  // 0 -> UNSPECIFIED
    1,  // 1 -> OPT_OUT
    0,  // 2 -> EXTENDED
    2,  // 3 -> SCOUT
};

[[nodiscard]] bool ChromeClientInfo_SafeBrowsingReportingPopulation_Parse(::absl::string_view name,
                                  ChromeClientInfo_SafeBrowsingReportingPopulation* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ChromeClientInfo_SafeBrowsingReportingPopulation_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<ChromeClientInfo_SafeBrowsingReportingPopulation>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ChromeClientInfo_SafeBrowsingReportingPopulation_strings[4] = {};

[[nodiscard]] const ::std::string& ChromeClientInfo_SafeBrowsingReportingPopulation_Name(ChromeClientInfo_SafeBrowsingReportingPopulation value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ChromeClientInfo_SafeBrowsingReportingPopulation_entries, ChromeClientInfo_SafeBrowsingReportingPopulation_entries_by_number, 4,
      ChromeClientInfo_SafeBrowsingReportingPopulation_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ChromeClientInfo_SafeBrowsingReportingPopulation_entries,
                                  ChromeClientInfo_SafeBrowsingReportingPopulation_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ChromeClientInfo_SafeBrowsingReportingPopulation_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ThreatType_internal_data_[] = {
    720896u, 32u, 4u, };
static const char ThreatType_names[] = {
    "API_ABUSE"
    "CLIENT_INCIDENT"
    "CSD_DOWNLOAD_WHITELIST"
    "CSD_WHITELIST"
    "MALICIOUS_BINARY"
    "MALWARE_THREAT"
    "POTENTIALLY_HARMFUL_APPLICATION"
    "SOCIAL_ENGINEERING"
    "SOCIAL_ENGINEERING_PUBLIC"
    "SUBRESOURCE_FILTER"
    "THREAT_TYPE_UNSPECIFIED"
    "UNWANTED_SOFTWARE"
};

static const ::google::protobuf::internal::EnumEntry ThreatType_entries[] = {
    {{&ThreatType_names[0], 9}, 6},
    {{&ThreatType_names[9], 15}, 10},
    {{&ThreatType_names[24], 22}, 9},
    {{&ThreatType_names[46], 13}, 8},
    {{&ThreatType_names[59], 16}, 7},
    {{&ThreatType_names[75], 14}, 1},
    {{&ThreatType_names[89], 31}, 4},
    {{&ThreatType_names[120], 18}, 5},
    {{&ThreatType_names[138], 25}, 2},
    {{&ThreatType_names[163], 18}, 13},
    {{&ThreatType_names[181], 23}, 0},
    {{&ThreatType_names[204], 17}, 3},
};

static const int ThreatType_entries_by_number[] = {
    10,  // 0 -> THREAT_TYPE_UNSPECIFIED
    5,  // 1 -> MALWARE_THREAT
    8,  // 2 -> SOCIAL_ENGINEERING_PUBLIC
    11,  // 3 -> UNWANTED_SOFTWARE
    6,  // 4 -> POTENTIALLY_HARMFUL_APPLICATION
    7,  // 5 -> SOCIAL_ENGINEERING
    0,  // 6 -> API_ABUSE
    4,  // 7 -> MALICIOUS_BINARY
    3,  // 8 -> CSD_WHITELIST
    2,  // 9 -> CSD_DOWNLOAD_WHITELIST
    1,  // 10 -> CLIENT_INCIDENT
    9,  // 13 -> SUBRESOURCE_FILTER
};

[[nodiscard]] bool ThreatType_Parse(::absl::string_view name,
                                  ThreatType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ThreatType_entries, 12, name, &int_value);
  if (success) {
    *value = static_cast<ThreatType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ThreatType_strings[12] = {};

[[nodiscard]] const ::std::string& ThreatType_Name(ThreatType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ThreatType_entries, ThreatType_entries_by_number, 12,
      ThreatType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ThreatType_entries,
                                  ThreatType_entries_by_number,
                                  12, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ThreatType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t PlatformType_internal_data_[] = {
    589824u, 0u, };
static const char PlatformType_names[] = {
    "ALL_PLATFORMS"
    "ANDROID_PLATFORM"
    "ANY_PLATFORM"
    "CHROME_PLATFORM"
    "IOS_PLATFORM"
    "LINUX_PLATFORM"
    "OSX_PLATFORM"
    "PLATFORM_TYPE_UNSPECIFIED"
    "WINDOWS_PLATFORM"
};

static const ::google::protobuf::internal::EnumEntry PlatformType_entries[] = {
    {{&PlatformType_names[0], 13}, 7},
    {{&PlatformType_names[13], 16}, 3},
    {{&PlatformType_names[29], 12}, 6},
    {{&PlatformType_names[41], 15}, 8},
    {{&PlatformType_names[56], 12}, 5},
    {{&PlatformType_names[68], 14}, 2},
    {{&PlatformType_names[82], 12}, 4},
    {{&PlatformType_names[94], 25}, 0},
    {{&PlatformType_names[119], 16}, 1},
};

static const int PlatformType_entries_by_number[] = {
    7,  // 0 -> PLATFORM_TYPE_UNSPECIFIED
    8,  // 1 -> WINDOWS_PLATFORM
    5,  // 2 -> LINUX_PLATFORM
    1,  // 3 -> ANDROID_PLATFORM
    6,  // 4 -> OSX_PLATFORM
    4,  // 5 -> IOS_PLATFORM
    2,  // 6 -> ANY_PLATFORM
    0,  // 7 -> ALL_PLATFORMS
    3,  // 8 -> CHROME_PLATFORM
};

[[nodiscard]] bool PlatformType_Parse(::absl::string_view name,
                                  PlatformType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      PlatformType_entries, 9, name, &int_value);
  if (success) {
    *value = static_cast<PlatformType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    PlatformType_strings[9] = {};

[[nodiscard]] const ::std::string& PlatformType_Name(PlatformType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      PlatformType_entries, PlatformType_entries_by_number, 9,
      PlatformType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(PlatformType_entries,
                                  PlatformType_entries_by_number,
                                  9, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : PlatformType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t CompressionType_internal_data_[] = {
    196608u, 0u, };
static const char CompressionType_names[] = {
    "COMPRESSION_TYPE_UNSPECIFIED"
    "RAW"
    "RICE"
};

static const ::google::protobuf::internal::EnumEntry CompressionType_entries[] = {
    {{&CompressionType_names[0], 28}, 0},
    {{&CompressionType_names[28], 3}, 1},
    {{&CompressionType_names[31], 4}, 2},
};

static const int CompressionType_entries_by_number[] = {
    0,  // 0 -> COMPRESSION_TYPE_UNSPECIFIED
    1,  // 1 -> RAW
    2,  // 2 -> RICE
};

[[nodiscard]] bool CompressionType_Parse(::absl::string_view name,
                                  CompressionType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      CompressionType_entries, 3, name, &int_value);
  if (success) {
    *value = static_cast<CompressionType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    CompressionType_strings[3] = {};

[[nodiscard]] const ::std::string& CompressionType_Name(CompressionType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      CompressionType_entries, CompressionType_entries_by_number, 3,
      CompressionType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(CompressionType_entries,
                                  CompressionType_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : CompressionType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ThreatEntryType_internal_data_[] = {
    458752u, 0u, };
static const char ThreatEntryType_names[] = {
    "CERT"
    "CHROME_EXTENSION"
    "EXECUTABLE"
    "FILENAME"
    "IP_RANGE"
    "THREAT_ENTRY_TYPE_UNSPECIFIED"
    "URL"
};

static const ::google::protobuf::internal::EnumEntry ThreatEntryType_entries[] = {
    {{&ThreatEntryType_names[0], 4}, 6},
    {{&ThreatEntryType_names[4], 16}, 4},
    {{&ThreatEntryType_names[20], 10}, 2},
    {{&ThreatEntryType_names[30], 8}, 5},
    {{&ThreatEntryType_names[38], 8}, 3},
    {{&ThreatEntryType_names[46], 29}, 0},
    {{&ThreatEntryType_names[75], 3}, 1},
};

static const int ThreatEntryType_entries_by_number[] = {
    5,  // 0 -> THREAT_ENTRY_TYPE_UNSPECIFIED
    6,  // 1 -> URL
    2,  // 2 -> EXECUTABLE
    4,  // 3 -> IP_RANGE
    1,  // 4 -> CHROME_EXTENSION
    3,  // 5 -> FILENAME
    0,  // 6 -> CERT
};

[[nodiscard]] bool ThreatEntryType_Parse(::absl::string_view name,
                                  ThreatEntryType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ThreatEntryType_entries, 7, name, &int_value);
  if (success) {
    *value = static_cast<ThreatEntryType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ThreatEntryType_strings[7] = {};

[[nodiscard]] const ::std::string& ThreatEntryType_Name(ThreatEntryType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ThreatEntryType_entries, ThreatEntryType_entries_by_number, 7,
      ThreatEntryType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ThreatEntryType_entries,
                                  ThreatEntryType_entries_by_number,
                                  7, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ThreatEntryType_strings[idx].get();
}
// ===================================================================

ThreatInfo::ThreatInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatInfo)
}
PROTOBUF_NDEBUG_INLINE ThreatInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        threat_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatInfo,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_types_)>()
          , from.threat_types_
        }
        ,
        platform_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatInfo,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.platform_types_)>()
          , from.platform_types_
        }
        ,
        threat_entries_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatInfo,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entries_)>()
          , from.threat_entries_
        }
        ,
        threat_entry_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatInfo,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entry_types_)>()
          , from.threat_entry_types_
        }
     {}

ThreatInfo::ThreatInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatInfo_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatInfo)
}
PROTOBUF_NDEBUG_INLINE ThreatInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        threat_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_types_)>()
         }
        ,
        platform_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.platform_types_)>()
         }
        ,
        threat_entries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entries_)>()
         }
        ,
        threat_entry_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatInfo,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatInfo, _impl_.threat_entry_types_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatInfo_class_data_ =
    ThreatInfo::InternalGenerateClassData_(ThreatInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatInfo::GetClassData() const {
  return ThreatInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatInfo::GetClassData() const {
  return ThreatInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatInfo::ParseTableT_
    ThreatInfo::_table_ =
        ThreatInfo::InternalGenerateParseTable_(ThreatInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.threat_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.platform_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.threat_entries_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.threat_entry_types_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_threat_types_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, static_cast<::mozilla::safebrowsing::ThreatType>(this_._internal_threat_types().Get(i)),
          target);
    }
  }

  // repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_platform_types_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, static_cast<::mozilla::safebrowsing::PlatformType>(this_._internal_platform_types().Get(i)),
          target);
    }
  }

  // repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_threat_entries_size());
         i < n; i++) {
      const auto& repfield = this_._internal_threat_entries().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (int i = 0, n = this_._internal_threat_entry_types_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, static_cast<::mozilla::safebrowsing::ThreatEntryType>(this_._internal_threat_entry_types().Get(i)),
          target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatInfo)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated .mozilla.safebrowsing.ThreatType threat_types = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_types());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_threat_types_size());
      total_size += data_size + tag_size;
    }
    // repeated .mozilla.safebrowsing.PlatformType platform_types = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_types());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_platform_types_size());
      total_size += data_size + tag_size;
    }
    // repeated .mozilla.safebrowsing.ThreatEntry threat_entries = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_threat_entries_size();
      for (const auto& msg : this_._internal_threat_entries()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .mozilla.safebrowsing.ThreatEntryType threat_entry_types = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_entry_types());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_threat_entry_types_size());
      total_size += data_size + tag_size;
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_threat_types()->MergeFrom(from._internal_threat_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_platform_types()->MergeFrom(from._internal_platform_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_threat_entries()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_threat_entries());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_threat_entry_types()->MergeFrom(from._internal_threat_entry_types());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ThreatInfo::InternalSwap(ThreatInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.threat_types_.InternalSwap(&other->_impl_.threat_types_);
  _impl_.platform_types_.InternalSwap(&other->_impl_.platform_types_);
  _impl_.threat_entries_.InternalSwap(&other->_impl_.threat_entries_);
  _impl_.threat_entry_types_.InternalSwap(&other->_impl_.threat_entry_types_);
}

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

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

ThreatMatch::ThreatMatch(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatMatch& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatMatch_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatMatch* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.threat_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_)
                : nullptr;
  _impl_.threat_entry_metadata_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_entry_metadata_)
                : nullptr;
  _impl_.cache_duration_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cache_duration_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, threat_type_),
           offsetof(Impl_, threat_entry_type_) -
               offsetof(Impl_, threat_type_) +
               sizeof(Impl_::threat_entry_type_));

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

inline void ThreatMatch::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_),
           0,
           offsetof(Impl_, threat_entry_type_) -
               offsetof(Impl_, threat_) +
               sizeof(Impl_::threat_entry_type_));
}
ThreatMatch::~ThreatMatch() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatMatch)
  SharedDtor(*this);
}
inline void ThreatMatch::SharedDtor(MessageLite& self) {
  ThreatMatch& this_ = static_cast<ThreatMatch&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.threat_;
  delete this_._impl_.threat_entry_metadata_;
  delete this_._impl_.cache_duration_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatMatch_class_data_ =
    ThreatMatch::InternalGenerateClassData_(ThreatMatch_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatMatch::GetClassData() const {
  return ThreatMatch_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatMatch::GetClassData() const {
  return ThreatMatch_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatMatch::ParseTableT_
    ThreatMatch::_table_ =
        ThreatMatch::InternalGenerateParseTable_(ThreatMatch_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatMatch::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatMatch)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.threat_ != nullptr);
      _impl_.threat_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.threat_entry_metadata_ != nullptr);
      _impl_.threat_entry_metadata_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.cache_duration_ != nullptr);
      _impl_.cache_duration_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000038U)) {
    ::memset(&_impl_.threat_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.threat_entry_type_) -
        reinterpret_cast<char*>(&_impl_.threat_type_)) + sizeof(_impl_.threat_entry_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_threat_type(), target);
  }

  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_platform_type(), target);
  }

  // optional .mozilla.safebrowsing.ThreatEntry threat = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.threat_, this_._impl_.threat_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.threat_entry_metadata_, this_._impl_.threat_entry_metadata_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.Duration cache_duration = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.cache_duration_, this_._impl_.cache_duration_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_threat_entry_type(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatMatch)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // optional .mozilla.safebrowsing.ThreatEntry threat = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threat_);
    }
    // optional .mozilla.safebrowsing.ThreatEntryMetadata threat_entry_metadata = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threat_entry_metadata_);
    }
    // optional .mozilla.safebrowsing.Duration cache_duration = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.cache_duration_);
    }
    // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_type());
    }
    // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_type());
    }
    // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_entry_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.threat_ != nullptr);
      if (_this->_impl_.threat_ == nullptr) {
        _this->_impl_.threat_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_);
      } else {
        _this->_impl_.threat_->MergeFrom(*from._impl_.threat_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.threat_entry_metadata_ != nullptr);
      if (_this->_impl_.threat_entry_metadata_ == nullptr) {
        _this->_impl_.threat_entry_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_entry_metadata_);
      } else {
        _this->_impl_.threat_entry_metadata_->MergeFrom(*from._impl_.threat_entry_metadata_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.cache_duration_ != nullptr);
      if (_this->_impl_.cache_duration_ == nullptr) {
        _this->_impl_.cache_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cache_duration_);
      } else {
        _this->_impl_.cache_duration_->MergeFrom(*from._impl_.cache_duration_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.threat_type_ = from._impl_.threat_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.platform_type_ = from._impl_.platform_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.threat_entry_type_ = from._impl_.threat_entry_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

FindThreatMatchesRequest::FindThreatMatchesRequest(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FindThreatMatchesRequest& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindThreatMatchesRequest_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FindThreatMatchesRequest* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.client_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_)
                : nullptr;
  _impl_.threat_info_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_info_)
                : nullptr;

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

inline void FindThreatMatchesRequest::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, client_),
           0,
           offsetof(Impl_, threat_info_) -
               offsetof(Impl_, client_) +
               sizeof(Impl_::threat_info_));
}
FindThreatMatchesRequest::~FindThreatMatchesRequest() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FindThreatMatchesRequest)
  SharedDtor(*this);
}
inline void FindThreatMatchesRequest::SharedDtor(MessageLite& self) {
  FindThreatMatchesRequest& this_ = static_cast<FindThreatMatchesRequest&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.client_;
  delete this_._impl_.threat_info_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FindThreatMatchesRequest_class_data_ =
    FindThreatMatchesRequest::InternalGenerateClassData_(FindThreatMatchesRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindThreatMatchesRequest::GetClassData() const {
  return FindThreatMatchesRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindThreatMatchesRequest::GetClassData() const {
  return FindThreatMatchesRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FindThreatMatchesRequest::ParseTableT_
    FindThreatMatchesRequest::_table_ =
        FindThreatMatchesRequest::InternalGenerateParseTable_(FindThreatMatchesRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FindThreatMatchesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FindThreatMatchesRequest)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.client_ != nullptr);
      _impl_.client_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.threat_info_ != nullptr);
      _impl_.threat_info_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.client_, this_._impl_.client_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.threat_info_, this_._impl_.threat_info_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FindThreatMatchesRequest)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional .mozilla.safebrowsing.ClientInfo client = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_);
    }
    // optional .mozilla.safebrowsing.ThreatInfo threat_info = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threat_info_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

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

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


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

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

FindThreatMatchesResponse::FindThreatMatchesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindThreatMatchesResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FindThreatMatchesResponse)
}
PROTOBUF_NDEBUG_INLINE FindThreatMatchesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FindThreatMatchesResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        matches_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FindThreatMatchesResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindThreatMatchesResponse, _impl_.matches_)>()
          , from.matches_
        }
     {}

FindThreatMatchesResponse::FindThreatMatchesResponse(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FindThreatMatchesResponse& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindThreatMatchesResponse_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FindThreatMatchesResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FindThreatMatchesResponse)
}
PROTOBUF_NDEBUG_INLINE FindThreatMatchesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        matches_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindThreatMatchesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindThreatMatchesResponse, _impl_.matches_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FindThreatMatchesResponse_class_data_ =
    FindThreatMatchesResponse::InternalGenerateClassData_(FindThreatMatchesResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindThreatMatchesResponse::GetClassData() const {
  return FindThreatMatchesResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindThreatMatchesResponse::GetClassData() const {
  return FindThreatMatchesResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FindThreatMatchesResponse::ParseTableT_
    FindThreatMatchesResponse::_table_ =
        FindThreatMatchesResponse::InternalGenerateParseTable_(FindThreatMatchesResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FindThreatMatchesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FindThreatMatchesResponse)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.matches_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_matches_size());
         i < n; i++) {
      const auto& repfield = this_._internal_matches().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FindThreatMatchesResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_matches_size();
      for (const auto& msg : this_._internal_matches()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_matches()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_matches());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        supported_compressions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.supported_compressions_)>()
          , from.supported_compressions_
        }
        ,
        region_(arena, from.region_) {}

FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, max_update_entries_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, max_update_entries_),
           offsetof(Impl_, max_database_entries_) -
               offsetof(Impl_, max_update_entries_) +
               sizeof(Impl_::max_database_entries_));

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        supported_compressions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.supported_compressions_)>()
         }
        ,
        region_(arena) {}

inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, max_update_entries_),
           0,
           offsetof(Impl_, max_database_entries_) -
               offsetof(Impl_, max_update_entries_) +
               sizeof(Impl_::max_database_entries_));
}
FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::~FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
  SharedDtor(*this);
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::SharedDtor(MessageLite& self) {
  FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& this_ = static_cast<FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.region_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_ =
    FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalGenerateClassData_(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::GetClassData() const {
  return FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::GetClassData() const {
  return FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::ParseTableT_
    FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_table_ =
        FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalGenerateParseTable_(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.supported_compressions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.region_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    ::memset(&_impl_.max_update_entries_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.max_database_entries_) -
        reinterpret_cast<char*>(&_impl_.max_update_entries_)) + sizeof(_impl_.max_database_entries_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

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

  // optional string region = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_region();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_supported_compressions_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, static_cast<::mozilla::safebrowsing::CompressionType>(this_._internal_supported_compressions().Get(i)),
          target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::ByteSizeLong(const MessageLite& base) {
  const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& this_ = static_cast<const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::ByteSizeLong() const {
  const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
  ::size_t total_size = 0;

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated .mozilla.safebrowsing.CompressionType supported_compressions = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_supported_compressions());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_supported_compressions_size());
      total_size += data_size + tag_size;
    }
    // optional string region = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_region());
    }
    // optional int32 max_update_entries = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_max_update_entries());
    }
    // optional int32 max_database_entries = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_max_database_entries());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_supported_compressions()->MergeFrom(from._internal_supported_compressions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_region(from._internal_region());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.max_update_entries_ = from._impl_.max_update_entries_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.max_database_entries_ = from._impl_.max_database_entries_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::CopyFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::InternalSwap(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.supported_compressions_.InternalSwap(&other->_impl_.supported_compressions_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.region_, &other->_impl_.region_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_database_entries_)
      + sizeof(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints::_impl_.max_database_entries_)
      - PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints, _impl_.max_update_entries_)>(
          reinterpret_cast<char*>(&_impl_.max_update_entries_),
          reinterpret_cast<char*>(&other->_impl_.max_update_entries_));
}

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

FetchThreatListUpdatesRequest_ListUpdateRequest::FetchThreatListUpdatesRequest_ListUpdateRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_ListUpdateRequest_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest_ListUpdateRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest_ListUpdateRequest& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        state_(arena, from.state_) {}

FetchThreatListUpdatesRequest_ListUpdateRequest::FetchThreatListUpdatesRequest_ListUpdateRequest(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FetchThreatListUpdatesRequest_ListUpdateRequest& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_ListUpdateRequest_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchThreatListUpdatesRequest_ListUpdateRequest* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.constraints_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.constraints_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, threat_type_),
           offsetof(Impl_, threat_entry_type_) -
               offsetof(Impl_, threat_type_) +
               sizeof(Impl_::threat_entry_type_));

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest_ListUpdateRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        state_(arena) {}

inline void FetchThreatListUpdatesRequest_ListUpdateRequest::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, constraints_),
           0,
           offsetof(Impl_, threat_entry_type_) -
               offsetof(Impl_, constraints_) +
               sizeof(Impl_::threat_entry_type_));
}
FetchThreatListUpdatesRequest_ListUpdateRequest::~FetchThreatListUpdatesRequest_ListUpdateRequest() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
  SharedDtor(*this);
}
inline void FetchThreatListUpdatesRequest_ListUpdateRequest::SharedDtor(MessageLite& self) {
  FetchThreatListUpdatesRequest_ListUpdateRequest& this_ = static_cast<FetchThreatListUpdatesRequest_ListUpdateRequest&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.state_.Destroy();
  delete this_._impl_.constraints_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_ =
    FetchThreatListUpdatesRequest_ListUpdateRequest::InternalGenerateClassData_(FetchThreatListUpdatesRequest_ListUpdateRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest_ListUpdateRequest::GetClassData() const {
  return FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest_ListUpdateRequest::GetClassData() const {
  return FetchThreatListUpdatesRequest_ListUpdateRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchThreatListUpdatesRequest_ListUpdateRequest::ParseTableT_
    FetchThreatListUpdatesRequest_ListUpdateRequest::_table_ =
        FetchThreatListUpdatesRequest_ListUpdateRequest::InternalGenerateParseTable_(FetchThreatListUpdatesRequest_ListUpdateRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchThreatListUpdatesRequest_ListUpdateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.state_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.constraints_ != nullptr);
      _impl_.constraints_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000001cU)) {
    ::memset(&_impl_.threat_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.threat_entry_type_) -
        reinterpret_cast<char*>(&_impl_.threat_type_)) + sizeof(_impl_.threat_entry_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_threat_type(), target);
  }

  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_platform_type(), target);
  }

  // optional bytes state = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_state();
    target = stream->WriteBytesMaybeAliased(3, _s, target);
  }

  // optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.constraints_, this_._impl_.constraints_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        5, this_._internal_threat_entry_type(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // optional bytes state = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_state());
    }
    // optional .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints constraints = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.constraints_);
    }
    // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_type());
    }
    // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_type());
    }
    // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_entry_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_state(from._internal_state());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.constraints_ != nullptr);
      if (_this->_impl_.constraints_ == nullptr) {
        _this->_impl_.constraints_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.constraints_);
      } else {
        _this->_impl_.constraints_->MergeFrom(*from._impl_.constraints_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.threat_type_ = from._impl_.threat_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.platform_type_ = from._impl_.platform_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.threat_entry_type_ = from._impl_.threat_entry_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void FetchThreatListUpdatesRequest_ListUpdateRequest::CopyFrom(const FetchThreatListUpdatesRequest_ListUpdateRequest& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

FetchThreatListUpdatesRequest::FetchThreatListUpdatesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FetchThreatListUpdatesRequest& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        list_update_requests_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FetchThreatListUpdatesRequest,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest, _impl_.list_update_requests_)>()
          , from.list_update_requests_
        }
     {}

FetchThreatListUpdatesRequest::FetchThreatListUpdatesRequest(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FetchThreatListUpdatesRequest& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesRequest_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchThreatListUpdatesRequest* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.client_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_)
                : nullptr;
  _impl_.chrome_client_info_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.chrome_client_info_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        list_update_requests_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesRequest,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesRequest, _impl_.list_update_requests_)>()
         }
     {}

inline void FetchThreatListUpdatesRequest::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, client_),
           0,
           offsetof(Impl_, chrome_client_info_) -
               offsetof(Impl_, client_) +
               sizeof(Impl_::chrome_client_info_));
}
FetchThreatListUpdatesRequest::~FetchThreatListUpdatesRequest() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
  SharedDtor(*this);
}
inline void FetchThreatListUpdatesRequest::SharedDtor(MessageLite& self) {
  FetchThreatListUpdatesRequest& this_ = static_cast<FetchThreatListUpdatesRequest&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.client_;
  delete this_._impl_.chrome_client_info_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesRequest_class_data_ =
    FetchThreatListUpdatesRequest::InternalGenerateClassData_(FetchThreatListUpdatesRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest::GetClassData() const {
  return FetchThreatListUpdatesRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesRequest::GetClassData() const {
  return FetchThreatListUpdatesRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchThreatListUpdatesRequest::ParseTableT_
    FetchThreatListUpdatesRequest::_table_ =
        FetchThreatListUpdatesRequest::InternalGenerateParseTable_(FetchThreatListUpdatesRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchThreatListUpdatesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.list_update_requests_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.client_ != nullptr);
      _impl_.client_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.chrome_client_info_ != nullptr);
      _impl_.chrome_client_info_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.client_, this_._impl_.client_->GetCachedSize(), target,
        stream);
  }

  // repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_list_update_requests_size());
         i < n; i++) {
      const auto& repfield = this_._internal_list_update_requests().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.chrome_client_info_, this_._impl_.chrome_client_info_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FetchThreatListUpdatesRequest)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .mozilla.safebrowsing.FetchThreatListUpdatesRequest.ListUpdateRequest list_update_requests = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_list_update_requests_size();
      for (const auto& msg : this_._internal_list_update_requests()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .mozilla.safebrowsing.ClientInfo client = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_);
    }
    // optional .mozilla.safebrowsing.ChromeClientInfo chrome_client_info = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.chrome_client_info_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_list_update_requests()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_list_update_requests());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.client_ != nullptr);
      if (_this->_impl_.client_ == nullptr) {
        _this->_impl_.client_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_);
      } else {
        _this->_impl_.client_->MergeFrom(*from._impl_.client_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.chrome_client_info_ != nullptr);
      if (_this->_impl_.chrome_client_info_ == nullptr) {
        _this->_impl_.chrome_client_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.chrome_client_info_);
      } else {
        _this->_impl_.chrome_client_info_->MergeFrom(*from._impl_.chrome_client_info_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FetchThreatListUpdatesResponse_ListUpdateResponse::FetchThreatListUpdatesResponse_ListUpdateResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesResponse_ListUpdateResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesResponse_ListUpdateResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        additions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.additions_)>()
          , from.additions_
        }
        ,
        removals_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.removals_)>()
          , from.removals_
        }
        ,
        new_client_state_(arena, from.new_client_state_) {}

FetchThreatListUpdatesResponse_ListUpdateResponse::FetchThreatListUpdatesResponse_ListUpdateResponse(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FetchThreatListUpdatesResponse_ListUpdateResponse& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesResponse_ListUpdateResponse_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchThreatListUpdatesResponse_ListUpdateResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.checksum_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.checksum_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, threat_type_),
           offsetof(Impl_, response_type_) -
               offsetof(Impl_, threat_type_) +
               sizeof(Impl_::response_type_));

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesResponse_ListUpdateResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        additions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.additions_)>()
         }
        ,
        removals_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.removals_)>()
         }
        ,
        new_client_state_(arena) {}

inline void FetchThreatListUpdatesResponse_ListUpdateResponse::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, checksum_),
           0,
           offsetof(Impl_, response_type_) -
               offsetof(Impl_, checksum_) +
               sizeof(Impl_::response_type_));
}
FetchThreatListUpdatesResponse_ListUpdateResponse::~FetchThreatListUpdatesResponse_ListUpdateResponse() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
  SharedDtor(*this);
}
inline void FetchThreatListUpdatesResponse_ListUpdateResponse::SharedDtor(MessageLite& self) {
  FetchThreatListUpdatesResponse_ListUpdateResponse& this_ = static_cast<FetchThreatListUpdatesResponse_ListUpdateResponse&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.new_client_state_.Destroy();
  delete this_._impl_.checksum_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_ =
    FetchThreatListUpdatesResponse_ListUpdateResponse::InternalGenerateClassData_(FetchThreatListUpdatesResponse_ListUpdateResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::GetClassData() const {
  return FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse_ListUpdateResponse::GetClassData() const {
  return FetchThreatListUpdatesResponse_ListUpdateResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchThreatListUpdatesResponse_ListUpdateResponse::ParseTableT_
    FetchThreatListUpdatesResponse_ListUpdateResponse::_table_ =
        FetchThreatListUpdatesResponse_ListUpdateResponse::InternalGenerateParseTable_(FetchThreatListUpdatesResponse_ListUpdateResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchThreatListUpdatesResponse_ListUpdateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.additions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.removals_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.new_client_state_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.checksum_ != nullptr);
      _impl_.checksum_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
    ::memset(&_impl_.threat_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.response_type_) -
        reinterpret_cast<char*>(&_impl_.threat_type_)) + sizeof(_impl_.response_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_threat_type(), target);
  }

  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_threat_entry_type(), target);
  }

  // optional .mozilla.safebrowsing.PlatformType platform_type = 3;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_platform_type(), target);
  }

  // optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this_._internal_response_type(), target);
  }

  // repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_additions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_additions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_removals_size());
         i < n; i++) {
      const auto& repfield = this_._internal_removals().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              6, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

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

  // optional .mozilla.safebrowsing.Checksum checksum = 8;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.checksum_, this_._impl_.checksum_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .mozilla.safebrowsing.ThreatEntrySet additions = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_additions_size();
      for (const auto& msg : this_._internal_additions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .mozilla.safebrowsing.ThreatEntrySet removals = 6;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_removals_size();
      for (const auto& msg : this_._internal_removals()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional bytes new_client_state = 7;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_new_client_state());
    }
    // optional .mozilla.safebrowsing.Checksum checksum = 8;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.checksum_);
    }
    // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_type());
    }
    // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_entry_type());
    }
    // optional .mozilla.safebrowsing.PlatformType platform_type = 3;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_type());
    }
    // optional .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType response_type = 4;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_response_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_additions()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_additions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_removals()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_removals());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_new_client_state(from._internal_new_client_state());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.checksum_ != nullptr);
      if (_this->_impl_.checksum_ == nullptr) {
        _this->_impl_.checksum_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.checksum_);
      } else {
        _this->_impl_.checksum_->MergeFrom(*from._impl_.checksum_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.threat_type_ = from._impl_.threat_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.threat_entry_type_ = from._impl_.threat_entry_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.platform_type_ = from._impl_.platform_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.response_type_ = from._impl_.response_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void FetchThreatListUpdatesResponse_ListUpdateResponse::CopyFrom(const FetchThreatListUpdatesResponse_ListUpdateResponse& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FetchThreatListUpdatesResponse_ListUpdateResponse::InternalSwap(FetchThreatListUpdatesResponse_ListUpdateResponse* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.additions_.InternalSwap(&other->_impl_.additions_);
  _impl_.removals_.InternalSwap(&other->_impl_.removals_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.new_client_state_, &other->_impl_.new_client_state_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.response_type_)
      + sizeof(FetchThreatListUpdatesResponse_ListUpdateResponse::_impl_.response_type_)
      - PROTOBUF_FIELD_OFFSET(FetchThreatListUpdatesResponse_ListUpdateResponse, _impl_.checksum_)>(
          reinterpret_cast<char*>(&_impl_.checksum_),
          reinterpret_cast<char*>(&other->_impl_.checksum_));
}

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

FetchThreatListUpdatesResponse::FetchThreatListUpdatesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FetchThreatListUpdatesResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        list_update_responses_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FetchThreatListUpdatesResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse, _impl_.list_update_responses_)>()
          , from.list_update_responses_
        }
     {}

FetchThreatListUpdatesResponse::FetchThreatListUpdatesResponse(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FetchThreatListUpdatesResponse& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FetchThreatListUpdatesResponse_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchThreatListUpdatesResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.minimum_wait_duration_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.minimum_wait_duration_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
}
PROTOBUF_NDEBUG_INLINE FetchThreatListUpdatesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        list_update_responses_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FetchThreatListUpdatesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FetchThreatListUpdatesResponse, _impl_.list_update_responses_)>()
         }
     {}

inline void FetchThreatListUpdatesResponse::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.minimum_wait_duration_ = {};
}
FetchThreatListUpdatesResponse::~FetchThreatListUpdatesResponse() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
  SharedDtor(*this);
}
inline void FetchThreatListUpdatesResponse::SharedDtor(MessageLite& self) {
  FetchThreatListUpdatesResponse& this_ = static_cast<FetchThreatListUpdatesResponse&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.minimum_wait_duration_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FetchThreatListUpdatesResponse_class_data_ =
    FetchThreatListUpdatesResponse::InternalGenerateClassData_(FetchThreatListUpdatesResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse::GetClassData() const {
  return FetchThreatListUpdatesResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchThreatListUpdatesResponse::GetClassData() const {
  return FetchThreatListUpdatesResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchThreatListUpdatesResponse::ParseTableT_
    FetchThreatListUpdatesResponse::_table_ =
        FetchThreatListUpdatesResponse::InternalGenerateParseTable_(FetchThreatListUpdatesResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchThreatListUpdatesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.list_update_responses_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.minimum_wait_duration_ != nullptr);
      _impl_.minimum_wait_duration_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_list_update_responses_size());
         i < n; i++) {
      const auto& repfield = this_._internal_list_update_responses().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.minimum_wait_duration_, this_._impl_.minimum_wait_duration_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FetchThreatListUpdatesResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .mozilla.safebrowsing.FetchThreatListUpdatesResponse.ListUpdateResponse list_update_responses = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_list_update_responses_size();
      for (const auto& msg : this_._internal_list_update_responses()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.minimum_wait_duration_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_list_update_responses()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_list_update_responses());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.minimum_wait_duration_ != nullptr);
      if (_this->_impl_.minimum_wait_duration_ == nullptr) {
        _this->_impl_.minimum_wait_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.minimum_wait_duration_);
      } else {
        _this->_impl_.minimum_wait_duration_->MergeFrom(*from._impl_.minimum_wait_duration_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FindFullHashesRequest::FindFullHashesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindFullHashesRequest_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FindFullHashesRequest)
}
PROTOBUF_NDEBUG_INLINE FindFullHashesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FindFullHashesRequest& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        client_states_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FindFullHashesRequest,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesRequest, _impl_.client_states_)>()
          , from.client_states_
        }
     {}

FindFullHashesRequest::FindFullHashesRequest(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FindFullHashesRequest& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindFullHashesRequest_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FindFullHashesRequest* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.client_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_)
                : nullptr;
  _impl_.threat_info_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_info_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FindFullHashesRequest)
}
PROTOBUF_NDEBUG_INLINE FindFullHashesRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        client_states_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindFullHashesRequest,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesRequest, _impl_.client_states_)>()
         }
     {}

inline void FindFullHashesRequest::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, client_),
           0,
           offsetof(Impl_, threat_info_) -
               offsetof(Impl_, client_) +
               sizeof(Impl_::threat_info_));
}
FindFullHashesRequest::~FindFullHashesRequest() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FindFullHashesRequest)
  SharedDtor(*this);
}
inline void FindFullHashesRequest::SharedDtor(MessageLite& self) {
  FindFullHashesRequest& this_ = static_cast<FindFullHashesRequest&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.client_;
  delete this_._impl_.threat_info_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FindFullHashesRequest_class_data_ =
    FindFullHashesRequest::InternalGenerateClassData_(FindFullHashesRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindFullHashesRequest::GetClassData() const {
  return FindFullHashesRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindFullHashesRequest::GetClassData() const {
  return FindFullHashesRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FindFullHashesRequest::ParseTableT_
    FindFullHashesRequest::_table_ =
        FindFullHashesRequest::InternalGenerateParseTable_(FindFullHashesRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FindFullHashesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FindFullHashesRequest)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.client_states_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.client_ != nullptr);
      _impl_.client_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.threat_info_ != nullptr);
      _impl_.threat_info_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ClientInfo client = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.client_, this_._impl_.client_->GetCachedSize(), target,
        stream);
  }

  // repeated bytes client_states = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_client_states_size(); i < n; ++i) {
      const auto& s = this_._internal_client_states().Get(i);
      target = stream->WriteBytes(2, s, target);
    }
  }

  // optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.threat_info_, this_._impl_.threat_info_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FindFullHashesRequest)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated bytes client_states = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_client_states().size());
      for (int i = 0, n = this_._internal_client_states().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
            this_._internal_client_states().Get(i));
      }
    }
    // optional .mozilla.safebrowsing.ClientInfo client = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_);
    }
    // optional .mozilla.safebrowsing.ThreatInfo threat_info = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threat_info_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_client_states()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_client_states());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.client_ != nullptr);
      if (_this->_impl_.client_ == nullptr) {
        _this->_impl_.client_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_);
      } else {
        _this->_impl_.client_->MergeFrom(*from._impl_.client_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.threat_info_ != nullptr);
      if (_this->_impl_.threat_info_ == nullptr) {
        _this->_impl_.threat_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.threat_info_);
      } else {
        _this->_impl_.threat_info_->MergeFrom(*from._impl_.threat_info_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FindFullHashesResponse::FindFullHashesResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindFullHashesResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.FindFullHashesResponse)
}
PROTOBUF_NDEBUG_INLINE FindFullHashesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::FindFullHashesResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        matches_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::FindFullHashesResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesResponse, _impl_.matches_)>()
          , from.matches_
        }
     {}

FindFullHashesResponse::FindFullHashesResponse(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FindFullHashesResponse& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FindFullHashesResponse_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FindFullHashesResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.minimum_wait_duration_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.minimum_wait_duration_)
                : nullptr;
  _impl_.negative_cache_duration_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.negative_cache_duration_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.FindFullHashesResponse)
}
PROTOBUF_NDEBUG_INLINE FindFullHashesResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        matches_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::FindFullHashesResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::FindFullHashesResponse, _impl_.matches_)>()
         }
     {}

inline void FindFullHashesResponse::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, minimum_wait_duration_),
           0,
           offsetof(Impl_, negative_cache_duration_) -
               offsetof(Impl_, minimum_wait_duration_) +
               sizeof(Impl_::negative_cache_duration_));
}
FindFullHashesResponse::~FindFullHashesResponse() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.FindFullHashesResponse)
  SharedDtor(*this);
}
inline void FindFullHashesResponse::SharedDtor(MessageLite& self) {
  FindFullHashesResponse& this_ = static_cast<FindFullHashesResponse&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.minimum_wait_duration_;
  delete this_._impl_.negative_cache_duration_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FindFullHashesResponse_class_data_ =
    FindFullHashesResponse::InternalGenerateClassData_(FindFullHashesResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindFullHashesResponse::GetClassData() const {
  return FindFullHashesResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FindFullHashesResponse::GetClassData() const {
  return FindFullHashesResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FindFullHashesResponse::ParseTableT_
    FindFullHashesResponse::_table_ =
        FindFullHashesResponse::InternalGenerateParseTable_(FindFullHashesResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FindFullHashesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.FindFullHashesResponse)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.matches_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.minimum_wait_duration_ != nullptr);
      _impl_.minimum_wait_duration_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.negative_cache_duration_ != nullptr);
      _impl_.negative_cache_duration_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_matches_size());
         i < n; i++) {
      const auto& repfield = this_._internal_matches().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.minimum_wait_duration_, this_._impl_.minimum_wait_duration_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.negative_cache_duration_, this_._impl_.negative_cache_duration_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.FindFullHashesResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .mozilla.safebrowsing.ThreatMatch matches = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_matches_size();
      for (const auto& msg : this_._internal_matches()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .mozilla.safebrowsing.Duration minimum_wait_duration = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.minimum_wait_duration_);
    }
    // optional .mozilla.safebrowsing.Duration negative_cache_duration = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.negative_cache_duration_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_matches()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_matches());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.minimum_wait_duration_ != nullptr);
      if (_this->_impl_.minimum_wait_duration_ == nullptr) {
        _this->_impl_.minimum_wait_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.minimum_wait_duration_);
      } else {
        _this->_impl_.minimum_wait_duration_->MergeFrom(*from._impl_.minimum_wait_duration_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.negative_cache_duration_ != nullptr);
      if (_this->_impl_.negative_cache_duration_ == nullptr) {
        _this->_impl_.negative_cache_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.negative_cache_duration_);
      } else {
        _this->_impl_.negative_cache_duration_->MergeFrom(*from._impl_.negative_cache_duration_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ThreatHit_ThreatSource::ThreatHit_ThreatSource(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_ThreatSource_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatHit.ThreatSource)
}
PROTOBUF_NDEBUG_INLINE ThreatHit_ThreatSource::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatHit_ThreatSource& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        url_(arena, from.url_),
        remote_ip_(arena, from.remote_ip_),
        referrer_(arena, from.referrer_) {}

ThreatHit_ThreatSource::ThreatHit_ThreatSource(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatHit_ThreatSource& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_ThreatSource_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatHit_ThreatSource* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatHit.ThreatSource)
}
PROTOBUF_NDEBUG_INLINE ThreatHit_ThreatSource::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        url_(arena),
        remote_ip_(arena),
        referrer_(arena) {}

inline void ThreatHit_ThreatSource::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
ThreatHit_ThreatSource::~ThreatHit_ThreatSource() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatHit.ThreatSource)
  SharedDtor(*this);
}
inline void ThreatHit_ThreatSource::SharedDtor(MessageLite& self) {
  ThreatHit_ThreatSource& this_ = static_cast<ThreatHit_ThreatSource&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.url_.Destroy();
  this_._impl_.remote_ip_.Destroy();
  this_._impl_.referrer_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatHit_ThreatSource_class_data_ =
    ThreatHit_ThreatSource::InternalGenerateClassData_(ThreatHit_ThreatSource_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit_ThreatSource::GetClassData() const {
  return ThreatHit_ThreatSource_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit_ThreatSource::GetClassData() const {
  return ThreatHit_ThreatSource_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatHit_ThreatSource::ParseTableT_
    ThreatHit_ThreatSource::_table_ =
        ThreatHit_ThreatSource::InternalGenerateParseTable_(ThreatHit_ThreatSource_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatHit_ThreatSource::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatHit.ThreatSource)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.url_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.remote_ip_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.referrer_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string url = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_url();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_type(), target);
  }

  // optional string remote_ip = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_remote_ip();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional string referrer = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_referrer();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatHit.ThreatSource)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // optional string url = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_url());
    }
    // optional string remote_ip = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_remote_ip());
    }
    // optional string referrer = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_referrer());
    }
    // optional .mozilla.safebrowsing.ThreatHit.ThreatSourceType type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_url(from._internal_url());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_remote_ip(from._internal_remote_ip());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_referrer(from._internal_referrer());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.type_ = from._impl_.type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ThreatHit_ThreatSource::CopyFrom(const ThreatHit_ThreatSource& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.ThreatHit.ThreatSource)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ThreatHit_ThreatSource::InternalSwap(ThreatHit_ThreatSource* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.url_, &other->_impl_.url_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remote_ip_, &other->_impl_.remote_ip_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.referrer_, &other->_impl_.referrer_, arena);
  swap(_impl_.type_, other->_impl_.type_);
}

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

ThreatHit_UserInfo::ThreatHit_UserInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_UserInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatHit.UserInfo)
}
PROTOBUF_NDEBUG_INLINE ThreatHit_UserInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatHit_UserInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        region_code_(arena, from.region_code_),
        user_id_(arena, from.user_id_) {}

ThreatHit_UserInfo::ThreatHit_UserInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatHit_UserInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_UserInfo_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatHit_UserInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatHit.UserInfo)
}
PROTOBUF_NDEBUG_INLINE ThreatHit_UserInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        region_code_(arena),
        user_id_(arena) {}

inline void ThreatHit_UserInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ThreatHit_UserInfo::~ThreatHit_UserInfo() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatHit.UserInfo)
  SharedDtor(*this);
}
inline void ThreatHit_UserInfo::SharedDtor(MessageLite& self) {
  ThreatHit_UserInfo& this_ = static_cast<ThreatHit_UserInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.region_code_.Destroy();
  this_._impl_.user_id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatHit_UserInfo_class_data_ =
    ThreatHit_UserInfo::InternalGenerateClassData_(ThreatHit_UserInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit_UserInfo::GetClassData() const {
  return ThreatHit_UserInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit_UserInfo::GetClassData() const {
  return ThreatHit_UserInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatHit_UserInfo::ParseTableT_
    ThreatHit_UserInfo::_table_ =
        ThreatHit_UserInfo::InternalGenerateParseTable_(ThreatHit_UserInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatHit_UserInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatHit.UserInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.region_code_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.user_id_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string region_code = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_region_code();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional bytes user_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_user_id();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatHit.UserInfo)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional string region_code = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_region_code());
    }
    // optional bytes user_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_user_id());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_region_code(from._internal_region_code());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_user_id(from._internal_user_id());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ThreatHit_UserInfo::CopyFrom(const ThreatHit_UserInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.ThreatHit.UserInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ThreatHit_UserInfo::InternalSwap(ThreatHit_UserInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.region_code_, &other->_impl_.region_code_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.user_id_, &other->_impl_.user_id_, arena);
}

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

ThreatHit::ThreatHit(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatHit)
}
PROTOBUF_NDEBUG_INLINE ThreatHit::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatHit& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        resources_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatHit,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatHit, _impl_.resources_)>()
          , from.resources_
        }
     {}

ThreatHit::ThreatHit(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatHit& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatHit_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatHit* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.entry_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.entry_)
                : nullptr;
  _impl_.client_info_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_info_)
                : nullptr;
  _impl_.user_info_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_info_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, threat_type_),
           offsetof(Impl_, platform_type_) -
               offsetof(Impl_, threat_type_) +
               sizeof(Impl_::platform_type_));

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatHit)
}
PROTOBUF_NDEBUG_INLINE ThreatHit::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        resources_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatHit,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatHit, _impl_.resources_)>()
         }
     {}

inline void ThreatHit::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, entry_),
           0,
           offsetof(Impl_, platform_type_) -
               offsetof(Impl_, entry_) +
               sizeof(Impl_::platform_type_));
}
ThreatHit::~ThreatHit() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatHit)
  SharedDtor(*this);
}
inline void ThreatHit::SharedDtor(MessageLite& self) {
  ThreatHit& this_ = static_cast<ThreatHit&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.entry_;
  delete this_._impl_.client_info_;
  delete this_._impl_.user_info_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatHit_class_data_ =
    ThreatHit::InternalGenerateClassData_(ThreatHit_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit::GetClassData() const {
  return ThreatHit_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatHit::GetClassData() const {
  return ThreatHit_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatHit::ParseTableT_
    ThreatHit::_table_ =
        ThreatHit::InternalGenerateParseTable_(ThreatHit_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatHit::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatHit)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.resources_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.entry_ != nullptr);
      _impl_.entry_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.client_info_ != nullptr);
      _impl_.client_info_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.user_info_ != nullptr);
      _impl_.user_info_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000030U)) {
    ::memset(&_impl_.threat_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.platform_type_) -
        reinterpret_cast<char*>(&_impl_.threat_type_)) + sizeof(_impl_.platform_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_threat_type(), target);
  }

  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_platform_type(), target);
  }

  // optional .mozilla.safebrowsing.ThreatEntry entry = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.entry_, this_._impl_.entry_->GetCachedSize(), target,
        stream);
  }

  // repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_resources_size());
         i < n; i++) {
      const auto& repfield = this_._internal_resources().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional .mozilla.safebrowsing.ClientInfo client_info = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.client_info_, this_._impl_.client_info_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.user_info_, this_._impl_.user_info_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatHit)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated .mozilla.safebrowsing.ThreatHit.ThreatSource resources = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_resources_size();
      for (const auto& msg : this_._internal_resources()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .mozilla.safebrowsing.ThreatEntry entry = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.entry_);
    }
    // optional .mozilla.safebrowsing.ClientInfo client_info = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_info_);
    }
    // optional .mozilla.safebrowsing.ThreatHit.UserInfo user_info = 6;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.user_info_);
    }
    // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_type());
    }
    // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_resources()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_resources());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.entry_ != nullptr);
      if (_this->_impl_.entry_ == nullptr) {
        _this->_impl_.entry_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.entry_);
      } else {
        _this->_impl_.entry_->MergeFrom(*from._impl_.entry_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.client_info_ != nullptr);
      if (_this->_impl_.client_info_ == nullptr) {
        _this->_impl_.client_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_info_);
      } else {
        _this->_impl_.client_info_->MergeFrom(*from._impl_.client_info_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.user_info_ != nullptr);
      if (_this->_impl_.user_info_ == nullptr) {
        _this->_impl_.user_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_info_);
      } else {
        _this->_impl_.user_info_->MergeFrom(*from._impl_.user_info_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.threat_type_ = from._impl_.threat_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.platform_type_ = from._impl_.platform_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ClientInfo::ClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ClientInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ClientInfo)
}
PROTOBUF_NDEBUG_INLINE ClientInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ClientInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        client_id_(arena, from.client_id_),
        client_version_(arena, from.client_version_) {}

ClientInfo::ClientInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ClientInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ClientInfo_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ClientInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ClientInfo)
}
PROTOBUF_NDEBUG_INLINE ClientInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        client_id_(arena),
        client_version_(arena) {}

inline void ClientInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ClientInfo::~ClientInfo() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ClientInfo)
  SharedDtor(*this);
}
inline void ClientInfo::SharedDtor(MessageLite& self) {
  ClientInfo& this_ = static_cast<ClientInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.client_id_.Destroy();
  this_._impl_.client_version_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ClientInfo_class_data_ =
    ClientInfo::InternalGenerateClassData_(ClientInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ClientInfo::GetClassData() const {
  return ClientInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ClientInfo::GetClassData() const {
  return ClientInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ClientInfo::ParseTableT_
    ClientInfo::_table_ =
        ClientInfo::InternalGenerateParseTable_(ClientInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ClientInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ClientInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.client_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.client_version_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string client_id = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_client_id();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string client_version = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_client_version();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ClientInfo)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional string client_id = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_client_id());
    }
    // optional string client_version = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_client_version());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_client_id(from._internal_client_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_client_version(from._internal_client_version());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ClientInfo::InternalSwap(ClientInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.client_id_, &other->_impl_.client_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.client_version_, &other->_impl_.client_version_, arena);
}

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

ChromeClientInfo::ChromeClientInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ChromeClientInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ChromeClientInfo)
}
ChromeClientInfo::ChromeClientInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ChromeClientInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ChromeClientInfo_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ChromeClientInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ChromeClientInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.reporting_population_ = {};
}
ChromeClientInfo::~ChromeClientInfo() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ChromeClientInfo)
  SharedDtor(*this);
}
inline void ChromeClientInfo::SharedDtor(MessageLite& self) {
  ChromeClientInfo& this_ = static_cast<ChromeClientInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ChromeClientInfo_class_data_ =
    ChromeClientInfo::InternalGenerateClassData_(ChromeClientInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeClientInfo::GetClassData() const {
  return ChromeClientInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeClientInfo::GetClassData() const {
  return ChromeClientInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ChromeClientInfo::ParseTableT_
    ChromeClientInfo::_table_ =
        ChromeClientInfo::InternalGenerateParseTable_(ChromeClientInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ChromeClientInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ChromeClientInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.reporting_population_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_reporting_population(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ChromeClientInfo)
  return target;
}

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

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

   {
    // optional .mozilla.safebrowsing.ChromeClientInfo.SafeBrowsingReportingPopulation reporting_population = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_reporting_population());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_impl_.reporting_population_ = from._impl_.reporting_population_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

Checksum::Checksum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Checksum_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.Checksum)
}
PROTOBUF_NDEBUG_INLINE Checksum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::Checksum& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sha256_(arena, from.sha256_) {}

Checksum::Checksum(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Checksum& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Checksum_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Checksum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Checksum::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Checksum::~Checksum() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.Checksum)
  SharedDtor(*this);
}
inline void Checksum::SharedDtor(MessageLite& self) {
  Checksum& this_ = static_cast<Checksum&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sha256_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Checksum_class_data_ =
    Checksum::InternalGenerateClassData_(Checksum_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Checksum::GetClassData() const {
  return Checksum_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Checksum::GetClassData() const {
  return Checksum_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Checksum::ParseTableT_
    Checksum::_table_ =
        Checksum::InternalGenerateParseTable_(Checksum_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Checksum::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.Checksum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.sha256_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes sha256 = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_sha256();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.Checksum)
  return target;
}

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

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

   {
    // optional bytes sha256 = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sha256());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_set_sha256(from._internal_sha256());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void Checksum::InternalSwap(Checksum* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sha256_, &other->_impl_.sha256_, arena);
}

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

ThreatEntry::ThreatEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntry_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatEntry)
}
PROTOBUF_NDEBUG_INLINE ThreatEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatEntry& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        hash_(arena, from.hash_),
        url_(arena, from.url_) {}

ThreatEntry::ThreatEntry(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatEntry& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntry_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatEntry* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatEntry)
}
PROTOBUF_NDEBUG_INLINE ThreatEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        hash_(arena),
        url_(arena) {}

inline void ThreatEntry::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ThreatEntry::~ThreatEntry() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatEntry)
  SharedDtor(*this);
}
inline void ThreatEntry::SharedDtor(MessageLite& self) {
  ThreatEntry& this_ = static_cast<ThreatEntry&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.hash_.Destroy();
  this_._impl_.url_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatEntry_class_data_ =
    ThreatEntry::InternalGenerateClassData_(ThreatEntry_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntry::GetClassData() const {
  return ThreatEntry_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntry::GetClassData() const {
  return ThreatEntry_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatEntry::ParseTableT_
    ThreatEntry::_table_ =
        ThreatEntry::InternalGenerateParseTable_(ThreatEntry_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatEntry::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatEntry)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.hash_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.url_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes hash = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_hash();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // optional string url = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_url();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatEntry)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional bytes hash = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_hash());
    }
    // optional string url = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_url());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_hash(from._internal_hash());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_url(from._internal_url());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ThreatEntry::InternalSwap(ThreatEntry* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.hash_, &other->_impl_.hash_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.url_, &other->_impl_.url_, arena);
}

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

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

ThreatEntrySet::ThreatEntrySet(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatEntrySet& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntrySet_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatEntrySet* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.raw_hashes_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.raw_hashes_)
                : nullptr;
  _impl_.raw_indices_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.raw_indices_)
                : nullptr;
  _impl_.rice_hashes_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.rice_hashes_)
                : nullptr;
  _impl_.rice_indices_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.rice_indices_)
                : nullptr;
  _impl_.compression_type_ = from._impl_.compression_type_;

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

inline void ThreatEntrySet::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, raw_hashes_),
           0,
           offsetof(Impl_, compression_type_) -
               offsetof(Impl_, raw_hashes_) +
               sizeof(Impl_::compression_type_));
}
ThreatEntrySet::~ThreatEntrySet() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatEntrySet)
  SharedDtor(*this);
}
inline void ThreatEntrySet::SharedDtor(MessageLite& self) {
  ThreatEntrySet& this_ = static_cast<ThreatEntrySet&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.raw_hashes_;
  delete this_._impl_.raw_indices_;
  delete this_._impl_.rice_hashes_;
  delete this_._impl_.rice_indices_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatEntrySet_class_data_ =
    ThreatEntrySet::InternalGenerateClassData_(ThreatEntrySet_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntrySet::GetClassData() const {
  return ThreatEntrySet_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntrySet::GetClassData() const {
  return ThreatEntrySet_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatEntrySet::ParseTableT_
    ThreatEntrySet::_table_ =
        ThreatEntrySet::InternalGenerateParseTable_(ThreatEntrySet_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatEntrySet::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatEntrySet)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.raw_hashes_ != nullptr);
      _impl_.raw_hashes_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.raw_indices_ != nullptr);
      _impl_.raw_indices_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.rice_hashes_ != nullptr);
      _impl_.rice_hashes_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.rice_indices_ != nullptr);
      _impl_.rice_indices_->Clear();
    }
  }
  _impl_.compression_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.CompressionType compression_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_compression_type(), target);
  }

  // optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.raw_hashes_, this_._impl_.raw_hashes_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.raw_indices_, this_._impl_.raw_indices_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.rice_hashes_, this_._impl_.rice_hashes_->GetCachedSize(), target,
        stream);
  }

  // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.rice_indices_, this_._impl_.rice_indices_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatEntrySet)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // optional .mozilla.safebrowsing.RawHashes raw_hashes = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.raw_hashes_);
    }
    // optional .mozilla.safebrowsing.RawIndices raw_indices = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.raw_indices_);
    }
    // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_hashes = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rice_hashes_);
    }
    // optional .mozilla.safebrowsing.RiceDeltaEncoding rice_indices = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rice_indices_);
    }
    // optional .mozilla.safebrowsing.CompressionType compression_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_compression_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.raw_hashes_ != nullptr);
      if (_this->_impl_.raw_hashes_ == nullptr) {
        _this->_impl_.raw_hashes_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.raw_hashes_);
      } else {
        _this->_impl_.raw_hashes_->MergeFrom(*from._impl_.raw_hashes_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.raw_indices_ != nullptr);
      if (_this->_impl_.raw_indices_ == nullptr) {
        _this->_impl_.raw_indices_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.raw_indices_);
      } else {
        _this->_impl_.raw_indices_->MergeFrom(*from._impl_.raw_indices_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.rice_hashes_ != nullptr);
      if (_this->_impl_.rice_hashes_ == nullptr) {
        _this->_impl_.rice_hashes_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.rice_hashes_);
      } else {
        _this->_impl_.rice_hashes_->MergeFrom(*from._impl_.rice_hashes_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.rice_indices_ != nullptr);
      if (_this->_impl_.rice_indices_ == nullptr) {
        _this->_impl_.rice_indices_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.rice_indices_);
      } else {
        _this->_impl_.rice_indices_->MergeFrom(*from._impl_.rice_indices_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.compression_type_ = from._impl_.compression_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

RawIndices::RawIndices(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RawIndices_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.RawIndices)
}
PROTOBUF_NDEBUG_INLINE RawIndices::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::RawIndices& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        indices_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::RawIndices,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::RawIndices, _impl_.indices_)>()
          , from.indices_
        }
     {}

RawIndices::RawIndices(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RawIndices& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RawIndices_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RawIndices* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.RawIndices)
}
PROTOBUF_NDEBUG_INLINE RawIndices::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        indices_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::RawIndices,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::RawIndices, _impl_.indices_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite RawIndices_class_data_ =
    RawIndices::InternalGenerateClassData_(RawIndices_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RawIndices::GetClassData() const {
  return RawIndices_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RawIndices::GetClassData() const {
  return RawIndices_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RawIndices::ParseTableT_
    RawIndices::_table_ =
        RawIndices::InternalGenerateParseTable_(RawIndices_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RawIndices::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.RawIndices)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.indices_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated int32 indices = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_indices_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          1, this_._internal_indices().Get(i), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.RawIndices)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated int32 indices = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_indices());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_indices_size());
      total_size += tag_size + data_size;
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_indices()->MergeFrom(from._internal_indices());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

RawHashes::RawHashes(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RawHashes_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.RawHashes)
}
PROTOBUF_NDEBUG_INLINE RawHashes::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::RawHashes& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        raw_hashes_(arena, from.raw_hashes_) {}

RawHashes::RawHashes(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RawHashes& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RawHashes_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RawHashes* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.prefix_size_ = from._impl_.prefix_size_;

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

inline void RawHashes::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.prefix_size_ = {};
}
RawHashes::~RawHashes() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.RawHashes)
  SharedDtor(*this);
}
inline void RawHashes::SharedDtor(MessageLite& self) {
  RawHashes& this_ = static_cast<RawHashes&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.raw_hashes_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite RawHashes_class_data_ =
    RawHashes::InternalGenerateClassData_(RawHashes_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RawHashes::GetClassData() const {
  return RawHashes_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RawHashes::GetClassData() const {
  return RawHashes_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RawHashes::ParseTableT_
    RawHashes::_table_ =
        RawHashes::InternalGenerateParseTable_(RawHashes_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RawHashes::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.RawHashes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.raw_hashes_.ClearNonDefaultToEmpty();
  }
  _impl_.prefix_size_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

  // optional bytes raw_hashes = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_raw_hashes();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.RawHashes)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional bytes raw_hashes = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_raw_hashes());
    }
    // optional int32 prefix_size = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_prefix_size());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_raw_hashes(from._internal_raw_hashes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.prefix_size_ = from._impl_.prefix_size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void RawHashes::InternalSwap(RawHashes* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.raw_hashes_, &other->_impl_.raw_hashes_, arena);
  swap(_impl_.prefix_size_, other->_impl_.prefix_size_);
}

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

RiceDeltaEncoding::RiceDeltaEncoding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RiceDeltaEncoding_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.RiceDeltaEncoding)
}
PROTOBUF_NDEBUG_INLINE RiceDeltaEncoding::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::RiceDeltaEncoding& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        encoded_data_(arena, from.encoded_data_) {}

RiceDeltaEncoding::RiceDeltaEncoding(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RiceDeltaEncoding& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RiceDeltaEncoding_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RiceDeltaEncoding* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, first_value_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, first_value_),
           offsetof(Impl_, num_entries_) -
               offsetof(Impl_, first_value_) +
               sizeof(Impl_::num_entries_));

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

inline void RiceDeltaEncoding::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, first_value_),
           0,
           offsetof(Impl_, num_entries_) -
               offsetof(Impl_, first_value_) +
               sizeof(Impl_::num_entries_));
}
RiceDeltaEncoding::~RiceDeltaEncoding() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.RiceDeltaEncoding)
  SharedDtor(*this);
}
inline void RiceDeltaEncoding::SharedDtor(MessageLite& self) {
  RiceDeltaEncoding& this_ = static_cast<RiceDeltaEncoding&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.encoded_data_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite RiceDeltaEncoding_class_data_ =
    RiceDeltaEncoding::InternalGenerateClassData_(RiceDeltaEncoding_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RiceDeltaEncoding::GetClassData() const {
  return RiceDeltaEncoding_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RiceDeltaEncoding::GetClassData() const {
  return RiceDeltaEncoding_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RiceDeltaEncoding::ParseTableT_
    RiceDeltaEncoding::_table_ =
        RiceDeltaEncoding::InternalGenerateParseTable_(RiceDeltaEncoding_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RiceDeltaEncoding::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.RiceDeltaEncoding)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.encoded_data_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.first_value_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.num_entries_) -
        reinterpret_cast<char*>(&_impl_.first_value_)) + sizeof(_impl_.num_entries_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int64 first_value = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<1>(
            stream, this_._internal_first_value(), target);
  }

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

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.RiceDeltaEncoding)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // optional bytes encoded_data = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_encoded_data());
    }
    // optional int64 first_value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_first_value());
    }
    // optional int32 rice_parameter = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_rice_parameter());
    }
    // optional int32 num_entries = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_entries());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_encoded_data(from._internal_encoded_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.first_value_ = from._impl_.first_value_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.rice_parameter_ = from._impl_.rice_parameter_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.num_entries_ = from._impl_.num_entries_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ThreatEntryMetadata_MetadataEntry::ThreatEntryMetadata_MetadataEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntryMetadata_MetadataEntry_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
}
PROTOBUF_NDEBUG_INLINE ThreatEntryMetadata_MetadataEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatEntryMetadata_MetadataEntry& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        key_(arena, from.key_),
        value_(arena, from.value_) {}

ThreatEntryMetadata_MetadataEntry::ThreatEntryMetadata_MetadataEntry(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatEntryMetadata_MetadataEntry& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntryMetadata_MetadataEntry_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatEntryMetadata_MetadataEntry* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
}
PROTOBUF_NDEBUG_INLINE ThreatEntryMetadata_MetadataEntry::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        key_(arena),
        value_(arena) {}

inline void ThreatEntryMetadata_MetadataEntry::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ThreatEntryMetadata_MetadataEntry::~ThreatEntryMetadata_MetadataEntry() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
  SharedDtor(*this);
}
inline void ThreatEntryMetadata_MetadataEntry::SharedDtor(MessageLite& self) {
  ThreatEntryMetadata_MetadataEntry& this_ = static_cast<ThreatEntryMetadata_MetadataEntry&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.key_.Destroy();
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatEntryMetadata_MetadataEntry_class_data_ =
    ThreatEntryMetadata_MetadataEntry::InternalGenerateClassData_(ThreatEntryMetadata_MetadataEntry_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntryMetadata_MetadataEntry::GetClassData() const {
  return ThreatEntryMetadata_MetadataEntry_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntryMetadata_MetadataEntry::GetClassData() const {
  return ThreatEntryMetadata_MetadataEntry_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatEntryMetadata_MetadataEntry::ParseTableT_
    ThreatEntryMetadata_MetadataEntry::_table_ =
        ThreatEntryMetadata_MetadataEntry::InternalGenerateParseTable_(ThreatEntryMetadata_MetadataEntry_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatEntryMetadata_MetadataEntry::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.key_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.value_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_key();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // optional bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_value();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional bytes key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_key());
    }
    // optional bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_value());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_key(from._internal_key());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_value(from._internal_value());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ThreatEntryMetadata_MetadataEntry::CopyFrom(const ThreatEntryMetadata_MetadataEntry& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ThreatEntryMetadata_MetadataEntry::InternalSwap(ThreatEntryMetadata_MetadataEntry* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.key_, &other->_impl_.key_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, &other->_impl_.value_, arena);
}

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

ThreatEntryMetadata::ThreatEntryMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntryMetadata_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatEntryMetadata)
}
PROTOBUF_NDEBUG_INLINE ThreatEntryMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ThreatEntryMetadata& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        entries_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ThreatEntryMetadata,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatEntryMetadata, _impl_.entries_)>()
          , from.entries_
        }
     {}

ThreatEntryMetadata::ThreatEntryMetadata(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ThreatEntryMetadata& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatEntryMetadata_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ThreatEntryMetadata* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ThreatEntryMetadata)
}
PROTOBUF_NDEBUG_INLINE ThreatEntryMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        entries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ThreatEntryMetadata,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ThreatEntryMetadata, _impl_.entries_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatEntryMetadata_class_data_ =
    ThreatEntryMetadata::InternalGenerateClassData_(ThreatEntryMetadata_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntryMetadata::GetClassData() const {
  return ThreatEntryMetadata_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatEntryMetadata::GetClassData() const {
  return ThreatEntryMetadata_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatEntryMetadata::ParseTableT_
    ThreatEntryMetadata::_table_ =
        ThreatEntryMetadata::InternalGenerateParseTable_(ThreatEntryMetadata_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatEntryMetadata::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatEntryMetadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.entries_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_entries_size());
         i < n; i++) {
      const auto& repfield = this_._internal_entries().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatEntryMetadata)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .mozilla.safebrowsing.ThreatEntryMetadata.MetadataEntry entries = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_entries_size();
      for (const auto& msg : this_._internal_entries()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_entries()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_entries());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ThreatListDescriptor::ThreatListDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatListDescriptor_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ThreatListDescriptor)
}
ThreatListDescriptor::ThreatListDescriptor(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThreatListDescriptor& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ThreatListDescriptor_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ThreatListDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ThreatListDescriptor::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, threat_type_),
           0,
           offsetof(Impl_, threat_entry_type_) -
               offsetof(Impl_, threat_type_) +
               sizeof(Impl_::threat_entry_type_));
}
ThreatListDescriptor::~ThreatListDescriptor() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.ThreatListDescriptor)
  SharedDtor(*this);
}
inline void ThreatListDescriptor::SharedDtor(MessageLite& self) {
  ThreatListDescriptor& this_ = static_cast<ThreatListDescriptor&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ThreatListDescriptor_class_data_ =
    ThreatListDescriptor::InternalGenerateClassData_(ThreatListDescriptor_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatListDescriptor::GetClassData() const {
  return ThreatListDescriptor_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThreatListDescriptor::GetClassData() const {
  return ThreatListDescriptor_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ThreatListDescriptor::ParseTableT_
    ThreatListDescriptor::_table_ =
        ThreatListDescriptor::InternalGenerateParseTable_(ThreatListDescriptor_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ThreatListDescriptor::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ThreatListDescriptor)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.threat_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.threat_entry_type_) -
        reinterpret_cast<char*>(&_impl_.threat_type_)) + sizeof(_impl_.threat_entry_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_threat_type(), target);
  }

  // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_platform_type(), target);
  }

  // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_threat_entry_type(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ThreatListDescriptor)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // optional .mozilla.safebrowsing.ThreatType threat_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_type());
    }
    // optional .mozilla.safebrowsing.PlatformType platform_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_platform_type());
    }
    // optional .mozilla.safebrowsing.ThreatEntryType threat_entry_type = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_threat_entry_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.threat_type_ = from._impl_.threat_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.platform_type_ = from._impl_.platform_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.threat_entry_type_ = from._impl_.threat_entry_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ListThreatListsResponse::ListThreatListsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ListThreatListsResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.ListThreatListsResponse)
}
PROTOBUF_NDEBUG_INLINE ListThreatListsResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::mozilla::safebrowsing::ListThreatListsResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        threat_lists_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::mozilla::safebrowsing::ListThreatListsResponse,
              PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ListThreatListsResponse, _impl_.threat_lists_)>()
          , from.threat_lists_
        }
     {}

ListThreatListsResponse::ListThreatListsResponse(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ListThreatListsResponse& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ListThreatListsResponse_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ListThreatListsResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:mozilla.safebrowsing.ListThreatListsResponse)
}
PROTOBUF_NDEBUG_INLINE ListThreatListsResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        threat_lists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::mozilla::safebrowsing::ListThreatListsResponse,
            PROTOBUF_FIELD_OFFSET(::mozilla::safebrowsing::ListThreatListsResponse, _impl_.threat_lists_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ListThreatListsResponse_class_data_ =
    ListThreatListsResponse::InternalGenerateClassData_(ListThreatListsResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ListThreatListsResponse::GetClassData() const {
  return ListThreatListsResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ListThreatListsResponse::GetClassData() const {
  return ListThreatListsResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ListThreatListsResponse::ParseTableT_
    ListThreatListsResponse::_table_ =
        ListThreatListsResponse::InternalGenerateParseTable_(ListThreatListsResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ListThreatListsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.ListThreatListsResponse)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.threat_lists_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_threat_lists_size());
         i < n; i++) {
      const auto& repfield = this_._internal_threat_lists().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.ListThreatListsResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .mozilla.safebrowsing.ThreatListDescriptor threat_lists = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_threat_lists_size();
      for (const auto& msg : this_._internal_threat_lists()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_threat_lists()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_threat_lists());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

Duration::Duration(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Duration_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:mozilla.safebrowsing.Duration)
}
Duration::Duration(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Duration& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Duration_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Duration::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Duration::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, seconds_),
           0,
           offsetof(Impl_, nanos_) -
               offsetof(Impl_, seconds_) +
               sizeof(Impl_::nanos_));
}
Duration::~Duration() {
  // @@protoc_insertion_point(destructor:mozilla.safebrowsing.Duration)
  SharedDtor(*this);
}
inline void Duration::SharedDtor(MessageLite& self) {
  Duration& this_ = static_cast<Duration&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Duration_class_data_ =
    Duration::InternalGenerateClassData_(Duration_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Duration::GetClassData() const {
  return Duration_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Duration::GetClassData() const {
  return Duration_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Duration::ParseTableT_
    Duration::_table_ =
        Duration::InternalGenerateParseTable_(Duration_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Duration::Clear() {
// @@protoc_insertion_point(message_clear_start:mozilla.safebrowsing.Duration)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.seconds_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nanos_) -
        reinterpret_cast<char*>(&_impl_.seconds_)) + sizeof(_impl_.nanos_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int64 seconds = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<1>(
            stream, this_._internal_seconds(), target);
  }

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.safebrowsing.Duration)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional int64 seconds = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_seconds());
    }
    // optional int32 nanos = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_nanos());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.seconds_ = from._impl_.seconds_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.nanos_ = from._impl_.nanos_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

// @@protoc_insertion_point(namespace_scope)
}  // namespace safebrowsing
}  // namespace mozilla
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
