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

#include "components/sync/protocol/nigori_local_data.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 sync_pb {
class CustomPassphraseKeyDerivationParams::_Internal {
 public:
  using HasBits = decltype(::std::declval<CustomPassphraseKeyDerivationParams>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_._has_bits_);
};

constexpr CustomPassphraseKeyDerivationParams::ParseTableT_ CustomPassphraseKeyDerivationParams::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _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
      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<::sync_pb::CustomPassphraseKeyDerivationParams>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string custom_passphrase_key_derivation_salt = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_.custom_passphrase_key_derivation_salt_)}},
      // optional .sync_pb.NigoriSpecifics.KeyDerivationMethod custom_passphrase_key_derivation_method = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 1, 2,
        PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_.custom_passphrase_key_derivation_method_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .sync_pb.NigoriSpecifics.KeyDerivationMethod custom_passphrase_key_derivation_method = 1;
      {PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_.custom_passphrase_key_derivation_method_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string custom_passphrase_key_derivation_salt = 2;
      {PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_.custom_passphrase_key_derivation_salt_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    {{
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr CustomPassphraseKeyDerivationParams::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        custom_passphrase_key_derivation_salt_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        custom_passphrase_key_derivation_method_{static_cast< ::sync_pb::NigoriSpecifics_KeyDerivationMethod >(0)} {}

template <typename>
constexpr CustomPassphraseKeyDerivationParams::CustomPassphraseKeyDerivationParams(::_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 CustomPassphraseKeyDerivationParams::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CustomPassphraseKeyDerivationParams(arena);
}
constexpr auto CustomPassphraseKeyDerivationParams::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(CustomPassphraseKeyDerivationParams), alignof(CustomPassphraseKeyDerivationParams));
}
constexpr auto CustomPassphraseKeyDerivationParams::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
          &CustomPassphraseKeyDerivationParams::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<CustomPassphraseKeyDerivationParams>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CustomPassphraseKeyDerivationParams::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<CustomPassphraseKeyDerivationParams>(), &CustomPassphraseKeyDerivationParams::ByteSizeLong,
              &CustomPassphraseKeyDerivationParams::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParams, _impl_._cached_size_),
          true,
      },
      "sync_pb.CustomPassphraseKeyDerivationParams",
  };
}
struct CustomPassphraseKeyDerivationParamsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr CustomPassphraseKeyDerivationParamsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 CustomPassphraseKeyDerivationParams_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(CustomPassphraseKeyDerivationParams::InternalGenerateClassData_(
            _default, &CustomPassphraseKeyDerivationParams_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<CustomPassphraseKeyDerivationParams>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~CustomPassphraseKeyDerivationParamsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) CustomPassphraseKeyDerivationParams _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<CustomPassphraseKeyDerivationParams>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(CustomPassphraseKeyDerivationParamsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LocalNigoriKeyBag::ParseTableT_ LocalNigoriKeyBag::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LocalNigoriKeyBag, _impl_._has_bits_),
      0, // no _extensions_
      2, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967293,  // 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<::sync_pb::LocalNigoriKeyBag>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .sync_pb.NigoriKey key = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(LocalNigoriKeyBag, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .sync_pb.NigoriKey key = 2;
      {PROTOBUF_FIELD_OFFSET(LocalNigoriKeyBag, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::NigoriKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::NigoriKey_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr LocalNigoriKeyBag::LocalNigoriKeyBag(::_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 LocalNigoriKeyBag::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LocalNigoriKeyBag(arena);
}
constexpr auto LocalNigoriKeyBag::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LocalNigoriKeyBag), alignof(LocalNigoriKeyBag));
}
constexpr auto LocalNigoriKeyBag::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
          &LocalNigoriKeyBag::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<LocalNigoriKeyBag>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LocalNigoriKeyBag::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<LocalNigoriKeyBag>(), &LocalNigoriKeyBag::ByteSizeLong,
              &LocalNigoriKeyBag::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LocalNigoriKeyBag, _impl_._cached_size_),
          true,
      },
      "sync_pb.LocalNigoriKeyBag",
  };
}
struct LocalNigoriKeyBagGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LocalNigoriKeyBagGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LocalNigoriKeyBag_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LocalNigoriKeyBag::InternalGenerateClassData_(
            _default, &LocalNigoriKeyBag_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LocalNigoriKeyBag>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LocalNigoriKeyBagGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LocalNigoriKeyBag _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LocalNigoriKeyBag>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LocalNigoriKeyBagGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr CrossUserSharingKeys::ParseTableT_ CrossUserSharingKeys::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(CrossUserSharingKeys, _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<::sync_pb::CrossUserSharingKeys>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .sync_pb.CrossUserSharingPrivateKey private_key = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(CrossUserSharingKeys, _impl_.private_key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .sync_pb.CrossUserSharingPrivateKey private_key = 1;
      {PROTOBUF_FIELD_OFFSET(CrossUserSharingKeys, _impl_.private_key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::CrossUserSharingPrivateKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::CrossUserSharingPrivateKey_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr CrossUserSharingKeys::CrossUserSharingKeys(::_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 CrossUserSharingKeys::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CrossUserSharingKeys(arena);
}
constexpr auto CrossUserSharingKeys::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(CrossUserSharingKeys), alignof(CrossUserSharingKeys));
}
constexpr auto CrossUserSharingKeys::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
          &CrossUserSharingKeys::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<CrossUserSharingKeys>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CrossUserSharingKeys::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<CrossUserSharingKeys>(), &CrossUserSharingKeys::ByteSizeLong,
              &CrossUserSharingKeys::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CrossUserSharingKeys, _impl_._cached_size_),
          true,
      },
      "sync_pb.CrossUserSharingKeys",
  };
}
struct CrossUserSharingKeysGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr CrossUserSharingKeysGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 CrossUserSharingKeys_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(CrossUserSharingKeys::InternalGenerateClassData_(
            _default, &CrossUserSharingKeys_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<CrossUserSharingKeys>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~CrossUserSharingKeysGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) CrossUserSharingKeys _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<CrossUserSharingKeys>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(CrossUserSharingKeysGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr CryptographerData::ParseTableT_ CryptographerData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(CryptographerData, _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<::sync_pb::CryptographerData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.LocalNigoriKeyBag key_bag = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.key_bag_)}},
      // optional string default_key_name = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.default_key_name_)}},
      // optional .sync_pb.CrossUserSharingKeys cross_user_sharing_keys = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 1,
        PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.cross_user_sharing_keys_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .sync_pb.LocalNigoriKeyBag key_bag = 1;
      {PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.key_bag_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string default_key_name = 2;
      {PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.default_key_name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .sync_pb.CrossUserSharingKeys cross_user_sharing_keys = 3;
      {PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.cross_user_sharing_keys_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::LocalNigoriKeyBag>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::LocalNigoriKeyBag_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::CrossUserSharingKeys>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::CrossUserSharingKeys_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr CryptographerData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        default_key_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        key_bag_{nullptr},
        cross_user_sharing_keys_{nullptr} {}

template <typename>
constexpr CryptographerData::CryptographerData(::_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 CryptographerData::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CryptographerData(arena);
}
constexpr auto CryptographerData::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(CryptographerData), alignof(CryptographerData));
}
constexpr auto CryptographerData::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
          &CryptographerData::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<CryptographerData>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CryptographerData::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<CryptographerData>(), &CryptographerData::ByteSizeLong,
              &CryptographerData::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_._cached_size_),
          true,
      },
      "sync_pb.CryptographerData",
  };
}
struct CryptographerDataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr CryptographerDataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 CryptographerData_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(CryptographerData::InternalGenerateClassData_(
            _default, &CryptographerData_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<CryptographerData>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~CryptographerDataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) CryptographerData _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<CryptographerData>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(CryptographerDataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr NigoriModel::ParseTableT_ NigoriModel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_._has_bits_),
      0, // no _extensions_
      14, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294950914,  // skipmap
      offsetof(ParseTableT_, field_entries),
      13,  // 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<::sync_pb::NigoriModel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.CryptographerData cryptographer_data = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 3, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.cryptographer_data_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.EncryptedData pending_keys = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 4, 1,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.pending_keys_)}},
      // optional .sync_pb.NigoriSpecifics.PassphraseType passphrase_type = 4 [default = UNKNOWN];
      {::_pbi::TcParser::FastEr0S1,
       {32, 11, 5,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.passphrase_type_)}},
      // optional int64 keystore_migration_time = 5;
      {::_pbi::TcParser::FastV64S1,
       {40, 9, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.keystore_migration_time_)}},
      // optional int64 custom_passphrase_time = 6;
      {::_pbi::TcParser::FastV64S1,
       {48, 10, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.custom_passphrase_time_)}},
      // optional .sync_pb.CustomPassphraseKeyDerivationParams custom_passphrase_key_derivation_params = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 5, 2,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.custom_passphrase_key_derivation_params_)}},
      // optional bool encrypt_everything = 8;
      {::_pbi::TcParser::FastV8S1,
       {64, 12, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.encrypt_everything_)}},
      // repeated int32 encrypted_types_specifics_field_number = 9;
      {::_pbi::TcParser::FastV32R1,
       {72, 0, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.encrypted_types_specifics_field_number_)}},
      // repeated string keystore_key = 10;
      {::_pbi::TcParser::FastBR1,
       {82, 1, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.keystore_key_)}},
      // optional .sync_pb.EncryptedData pending_keystore_decryptor_token = 11;
      {::_pbi::TcParser::FastMtS1,
       {90, 6, 3,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.pending_keystore_decryptor_token_)}},
      // optional string last_default_trusted_vault_key_name = 12;
      {::_pbi::TcParser::FastBS1,
       {98, 2, 0,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.last_default_trusted_vault_key_name_)}},
      // optional .sync_pb.NigoriSpecifics.TrustedVaultDebugInfo trusted_vault_debug_info = 13;
      {::_pbi::TcParser::FastMtS1,
       {106, 7, 4,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.trusted_vault_debug_info_)}},
      // optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 14;
      {::_pbi::TcParser::FastMtS1,
       {114, 8, 5,
        PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.cross_user_sharing_public_key_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .sync_pb.CryptographerData cryptographer_data = 1;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.cryptographer_data_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.EncryptedData pending_keys = 3;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.pending_keys_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.NigoriSpecifics.PassphraseType passphrase_type = 4 [default = UNKNOWN];
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.passphrase_type_), _Internal::kHasBitsOffset + 11, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional int64 keystore_migration_time = 5;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.keystore_migration_time_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional int64 custom_passphrase_time = 6;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.custom_passphrase_time_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional .sync_pb.CustomPassphraseKeyDerivationParams custom_passphrase_key_derivation_params = 7;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.custom_passphrase_key_derivation_params_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool encrypt_everything = 8;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.encrypt_everything_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated int32 encrypted_types_specifics_field_number = 9;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.encrypted_types_specifics_field_number_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
      // repeated string keystore_key = 10;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.keystore_key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional .sync_pb.EncryptedData pending_keystore_decryptor_token = 11;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.pending_keystore_decryptor_token_), _Internal::kHasBitsOffset + 6, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string last_default_trusted_vault_key_name = 12;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.last_default_trusted_vault_key_name_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .sync_pb.NigoriSpecifics.TrustedVaultDebugInfo trusted_vault_debug_info = 13;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.trusted_vault_debug_info_), _Internal::kHasBitsOffset + 7, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 14;
      {PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.cross_user_sharing_public_key_), _Internal::kHasBitsOffset + 8, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::CryptographerData>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::CryptographerData_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::EncryptedData>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::EncryptedData_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::CustomPassphraseKeyDerivationParams>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::CustomPassphraseKeyDerivationParams_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::EncryptedData>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::EncryptedData_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::NigoriSpecifics_TrustedVaultDebugInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::NigoriSpecifics_TrustedVaultDebugInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::CrossUserSharingPublicKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::CrossUserSharingPublicKey_globals_},
        #endif
        {0, 5},
    }},
    {{
    }},
  };
}


inline constexpr NigoriModel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        encrypted_types_specifics_field_number_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::NigoriModel,
            PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.encrypted_types_specifics_field_number_)>()
         }
        ,
        keystore_key_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::NigoriModel,
            PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.keystore_key_)>()
         }
        ,
        last_default_trusted_vault_key_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cryptographer_data_{nullptr},
        pending_keys_{nullptr},
        custom_passphrase_key_derivation_params_{nullptr},
        pending_keystore_decryptor_token_{nullptr},
        trusted_vault_debug_info_{nullptr},
        cross_user_sharing_public_key_{nullptr},
        keystore_migration_time_{::int64_t{0}},
        custom_passphrase_time_{::int64_t{0}},
        passphrase_type_{static_cast< ::sync_pb::NigoriSpecifics_PassphraseType >(0)},
        encrypt_everything_{false} {}

template <typename>
constexpr NigoriModel::NigoriModel(::_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 NigoriModel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NigoriModel(arena);
}
constexpr auto NigoriModel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NigoriModel), alignof(NigoriModel));
}
constexpr auto NigoriModel::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
          &NigoriModel::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<NigoriModel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NigoriModel::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<NigoriModel>(), &NigoriModel::ByteSizeLong,
              &NigoriModel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_._cached_size_),
          true,
      },
      "sync_pb.NigoriModel",
  };
}
struct NigoriModelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NigoriModelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NigoriModel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NigoriModel::InternalGenerateClassData_(
            _default, &NigoriModel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NigoriModel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NigoriModelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NigoriModel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NigoriModel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NigoriModelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr NigoriLocalData::ParseTableT_ NigoriLocalData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NigoriLocalData, _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<::sync_pb::NigoriLocalData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.DataTypeState data_type_state = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.data_type_state_)}},
      // optional .sync_pb.EntityMetadata entity_metadata = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.entity_metadata_)}},
      // optional .sync_pb.NigoriModel nigori_model = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.nigori_model_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .sync_pb.DataTypeState data_type_state = 1;
      {PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.data_type_state_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.EntityMetadata entity_metadata = 2;
      {PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.entity_metadata_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.NigoriModel nigori_model = 3;
      {PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.nigori_model_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::DataTypeState>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::DataTypeState_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::EntityMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::EntityMetadata_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::NigoriModel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::NigoriModel_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr NigoriLocalData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_type_state_{nullptr},
        entity_metadata_{nullptr},
        nigori_model_{nullptr} {}

template <typename>
constexpr NigoriLocalData::NigoriLocalData(::_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 NigoriLocalData::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NigoriLocalData(arena);
}
constexpr auto NigoriLocalData::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(NigoriLocalData), alignof(NigoriLocalData));
}
constexpr auto NigoriLocalData::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
          &NigoriLocalData::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<NigoriLocalData>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NigoriLocalData::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<NigoriLocalData>(), &NigoriLocalData::ByteSizeLong,
              &NigoriLocalData::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_._cached_size_),
          true,
      },
      "sync_pb.NigoriLocalData",
  };
}
struct NigoriLocalDataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NigoriLocalDataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NigoriLocalData_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NigoriLocalData::InternalGenerateClassData_(
            _default, &NigoriLocalData_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NigoriLocalData>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NigoriLocalDataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NigoriLocalData _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NigoriLocalData>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NigoriLocalDataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NigoriLocalDataGlobalsTypeInternal NigoriLocalData_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NigoriLocalData_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NigoriLocalData_globals_.GetClassData();
#else
  return NigoriLocalData_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace sync_pb
namespace sync_pb {
// ===================================================================

void CrossUserSharingKeys::clear_private_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.private_key_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
CrossUserSharingKeys::CrossUserSharingKeys(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, CrossUserSharingKeys_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.CrossUserSharingKeys)
}
PROTOBUF_NDEBUG_INLINE CrossUserSharingKeys::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::CrossUserSharingKeys& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        private_key_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::CrossUserSharingKeys,
              PROTOBUF_FIELD_OFFSET(::sync_pb::CrossUserSharingKeys, _impl_.private_key_)>()
          , from.private_key_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CrossUserSharingKeys* 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:sync_pb.CrossUserSharingKeys)
}
PROTOBUF_NDEBUG_INLINE CrossUserSharingKeys::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        private_key_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::CrossUserSharingKeys,
            PROTOBUF_FIELD_OFFSET(::sync_pb::CrossUserSharingKeys, _impl_.private_key_)>()
         }
     {}

inline void CrossUserSharingKeys::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
CrossUserSharingKeys::~CrossUserSharingKeys() {
  // @@protoc_insertion_point(destructor:sync_pb.CrossUserSharingKeys)
  SharedDtor(*this);
}
inline void CrossUserSharingKeys::SharedDtor(MessageLite& self) {
  CrossUserSharingKeys& this_ = static_cast<CrossUserSharingKeys&>(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 CrossUserSharingKeys_class_data_ =
    CrossUserSharingKeys::InternalGenerateClassData_(CrossUserSharingKeys_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CrossUserSharingKeys::GetClassData() const {
  return CrossUserSharingKeys_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CrossUserSharingKeys::GetClassData() const {
  return CrossUserSharingKeys_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const CrossUserSharingKeys::ParseTableT_
    CrossUserSharingKeys::_table_ =
        CrossUserSharingKeys::InternalGenerateParseTable_(CrossUserSharingKeys_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void CrossUserSharingKeys::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.CrossUserSharingKeys)
  ::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_.private_key_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .sync_pb.CrossUserSharingPrivateKey private_key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_private_key_size());
         i < n; i++) {
      const auto& repfield = this_._internal_private_key().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:sync_pb.CrossUserSharingKeys)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t CrossUserSharingKeys::ByteSizeLong(const MessageLite& base) {
  const CrossUserSharingKeys& this_ = static_cast<const CrossUserSharingKeys&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t CrossUserSharingKeys::ByteSizeLong() const {
  const CrossUserSharingKeys& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.CrossUserSharingKeys)
  ::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 .sync_pb.CrossUserSharingPrivateKey private_key = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_private_key_size();
      for (const auto& msg : this_._internal_private_key()) {
        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 CrossUserSharingKeys::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<CrossUserSharingKeys*>(&to_msg);
  auto& from = static_cast<const CrossUserSharingKeys&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.CrossUserSharingKeys)
  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_private_key()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_private_key());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void CrossUserSharingKeys::InternalSwap(CrossUserSharingKeys* 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_.private_key_.InternalSwap(&other->_impl_.private_key_);
}

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

void LocalNigoriKeyBag::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
LocalNigoriKeyBag::LocalNigoriKeyBag(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, LocalNigoriKeyBag_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.LocalNigoriKeyBag)
}
PROTOBUF_NDEBUG_INLINE LocalNigoriKeyBag::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::LocalNigoriKeyBag& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        key_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::LocalNigoriKeyBag,
              PROTOBUF_FIELD_OFFSET(::sync_pb::LocalNigoriKeyBag, _impl_.key_)>()
          , from.key_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LocalNigoriKeyBag* 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:sync_pb.LocalNigoriKeyBag)
}
PROTOBUF_NDEBUG_INLINE LocalNigoriKeyBag::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        key_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::LocalNigoriKeyBag,
            PROTOBUF_FIELD_OFFSET(::sync_pb::LocalNigoriKeyBag, _impl_.key_)>()
         }
     {}

inline void LocalNigoriKeyBag::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
LocalNigoriKeyBag::~LocalNigoriKeyBag() {
  // @@protoc_insertion_point(destructor:sync_pb.LocalNigoriKeyBag)
  SharedDtor(*this);
}
inline void LocalNigoriKeyBag::SharedDtor(MessageLite& self) {
  LocalNigoriKeyBag& this_ = static_cast<LocalNigoriKeyBag&>(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 LocalNigoriKeyBag_class_data_ =
    LocalNigoriKeyBag::InternalGenerateClassData_(LocalNigoriKeyBag_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LocalNigoriKeyBag::GetClassData() const {
  return LocalNigoriKeyBag_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LocalNigoriKeyBag::GetClassData() const {
  return LocalNigoriKeyBag_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LocalNigoriKeyBag::ParseTableT_
    LocalNigoriKeyBag::_table_ =
        LocalNigoriKeyBag::InternalGenerateParseTable_(LocalNigoriKeyBag_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LocalNigoriKeyBag::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.LocalNigoriKeyBag)
  ::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_.key_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .sync_pb.NigoriKey key = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_key_size());
         i < n; i++) {
      const auto& repfield = this_._internal_key().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = 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:sync_pb.LocalNigoriKeyBag)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LocalNigoriKeyBag::ByteSizeLong(const MessageLite& base) {
  const LocalNigoriKeyBag& this_ = static_cast<const LocalNigoriKeyBag&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LocalNigoriKeyBag::ByteSizeLong() const {
  const LocalNigoriKeyBag& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.LocalNigoriKeyBag)
  ::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 .sync_pb.NigoriKey key = 2;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_key_size();
      for (const auto& msg : this_._internal_key()) {
        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 LocalNigoriKeyBag::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<LocalNigoriKeyBag*>(&to_msg);
  auto& from = static_cast<const LocalNigoriKeyBag&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.LocalNigoriKeyBag)
  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_key()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_key());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void LocalNigoriKeyBag::InternalSwap(LocalNigoriKeyBag* 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_.key_.InternalSwap(&other->_impl_.key_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CryptographerData* 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_.key_bag_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.key_bag_)
                : nullptr;
  _impl_.cross_user_sharing_keys_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cross_user_sharing_keys_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite CryptographerData_class_data_ =
    CryptographerData::InternalGenerateClassData_(CryptographerData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CryptographerData::GetClassData() const {
  return CryptographerData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CryptographerData::GetClassData() const {
  return CryptographerData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const CryptographerData::ParseTableT_
    CryptographerData::_table_ =
        CryptographerData::InternalGenerateParseTable_(CryptographerData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void CryptographerData::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.CryptographerData)
  ::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_.default_key_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.key_bag_ != nullptr);
      _impl_.key_bag_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.cross_user_sharing_keys_ != nullptr);
      _impl_.cross_user_sharing_keys_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

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

  // optional .sync_pb.CrossUserSharingKeys cross_user_sharing_keys = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.cross_user_sharing_keys_, this_._impl_.cross_user_sharing_keys_->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:sync_pb.CryptographerData)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t CryptographerData::ByteSizeLong(const MessageLite& base) {
  const CryptographerData& this_ = static_cast<const CryptographerData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t CryptographerData::ByteSizeLong() const {
  const CryptographerData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.CryptographerData)
  ::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 string default_key_name = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_default_key_name());
    }
    // optional .sync_pb.LocalNigoriKeyBag key_bag = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.key_bag_);
    }
    // optional .sync_pb.CrossUserSharingKeys cross_user_sharing_keys = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.cross_user_sharing_keys_);
    }
  }
  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 CryptographerData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<CryptographerData*>(&to_msg);
  auto& from = static_cast<const CryptographerData&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.CryptographerData)
  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_set_default_key_name(from._internal_default_key_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.key_bag_ != nullptr);
      if (_this->_impl_.key_bag_ == nullptr) {
        _this->_impl_.key_bag_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.key_bag_);
      } else {
        _this->_impl_.key_bag_->MergeFrom(*from._impl_.key_bag_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.cross_user_sharing_keys_ != nullptr);
      if (_this->_impl_.cross_user_sharing_keys_ == nullptr) {
        _this->_impl_.cross_user_sharing_keys_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cross_user_sharing_keys_);
      } else {
        _this->_impl_.cross_user_sharing_keys_->MergeFrom(*from._impl_.cross_user_sharing_keys_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void CryptographerData::InternalSwap(CryptographerData* 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_.default_key_name_, &other->_impl_.default_key_name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.cross_user_sharing_keys_)
      + sizeof(CryptographerData::_impl_.cross_user_sharing_keys_)
      - PROTOBUF_FIELD_OFFSET(CryptographerData, _impl_.key_bag_)>(
          reinterpret_cast<char*>(&_impl_.key_bag_),
          reinterpret_cast<char*>(&other->_impl_.key_bag_));
}

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

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

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

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite CustomPassphraseKeyDerivationParams_class_data_ =
    CustomPassphraseKeyDerivationParams::InternalGenerateClassData_(CustomPassphraseKeyDerivationParams_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CustomPassphraseKeyDerivationParams::GetClassData() const {
  return CustomPassphraseKeyDerivationParams_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CustomPassphraseKeyDerivationParams::GetClassData() const {
  return CustomPassphraseKeyDerivationParams_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const CustomPassphraseKeyDerivationParams::ParseTableT_
    CustomPassphraseKeyDerivationParams::_table_ =
        CustomPassphraseKeyDerivationParams::InternalGenerateParseTable_(CustomPassphraseKeyDerivationParams_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void CustomPassphraseKeyDerivationParams::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.CustomPassphraseKeyDerivationParams)
  ::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_.custom_passphrase_key_derivation_salt_.ClearNonDefaultToEmpty();
  }
  _impl_.custom_passphrase_key_derivation_method_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .sync_pb.NigoriSpecifics.KeyDerivationMethod custom_passphrase_key_derivation_method = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_custom_passphrase_key_derivation_method(), target);
  }

  // optional string custom_passphrase_key_derivation_salt = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_custom_passphrase_key_derivation_salt();
    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:sync_pb.CustomPassphraseKeyDerivationParams)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t CustomPassphraseKeyDerivationParams::ByteSizeLong(const MessageLite& base) {
  const CustomPassphraseKeyDerivationParams& this_ = static_cast<const CustomPassphraseKeyDerivationParams&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t CustomPassphraseKeyDerivationParams::ByteSizeLong() const {
  const CustomPassphraseKeyDerivationParams& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.CustomPassphraseKeyDerivationParams)
  ::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 custom_passphrase_key_derivation_salt = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_custom_passphrase_key_derivation_salt());
    }
    // optional .sync_pb.NigoriSpecifics.KeyDerivationMethod custom_passphrase_key_derivation_method = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_custom_passphrase_key_derivation_method());
    }
  }
  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 CustomPassphraseKeyDerivationParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<CustomPassphraseKeyDerivationParams*>(&to_msg);
  auto& from = static_cast<const CustomPassphraseKeyDerivationParams&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.CustomPassphraseKeyDerivationParams)
  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_custom_passphrase_key_derivation_salt(from._internal_custom_passphrase_key_derivation_salt());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.custom_passphrase_key_derivation_method_ = from._impl_.custom_passphrase_key_derivation_method_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void CustomPassphraseKeyDerivationParams::InternalSwap(CustomPassphraseKeyDerivationParams* 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_.custom_passphrase_key_derivation_salt_, &other->_impl_.custom_passphrase_key_derivation_salt_, arena);
  swap(_impl_.custom_passphrase_key_derivation_method_, other->_impl_.custom_passphrase_key_derivation_method_);
}

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

void NigoriModel::clear_pending_keys() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.pending_keys_ != nullptr) _impl_.pending_keys_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
void NigoriModel::clear_pending_keystore_decryptor_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.pending_keystore_decryptor_token_ != nullptr) _impl_.pending_keystore_decryptor_token_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
void NigoriModel::clear_trusted_vault_debug_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.trusted_vault_debug_info_ != nullptr) _impl_.trusted_vault_debug_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
void NigoriModel::clear_cross_user_sharing_public_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cross_user_sharing_public_key_ != nullptr) _impl_.cross_user_sharing_public_key_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
NigoriModel::NigoriModel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, NigoriModel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.NigoriModel)
}
PROTOBUF_NDEBUG_INLINE NigoriModel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::NigoriModel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        encrypted_types_specifics_field_number_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::NigoriModel,
              PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.encrypted_types_specifics_field_number_)>()
          , from.encrypted_types_specifics_field_number_
        }
        ,
        keystore_key_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::NigoriModel,
              PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.keystore_key_)>()
          , from.keystore_key_
        }
        ,
        last_default_trusted_vault_key_name_(arena, from.last_default_trusted_vault_key_name_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NigoriModel* 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_.cryptographer_data_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cryptographer_data_)
                : nullptr;
  _impl_.pending_keys_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.pending_keys_)
                : nullptr;
  _impl_.custom_passphrase_key_derivation_params_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.custom_passphrase_key_derivation_params_)
                : nullptr;
  _impl_.pending_keystore_decryptor_token_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.pending_keystore_decryptor_token_)
                : nullptr;
  _impl_.trusted_vault_debug_info_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.trusted_vault_debug_info_)
                : nullptr;
  _impl_.cross_user_sharing_public_key_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cross_user_sharing_public_key_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, keystore_migration_time_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, keystore_migration_time_),
           offsetof(Impl_, encrypt_everything_) -
               offsetof(Impl_, keystore_migration_time_) +
               sizeof(Impl_::encrypt_everything_));

  // @@protoc_insertion_point(copy_constructor:sync_pb.NigoriModel)
}
PROTOBUF_NDEBUG_INLINE NigoriModel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        encrypted_types_specifics_field_number_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::NigoriModel,
            PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.encrypted_types_specifics_field_number_)>()
         }
        ,
        keystore_key_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::NigoriModel,
            PROTOBUF_FIELD_OFFSET(::sync_pb::NigoriModel, _impl_.keystore_key_)>()
         }
        ,
        last_default_trusted_vault_key_name_(arena) {}

inline void NigoriModel::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, cryptographer_data_),
           0,
           offsetof(Impl_, encrypt_everything_) -
               offsetof(Impl_, cryptographer_data_) +
               sizeof(Impl_::encrypt_everything_));
}
NigoriModel::~NigoriModel() {
  // @@protoc_insertion_point(destructor:sync_pb.NigoriModel)
  SharedDtor(*this);
}
inline void NigoriModel::SharedDtor(MessageLite& self) {
  NigoriModel& this_ = static_cast<NigoriModel&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.last_default_trusted_vault_key_name_.Destroy();
  delete this_._impl_.cryptographer_data_;
  delete this_._impl_.pending_keys_;
  delete this_._impl_.custom_passphrase_key_derivation_params_;
  delete this_._impl_.pending_keystore_decryptor_token_;
  delete this_._impl_.trusted_vault_debug_info_;
  delete this_._impl_.cross_user_sharing_public_key_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite NigoriModel_class_data_ =
    NigoriModel::InternalGenerateClassData_(NigoriModel_globals_._default);

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

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.encrypted_types_specifics_field_number_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.keystore_key_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.last_default_trusted_vault_key_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.cryptographer_data_ != nullptr);
      _impl_.cryptographer_data_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.pending_keys_ != nullptr);
      _impl_.pending_keys_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.custom_passphrase_key_derivation_params_ != nullptr);
      _impl_.custom_passphrase_key_derivation_params_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.pending_keystore_decryptor_token_ != nullptr);
      _impl_.pending_keystore_decryptor_token_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.trusted_vault_debug_info_ != nullptr);
      _impl_.trusted_vault_debug_info_->Clear();
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    ABSL_DCHECK(_impl_.cross_user_sharing_public_key_ != nullptr);
    _impl_.cross_user_sharing_public_key_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00001e00U)) {
    ::memset(&_impl_.keystore_migration_time_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.encrypt_everything_) -
        reinterpret_cast<char*>(&_impl_.keystore_migration_time_)) + sizeof(_impl_.encrypt_everything_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .sync_pb.CryptographerData cryptographer_data = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.cryptographer_data_, this_._impl_.cryptographer_data_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.EncryptedData pending_keys = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.pending_keys_, this_._impl_.pending_keys_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.NigoriSpecifics.PassphraseType passphrase_type = 4 [default = UNKNOWN];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this_._internal_passphrase_type(), target);
  }

  // optional int64 keystore_migration_time = 5;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<5>(
            stream, this_._internal_keystore_migration_time(), target);
  }

  // optional int64 custom_passphrase_time = 6;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<6>(
            stream, this_._internal_custom_passphrase_time(), target);
  }

  // optional .sync_pb.CustomPassphraseKeyDerivationParams custom_passphrase_key_derivation_params = 7;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.custom_passphrase_key_derivation_params_, this_._impl_.custom_passphrase_key_derivation_params_->GetCachedSize(), target,
        stream);
  }

  // optional bool encrypt_everything = 8;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        8, this_._internal_encrypt_everything(), target);
  }

  // repeated int32 encrypted_types_specifics_field_number = 9;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_encrypted_types_specifics_field_number_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          9, this_._internal_encrypted_types_specifics_field_number().Get(i), target);
    }
  }

  // repeated string keystore_key = 10;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_keystore_key_size(); i < n; ++i) {
      const auto& s = this_._internal_keystore_key().Get(i);
      target = stream->WriteString(10, s, target);
    }
  }

  // optional .sync_pb.EncryptedData pending_keystore_decryptor_token = 11;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        11, *this_._impl_.pending_keystore_decryptor_token_, this_._impl_.pending_keystore_decryptor_token_->GetCachedSize(), target,
        stream);
  }

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

  // optional .sync_pb.NigoriSpecifics.TrustedVaultDebugInfo trusted_vault_debug_info = 13;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        13, *this_._impl_.trusted_vault_debug_info_, this_._impl_.trusted_vault_debug_info_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 14;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        14, *this_._impl_.cross_user_sharing_public_key_, this_._impl_.cross_user_sharing_public_key_->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:sync_pb.NigoriModel)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00001000U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated int32 encrypted_types_specifics_field_number = 9;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_encrypted_types_specifics_field_number());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_encrypted_types_specifics_field_number_size());
      total_size += tag_size + data_size;
    }
    // repeated string keystore_key = 10;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_keystore_key().size());
      for (int i = 0, n = this_._internal_keystore_key().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_keystore_key().Get(i));
      }
    }
    // optional string last_default_trusted_vault_key_name = 12;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_last_default_trusted_vault_key_name());
    }
    // optional .sync_pb.CryptographerData cryptographer_data = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.cryptographer_data_);
    }
    // optional .sync_pb.EncryptedData pending_keys = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pending_keys_);
    }
    // optional .sync_pb.CustomPassphraseKeyDerivationParams custom_passphrase_key_derivation_params = 7;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.custom_passphrase_key_derivation_params_);
    }
    // optional .sync_pb.EncryptedData pending_keystore_decryptor_token = 11;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pending_keystore_decryptor_token_);
    }
    // optional .sync_pb.NigoriSpecifics.TrustedVaultDebugInfo trusted_vault_debug_info = 13;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.trusted_vault_debug_info_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000f00U)) {
    // optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 14;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.cross_user_sharing_public_key_);
    }
    // optional int64 keystore_migration_time = 5;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_keystore_migration_time());
    }
    // optional int64 custom_passphrase_time = 6;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_custom_passphrase_time());
    }
    // optional .sync_pb.NigoriSpecifics.PassphraseType passphrase_type = 4 [default = UNKNOWN];
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_passphrase_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 NigoriModel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NigoriModel*>(&to_msg);
  auto& from = static_cast<const NigoriModel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.NigoriModel)
  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_encrypted_types_specifics_field_number()->MergeFrom(from._internal_encrypted_types_specifics_field_number());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_keystore_key()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_keystore_key());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_last_default_trusted_vault_key_name(from._internal_last_default_trusted_vault_key_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.cryptographer_data_ != nullptr);
      if (_this->_impl_.cryptographer_data_ == nullptr) {
        _this->_impl_.cryptographer_data_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cryptographer_data_);
      } else {
        _this->_impl_.cryptographer_data_->MergeFrom(*from._impl_.cryptographer_data_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.pending_keys_ != nullptr);
      if (_this->_impl_.pending_keys_ == nullptr) {
        _this->_impl_.pending_keys_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.pending_keys_);
      } else {
        _this->_impl_.pending_keys_->MergeFrom(*from._impl_.pending_keys_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.custom_passphrase_key_derivation_params_ != nullptr);
      if (_this->_impl_.custom_passphrase_key_derivation_params_ == nullptr) {
        _this->_impl_.custom_passphrase_key_derivation_params_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.custom_passphrase_key_derivation_params_);
      } else {
        _this->_impl_.custom_passphrase_key_derivation_params_->MergeFrom(*from._impl_.custom_passphrase_key_derivation_params_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.pending_keystore_decryptor_token_ != nullptr);
      if (_this->_impl_.pending_keystore_decryptor_token_ == nullptr) {
        _this->_impl_.pending_keystore_decryptor_token_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.pending_keystore_decryptor_token_);
      } else {
        _this->_impl_.pending_keystore_decryptor_token_->MergeFrom(*from._impl_.pending_keystore_decryptor_token_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.trusted_vault_debug_info_ != nullptr);
      if (_this->_impl_.trusted_vault_debug_info_ == nullptr) {
        _this->_impl_.trusted_vault_debug_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.trusted_vault_debug_info_);
      } else {
        _this->_impl_.trusted_vault_debug_info_->MergeFrom(*from._impl_.trusted_vault_debug_info_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00001f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(from._impl_.cross_user_sharing_public_key_ != nullptr);
      if (_this->_impl_.cross_user_sharing_public_key_ == nullptr) {
        _this->_impl_.cross_user_sharing_public_key_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cross_user_sharing_public_key_);
      } else {
        _this->_impl_.cross_user_sharing_public_key_->MergeFrom(*from._impl_.cross_user_sharing_public_key_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.keystore_migration_time_ = from._impl_.keystore_migration_time_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.custom_passphrase_time_ = from._impl_.custom_passphrase_time_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.passphrase_type_ = from._impl_.passphrase_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.encrypt_everything_ = from._impl_.encrypt_everything_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void NigoriModel::InternalSwap(NigoriModel* 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_.encrypted_types_specifics_field_number_.InternalSwap(&other->_impl_.encrypted_types_specifics_field_number_);
  _impl_.keystore_key_.InternalSwap(&other->_impl_.keystore_key_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.last_default_trusted_vault_key_name_, &other->_impl_.last_default_trusted_vault_key_name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.encrypt_everything_)
      + sizeof(NigoriModel::_impl_.encrypt_everything_)
      - PROTOBUF_FIELD_OFFSET(NigoriModel, _impl_.cryptographer_data_)>(
          reinterpret_cast<char*>(&_impl_.cryptographer_data_),
          reinterpret_cast<char*>(&other->_impl_.cryptographer_data_));
}

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

void NigoriLocalData::clear_data_type_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.data_type_state_ != nullptr) _impl_.data_type_state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void NigoriLocalData::clear_entity_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.entity_metadata_ != nullptr) _impl_.entity_metadata_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
NigoriLocalData::NigoriLocalData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, NigoriLocalData_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.NigoriLocalData)
}
PROTOBUF_NDEBUG_INLINE NigoriLocalData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::NigoriLocalData& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NigoriLocalData* 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_.data_type_state_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.data_type_state_)
                : nullptr;
  _impl_.entity_metadata_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.entity_metadata_)
                : nullptr;
  _impl_.nigori_model_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.nigori_model_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite NigoriLocalData_class_data_ =
    NigoriLocalData::InternalGenerateClassData_(NigoriLocalData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NigoriLocalData::GetClassData() const {
  return NigoriLocalData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NigoriLocalData::GetClassData() const {
  return NigoriLocalData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NigoriLocalData::ParseTableT_
    NigoriLocalData::_table_ =
        NigoriLocalData::InternalGenerateParseTable_(NigoriLocalData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NigoriLocalData::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.NigoriLocalData)
  ::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_.data_type_state_ != nullptr);
      _impl_.data_type_state_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.entity_metadata_ != nullptr);
      _impl_.entity_metadata_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.nigori_model_ != nullptr);
      _impl_.nigori_model_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .sync_pb.DataTypeState data_type_state = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.data_type_state_, this_._impl_.data_type_state_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.EntityMetadata entity_metadata = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.entity_metadata_, this_._impl_.entity_metadata_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.NigoriModel nigori_model = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.nigori_model_, this_._impl_.nigori_model_->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:sync_pb.NigoriLocalData)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NigoriLocalData::ByteSizeLong(const MessageLite& base) {
  const NigoriLocalData& this_ = static_cast<const NigoriLocalData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NigoriLocalData::ByteSizeLong() const {
  const NigoriLocalData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.NigoriLocalData)
  ::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 .sync_pb.DataTypeState data_type_state = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_type_state_);
    }
    // optional .sync_pb.EntityMetadata entity_metadata = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.entity_metadata_);
    }
    // optional .sync_pb.NigoriModel nigori_model = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nigori_model_);
    }
  }
  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 NigoriLocalData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NigoriLocalData*>(&to_msg);
  auto& from = static_cast<const NigoriLocalData&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.NigoriLocalData)
  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)) {
      ABSL_DCHECK(from._impl_.data_type_state_ != nullptr);
      if (_this->_impl_.data_type_state_ == nullptr) {
        _this->_impl_.data_type_state_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.data_type_state_);
      } else {
        _this->_impl_.data_type_state_->MergeFrom(*from._impl_.data_type_state_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.entity_metadata_ != nullptr);
      if (_this->_impl_.entity_metadata_ == nullptr) {
        _this->_impl_.entity_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.entity_metadata_);
      } else {
        _this->_impl_.entity_metadata_->MergeFrom(*from._impl_.entity_metadata_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.nigori_model_ != nullptr);
      if (_this->_impl_.nigori_model_ == nullptr) {
        _this->_impl_.nigori_model_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.nigori_model_);
      } else {
        _this->_impl_.nigori_model_->MergeFrom(*from._impl_.nigori_model_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void NigoriLocalData::InternalSwap(NigoriLocalData* 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(NigoriLocalData, _impl_.nigori_model_)
      + sizeof(NigoriLocalData::_impl_.nigori_model_)
      - PROTOBUF_FIELD_OFFSET(NigoriLocalData, _impl_.data_type_state_)>(
          reinterpret_cast<char*>(&_impl_.data_type_state_),
          reinterpret_cast<char*>(&other->_impl_.data_type_state_));
}

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